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 <zyan@redhat.com>
This commit is contained in:
Yan, Zheng 2015-03-14 09:21:01 +08:00
parent 1bb4a9df60
commit 1956e68231

View File

@ -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;