]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
SQUASH: client: always take a change_attr update from the server if it's newer
authorJeff Layton <jlayton@redhat.com>
Thu, 1 Sep 2016 15:16:06 +0000 (11:16 -0400)
committerJeff Layton <jlayton@redhat.com>
Thu, 1 Sep 2016 18:36:15 +0000 (14:36 -0400)
I think this is more correct in the client. If we see a newer
change_attr, then we always want to take note of that fact, even if
we have the right caps.

Signed-off-by: Jeff Layton <jlayton@redhat.com>
src/client/Client.cc

index fb2f1800e402de5b914717cd1556eda0e2354da6..c664dcd636bfcc9cb0d432b290a6f8adbc84a253 100644 (file)
@@ -725,6 +725,10 @@ void Client::update_inode_file_bits(Inode *in,
     in->inline_version = inline_version;
   }
 
+  /* always take a newer change attr */
+  if (change_attr > in->change_attr)
+    in->change_attr = change_attr;
+
   if (truncate_seq > in->truncate_seq ||
       (truncate_seq == in->truncate_seq && size > in->size)) {
     ldout(cct, 10) << "size " << in->size << " -> " << size << dendl;
@@ -770,8 +774,6 @@ void Client::update_inode_file_bits(Inode *in,
     ldout(cct, 30) << "Yay have enough caps to look at our times" << dendl;
     if (ctime > in->ctime) 
       in->ctime = ctime;
-    if (change_attr > in->change_attr)
-      in->change_attr = change_attr;
     if (time_warp_seq > in->time_warp_seq) {
       ldout(cct, 10) << "mds time_warp_seq " << time_warp_seq << " on inode " << *in
               << " is higher than local time_warp_seq "