From: Yan, Zheng Date: Thu, 20 Feb 2014 06:43:56 +0000 (+0800) Subject: client: don't update i_max_size when handle reply from non-auth MDS X-Git-Tag: v0.79~179^2~14 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=154efb153427a0068507e09663c12a56afa15dc2;p=ceph.git client: don't update i_max_size when handle reply from non-auth MDS caps from non-auth mds don't have meaningful max_size Signed-off-by: Yan, Zheng --- diff --git a/src/client/Client.cc b/src/client/Client.cc index d4a91a088c8a..744a38a9a49f 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -672,8 +672,6 @@ Inode * Client::add_update_inode(InodeStat *st, utime_t from, } in->layout = st->layout; - in->ctime = st->ctime; - in->max_size = st->max_size; // right? update_inode_file_bits(in, st->truncate_seq, st->truncate_size, st->size, st->time_warp_seq, st->ctime, st->mtime, st->atime, @@ -684,9 +682,11 @@ Inode * Client::add_update_inode(InodeStat *st, utime_t from, // move me if/when version reflects fragtree changes. in->dirfragtree = st->dirfragtree; - if (in->snapid == CEPH_NOSNAP) + if (in->snapid == CEPH_NOSNAP) { add_update_cap(in, session, st->cap.cap_id, st->cap.caps, st->cap.seq, st->cap.mseq, inodeno_t(st->cap.realm), st->cap.flags); - else + if (in->auth_cap && in->auth_cap->session == session) + in->max_size = st->max_size; + } else in->snap_caps |= st->cap.caps; // setting I_COMPLETE needs to happen after adding the cap