From: Yan, Zheng Date: Sat, 14 Mar 2015 01:21:01 +0000 (+0800) Subject: mds: pick head inode when caps follows is zero X-Git-Tag: v9.0.0~150^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=1956e68231d0f717daa584e922ef9d72c3d5bc37;p=ceph.git mds: pick head inode when caps follows is zero "caps follows is zero" means client does not flush anything, so we shoud pick the head object Signed-off-by: Yan, Zheng --- diff --git a/src/mds/Locker.cc b/src/mds/Locker.cc index c51946715b37..1744514662b5 100644 --- a/src/mds/Locker.cc +++ b/src/mds/Locker.cc @@ -2475,9 +2475,12 @@ void Locker::handle_client_caps(MClientCaps *m) mds->set_osd_epoch_barrier(m->osd_epoch_barrier); } - CInode *in = mdcache->pick_inode_snap(head_in, follows); - if (in != head_in) - dout(10) << " head inode " << *head_in << dendl; + CInode *in = head_in; + if (follows > 0) { + in = mdcache->pick_inode_snap(head_in, follows); + if (in != head_in) + dout(10) << " head inode " << *head_in << dendl; + } dout(10) << " cap inode " << *in << dendl; Capability *cap = 0;