From: Yan, Zheng Date: Wed, 19 Sep 2018 01:12:45 +0000 (+0800) Subject: Merge branch 'luminous' into luminous-mds-export-size X-Git-Tag: v12.2.9~88^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=07b3a64adab840abf577afbcba4b035470c694d0;p=ceph.git Merge branch 'luminous' into luminous-mds-export-size --- 07b3a64adab840abf577afbcba4b035470c694d0 diff --cc src/mds/CDir.cc index 1cefd1d6b471a,5bf35f596de84..93974895c6973 --- a/src/mds/CDir.cc +++ b/src/mds/CDir.cc @@@ -2904,27 -2915,11 +2915,28 @@@ pair CDir::is_freezing_or_fr if (dir->inode->parent) dir = dir->inode->parent->dir; else - return false; // root on replica + break; // root on replica } + return make_pair(freezing, frozen); } +CDir *CDir::get_freezing_tree_root() +{ + if (num_freezing_trees == 0) + return nullptr; + CDir *dir = this; + while (true) { + if (dir->is_freezing_tree_root()) + return dir; + if (dir->is_subtree_root()) + return nullptr; + if (dir->inode->parent) + dir = dir->inode->parent->dir; + else + return nullptr; + } +} + CDir *CDir::get_frozen_tree_root() { assert(is_frozen()); diff --cc src/mds/CDir.h index e92bea480398f,73678c1759b60..9b2665e88c371 --- a/src/mds/CDir.h +++ b/src/mds/CDir.h @@@ -719,17 -719,25 +719,27 @@@ public void maybe_finish_freeze(); - bool is_freezing() const override { return is_freezing_tree() || is_freezing_dir(); } - bool is_freezing_tree() const; + pair is_freezing_or_frozen_tree() const; + + bool is_freezing() const override { return is_freezing_dir() || is_freezing_tree(); } + bool is_freezing_tree() const { + if (!num_freezing_trees) + return false; + return is_freezing_or_frozen_tree().first; + } bool is_freezing_tree_root() const { return state & STATE_FREEZINGTREE; } bool is_freezing_dir() const { return state & STATE_FREEZINGDIR; } + CDir *get_freezing_tree_root(); bool is_frozen() const override { return is_frozen_dir() || is_frozen_tree(); } - bool is_frozen_tree() const; + bool is_frozen_tree() const { + if (!num_frozen_trees) + return false; + return is_freezing_or_frozen_tree().second; + } bool is_frozen_tree_root() const { return state & STATE_FROZENTREE; } bool is_frozen_dir() const { return state & STATE_FROZENDIR; } + CDir *get_frozen_tree_root(); bool is_freezeable(bool freezing=false) const { // no nested auth pins. diff --cc src/mds/MDSDaemon.cc index 1e00138cfa31f,1e3c67d0d6f5a..8fe05807b3603 --- a/src/mds/MDSDaemon.cc +++ b/src/mds/MDSDaemon.cc @@@ -363,12 -374,8 +374,9 @@@ const char** MDSDaemon::get_tracked_con "mds_max_purge_ops_per_pg", "mds_max_purge_files", // Migrator + "mds_max_export_size", "mds_inject_migrator_session_race", "mds_inject_migrator_message_loss", - "clog_to_graylog", - "clog_to_graylog_host", - "clog_to_graylog_port", "host", "fsid", NULL