SIGN IN SIGN UP

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