int selfmanaged_snap_remove(uint64_t snapid);
- // !!!REMOVE THIS!!!
- int selfmanaged_snap_rollback(const std::string& oid, SnapContext& snapc,
- uint64_t snapid);
-
ObjectIterator objects_begin();
const ObjectIterator& objects_end() const;
return pool_ctx->client->selfmanaged_snap_remove(pool_ctx, snapid);
}
-int librados::PoolHandle::
-selfmanaged_snap_rollback(const std::string& oid, SnapContext& snapc,
- uint64_t snapid)
-{
- ::SnapContext sn;
- sn.seq = snapc.seq;
- sn.snaps.clear();
- std::vector<snap_t>::const_iterator iter = snapc.snaps.begin();
- for (; iter != snapc.snaps.end(); ++iter) {
- sn.snaps.push_back(*iter);
- }
- return pool_ctx->client->
- selfmanaged_snap_rollback_object(pool_ctx, oid, sn, snapid);
-}
-
librados::ObjectIterator librados::PoolHandle::
objects_begin()
{
return pool.tmap_update(RBD_DIRECTORY, cmdbl);
}
-int rollback_image(ImageCtx *ictx, uint64_t snapid)
+int rollback_image(ImageCtx *ictx, const char *snap_name)
{
uint64_t numseg = get_max_block(&(ictx->header));
for (uint64_t i = 0; i < numseg; i++) {
int r;
string oid = get_block_oid(&(ictx->header), i);
- librados::SnapContext sn;
- sn.seq = ictx->snapc.seq;
- sn.snaps.clear();
- vector<snapid_t>::iterator iter = ictx->snapc.snaps.begin();
- for (; iter != ictx->snapc.snaps.end(); ++iter) {
- sn.snaps.push_back(*iter);
- }
- r = ictx->pool.selfmanaged_snap_rollback(oid, sn, snapid);
+ r = ictx->pool.snap_rollback_object(ictx->pool, oid, snap_name);
if (r < 0 && r != -ENOENT)
return r;
}
return r;
ictx->pool.snap_set_read(ictx->snapid);
- r = rollback_image(ictx, ictx->snapid);
+ r = rollback_image(ictx, snap_name);
if (r < 0)
return r;