Whamcloud - gitweb
LU-8040 mgc: Apply changelog defaults values in mdd_init0() 54/19854/6
authorArtem Blagodarenko <artem.blagodarenko@seagate.com>
Thu, 28 Apr 2016 14:30:53 +0000 (17:30 +0300)
committerOleg Drokin <oleg.drokin@intel.com>
Wed, 22 Jun 2016 02:53:55 +0000 (02:53 +0000)
lctl set_param -P command stores options to params file. This options
are applied in server_start_targets() during target mount. Changelog
apply default options during initialization. So it reset options
applied by "lctl set_param -P".

This patch moves changelogs default value appying before params
processing. So new parameters aplied after default.

Signed-off-by: Artem Blagodarenko <artem.blagodarenko@seagate.com>
Change-Id: Ibb1a8d512844d4fcb66c051441c1864f994d4ded
Reviewed-on: http://review.whamcloud.com/19854
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Sebastien Buisson <sbuisson@ddn.com>
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/mdd/mdd_device.c
lustre/tests/conf-sanity.sh

index 93b0c91..6129e11 100644 (file)
@@ -124,6 +124,10 @@ static int mdd_init0(const struct lu_env *env, struct mdd_device *mdd,
        const char *dev;
        ENTRY;
 
        const char *dev;
        ENTRY;
 
+       /* LU-8040 Set defaults here, before values configs */
+       mdd->mdd_cl.mc_flags = 0; /* off by default */
+       mdd->mdd_cl.mc_mask = CHANGELOG_DEFMASK;
+
        dev = lustre_cfg_string(lcfg, 0);
        if (dev == NULL)
                RETURN(rc);
        dev = lustre_cfg_string(lcfg, 0);
        if (dev == NULL)
                RETURN(rc);
@@ -416,8 +420,6 @@ static int mdd_changelog_init(const struct lu_env *env, struct mdd_device *mdd)
        mdd->mdd_cl.mc_index = 0;
        spin_lock_init(&mdd->mdd_cl.mc_lock);
        mdd->mdd_cl.mc_starttime = cfs_time_current_64();
        mdd->mdd_cl.mc_index = 0;
        spin_lock_init(&mdd->mdd_cl.mc_lock);
        mdd->mdd_cl.mc_starttime = cfs_time_current_64();
-       mdd->mdd_cl.mc_flags = 0; /* off by default */
-       mdd->mdd_cl.mc_mask = CHANGELOG_DEFMASK;
        spin_lock_init(&mdd->mdd_cl.mc_user_lock);
        mdd->mdd_cl.mc_lastuser = 0;
 
        spin_lock_init(&mdd->mdd_cl.mc_user_lock);
        mdd->mdd_cl.mc_lastuser = 0;
 
index ba15cbe..48252bf 100755 (executable)
@@ -5117,6 +5117,28 @@ test_76b() { # LU-4783
 }
 run_test 76b "verify params log setup correctly"
 
 }
 run_test 76b "verify params log setup correctly"
 
+test_76c() {
+       [[ $(lustre_version_code mgs) -ge $(version_code 2.8.54) ]] ||
+               { skip "Need MDS version at least 2.4.52" && return 0; }
+       setupall
+       local MASK_PARAM="mdd.*.changelog_mask"
+       echo "Change changelog_mask"
+       do_facet mgs $LCTL set_param -P $MASK_PARAM=-CLOSE ||
+               error "Can't change changlog_mask"
+       wait_update $(facet_host mds) "$LCTL get_param -n $MASK_PARAM |
+               grep 'CLOSE'" ""
+
+       echo "Check the value is stored after mds remount"
+       stop_mds || error "Failed to stop MDS"
+       start_mds || error "Failed to start MDS"
+       local CHANGELOG_MASK=$(do_facet mgs $LCTL get_param -n $MASK_PARAM)
+       echo $CHANGELOG_MASK | grep CLOSE > /dev/null &&
+               error "changelog_mask is not changed"
+
+       stopall
+}
+run_test 76c "verify changelog_mask is applied with set_param -P"
+
 test_77() { # LU-3445
        local server_version=$(lustre_version_code $SINGLEMDS)
 
 test_77() { # LU-3445
        local server_version=$(lustre_version_code $SINGLEMDS)