]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
mds: wait the linkmerge/migrate to finish after unlink 47399/head
authorXiubo Li <xiubli@redhat.com>
Tue, 2 Aug 2022 06:19:59 +0000 (14:19 +0800)
committerXiubo Li <xiubli@redhat.com>
Thu, 16 Mar 2023 05:27:57 +0000 (13:27 +0800)
commit48f9a8990b402daa0f0f9109bc4b0087c01b33c6
treed94cc10db4ac53ec0ad6d07d8b6a41f7ba8515bf
parent400dfef0a7ca56087a08e0b6d7abe440b33b4feb
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>
src/mds/CInode.h
src/mds/Server.cc
src/mds/StrayManager.cc