Re: [PATCH v2] fstests: use btrfs check repair for repairing btrfs filesystems

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]



On Mon, Aug 21, 2023 at 05:05:09PM +0800, Anand Jain wrote:
> There are two repair functions: _repair_scratch_fs() and
> _repair_test_fs(). As the names suggest, these functions are designed to
> repair the filesystems SCRATCH_DEV and TEST_DEV, respectively. However,
> these functions never called proper comamnd for the filesystem type btrfs.
> This patch fixes it. Thx.
> 
> Signed-off-by: Anand Jain <anand.jain@xxxxxxxxxx>
> ---

This patch looks good to me. It's been several weeks past, there's not more
review points or better idea from others either. So I'd like to merge it, to
support btrfs specific repair.

Reviewed-by: Zorro Lang <zlang@xxxxxxxxxx>

> v2:
> 
> When I reran the tests, they hung because 'btrfs check --repair' was
> waiting for confirmation to fix the tree, despite using the '--force'
> option. This is a bug. However, we still need to support the older
> btrfs-progs. So, pass in a 'yes' response.
> 
> Uses BTRFS_UTIL_PROG instead of btrfs.
> 
>  common/rc | 16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
> 
> diff --git a/common/rc b/common/rc
> index 5002369b9b34..45cb56816c05 100644
> --- a/common/rc
> +++ b/common/rc
> @@ -1187,6 +1187,15 @@ _repair_scratch_fs()
>  	fi
>  	return $res
>          ;;
> +    btrfs)
> +	echo "yes|$BTRFS_UTIL_PROG check --repair --force $SCRATCH_DEV"
> +	yes | $BTRFS_UTIL_PROG check --repair --force $SCRATCH_DEV 2>&1
> +	local res=$?
> +	if [ $res -ne 0 ]; then
> +		_dump_err2 "btrfs repair failed, err=$res"
> +	fi
> +	return $res
> +	;;
>      bcachefs)
>  	# With bcachefs, if fsck detects any errors we consider it a bug and we
>  	# want the test to fail:
> @@ -1239,6 +1248,13 @@ _repair_test_fs()
>  			res=$?
>  		fi
>  		;;
> +	btrfs)
> +	echo 'yes|$BTRFS_UTIL_PROG check --repair --force "$TEST_DEV"' > \
> +								/tmp.repair 2>&1
> +	yes | $BTRFS_UTIL_PROG check --repair --force "$TEST_DEV" >> \
> +								/tmp.repair 2>&1
> +		res=$?
> +		;;
>  	*)
>  		# Let's hope fsck -y suffices...
>  		fsck -t $FSTYP -y $TEST_DEV >$tmp.repair 2>&1
> -- 
> 2.38.1
> 




[Index of Archives]     [Linux Filesystems Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux