Whamcloud - gitweb
LU-9104 obd: Ignore unknown config param while mounting
[fs/lustre-release.git] / lustre / tests / conf-sanity.sh
old mode 100755 (executable)
new mode 100644 (file)
index 10054d9..d3a515a
@@ -5366,6 +5366,34 @@ test_76c() {
 }
 run_test 76c "verify changelog_mask is applied with set_param -P"
 
+test_76d() { #LU-9399
+       setupall
+
+       local xattr_cache="llite.*.xattr_cache"
+       local cmd="$LCTL get_param -n $xattr_cache | head -1"
+       local new=$((($(eval $cmd) + 1) % 2))
+
+       echo "lctl set_param -P llite.*.xattr_cache=$new"
+       do_facet mgs $LCTL set_param -P $xattr_cache=$new ||
+               error "Can't change xattr_cache"
+       wait_update $HOSTNAME "$cmd" "$new"
+
+       echo "Check $xattr_cache on client $MOUNT"
+       umount_client $MOUNT || error "umount $MOUNT failed"
+       mount_client $MOUNT || error "mount $MOUNT failed"
+       [ $(eval $cmd) -eq $new ] ||
+               error "$xattr_cache != $new on client $MOUNT"
+
+       echo "Check $xattr_cache on the new client $MOUNT2"
+       mount_client $MOUNT2 || error "mount $MOUNT2 failed"
+       [ $(eval $cmd) -eq $new ] ||
+               error "$xattr_cache != $new on client $MOUNT2"
+       umount_client $MOUNT2 || error "umount $MOUNT2 failed"
+
+       stopall
+}
+run_test 76d "verify llite.*.xattr_cache can be set by 'set_param -P' correctly"
+
 test_77() { # LU-3445
        local server_version=$(lustre_version_code $SINGLEMDS)
        [[ $server_version -ge $(version_code 2.8.55) ]] ||
@@ -7388,6 +7416,64 @@ test_104() { # LU-6952
 }
 run_test 104 "Make sure user defined options are reflected in mount"
 
+error_and_umount() {
+       umount $TMP/$tdir
+       rmdir $TMP/$tdir
+       error $*
+}
+
+test_105() {
+       cleanup
+       reformat
+       setup
+       mkdir -p $TMP/$tdir
+       mount --bind $DIR $TMP/$tdir || error "mount bind mnt pt failed"
+       rm -f $TMP/$tdir/$tfile
+       rm -f $TMP/$tdir/${tfile}1
+
+       # Files should not be created in ro bind mount point
+       # remounting from rw to ro
+       mount -o remount,ro $TMP/$tdir ||
+               error_and_umount "readonly remount of bind mnt pt failed"
+       touch $TMP/$tdir/$tfile &&
+               error_and_umount "touch succeeds on ro bind mnt pt"
+       [ -e $TMP/$tdir/$tfile ] &&
+               error_and_umount "file created on ro bind mnt pt"
+
+       # Files should be created in rw bind mount point
+       # remounting from ro to rw
+       mount -o remount,rw $TMP/$tdir ||
+               error_and_umount "read-write remount of bind mnt pt failed"
+       touch $TMP/$tdir/${tfile}1 ||
+               error_and_umount "touch fails on rw bind mnt pt"
+       [ -e $TMP/$tdir/${tfile}1 ] ||
+               error_and_umount "file not created on rw bind mnt pt"
+       umount $TMP/$tdir || error "umount of bind mnt pt failed"
+       rmdir $TMP/$tdir
+       cleanup || error "cleanup failed with $?"
+}
+run_test 105 "check file creation for ro and rw bind mnt pt"
+
+test_107() {
+       [[ $(lustre_version_code $SINGLEMDS) -ge $(version_code 2.10.50) ]] ||
+               { skip "Need MDS version > 2.10.50"; return; }
+
+       start_mgsmds || error "start_mgsmds failed"
+       start_ost || error "unable to start OST"
+
+       # add unknown configuration parameter.
+       local PARAM="$FSNAME-OST0000.ost.unknown_param=50"
+       do_facet mgs "$LCTL conf_param $PARAM"
+       cleanup_nocli || error "cleanup_nocli failed with $?"
+       load_modules
+
+       # unknown param should be ignored while mounting.
+       start_ost || error "unable to start OST after unknown param set"
+
+       cleanup || error "cleanup failed with $?"
+}
+run_test 107 "Unknown config param should not fail target mounting"
+
 if ! combined_mgs_mds ; then
        stop mgs
 fi