]> 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>
Fri, 22 Mar 2024 15:38:03 +0000 (11:38 -0400)
commit780f244382b155dd6d6b38de5d04bb38e9bc30b1
tree6b3bee2de4f73a8a18169bc5033b2965621590a3
parent924fcf5dad2a8c6d011d3263ba14ec171a991fa9
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>
(cherry picked from commit 1ec6817cc082b379fba86bcd0a73ff950d7d1152)
src/mds/MDCache.cc
src/mds/MDCache.h
src/mds/Migrator.cc