提交 04d000eb 编写于 作者: S Sage Weil

ceph: fix open file counting on snapped inodes when mds returns no caps

It's possible the MDS will not issue caps on a snapped inode, in which case
an open request may not __ceph_get_fmode(), botching the open file
counting.  (This is actually a server bug, but the client shouldn't BUG out
in this case.)
Signed-off-by: NSage Weil <sage@newdream.net>
上级 0ceed5db
...@@ -733,6 +733,10 @@ static int fill_inode(struct inode *inode, ...@@ -733,6 +733,10 @@ static int fill_inode(struct inode *inode,
__ceph_get_fmode(ci, cap_fmode); __ceph_get_fmode(ci, cap_fmode);
spin_unlock(&inode->i_lock); spin_unlock(&inode->i_lock);
} }
} else if (cap_fmode >= 0) {
pr_warning("mds issued no caps on %llx.%llx\n",
ceph_vinop(inode));
__ceph_get_fmode(ci, cap_fmode);
} }
/* update delegation info? */ /* update delegation info? */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册