]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
librados: Add ObjectWriteOperation::snap_rollback() for pool snapshots
authorDavid Zafman <david.zafman@inktank.com>
Fri, 11 Apr 2014 00:16:33 +0000 (17:16 -0700)
committerDavid Zafman <david.zafman@inktank.com>
Fri, 11 Apr 2014 23:22:27 +0000 (16:22 -0700)
snap_rollback() is the same as selfmanaged_snap_rollback() but we want an
independent interface for pool snapshots.  Should really take snapname
for consistency with other pool snapshot interfaces.

Signed-off-by: David Zafman <david.zafman@inktank.com>
src/include/rados/librados.hpp
src/librados/librados.cc

index f0d69cf0c1cc09d1fd16f7243ade7870e1d5afa6..e7aeb4f2e1a622ff01b7677c0b818c7f1e3e66c6 100644 (file)
@@ -266,6 +266,15 @@ namespace librados
                      size_t len);
     void selfmanaged_snap_rollback(uint64_t snapid);
 
+    /**
+     * Rollback an object to the specified snapshot id
+     *
+     * Used with pool snapshots
+     *
+     * @param snapid [in] snopshot id specified
+     */
+    void snap_rollback(uint64_t snapid);
+
     /**
      * set keys and values according to map
      *
index 793b4906b823798c5825dc72bb3d64f5937d37ad..2358fb406e8c5abe0c949dc89811cc9f857bdce5 100644 (file)
@@ -453,6 +453,13 @@ void librados::ObjectWriteOperation::selfmanaged_snap_rollback(snap_t snapid)
   o->rollback(snapid);
 }
 
+// You must specify the snapid not the name normally used with pool snapshots
+void librados::ObjectWriteOperation::snap_rollback(snap_t snapid)
+{
+  ::ObjectOperation *o = (::ObjectOperation *)impl;
+  o->rollback(snapid);
+}
+
 void librados::ObjectWriteOperation::set_alloc_hint(
                                             uint64_t expected_object_size,
                                             uint64_t expected_write_size)