From: Josh Durgin Date: Wed, 10 Apr 2013 19:03:04 +0000 (-0700) Subject: WritebackHandler: make read return nothing X-Git-Tag: v0.61~189^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=870f9cd421ca7b0094f9f89e13b1898a8302c494;p=ceph.git WritebackHandler: make read return nothing The tid returned by reads is ignored, and would make tracking writes internally more difficult by using the same id-space as them. Make read void and update all implementations. Signed-off-by: Josh Durgin --- diff --git a/src/client/ObjecterWriteback.h b/src/client/ObjecterWriteback.h index 1aa5e4932df9..9a10fb48a065 100644 --- a/src/client/ObjecterWriteback.h +++ b/src/client/ObjecterWriteback.h @@ -11,12 +11,12 @@ class ObjecterWriteback : public WritebackHandler { ObjecterWriteback(Objecter *o) : m_objecter(o) {} virtual ~ObjecterWriteback() {} - virtual tid_t read(const object_t& oid, const object_locator_t& oloc, - uint64_t off, uint64_t len, snapid_t snapid, - bufferlist *pbl, uint64_t trunc_size, __u32 trunc_seq, - Context *onfinish) { - return m_objecter->read_trunc(oid, oloc, off, len, snapid, pbl, 0, - trunc_size, trunc_seq, onfinish); + virtual void read(const object_t& oid, const object_locator_t& oloc, + uint64_t off, uint64_t len, snapid_t snapid, + bufferlist *pbl, uint64_t trunc_size, __u32 trunc_seq, + Context *onfinish) { + m_objecter->read_trunc(oid, oloc, off, len, snapid, pbl, 0, + trunc_size, trunc_seq, onfinish); } virtual bool may_copy_on_write(const object_t& oid, uint64_t read_off, uint64_t read_len, snapid_t snapid) { diff --git a/src/librbd/LibrbdWriteback.cc b/src/librbd/LibrbdWriteback.cc index 1689ad91860d..8a1b885f3c8e 100644 --- a/src/librbd/LibrbdWriteback.cc +++ b/src/librbd/LibrbdWriteback.cc @@ -68,11 +68,11 @@ namespace librbd { { } - tid_t LibrbdWriteback::read(const object_t& oid, - const object_locator_t& oloc, - uint64_t off, uint64_t len, snapid_t snapid, - bufferlist *pbl, uint64_t trunc_size, - __u32 trunc_seq, Context *onfinish) + void LibrbdWriteback::read(const object_t& oid, + const object_locator_t& oloc, + uint64_t off, uint64_t len, snapid_t snapid, + bufferlist *pbl, uint64_t trunc_size, + __u32 trunc_seq, Context *onfinish) { // on completion, take the mutex and then call onfinish. Context *req = new C_Request(m_ictx->cct, onfinish, &m_lock); @@ -82,7 +82,6 @@ namespace librbd { len, off); rados_completion->release(); assert(r >= 0); - return ++m_tid; } bool LibrbdWriteback::may_copy_on_write(const object_t& oid, uint64_t read_off, uint64_t read_len, snapid_t snapid) diff --git a/src/librbd/LibrbdWriteback.h b/src/librbd/LibrbdWriteback.h index b054dbc59500..43a563bbc5f3 100644 --- a/src/librbd/LibrbdWriteback.h +++ b/src/librbd/LibrbdWriteback.h @@ -21,10 +21,10 @@ namespace librbd { virtual ~LibrbdWriteback() {} // Note that oloc, trunc_size, and trunc_seq are ignored - virtual tid_t read(const object_t& oid, const object_locator_t& oloc, - uint64_t off, uint64_t len, snapid_t snapid, - bufferlist *pbl, uint64_t trunc_size, __u32 trunc_seq, - Context *onfinish); + virtual void read(const object_t& oid, const object_locator_t& oloc, + uint64_t off, uint64_t len, snapid_t snapid, + bufferlist *pbl, uint64_t trunc_size, __u32 trunc_seq, + Context *onfinish); // Determine whether a read to this extent could be affected by a write-triggered copy-on-write virtual bool may_copy_on_write(const object_t& oid, uint64_t read_off, uint64_t read_len, snapid_t snapid); diff --git a/src/osdc/WritebackHandler.h b/src/osdc/WritebackHandler.h index a9a035ca52f5..17e1f683bec0 100644 --- a/src/osdc/WritebackHandler.h +++ b/src/osdc/WritebackHandler.h @@ -12,10 +12,10 @@ class WritebackHandler { WritebackHandler() {} virtual ~WritebackHandler() {} - virtual tid_t read(const object_t& oid, const object_locator_t& oloc, - uint64_t off, uint64_t len, snapid_t snapid, - bufferlist *pbl, uint64_t trunc_size, __u32 trunc_seq, - Context *onfinish) = 0; + virtual void read(const object_t& oid, const object_locator_t& oloc, + uint64_t off, uint64_t len, snapid_t snapid, + bufferlist *pbl, uint64_t trunc_size, __u32 trunc_seq, + Context *onfinish) = 0; /** * check if a given extent read result may change due to a write * diff --git a/src/test/osdc/FakeWriteback.cc b/src/test/osdc/FakeWriteback.cc index 4445140a6f5b..b4cd35ea9790 100644 --- a/src/test/osdc/FakeWriteback.cc +++ b/src/test/osdc/FakeWriteback.cc @@ -58,15 +58,14 @@ FakeWriteback::~FakeWriteback() delete m_finisher; } -tid_t FakeWriteback::read(const object_t& oid, - const object_locator_t& oloc, - uint64_t off, uint64_t len, snapid_t snapid, - bufferlist *pbl, uint64_t trunc_size, - __u32 trunc_seq, Context *onfinish) +void FakeWriteback::read(const object_t& oid, + const object_locator_t& oloc, + uint64_t off, uint64_t len, snapid_t snapid, + bufferlist *pbl, uint64_t trunc_size, + __u32 trunc_seq, Context *onfinish) { C_Delay *wrapper = new C_Delay(m_cct, onfinish, m_lock, off, pbl, m_delay_ns); m_finisher->queue(wrapper, len); - return m_tid.inc(); } tid_t FakeWriteback::write(const object_t& oid, diff --git a/src/test/osdc/FakeWriteback.h b/src/test/osdc/FakeWriteback.h index ff48592d728d..e7d6dc16bb46 100644 --- a/src/test/osdc/FakeWriteback.h +++ b/src/test/osdc/FakeWriteback.h @@ -17,10 +17,10 @@ public: FakeWriteback(CephContext *cct, Mutex *lock, uint64_t delay_ns); virtual ~FakeWriteback(); - virtual tid_t read(const object_t& oid, const object_locator_t& oloc, - uint64_t off, uint64_t len, snapid_t snapid, - bufferlist *pbl, uint64_t trunc_size, __u32 trunc_seq, - Context *onfinish); + virtual void read(const object_t& oid, const object_locator_t& oloc, + uint64_t off, uint64_t len, snapid_t snapid, + bufferlist *pbl, uint64_t trunc_size, __u32 trunc_seq, + Context *onfinish); virtual tid_t write(const object_t& oid, const object_locator_t& oloc, uint64_t off, uint64_t len, const SnapContext& snapc,