init_logging
ALWAYS_EXCEPT="$SANITYN_EXCEPT "
-# bug number for skipped test: LU-7105 LU-13628
-ALWAYS_EXCEPT+=" 28 106"
+# bug number for skipped test: LU-7105
+ALWAYS_EXCEPT+=" 28 "
# UPDATE THE COMMENT ABOVE WITH BUG NUMBERS WHEN CHANGING ALWAYS_EXCEPT!
# skip tests for PPC until they are fixed
}
run_test 51d "layout lock: losing layout lock should clean up memory map region"
+test_51e() {
+ local pid
+
+ $MULTIOP $DIR/$tfile oO_CREAT:O_RDWR:eW_E+eUc &
+ pid=$!
+ sleep 1
+
+ $LFS getstripe $DIR2/$tfile
+ kill -USR1 $pid
+ wait $pid || error "multiop failed"
+
+ $MULTIOP $DIR/$tfile oO_RDONLY:eR_E+eUc &
+ pid=$!
+ sleep 1
+
+ $LFS getstripe $DIR2/$tfile
+ kill -USR1 $pid
+ wait $pid || error "multiop failed"
+}
+run_test 51e "lfs getstripe does not break leases, part 2"
+
test_54_part1()
{
echo "==> rename vs getattr vs setxattr should not deadlock"
}
run_test 81b "rename under striped directory doesn't deadlock"
+test_81c() {
+ [ $MDSCOUNT -lt 4 ] && skip_env "needs >= 4 MDTs"
+ [ $MDS1_VERSION -lt $(version_code 2.13.52) ] &&
+ skip "Need MDS version at least 2.13.52"
+
+ # source is local, source parent is remote
+ $LFS mkdir -i 0 $DIR1/${tdir}_src || error "mkdir ${tdir}_src"
+ $LFS mkdir -i 1 $DIR1/${tdir}_tgt || error "mkdir ${tdir}_tgt"
+ $LFS mkdir -i 3 $DIR1/${tdir}_src/sub || error "mkdir sub"
+ $LFS mkdir -i 3 $DIR1/${tdir}_tgt/sub || error "mkdir sub"
+ stat $DIR2/${tdir}_src/sub || error "stat sub failed"
+ mv $DIR1/${tdir}_src/sub $DIR1/${tdir}_tgt/ || error "mv failed"
+ [ -f $DIR2/${tdir}_src/sub ] && error "sub should be gone"
+ rm -rf $DIR1/${tdir}_src $DIR1/${tdir}_tgt
+
+ # source is remote, source parent is local
+ $LFS mkdir -i 3 $DIR1/${tdir}_src || error "mkdir ${tdir}_src"
+ $LFS mkdir -i 1 $DIR1/${tdir}_tgt || error "mkdir ${tdir}_tgt"
+ $LFS mkdir -i 0 $DIR1/${tdir}_src/sub || error "mkdir sub"
+ $LFS mkdir -i 3 $DIR1/${tdir}_tgt/sub || error "mkdir sub"
+ stat $DIR2/${tdir}_src/sub || error "stat sub failed"
+ mv $DIR1/${tdir}_src/sub $DIR1/${tdir}_tgt/ || error "mv failed"
+ [ -f $DIR2/${tdir}_src/sub ] && error "sub should be gone"
+ rm -rf $DIR1/${tdir}_src $DIR1/${tdir}_tgt
+
+ # source and source parent are remote
+ $LFS mkdir -i 0 $DIR1/${tdir}_src || error "mkdir ${tdir}_src"
+ $LFS mkdir -i 1 $DIR1/${tdir}_tgt || error "mkdir ${tdir}_tgt"
+ mkdir $DIR1/${tdir}_src/sub || error "mkdir sub"
+ $LFS mkdir -i 3 $DIR1/${tdir}_tgt/sub || error "mkdir sub"
+ stat $DIR2/${tdir}_src/sub || error "stat sub failed"
+ mv $DIR1/${tdir}_src/sub $DIR1/${tdir}_tgt/ || error "mv failed"
+ [ -f $DIR2/${tdir}_src/sub ] && error "sub should be gone"
+ rm -rf $DIR1/${tdir}_src $DIR1/${tdir}_tgt
+
+ # source and source parent are remote, and source is remote object
+ $LFS mkdir -i 0 $DIR1/${tdir}_src || error "mkdir ${tdir}_src"
+ $LFS mkdir -i 1 $DIR1/${tdir}_tgt || error "mkdir ${tdir}_tgt"
+ $LFS mkdir -i 2 $DIR1/${tdir}_src/sub || error "mkdir sub"
+ $LFS mkdir -i 3 $DIR1/${tdir}_tgt/sub || error "mkdir sub"
+ stat $DIR2/${tdir}_src/sub || error "stat sub failed"
+ mv $DIR1/${tdir}_src/sub $DIR1/${tdir}_tgt/ || error "mv failed"
+ [ -f $DIR2/${tdir}_src/sub ] && error "sub should be gone" || true
+}
+run_test 81c "rename revoke LOOKUP lock for remote object"
+
test_82() {
[[ "$MDS1_VERSION" -gt $(version_code 2.6.91) ]] ||
skip "Need MDS version at least 2.6.92"
dd if=/dev/zero of=$DIR/$tfile bs=1k count=1 conv=notrunc
btime=$($STATX -c %W $DIR/$tfile)
output=$(do_facet mds1 "$DEBUGFS -c -R 'stat ROOT/$tfile' $mdtdev")
- ((mdt_btime=$(awk -F ':' /btime/'{ print $2 }' <<< "$output")))
+ echo $output
+ ((mdt_btime=$(awk -F ':' /crtime/'{ print $2 }' <<< "$output")))
[[ $btime == $mdt_btime ]] ||
error "$DIR/$tfile btime ($btime:$mdt_btime) diff"
touch $DIR/$tfile
# Mask supported in stx_attributes by Lustre is
# STATX_ATTR_IMMUTABLE(0x10) | STATX_ATTR_APPEND(0x20) : (0x30).
- mask=$($STATX -c %q $DIR/$tfile)
+ mask=$($STATX -c %p $DIR/$tfile)
[[ $mask == "30" ]] ||
error "supported stx_attributes: got '$mask', expected '30'"
chattr +i $DIR/$tfile || error "chattr +i $DIR/$tfile failed"