mds: fix shutdown hang when ephemeral pins active and max_mds is 0
During shutdown, `ceph fs set <fs> down true` sets max_mds to 0 before the MDS daemons have finished exporting their subtrees. shutdown_pass() iterates over auth subtrees and skips any dir whose inode is ephemerally pinned, expecting handle_export_pins() to re-place them. However, handle_export_pins() calls hash_into_rank_bucket() which (after the companion fix) now returns MDS_RANK_NONE when max_mds == 0. With no valid target rank the export is never scheduled, so the ephemerally- pinned dirs are skipped by shutdown_pass() indefinitely and the daemon loops. Fixes: https://tracker.ceph.com/issues/76059 Signed-off-by: chungfengz <chungfengz@synology.com>
C
chungfengz committed
039eba34a61a0197ca51c959c20b5398c0f66ef5
Parent: de9db7c
Committed by Venky Shankar <vshankar@redhat.com>
on 6/8/2026, 9:05:19 AM