From: Sam Lang Date: Fri, 28 Sep 2012 18:48:40 +0000 (-0700) Subject: client: Remove unnecessary checkafter parameter X-Git-Tag: v0.54~126 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=847728e5a1527f20877a068de921c1870b07686b;p=ceph.git client: Remove unnecessary checkafter parameter The logic in put_cap_ref doesn't do anything but inode->put_cap_ref if cap is set to CEPH_CAP_FILE_CACHE, so checkafter isn't needed. Signed-off-by: Sam Lang --- diff --git a/src/client/Client.cc b/src/client/Client.cc index e5799ba0cab5..a1f06f8667d0 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -2357,16 +2357,12 @@ void Client::_invalidate_inode_cache(Inode *in, int64_t off, int64_t len) // flush dirty data (from objectcache) -void Client::_release(Inode *in, bool checkafter) +void Client::_release(Inode *in) { if (in->cap_refs[CEPH_CAP_FILE_CACHE]) { _invalidate_inode_cache(in); - - if (checkafter) - put_cap_ref(in, CEPH_CAP_FILE_CACHE); - else - in->put_cap_ref(CEPH_CAP_FILE_CACHE); + in->put_cap_ref(CEPH_CAP_FILE_CACHE); } } @@ -3205,7 +3201,7 @@ void Client::handle_cap_grant(Inode *in, int mds, Cap *cap, MClientCaps *m) cap->issued = new_caps; if ((~cap->issued & old_caps) & CEPH_CAP_FILE_CACHE) - _release(in, false); + _release(in); if (((used & ~new_caps) & CEPH_CAP_FILE_BUFFER) && !_flush(in)) { diff --git a/src/client/Client.h b/src/client/Client.h index 5f6b730c405b..ffc285555d89 100644 --- a/src/client/Client.h +++ b/src/client/Client.h @@ -422,7 +422,7 @@ protected: void _invalidate_inode_cache(Inode *in); void _invalidate_inode_cache(Inode *in, int64_t off, int64_t len); - void _release(Inode *in, bool checkafter=true); + void _release(Inode *in); bool _flush(Inode *in); void _flushed(Inode *in); void flush_set_callback(ObjectCacher::ObjectSet *oset); diff --git a/src/client/Inode.cc b/src/client/Inode.cc index 8e66165317b7..fc2b03f00d08 100644 --- a/src/client/Inode.cc +++ b/src/client/Inode.cc @@ -107,6 +107,9 @@ void Inode::get_cap_ref(int cap) bool Inode::put_cap_ref(int cap) { + // if cap is always a single bit (which it seems to be) + // all this logic is equivalent to: + // if (--cap_refs[c]) return false; else return true; bool last = false; int n = 0; while (cap) {