]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
librados: librados.hpp should be standalone
authorYehuda Sadeh <yehuda@hq.newdream.net>
Fri, 16 Jul 2010 21:04:57 +0000 (14:04 -0700)
committerYehuda Sadeh <yehuda@hq.newdream.net>
Fri, 16 Jul 2010 21:05:59 +0000 (14:05 -0700)
removed references to object_t, declared librados::SnapContext

src/include/librados.hpp
src/librados.cc
src/rbd.cc

index 9c71b3a2e84c761d8ba593d3bd399d2d691fa007..950b3941a72e2bdd70c16597044ac2a885fc9a10 100644 (file)
@@ -36,6 +36,12 @@ namespace librados {
   typedef void *completion_t;
   typedef void (*callback_t)(completion_t cb, void *arg);
 
+  struct SnapContext {
+    snapid_t seq;
+    vector<snapid_t> snaps;
+  };
+
+
 
 class Rados
 {
@@ -93,11 +99,11 @@ public:
   int snap_create(const pool_t pool, const char *snapname);
   int selfmanaged_snap_create(const pool_t pool, uint64_t *snapid);
   int snap_remove(const pool_t pool, const char *snapname);
-  int snap_rollback_object(const pool_t pool, const object_t oid,
+  int snap_rollback_object(const pool_t pool, const std::string& oid,
                           const char *snapname);
   int selfmanaged_snap_remove(const pool_t pool, uint64_t snapid);
   int selfmanaged_snap_rollback_object(const pool_t pool,
-                                const object_t oid,
+                                const std::string& oid,
                                 SnapContext& snapc, uint64_t snapid);
   int snap_list(pool_t pool, std::vector<snap_t> *snaps);
   int snap_get_name(pool_t pool, snap_t snap, std::string *name);
index b3bbe6a0deb5ceef2d96b4bada1813b01a2a8e29..f6b8298c58851a3b954a28a07166b18c5163469f 100644 (file)
@@ -1515,7 +1515,7 @@ int Rados::snap_remove(const rados_pool_t pool, const char *snapname) {
   return ((RadosClient *)client)->snap_remove(pool, snapname);
 }
 
-int Rados::snap_rollback_object(const rados_pool_t pool, const object_t oid,
+int Rados::snap_rollback_object(const rados_pool_t pool, const std::string& oid,
                                const char *snapname) {
   if (!client) return -EINVAL;
   return ((RadosClient *)client)->snap_rollback_object(pool, oid, snapname);
@@ -1535,11 +1535,14 @@ int Rados::selfmanaged_snap_remove(const rados_pool_t pool,
 }
 
 int Rados::selfmanaged_snap_rollback_object(const rados_pool_t pool,
-                                const object_t oid,
+                                const std::string& oid,
                                 SnapContext& snapc, uint64_t snapid)
 {
+  ::SnapContext sn;
   if (!client) return -EINVAL;
-  return ((RadosClient *)client)->selfmanaged_snap_rollback_object(pool, oid, snapc, snapid);
+  sn.seq = snapc.seq;
+  sn.snaps = snapc.snaps;
+  return ((RadosClient *)client)->selfmanaged_snap_rollback_object(pool, oid, sn, snapid);
 }
 
 void Rados::set_snap(rados_pool_t pool, snap_t seq)
index 71927f23241c57ba0e885adeca85e14e50323cc1..927405f31354cf4ab578f4701ec51dad3aa0e7de 100644 (file)
@@ -274,14 +274,17 @@ static int tmap_rm(pools_t& pp, string& imgname)
 }
 
 static int rollback_image(pools_t& pp, struct rbd_obj_header_ondisk *header,
-                          SnapContext& snapc, uint64_t snapid)
+                          ::SnapContext& snapc, uint64_t snapid)
 {
   uint64_t numseg = get_max_block(header);
 
   for (uint64_t i = 0; i < numseg; i++) {
     int r;
     string oid = get_block_oid(header, i);
-    r = rados.selfmanaged_snap_rollback_object(pp.data, oid, snapc, snapid);
+    librados::SnapContext sn;
+    sn.seq = snapc.seq;
+    sn.snaps = snapc.snaps;
+    r = rados.selfmanaged_snap_rollback_object(pp.data, oid, sn, snapid);
     if (r < 0 && r != -ENOENT)
       return r;
   }
@@ -518,7 +521,7 @@ static int do_add_snap(pools_t& pp, string& md_oid, const char *snapname)
 }
 
 static int do_get_snapc(pools_t& pp, string& md_oid, const char *snapname,
-                        SnapContext& snapc, vector<snap_t>& snaps, uint64_t& snapid)
+                        ::SnapContext& snapc, vector<snap_t>& snaps, uint64_t& snapid)
 {
   bufferlist bl, bl2;
 
@@ -559,7 +562,7 @@ static int do_get_snapc(pools_t& pp, string& md_oid, const char *snapname,
   return 0;
 }
 
-static int do_rollback_snap(pools_t& pp, string& md_oid, SnapContext& snapc, uint64_t snapid)
+static int do_rollback_snap(pools_t& pp, string& md_oid, ::SnapContext& snapc, uint64_t snapid)
 {
   struct rbd_obj_header_ondisk header;
   int r = read_header(pp.md, md_oid, &header);
@@ -915,7 +918,7 @@ int main(int argc, const char **argv)
   pools_t pp = { 0, 0, 0 };
   snap_t snapid = 0;
   vector<snap_t> snaps;
-  SnapContext snapc;
+  ::SnapContext snapc;
 
   int opt_cmd = OPT_NO_CMD;