]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
mds: block import discover when parent directory inode is quiesced
authorPatrick Donnelly <pdonnell@redhat.com>
Sat, 2 Mar 2024 03:01:48 +0000 (22:01 -0500)
committerPatrick Donnelly <pdonnell@redhat.com>
Wed, 20 Mar 2024 14:56:57 +0000 (10:56 -0400)
commit1ec6817cc082b379fba86bcd0a73ff950d7d1152
treefbe3b548ad80a88429ac9a6d93b536214a358094
parent772f04afdf87d25de8102b7f6aa7e0a242cd566e
mds: block import discover when parent directory inode is quiesced

This is to prevent two racing ranks quiescing some root from exporting a tree
under a completely quiesced directory (inode). The state of that imported tree
may take time to quiesce and cause the root to be QUIESCED before all inodes
under it are actually quiesced.

If a dirfrag to be imported is discovered before the parent is quiesced, then
the quiesce traversal will issue a quiesce_inode op normally for parent which
will attempt to authpin the parent. That will block if the export is still
in-progress (causing quiesce to wait for the export to finish or abort).

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
src/mds/MDCache.cc
src/mds/MDCache.h
src/mds/Migrator.cc