summaryrefslogtreecommitdiff
path: root/src/librados.cc
diff options
context:
space:
mode:
authorJosh Durgin <josh.durgin@dreamhost.com>2011-10-24 12:38:01 -0700
committerJosh Durgin <josh.durgin@dreamhost.com>2011-10-24 15:32:47 -0700
commit2af32a411b3fefc89eddcf0d764ed7e767ed1e51 (patch)
tree8d0e71cce6bbb39d9a0476986195393e5cedf103 /src/librados.cc
parentae91911c7588b30999a895a636641bd34731d8be (diff)
downloadceph-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.cc12
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();