]> git.baikalelectronics.ru Git - kernel.git/commit
ceph: flush release queue when handling caps for unknown inode
authorJeff Layton <jlayton@kernel.org>
Wed, 20 May 2020 14:36:07 +0000 (10:36 -0400)
committerIlya Dryomov <idryomov@gmail.com>
Wed, 27 May 2020 11:03:57 +0000 (13:03 +0200)
commita1bfb6874e8d1248b41fcb007e96ddd06e668a90
tree95fabf81bd8b03e209e535b9ed92b1ab3f880ef7
parenteb78096bb45b0b3c5dab293f767be422021666c4
ceph: flush release queue when handling caps for unknown inode

It's possible for the VFS to completely forget about an inode, but for
it to still be sitting on the cap release queue. If the MDS sends the
client a cap message for such an inode, it just ignores it today, which
can lead to a stall of up to 5s until the cap release queue is flushed.

If we get a cap message for an inode that can't be located, then go
ahead and flush the cap release queue.

Cc: stable@vger.kernel.org
URL: https://tracker.ceph.com/issues/45532
Fixes: 2d3b2ae4a8c3 ("ceph: delete stale dentry when last reference is dropped")
Reported-and-Tested-by: Andrej Filipčič <andrej.filipcic@ijs.si>
Suggested-by: Yan, Zheng <zyan@redhat.com>
Signed-off-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
fs/ceph/caps.c