]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: fix incorrect assertion in Server::_dir_is_nonempty() 13555/head
authorYan, Zheng <zyan@redhat.com>
Wed, 18 Jan 2017 08:23:49 +0000 (16:23 +0800)
committerNathan Cutler <ncutler@suse.com>
Tue, 21 Feb 2017 09:29:59 +0000 (10:29 +0100)
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 <zyan@redhat.com>
(cherry picked from commit fe4ab52b30079a785be053a9fd0197d6990737fe)

src/mds/Server.cc

index 2f29757b46776471921a32773d33699553b1c7a4..f5e88717eceebe2f679c5f60b015a28e0393daa1 100644 (file)
@@ -6054,7 +6054,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;