From b6b0c3bd0cd71f9003ceb44e5770b300af66caaf Mon Sep 17 00:00:00 2001 From: David Zafman Date: Thu, 10 Apr 2014 17:16:33 -0700 Subject: [PATCH] librados: Add ObjectWriteOperation::snap_rollback() for pool snapshots 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 --- src/include/rados/librados.hpp | 9 +++++++++ src/librados/librados.cc | 7 +++++++ 2 files changed, 16 insertions(+) diff --git a/src/include/rados/librados.hpp b/src/include/rados/librados.hpp index f0d69cf0c1c..e7aeb4f2e1a 100644 --- a/src/include/rados/librados.hpp +++ b/src/include/rados/librados.hpp @@ -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 * diff --git a/src/librados/librados.cc b/src/librados/librados.cc index 793b4906b82..2358fb406e8 100644 --- a/src/librados/librados.cc +++ b/src/librados/librados.cc @@ -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) -- 2.47.3