X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Ftests%2Fconf-sanity.sh;h=a251e2345a54fa286b4a92526765c8c4581be368;hp=6ea18f80a7d962cc050a563ea1088f02143afe05;hb=75eb91aeabcd167fe586e5e0f707cee5e8966133;hpb=c9f12540412a429b824dbc83c1c8b00c8affe28a diff --git a/lustre/tests/conf-sanity.sh b/lustre/tests/conf-sanity.sh old mode 100755 new mode 100644 index 6ea18f8..a251e23 --- a/lustre/tests/conf-sanity.sh +++ b/lustre/tests/conf-sanity.sh @@ -5,7 +5,7 @@ set -e ONLY=${ONLY:-"$*"} # bug number for skipped test: LU-8972 -ALWAYS_EXCEPT="$CONF_SANITY_EXCEPT" +ALWAYS_EXCEPT="$CONF_SANITY_EXCEPT 101" # UPDATE THE COMMENT ABOVE WITH BUG NUMBERS WHEN CHANGING ALWAYS_EXCEPT! is_sles11() # LU-2181 @@ -1207,27 +1207,8 @@ test_29() { fi # check MDTs too - for num in $(seq $MDSCOUNT); do - local mdtosc=$(get_mdtosc_proc_path mds${num} $FSNAME-OST0001) - local MPROC="osc.$mdtosc.active" - local MAX=30 - local WAIT=0 - while [ 1 ]; do - sleep 5 - RESULT=$(do_facet mds${num} "$LCTL get_param -n $MPROC") - [ ${PIPESTATUS[0]} = 0 ] || error "Can't read $MPROC" - if [ $RESULT -eq $DEAC ]; then - echo -n "MDT deactivated also after" - echo "$WAIT sec (got $RESULT)" - break - fi - WAIT=$((WAIT + 5)) - if [ $WAIT -eq $MAX ]; then - error "MDT active: wanted $DEAC got $RESULT" - fi - echo "Waiting $(($MAX - $WAIT))secs for MDT deactivated" - done - done + wait_osp_active ost ${FSNAME}-OST0001 1 0 + # test new client starts deactivated umount_client $MOUNT || error "umount_client $MOUNT failed" mount_client $MOUNT || error "mount_client $MOUNT failed" @@ -1386,7 +1367,7 @@ test_32newtarball() { chown $T32_QID.$T32_QID $tmp/src/t32_qf_old # format ost with comma-separated NIDs to verify LU-4460 - local failnid="$(h2$NETTYPE 1.2.3.4),$(h2$NETTYPE 4.3.2.1)" + local failnid="$(h2nettype 1.2.3.4),$(h2nettype 4.3.2.1)" MGSNID="$MGSNID,$MGSNID" OSTOPT="--failnode=$failnid" formatall setupall @@ -1502,7 +1483,8 @@ t32_check() { local IMGTYPE=$(facet_fstype $SINGLEMDS) - tarballs=$($r find $RLUSTRE/tests -maxdepth 1 -name \'disk*-$IMGTYPE.tar.bz2\') + tarballs=$($r find $RLUSTRE/tests -maxdepth 1 \ + -name \'disk*-$IMGTYPE.tar.bz2\') if [ -z "$tarballs" ]; then skip "No applicable tarballs found" @@ -1606,6 +1588,19 @@ t32_verify_quota() { local qval local cmd + # LU-2435: if the underlying zfs doesn't support userobj_accounting, + # lustre will estimate the object count usage. This fails quota + # verification in 32b. The object quota usage should be accurate after + # zfs-0.7.0 is released. + [ $fstype == "zfs" ] && { + local zfs_version=$(do_node $node cat /sys/module/zfs/version) + + [ $(version_code $zfs_version) -lt $(version_code 0.7.0) ] && { + echo "Skip quota verify for zfs: $zfs_version" + return 0 + } + } + $LFS quota -u $T32_QID -v $mnt qval=$($LFS quota -v -u $T32_QID $mnt | @@ -1767,6 +1762,10 @@ t32_test() { $ZPOOL import -f -d $tmp $poolname" done + # upgrade zpool to latest supported features, including + # dnode quota accounting in 0.7.0 + $r "$ZPOOL upgrade -a" + mdt_dev=t32fs-mdt1/mdt1 ost_dev=t32fs-ost1/ost1 ! $mdt2_is_available || mdt2_dev=t32fs-mdt2/mdt2 @@ -2290,8 +2289,12 @@ t32_test() { if [[ $fstype == zfs ]]; then local poolname=t32fs-mdt1 $r "modprobe zfs; - $ZPOOL list -H $poolname >/dev/null 2>&1 || + $ZPOOL list -H $poolname >/dev/null 2>&1 || $ZPOOL import -f -d $tmp $poolname" + + # upgrade zpool to latest supported features, + # including dnode quota accounting in 0.7.0 + $r "$ZPOOL upgrade $poolname" fi # mount a second time to make sure we didnt leave upgrade flag on @@ -2478,9 +2481,9 @@ test_35a() { # bug 12459 local device=$(do_facet $SINGLEMDS "$LCTL get_param -n devices" | awk '($3 ~ "mdt" && $4 ~ "MDT") { print $4 }' | head -1) do_facet mgs "$LCTL conf_param \ - ${device}.failover.node=$(h2$NETTYPE $FAKENID)" || + ${device}.failover.node=$(h2nettype $FAKENID)" || error "Setting ${device}.failover.node=\ - $(h2$NETTYPE $FAKENID) failed." + $(h2nettype $FAKENID) failed." log "Wait for RECONNECT_INTERVAL seconds (10s)" sleep 10 @@ -2536,9 +2539,9 @@ test_35b() { # bug 18674 local device=$(do_facet $SINGLEMDS "$LCTL get_param -n devices" | awk '($3 ~ "mdt" && $4 ~ "MDT") { print $4 }' | head -1) do_facet mgs "$LCTL conf_param \ - ${device}.failover.node=$(h2$NETTYPE $FAKENID)" || + ${device}.failover.node=$(h2nettype $FAKENID)" || error "Set ${device}.failover.node=\ - $(h2$NETTYPE $FAKENID) failed" + $(h2nettype $FAKENID) failed" local at_max_saved=0 # adaptive timeouts may prevent seeing the issue @@ -3222,7 +3225,7 @@ test_43b() { # LU-5690 local client_ip=$(host_nids_address $HOSTNAME $NETTYPE) local host=${client_ip//*./} local net=${client_ip/%$host/} - local nosquash_nids=$(h2$NETTYPE $net[$host,$host,$host]) + local nosquash_nids=$(h2nettype $net[$host,$host,$host]) add $fs2mgs $(mkfs_opts mgs $fs2mgsdev) --fsname=$fsname \ --param mdt.root_squash=$RUNAS_ID:$RUNAS_ID \ @@ -3380,8 +3383,9 @@ cleanup_48() { reformat_and_config } -test_48() { # bug 17636 - reformat +test_48() { # bz-17636 LU-7473 + local count + setup_noconfig check_mount || error "check_mount failed" @@ -3392,14 +3396,36 @@ test_48() { # bug 17636 $GETSTRIPE $MOUNT/widestripe || error "$GETSTRIPE $MOUNT/widestripe failed" - trap cleanup_48 EXIT ERR + # In the future, we may introduce more EAs, such as selinux, enlarged + # LOV EA, and so on. These EA will use some EA space that is shared by + # ACL entries. So here we only check some reasonable ACL entries count, + # instead of the max number that is calculated from the max_ea_size. + if [ $(lustre_version_code $SINGLEMDS) -lt $(version_code 2.8.57) ]; + then + count=28 # hard coded of RPC protocol + elif [ $(facet_fstype $SINGLEMDS) != ldiskfs ]; then + count=4000 # max_num 4091 max_ea_size = 32768 + elif ! large_xattr_enabled; then + count=450 # max_num 497 max_ea_size = 4012 + else + count=4500 # max_num 8187 max_ea_size = 1048492 + # not create too much (>5000) to save test time + fi - # fill acl buffer for avoid expand lsm to them - getent passwd | awk -F : '{ print "u:"$1":rwx" }' | while read acl; do - setfacl -m $acl $MOUNT/widestripe + echo "It is expected to hold at least $count ACL entries" + trap cleanup_48 EXIT ERR + for ((i = 0; i < $count; i++)) do + setfacl -m u:$((i + 100)):rw $MOUNT/widestripe || + error "Fail to setfacl for $MOUNT/widestripe at $i" done + cancel_lru_locks mdc stat $MOUNT/widestripe || error "stat $MOUNT/widestripe failed" + local r_count=$(getfacl $MOUNT/widestripe | grep "user:" | wc -l) + count=$((count + 1)) # for the entry "user::rw-" + + [ $count -eq $r_count ] || + error "Expected ACL entries $count, but got $r_count" cleanup_48 } @@ -3719,6 +3745,7 @@ test_50i() { # prepare MDT/OST, make OSC inactive for OST1 [ "$MDSCOUNT" -lt "2" ] && skip_env "$MDSCOUNT < 2, skipping" && return + load_modules [ $(facet_fstype mds2) == zfs ] && import_zpool mds2 do_facet mds2 "$TUNEFS --param mdc.active=0 $(mdsdevname 2)" || error "tunefs MDT2 failed" @@ -3754,9 +3781,18 @@ test_50i() { "$TEST" "${FSNAME}-MDT0001.mdc.active" 0 || error "Unable to deactivate MDT2" + wait_osp_active mds ${FSNAME}-MDT0001 1 0 + $LFS mkdir -i1 $DIR/$tdir/2 && error "mkdir $DIR/$tdir/2 succeeds after deactive MDT" + $LFS mkdir -i0 -c$MDSCOUNT $DIR/$tdir/striped_dir || + error "mkdir $DIR/$tdir/striped_dir fails after deactive MDT2" + + local stripe_count=$($LFS getdirstripe -c $DIR/$tdir/striped_dir) + [ $stripe_count -eq $((MDSCOUNT - 1)) ] || + error "wrong $stripe_count != $((MDSCOUNT -1)) for striped_dir" + # cleanup umount_client $MOUNT || error "Unable to umount client" stop_mds @@ -4112,7 +4148,8 @@ test_55() { sync echo checking size of lov_objid for ost index $i - LOV_OBJID_SIZE=$(do_facet mds1 "$DEBUGFS -R 'stat lov_objid' $mdsdev 2>/dev/null" | grep ^User | awk '{print $6}') + LOV_OBJID_SIZE=$(do_facet mds1 "$DEBUGFS -R 'stat lov_objid' $mdsdev 2>/dev/null" | + grep ^User | awk -F 'Size: ' '{print $2}') if [ "$LOV_OBJID_SIZE" != $(lov_objid_size $i) ]; then error "lov_objid size has to be $(lov_objid_size $i), not $LOV_OBJID_SIZE" else @@ -4132,9 +4169,7 @@ test_56a() { MDSJOURNALSIZE=16 - for num in $(seq 1 $MDSCOUNT); do - format_mdt $num - done + formatall add ost1 $(mkfs_opts ost1 $(ostdevname 1)) --index=10000 --reformat \ $(ostdevname 1) $(ostvdevname 1) add ost2 $(mkfs_opts ost2 $(ostdevname 2)) --index=1000 --reformat \ @@ -4712,6 +4747,10 @@ test_68() { umount_client $MOUNT || error "umount client failed" + if ! combined_mgs_mds; then + start_mgs || error "start mgs failed" + fi + start_mdt 1 || error "MDT start failed" start_ost || error "Unable to start OST1" @@ -5221,6 +5260,10 @@ test_75() { # LU-2374 add mds1 $opts_mds || error "add mds1 failed for new params" add ost1 $opts_ost || error "add ost1 failed for new params" + if ! combined_mgs_mds; then + stop_mgs || error "stop mgs failed" + fi + reformat return 0 } run_test 75 "The order of --index should be irrelevant" @@ -5228,6 +5271,10 @@ run_test 75 "The order of --index should be irrelevant" test_76a() { [[ $(lustre_version_code mgs) -ge $(version_code 2.4.52) ]] || { skip "Need MDS version at least 2.4.52" && return 0; } + + if ! combined_mgs_mds; then + start_mgs || error "start mgs failed" + fi setup local MDMB_PARAM="osc.*.max_dirty_mb" echo "Change MGS params" @@ -5317,6 +5364,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) ]] || @@ -5333,7 +5408,9 @@ test_77() { # LU-3445 local fs2ostvdev=$(ostvdevname 1_2) local fsname=test1234 local mgsnid - local failnid="$(h2$NETTYPE 1.2.3.4),$(h2$NETTYPE 4.3.2.1)" + local failnid="$(h2nettype 1.2.3.4),$(h2nettype 4.3.2.1)" + + combined_mgs_mds || stop_mgs || error "stopping MGS service failed" add fs2mds $(mkfs_opts mds1 $fs2mdsdev) --mgs --fsname=$fsname \ --reformat $fs2mdsdev $fs2mdsvdev || error "add fs2mds failed" @@ -5341,9 +5418,9 @@ test_77() { # LU-3445 error "start fs2mds failed" mgsnid=$(do_facet fs2mds $LCTL list_nids | xargs | tr ' ' ,) - mgsnid="$mgsnid,$mgsnid:$mgsnid" + mgsnid="0.0.0.0@tcp,$mgsnid,$mgsnid:$mgsnid" - add fs2ost $(mkfs_opts ost1 $fs2ostdev) --mgsnode=$mgsnid \ + add fs2ost --mgsnode=$mgsnid $(mkfs_opts ost1 $fs2ostdev) \ --failnode=$failnid --fsname=$fsname \ --reformat $fs2ostdev $fs2ostvdev || error "add fs2ost failed" @@ -5847,8 +5924,8 @@ test_82b() { # LU-4665 wait_update $HOSTNAME "$LCTL get_param -n lov.$FSNAME-*.pools.$TESTNAME| sort -u | tr '\n' ' ' " "$ost_targets_uuid" || error "wait_update $ost_pool failed" - [[ -z $(list_pool $ost_pool) ]] && - error "list OST pool $ost_pool failed" + wait_update_facet $SINGLEMDS "$LCTL pool_list $ost_pool | wc -l" 4 || + error "wait_update pool_list $ost_pool failed" # If [--pool|-p ] is set with [--ost-list|-o ], # then the OSTs must be the members of the pool. @@ -5878,8 +5955,8 @@ run_test 82b "specify OSTs for file with --pool and --ost-list options" test_83() { [[ $(lustre_version_code ost1) -ge $(version_code 2.6.91) ]] || { skip "Need OST version at least 2.6.91" && return 0; } - if [ $(facet_fstype $SINGLEMDS) != ldiskfs ]; then - skip "Only applicable to ldiskfs-based MDTs" + if [ $(facet_fstype ost1) != ldiskfs ]; then + skip "Only applicable to ldiskfs-based OSTs" return fi @@ -5895,7 +5972,7 @@ test_83() { # Mount the OST as an ldiskfs filesystem. log "mount the OST $dev as a $fstype filesystem" add ost1 $(mkfs_opts ost1 $dev) $FSTYPE_OPT \ - --reformat $dev $dev > /dev/null || + --reformat $dev > /dev/null || error "format ost1 error" if ! test -b $dev; then @@ -6054,11 +6131,11 @@ test_86() { run_test 86 "Replacing mkfs.lustre -G option" test_87() { #LU-6544 - [[ $(lustre_version_code $SINGLEMDS1) -ge $(version_code 2.7.56) ]] || - { skip "Need MDS version at least 2.7.56" && return; } + [[ $(lustre_version_code $SINGLEMDS1) -ge $(version_code 2.9.51) ]] || + { skip "Need MDS version at least 2.9.51" && return; } [[ $(facet_fstype $SINGLEMDS) != ldiskfs ]] && { skip "Only applicable to ldiskfs-based MDTs" && return; } - [[ $OSTCOUNT -gt 69 ]] && + [[ $OSTCOUNT -gt 59 ]] && { skip "Ignore wide striping situation" && return; } local mdsdev=$(mdsdevname 1) @@ -6066,23 +6143,22 @@ test_87() { #LU-6544 local file=$DIR/$tfile local mntpt=$(facet_mntpt $SINGLEMDS) local used_xattr_blk=0 - local inode_size=${1:-512} + local inode_size=${1:-1024} local left_size=0 local xtest="trusted.test" local value local orig local i + local stripe_cnt=$(($OSTCOUNT + 2)) - #Please see LU-6544 for MDT inode size calculation - if [ $OSTCOUNT -gt 26 ]; then + #Please see ldiskfs_make_lustre() for MDT inode size calculation + if [ $stripe_cnt -gt 16 ]; then inode_size=2048 - elif [ $OSTCOUNT -gt 5 ]; then - inode_size=1024 fi left_size=$(expr $inode_size - \ 156 - \ 32 - \ - 32 - $OSTCOUNT \* 24 - 16 - 3 - \ + 32 - 40 \* 3 - 32 \* 3 - $stripe_cnt \* 24 - 16 - 3 - \ 24 - 16 - 3 - \ 24 - 18 - $(expr length $tfile) - 16 - 4) if [ $left_size -le 0 ]; then @@ -6096,7 +6172,7 @@ test_87() { #LU-6544 unload_modules reformat - add mds1 $(mkfs_opts mds1 ${mdsdev}) --stripe-count-hint=$OSTCOUNT \ + add mds1 $(mkfs_opts mds1 ${mdsdev}) --stripe-count-hint=$stripe_cnt \ --reformat $mdsdev $mdsvdev || error "add mds1 failed" start_mdt 1 > /dev/null || error "start mdt1 failed" for i in $(seq $OSTCOUNT); do @@ -6107,9 +6183,10 @@ test_87() { #LU-6544 check_mount || error "check client $MOUNT failed" #set xattr - $SETSTRIPE -c -1 $file || error "$SETSTRIPE -c -1 $file failed" - $GETSTRIPE $file || error "$GETSTRIPE $file failed" - i=$($GETSTRIPE -c $file) + $SETSTRIPE -E 1M -c 1 -E 64M -c 1 -E -1 -c -1 $file || + error "Create file with 3 components failed" + $TRUNCATE $file $((1024*1024*64+1)) || error "truncate file failed" + i=$($GETSTRIPE -I3 -c $file) || error "get 3rd stripe count failed" if [ $i -ne $OSTCOUNT ]; then left_size=$(expr $left_size + $(expr $OSTCOUNT - $i) \* 24) echo -n "Since only $i out $OSTCOUNT OSTs are used, " @@ -6161,6 +6238,81 @@ test_88() { } run_test 88 "check the default mount options can be overridden" +test_89() { # LU-7131 + [[ $(lustre_version_code $SINGLEMDS) -ge $(version_code 2.9.54) ]] || + { skip "Need MDT version at least 2.9.54" && return 0; } + + local key=failover.node + local val1=192.0.2.254@tcp0 # Reserved IPs, see RFC 5735 + local val2=192.0.2.255@tcp0 + local mdsdev=$(mdsdevname 1) + local params + + stopall + + [ $(facet_fstype mds1) == zfs ] && import_zpool mds1 + # Check that parameters are added correctly + echo "tunefs --param $key=$val1" + do_facet mds "$TUNEFS --param $key=$val1 $mdsdev >/dev/null" || + error "tunefs --param $key=$val1 failed" + params=$(do_facet mds $TUNEFS --dryrun $mdsdev) || + error "tunefs --dryrun failed" + params=${params##*Parameters:} + params=${params%%exiting*} + [ $(echo $params | tr ' ' '\n' | grep -c $key=$val1) = "1" ] || + error "on-disk parameter not added correctly via tunefs" + + # Check that parameters replace existing instances when added + echo "tunefs --param $key=$val2" + do_facet mds "$TUNEFS --param $key=$val2 $mdsdev >/dev/null" || + error "tunefs --param $key=$val2 failed" + params=$(do_facet mds $TUNEFS --dryrun $mdsdev) || + error "tunefs --dryrun failed" + params=${params##*Parameters:} + params=${params%%exiting*} + [ $(echo $params | tr ' ' '\n' | grep -c $key=) = "1" ] || + error "on-disk parameter not replaced via tunefs" + [ $(echo $params | tr ' ' '\n' | grep -c $key=$val2) = "1" ] || + error "on-disk parameter not replaced correctly via tunefs" + + # Check that a parameter is erased properly + echo "tunefs --erase-param $key" + do_facet mds "$TUNEFS --erase-param $key $mdsdev >/dev/null" || + error "tunefs --erase-param $key failed" + params=$(do_facet mds $TUNEFS --dryrun $mdsdev) || + error "tunefs --dryrun failed" + params=${params##*Parameters:} + params=${params%%exiting*} + [ $(echo $params | tr ' ' '\n' | grep -c $key=) = "0" ] || + error "on-disk parameter not erased correctly via tunefs" + + # Check that all the parameters are erased + echo "tunefs --erase-params" + do_facet mds "$TUNEFS --erase-params $mdsdev >/dev/null" || + error "tunefs --erase-params failed" + params=$(do_facet mds $TUNEFS --dryrun $mdsdev) || + error "tunefs --dryrun failed" + params=${params##*Parameters:} + params=${params%%exiting*} + [ -z $params ] || + error "all on-disk parameters not erased correctly via tunefs" + + # Check the order of options --erase-params and --param + echo "tunefs --param $key=$val1 --erase-params" + do_facet mds \ + "$TUNEFS --param $key=$val1 --erase-params $mdsdev >/dev/null"|| + error "tunefs --param $key=$val1 --erase-params failed" + params=$(do_facet mds $TUNEFS --dryrun $mdsdev) || + error "tunefs --dryrun failed" + params=${params##*Parameters:} + params=${params%%exiting*} + [ $(echo $params | tr ' ' '\n') == "$key=$val1" ] || + error "on-disk param not added correctly with --erase-params" + + reformat +} +run_test 89 "check tunefs --param and --erase-param{s} options" + # $1 test directory # $2 (optional) value of max_mod_rpcs_in_flight to set check_max_mod_rpcs_in_flight() { @@ -7211,6 +7363,115 @@ test_103() { } run_test 103 "rename filesystem name" +test_104() { # LU-6952 + local mds_mountopts=$MDS_MOUNT_OPTS + local ost_mountopts=$OST_MOUNT_OPTS + local mds_mountfsopts=$MDS_MOUNT_FS_OPTS + local lctl_ver=$(do_facet $SINGLEMDS $LCTL --version | + awk '{ print $2 }') + + [[ $(version_code $lctl_ver) -lt $(version_code 2.9.55) ]] && + { skip "this test needs utils above 2.9.55" && return 0; } + + # specify "acl" in mount options used by mkfs.lustre + if [ -z "$MDS_MOUNT_FS_OPTS" ]; then + MDS_MOUNT_FS_OPTS="acl,user_xattr" + else + + MDS_MOUNT_FS_OPTS="${MDS_MOUNT_FS_OPTS},acl,user_xattr" + fi + + echo "mountfsopt: $MDS_MOUNT_FS_OPTS" + + #reformat/remount the MDT to apply the MDT_MOUNT_FS_OPT options + formatall + if [ -z "$MDS_MOUNT_OPTS" ]; then + MDS_MOUNT_OPTS="-o noacl" + else + MDS_MOUNT_OPTS="${MDS_MOUNT_OPTS},noacl" + fi + + for num in $(seq $MDSCOUNT); do + start mds$num $(mdsdevname $num) $MDS_MOUNT_OPTS || + error "Failed to start MDS" + done + + for num in $(seq $OSTCOUNT); do + start ost$num $(ostdevname $num) $OST_MOUNT_OPTS || + error "Failed to start OST" + done + + mount_client $MOUNT + setfacl -m "d:$RUNAS_ID:rwx" $MOUNT && + error "ACL is applied when FS is mounted with noacl." + + MDS_MOUNT_OPTS=$mds_mountopts + OST_MOUNT_OPTS=$ost_mountopts + MDS_MOUNT_FS_OPTS=$mds_mountfsopts + + formatall + setupall +} +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