From fe4ab52b30079a785be053a9fd0197d6990737fe Mon Sep 17 00:00:00 2001 From: "Yan, Zheng" Date: Wed, 18 Jan 2017 16:23:49 +0800 Subject: [PATCH] mds: fix incorrect assertion in Server::_dir_is_nonempty() when filelock is in XLOCKDONE state. client of xlocker can rdlock the filelock. In that case, only client of xlocker can read the lock. Fixes: http://tracker.ceph.com/issues/18578 Signed-off-by: Yan, Zheng --- src/mds/Server.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mds/Server.cc b/src/mds/Server.cc index 5bdf3a41b085..126dbb2d854b 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -6098,7 +6098,7 @@ bool Server::_dir_is_nonempty(MDRequestRef& mdr, CInode *in) { dout(10) << "dir_is_nonempty " << *in << dendl; assert(in->is_auth()); - assert(in->filelock.can_read(-1)); + assert(in->filelock.can_read(mdr->get_client())); frag_info_t dirstat; version_t dirstat_version = in->get_projected_inode()->dirstat.version; -- 2.47.3