]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
client: Remove unnecessary checkafter parameter
authorSam Lang <sam.lang@inktank.com>
Fri, 28 Sep 2012 18:48:40 +0000 (11:48 -0700)
committerSam Lang <sam.lang@inktank.com>
Wed, 3 Oct 2012 16:38:11 +0000 (11:38 -0500)
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 <sam.lang@inktank.com>
src/client/Client.cc
src/client/Client.h
src/client/Inode.cc

index e5799ba0cab58f1827e11a70278a9c0610ef62af..a1f06f8667d0482abcdc56985fc7a10679f868ad 100644 (file)
@@ -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)) {
index 5f6b730c405b2bd8a4cf33f36318c4c5aedcc484..ffc285555d89c74ec2ebaa7c9205b31623bb101c 100644 (file)
@@ -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);
index 8e66165317b7fe6d04a98fb4ce7f5095778b885f..fc2b03f00d089741e99a1131695f06e0ebdbfb40 100644 (file)
@@ -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) {