From 1956e68231d0f717daa584e922ef9d72c3d5bc37 Mon Sep 17 00:00:00 2001 From: "Yan, Zheng" Date: Sat, 14 Mar 2015 09:21:01 +0800 Subject: [PATCH] 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 --- src/mds/Locker.cc | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/mds/Locker.cc b/src/mds/Locker.cc index c51946715b376..1744514662b58 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; -- 2.39.5