]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: fix `fs set down` to adjust max_mds only when cluster is not down
authorchungfengz <chungfengz@synology.com>
Wed, 10 Jul 2024 04:07:56 +0000 (04:07 +0000)
committerVenky Shankar <vshankar@redhat.com>
Tue, 10 Sep 2024 12:05:54 +0000 (17:35 +0530)
Applying `fs set down false` on an up cluster will set the cluster's max_mds to 1, regardless of the cluster's current max_mds.
`fs set down false` should only change max_mds when the cluster was set to down. Otherwise, the cluster should remain unchanged.

Fixes: https://tracker.ceph.com/issues/66960
Signed-off-by: chungfengz <chungfengz@synology.com>
(cherry picked from commit 6bfce64f7e97726d27b872077d6b9addab87ab64)

 Conflicts:
src/mon/FSCommands.cc

Minor conflict to use `fs->mds_map...` instead of `fsp->get_mds_map()...`
and the use of modify_filesystem() helper.

src/mon/FSCommands.cc

index c564226b04f5904f2bf03c8de327986219f00586..9a2d8788df9b5c0f44d4694971b5062b34b9ab67 100644 (file)
@@ -553,6 +553,11 @@ public:
 
       ss << fs->mds_map.get_fs_name();
 
+      if (!is_down && fs->mds_map.get_max_mds() > 0) {
+        ss << " is already online";
+        return 0;
+      }
+
       fsmap.modify_filesystem(
           fs->fscid,
           [is_down](std::shared_ptr<Filesystem> fs)