]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
radostool: 'ls' fixes
authorSage Weil <sage@newdream.net>
Mon, 8 Jun 2009 21:11:22 +0000 (14:11 -0700)
committerSage Weil <sage@newdream.net>
Mon, 8 Jun 2009 21:11:54 +0000 (14:11 -0700)
src/librados.cc
src/radostool.cc

index 7c0c0a05f0ce0e8488e9b80fc5e3bacc18591812..6af5c3abeb54fe67dc0db9dae88c3f867adfde36 100644 (file)
@@ -378,7 +378,7 @@ int RadosClient::list(PoolCtx& pool, int max_entries, std::list<object_t>& entri
 
   Cond cond;
   bool done;
-  int r;
+  int r = 0;
   object_t oid;
 
   memset(&oid, 0, sizeof(oid));
@@ -387,18 +387,18 @@ int RadosClient::list(PoolCtx& pool, int max_entries, std::list<object_t>& entri
   ceph_object_layout layout;
 retry:
   int pg_num = objecter->osdmap->get_pg_num(pool.poolid);
-
+  
   for (;op.seed <pg_num; op.seed++) {
-   int response_size;
-   int req_size;
-
-   do {
-     lock.Lock();
-     int num = objecter->osdmap->get_pg_layout(pool.poolid, op.seed, layout);
-     lock.Unlock();
-     if (num != pg_num)  /* ahh.. race! */
+    int response_size;
+    int req_size;
+    
+    do {
+      lock.Lock();
+      int num = objecter->osdmap->get_pg_layout(pool.poolid, op.seed, layout);
+      lock.Unlock();
+      if (num != pg_num)  /* ahh.. race! */
         goto retry;
-
+      
       ObjectRead rd;
       bufferlist bl;
 #define MAX_REQ_SIZE 1024
@@ -431,8 +431,8 @@ retry:
         op.cookie = 0;
       }
     } while ((response_size == req_size) && op.cookie);
- }
-
 }
+  
   return r;
 }
 
index 7bfe30d63729c05b9d7be2f50ef4d7814cbebea3..8d072b8b57bdbabe32cd42f822290b8fd0fa7f5e 100644 (file)
@@ -109,7 +109,7 @@ int main(int argc, const char **argv)
     Rados::ListCtx ctx;
     while (1) {
       list<object_t> vec;
-      int r = rados.list(p, 2, vec, ctx);
+      int r = rados.list(p, 1 << 10, vec, ctx);
       cout << "list result=" << r << " entries=" << vec.size() << std::endl;
       if (r < 0) {
        cerr << "got error: " << strerror(-r) << std::endl;