]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
mds: wait the linkmerge/migrate to finish after unlink 50986/head
authorXiubo Li <xiubli@redhat.com>
Tue, 2 Aug 2022 06:19:59 +0000 (14:19 +0800)
committerXiubo Li <xiubli@redhat.com>
Tue, 11 Apr 2023 01:48:16 +0000 (09:48 +0800)
commit422effbeaa94f34f14d68ca1f398f96cba5a3501
tree7f61d390cb201d43d282cf1a103886efe9fc0658
parentc0d860541f3f714b80b05f84a164a1c8405c1e61
mds: wait the linkmerge/migrate to finish after unlink

If one inode has more than one link and after one of its dentries
being unlinked it will be moved to stray directory. Before the
linkmerge/migrate finises if a link request comes it will fail
with -EXDEV.

While in non-multiple link case it's also possible that the clients
could pass one invalidate ino, which is still under unlinking.

Just wait the linkmerge/migrate or purge to finish.

https://tracker.ceph.com/issues/56695
Signed-off-by: Xiubo Li <xiubli@redhat.com>
(cherry picked from commit 48f9a8990b402daa0f0f9109bc4b0087c01b33c6)
src/mds/CInode.h
src/mds/Server.cc
src/mds/StrayManager.cc