From: Jeff Layton Date: Thu, 1 Sep 2016 15:16:06 +0000 (-0400) Subject: SQUASH: client: always take a change_attr update from the server if it's newer X-Git-Tag: v11.0.1~326^2~4 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=0ac0551ee2dfad81dfca8fd9e91081f4e4b17e10;p=ceph.git SQUASH: client: always take a change_attr update from the server if it's newer 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 --- diff --git a/src/client/Client.cc b/src/client/Client.cc index fb2f1800e402..c664dcd636bf 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -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 "