diff options
author | Josh Durgin <josh.durgin@dreamhost.com> | 2011-10-24 12:38:01 -0700 |
---|---|---|
committer | Josh Durgin <josh.durgin@dreamhost.com> | 2011-10-24 15:32:47 -0700 |
commit | 2af32a411b3fefc89eddcf0d764ed7e767ed1e51 (patch) | |
tree | 8d0e71cce6bbb39d9a0476986195393e5cedf103 /src/librados.cc | |
parent | ae91911c7588b30999a895a636641bd34731d8be (diff) | |
download | ceph-2af32a411b3fefc89eddcf0d764ed7e767ed1e51.tar.gz |
librados: use stored snap context for all operations
Using an empty snap context led to the failure of
test_rbd.TestImage.test_rollback_with_resize, since clones weren't
created when deleting objects. This test now passes.
Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
Diffstat (limited to 'src/librados.cc')
-rw-r--r-- | src/librados.cc | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/src/librados.cc b/src/librados.cc index 1b43f7637b6..0c22dde4a0d 100644 --- a/src/librados.cc +++ b/src/librados.cc @@ -1678,11 +1678,10 @@ int librados::RadosClient::clone_range(IoCtxImpl& io, bufferlist outbl; lock.Lock(); - ::SnapContext snapc; ::ObjectOperation wr; prepare_assert_ops(&io, &wr); wr.clone_range(src_oid, src_offset, len, dst_offset); - objecter->mutate(dst_oid, io.oloc, wr, snapc, ut, 0, onack, NULL, &ver); + objecter->mutate(dst_oid, io.oloc, wr, io.snapc, ut, 0, onack, NULL, &ver); lock.Unlock(); mylock.Lock(); @@ -1906,7 +1905,6 @@ int librados::RadosClient::aio_write_full(IoCtxImpl& io, const object_t &oid, int librados::RadosClient::remove(IoCtxImpl& io, const object_t& oid) { - ::SnapContext snapc; utime_t ut = ceph_clock_now(cct); /* can't write to a snapshot */ @@ -1925,7 +1923,7 @@ int librados::RadosClient::remove(IoCtxImpl& io, const object_t& oid) lock.Lock(); objecter->remove(oid, io.oloc, - snapc, ut, 0, + io.snapc, ut, 0, onack, NULL, &ver, pop); lock.Unlock(); @@ -1993,11 +1991,10 @@ int librados::RadosClient::tmap_update(IoCtxImpl& io, const object_t& oid, buffe bufferlist outbl; lock.Lock(); - ::SnapContext snapc; ::ObjectOperation wr; prepare_assert_ops(&io, &wr); wr.tmap_update(cmdbl); - objecter->mutate(oid, io.oloc, wr, snapc, ut, 0, onack, NULL, &ver); + objecter->mutate(oid, io.oloc, wr, io.snapc, ut, 0, onack, NULL, &ver); lock.Unlock(); mylock.Lock(); @@ -2028,11 +2025,10 @@ int librados::RadosClient::tmap_put(IoCtxImpl& io, const object_t& oid, bufferli bufferlist outbl; lock.Lock(); - ::SnapContext snapc; ::ObjectOperation wr; prepare_assert_ops(&io, &wr); wr.tmap_put(bl); - objecter->mutate(oid, io.oloc, wr, snapc, ut, 0, onack, NULL, &ver); + objecter->mutate(oid, io.oloc, wr, io.snapc, ut, 0, onack, NULL, &ver); lock.Unlock(); mylock.Lock(); |