]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
mds: wait the linkmerge/migrate to finish after unlink 50985/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:45:28 +0000 (09:45 +0800)
commit4516b2abdd3815ec96087e7e553875bccdb74a2e
tree6f6387bae078f80b91b2cab3f71137a7afe2a031
parentcdbc57621bc4f917659706447e105bd7c2c5017f
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