diff --git a/lustre/tests/conf-sanity.sh b/lustre/tests/conf-sanity.sh
index 59fa294..094e9f2 100644
--- a/lustre/tests/conf-sanity.sh
+++ b/lustre/tests/conf-sanity.sh
@@ -1303,6 +1303,7 @@ T32_ILIMIT=4
 # plus a few mandatory environment settings that are verified
 # at the beginning of the test.
 #
+#
 test_32newtarball() {
 	local version
 	local dst=.
@@ -1312,14 +1313,24 @@ test_32newtarball() {
 	local remote_dir
 	local striped_dir
 	local pushd_dir
+	local pfl_dir
+	local pfl_file
+	local dom_dir
+	local dom_file
+	local flr_dir
+	local flr_file
+	local pj_quota_dir
+	local pj_quota_file
+	local target_dir
 
 	if [ $FSNAME != t32fs -o \( -z "$MDSDEV" -a -z "$MDSDEV1" \) -o	\
-	     $OSTCOUNT -ne 1 -o	-z "$OSTDEV1" ]; then
-		error "Needs FSNAME=t32fs MDSCOUNT=2 "			\
-		      "MDSDEV1=<nonexistent_file>"			\
-		      "MDSDEV2=<nonexistent_file>"			\
-		      "(or MDSDEV, in the case of b1_8)"		\
-		      "OSTCOUNT=1 OSTDEV1=<nonexistent_file>"
+	$OSTCOUNT -ne 2 -o -z "$OSTDEV1" ]; then
+		error   "Needs FSNAME=t32fs MDSCOUNT=2 "		\
+			"MDSDEV1=<nonexistent_file> "			\
+			"MDSDEV2=<nonexistent_file> "			\
+			"(or MDSDEV, in the case of b1_8) "		\
+			"OSTCOUNT=2 OSTDEV1=<nonexistent_file> "	\
+			"OSTDEV2=<nonexistent_file>"
 	fi
 
 	mkdir $tmp || {
@@ -1329,9 +1340,6 @@ test_32newtarball() {
 
 	mkdir $tmp/src || return 1
 	tar cf - -C $src . | tar xf - -C $tmp/src
-	dd if=/dev/zero of=$tmp/src/t32_qf_old bs=1M \
-		count=$(($T32_BLIMIT / 1024 / 4))
-	chown $T32_QID.$T32_QID $tmp/src/t32_qf_old
 
 	# format ost with comma-separated NIDs to verify LU-4460
 	local failnid="$(h2nettype 1.2.3.4),$(h2nettype 4.3.2.1)"
@@ -1339,25 +1347,118 @@ test_32newtarball() {
 
 	setupall
 
-	[[ $server_version -ge $(version_code 2.3.50) ]] ||
+	[[ "$server_version" -ge $(version_code 2.3.50) ]] ||
 		$LFS quotacheck -ug /mnt/$FSNAME
 	$LFS setquota -u $T32_QID -b 0 -B $T32_BLIMIT -i 0 -I $T32_ILIMIT \
 		/mnt/$FSNAME
 
-	tar cf - -C $tmp/src . | tar xf - -C /mnt/$FSNAME
-
 	if [[ $MDSCOUNT -ge 2 ]]; then
 		remote_dir=/mnt/$FSNAME/remote_dir
 		$LFS mkdir -i 1 $remote_dir
 		tar cf - -C $tmp/src . | tar xf - -C $remote_dir
 
+		target_dir=$remote_dir
 		if [[ $server_version -ge $(version_code 2.7.0) ]]; then
 			striped_dir=/mnt/$FSNAME/striped_dir_old
 			$LFS mkdir -i 1 -c 2 $striped_dir
 			tar cf - -C $tmp/src . | tar xf - -C $striped_dir
 		fi
+	else
+		tar cf - -C $tmp/src . | tar xf - -C /mnt/$FSNAME
+		target_dir=/mnt/$FSNAME
 	fi
 
+	# add project quota #
+	[[ $mds1_FSTYPE == "ldiskfs" &&
+		$server_version -gt $(version_code 2.9.55) ]] ||
+	[[ $mds1_FSTYPE == "zfs" &&
+		$server_version -gt $(version_code 2.10.53) ]] && {
+		pj_quota_dir=$target_dir/project_quota_dir
+		pj_quota_file_old=$pj_quota_dir/pj_quota_file_old
+
+		enable_project_quota
+		set_mdt_qtype ugp ||
+			error "enable mdt quota failed"
+
+		set_ost_qtype ugp ||
+			error "enable ost quota failed"
+
+		mkdir -p $pj_quota_dir
+		$LFS setquota -p $T32_PRJID -b 0 -B $T32_PROLIMIT -i 0 \
+			-I $T32_ILIMIT $pj_quota_dir ||
+			error "setquota -p $T32_PRJID failed"
+
+		$LFS setstripe $pj_quota_file_old -c 1 ||
+			error "setstripe $pj_quota_file_old failed"
+
+		chown $T32_QID:$T32_QID $pj_quota_file_old ||
+			error "chown $pj_quota_file_old failed"
+
+		change_project -p $T32_PRJID $pj_quota_file_old
+
+		mkdir -p $tmp/src/project_quota_dir
+		cp $pj_quota_file_old $tmp/src/project_quota_dir/
+	}
+
+	#####################
+	tar cf - -C $tmp/src . | tar xf - -C /mnt/$FSNAME
+
+	#if [[ $MDSCOUNT -ge 2 ]]; then
+	#	remote_dir=/mnt/$FSNAME/remote_dir
+	#	$LFS mkdir -i 1 $remote_dir
+	#	tar cf - -C $tmp/src . | tar xf - -C $remote_dir
+
+	#	if [[ "$server_version" -ge $(version_code 2.7.0) ]]; then
+	#		striped_dir=/mnt/$FSNAME/striped_dir_old
+	#		$LFS mkdir -i 1 -c 2 $striped_dir
+	#		tar cf - -C $tmp/src . | tar xf - -C $striped_dir
+	#	fi
+	#fi
+
+	# PFL file #
+	if [[ $server_version -ge $(version_code 2.9.51) ]]; then
+		pfl_dir=$target_dir/pfl_dir
+		pfl_file=$pfl_dir/pfl_file
+		mkdir -p $pfl_dir
+		$LFS setstripe -E 2M -c 1 -o 0 -E -1 -S 2M -c 1 -o 1 \
+					$pfl_file ||
+			error "Create PFL file failed"
+
+		dd if=/dev/urandom of=$pfl_file bs=1k count=3k
+		mkdir -p $tmp/src/pfl_dir
+		cp $pfl_file $tmp/src/pfl_dir/
+	fi
+
+	############
+	# DoM / FLR file #
+	if [[ $server_version -ge $(version_code 2.10.56) ]]; then
+		dom_dir=$target_dir/dom_dir
+		dom_file=$dom_dir/dom_file
+		flr_dir=$target_dir/flr_dir
+		flr_file=$flr_dir/flr_file
+
+		mkdir -p $dom_dir
+		$LFS setstripe -E 1M -L mdt -E -1 -S 4M $dom_file
+		dd if=/dev/urandom of=$dom_file bs=1k count=2k
+		mkdir -p $tmp/src/dom_dir
+		cp $dom_file $tmp/src/dom_dir
+	# FLR #
+		mkdir -p $flr_dir
+		$LFS mirror create -N2 $flr_file
+		dd if=/dev/urandom of=$flr_file bs=1k count=1
+		mkdir -p $tmp/src/flr_dir
+		cp $flr_file $tmp/src/flr_dir
+	fi
+	############
+
+	local large_xattr_dir=/mnt/$FSNAME/large_xattr_test_dir
+	local xattr_file=$large_xattr_dir/large_xattr_file
+
+	mkdir $large_xattr_dir
+	touch $xattr_file
+	setfattr -n user.fooattr -v $(printf "%c" {1..4096} ) $xattr_file ||
+		rm -f $xattr_file
+
 	stopall
 
 	mkdir $tmp/img || return 1
@@ -1367,7 +1468,7 @@ test_32newtarball() {
 	pushd_dir=/mnt/$FSNAME
 	if [[ $MDSCOUNT -ge 2 ]]; then
 		pushd_dir=$remote_dir
-		if [[ $server_version -ge $(version_code 2.7.0) ]]; then
+		if [[ "$server_version" -ge $(version_code 2.7.0) ]]; then
 			pushd $striped_dir
 			ls -Rni --time-style=+%s >$tmp/img/list2
 			popd
@@ -1382,7 +1483,7 @@ test_32newtarball() {
 	$LCTL get_param -n version | head -n 1 |
 		sed -e 's/^lustre: *//' >$tmp/img/commit
 
-	[[ $server_version -ge $(version_code 2.3.50) ]] ||
+	[[ "$server_version" -ge $(version_code 2.3.50) ]] ||
 		$LFS quotaon -ug /mnt/$FSNAME
 	$LFS quota -u $T32_QID -v /mnt/$FSNAME
 	$LFS quota -v -u $T32_QID /mnt/$FSNAME |
@@ -1396,6 +1497,17 @@ test_32newtarball() {
 	echo $T32_BLIMIT > $tmp/img/blimit
 	echo $T32_ILIMIT > $tmp/img/ilimit
 
+	$MULTIOP /mnt/$FSNAME/orph_file Ouw_c&
+	pid=$!
+	sync
+	stop_mdt_no_force 1
+	debugfs -R "ls /PENDING" ${MDSDEV1:-$MDSDEV}
+	cp ${MDSDEV1:-$MDSDEV} $tmp/img
+	start_mdt 1
+	kill -s USR1 $pid
+	wait $pid
+
+	#################
 	stopall
 
 	pushd $tmp/src
@@ -1409,15 +1521,27 @@ test_32newtarball() {
 	uname -r >$tmp/img/kernel
 	uname -m >$tmp/img/arch
 
-	mv ${MDSDEV1:-$MDSDEV} $tmp/img
-	for num in $(seq 2 $MDSCOUNT); do
+	for ((num=1; num <= $MDSCOUNT; num++)); do
 		local devname=$(mdsdevname $num)
 		local facet=mds$num
+		local image_name
+
+		[[ num -eq 1 ]] && image_name=mdt || image_name=mdt$num
 		[[ $(facet_fstype $facet) != zfs ]] ||
 			devname=$(mdsvdevname $num)
-		mv $devname $tmp/img
+		dd conv=sparse bs=4k if=$devname of=$tmp/img/$image_name
+	done
+
+	for ((num=1; num <= $OSTCOUNT; num++)); do
+		local devname=$(ostdevname $num)
+		local facet=oss$num
+		local image_name
+
+		[[ num -eq 1 ]] && image_name=ost || image_name=ost$num
+		[[ $(facet_fstype $facet) != zfs ]] ||
+			devname=$(ostdevname $num)
+		dd conv=sparse bs=4k if=$devname of=$tmp/img/$image_name
 	done
-	mv $OSTDEV1 $tmp/img
 
 	version=$(sed -e 's/\(^[0-9]\+\.[0-9]\+\)\(.*$\)/\1/' $tmp/img/commit |
 			  sed -e 's/\./_/g')	# E.g., "1.8.7" -> "1_8"
@@ -1428,9 +1552,8 @@ test_32newtarball() {
 
 	rm -r $tmp
 }
-#run_test 32newtarball "Create a new test_32 disk image tarball for this version"
+run_test 32newtarball "Create a new test_32 disk image tarball for this version"
 
-#
 # The list of applicable tarballs is returned via the caller's
 # variable "tarballs".
 #
diff --git a/lustre/tests/test-framework.sh b/lustre/tests/test-framework.sh
index b42bc9c..c0745e5 100755
--- a/lustre/tests/test-framework.sh
+++ b/lustre/tests/test-framework.sh
@@ -4238,8 +4238,8 @@ mkfs_opts() {
 			# Check for wide striping
 			if [ $OSTCOUNT -gt 160 ]; then
 				MDSJOURNALSIZE=${MDSJOURNALSIZE:-4096}
-				fs_mkfs_opts+="-O ea_inode"
 			fi
+			fs_mkfs_opts+="-O ea_inode"
 
 			var=${facet}_JRN
 			if [ -n "${!var}" ]; then
