public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
From: "Darrick J. Wong" <djwong@kernel.org>
To: Christoph Hellwig <hch@lst.de>
Cc: Zorro Lang <zlang@kernel.org>, Anand Jain <asj@kernel.org>,
	Filipe Manana <fdmanana@suse.com>,
	fstests@vger.kernel.org, linux-ext4@vger.kernel.org,
	linux-xfs@vger.kernel.org
Subject: Re: [PATCH 01/13] dmflakey: override SCRATCH_DEV in _init_flakey
Date: Fri, 12 Dec 2025 12:11:42 -0800	[thread overview]
Message-ID: <20251212201142.GF7716@frogsfrogsfrogs> (raw)
In-Reply-To: <20251212082210.23401-2-hch@lst.de>

On Fri, Dec 12, 2025 at 09:21:49AM +0100, Christoph Hellwig wrote:
> _init_flakey already overrides SCRATCH_LOGDEV and SCRATCH_RTDEV so that
> the XFS-specific helpers work fine with external devices.  Do the same
> for SCRATCH_DEV itself, so that _scratch_mount and _scratch_unmount just
> work, and so that _check_scratch_fs does not need to override the main
> device.
> 
> This requires some small adjustments in how generic/741 checks that
> mounting the underlying device fails, but the new version actually is
> simpler than the old one, and in xfs/438 where we need to be careful
> where to create the custome dm table.
> 
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
<snip>
> diff --git a/common/dmflakey b/common/dmflakey
> index 7368a3e5b324..cb0359901c16 100644
> --- a/common/dmflakey
> +++ b/common/dmflakey
> @@ -15,11 +15,19 @@ export FLAKEY_LOGNAME="flakey-logtest.$seq"
>  _init_flakey()
>  {
>  	# Scratch device
> -	local BLK_DEV_SIZE=`blockdev --getsz $SCRATCH_DEV`
> -	export FLAKEY_DEV="/dev/mapper/$FLAKEY_NAME"
> -	FLAKEY_TABLE="0 $BLK_DEV_SIZE flakey $SCRATCH_DEV 0 180 0"
> -	FLAKEY_TABLE_DROP="0 $BLK_DEV_SIZE flakey $SCRATCH_DEV 0 0 180 1 drop_writes"
> -	FLAKEY_TABLE_ERROR="0 $BLK_DEV_SIZE flakey $SCRATCH_DEV 0 0 180 1 error_writes"
> +	if [ -z "$NON_FLAKEY_DEV" ]; then
> +		# Set up the device switch
> +		local backing_dev="$SCRATCH_DEV"
> +		export NON_FLAKEY_DEV="$SCRATCH_DEV"
> +		SCRATCH_DEV=/dev/mapper/$FLAKEY_NAME
> +	else
> +		# Already set up; recreate tables
> +		local backing_dev="$NON_FLAKEY_DEV"
> +	fi
> +	local BLK_DEV_SIZE=`blockdev --getsz $backing_dev`
> +	FLAKEY_TABLE="0 $BLK_DEV_SIZE flakey $backing_dev 0 180 0"
> +	FLAKEY_TABLE_DROP="0 $BLK_DEV_SIZE flakey $backing_dev 0 0 180 1 drop_writes"
> +	FLAKEY_TABLE_ERROR="0 $BLK_DEV_SIZE flakey $backing_dev 0 0 180 1 error_writes"

Ok, so _init_flakey still sets FLAKEY_TABLE_ERROR...

>  	_dmsetup_create $FLAKEY_NAME --table "$FLAKEY_TABLE" || \
>  		_fatal "failed to create flakey device"
>  
<snip>
> diff --git a/tests/xfs/438 b/tests/xfs/438
> index 6d1988c8b9b8..4ff249df6967 100755
> --- a/tests/xfs/438
> +++ b/tests/xfs/438
> @@ -32,7 +32,7 @@ _cleanup()
>  		sysctl -w fs.xfs.xfssyncd_centisecs=${interval} >/dev/null 2>&1
>  	cd /
>  	rm -f $tmp.*
> -	_unmount_flakey >/dev/null 2>&1
> +	_scratch_unmount >/dev/null 2>&1
>  	_cleanup_flakey > /dev/null 2>&1
>  }
>  
> @@ -100,6 +100,9 @@ echo "Silence is golden"
>  
>  _scratch_mkfs > $seqres.full 2>&1
>  
> +# this needs to happen after mkfs, but before _init_flakey overrides SCRATCH_DEV
> +FLAKEY_TABLE_ERROR=$(make_xfs_scratch_flakey_table)
> +
>  # no error will be injected
>  _init_flakey

...but won't _init_flakey clobber the value of FLAKEY_TABLE_ERROR set
by make_xfs_scratch_flakey_table?

--D

>  $DMSETUP_PROG info >> $seqres.full
> @@ -111,7 +114,7 @@ interval=$(sysctl -n fs.xfs.xfssyncd_centisecs 2>/dev/null)
>  sysctl -w fs.xfs.xfssyncd_centisecs=100 >> $seqres.full 2>&1
>  
>  _qmount_option "usrquota"
> -_mount_flakey
> +_scratch_mount
>  
>  # We need to set the quota limitation twice, and inject the write error
>  # after the second setting. If we try to inject the write error after
> @@ -127,7 +130,6 @@ xfs_freeze -f $SCRATCH_MNT
>  xfs_freeze -u $SCRATCH_MNT
>  
>  # inject write IO error
> -FLAKEY_TABLE_ERROR=$(make_xfs_scratch_flakey_table)
>  _load_flakey_table ${FLAKEY_ERROR_WRITES}
>  $DMSETUP_PROG info >> $seqres.full
>  $DMSETUP_PROG table >> $seqres.full
> @@ -142,7 +144,7 @@ _scratch_sync
>  # the completion of the retried write of dquota buffer
>  sleep 2
>  
> -_unmount_flakey
> +_scratch_unmount
>  
>  _cleanup_flakey
>  

  reply	other threads:[~2025-12-12 20:11 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-12  8:21 stop overriding SCRATCH_{,LOG,RT}DEV v2 Christoph Hellwig
2025-12-12  8:21 ` [PATCH 01/13] dmflakey: override SCRATCH_DEV in _init_flakey Christoph Hellwig
2025-12-12 20:11   ` Darrick J. Wong [this message]
2025-12-15  5:29     ` Christoph Hellwig
2025-12-15 19:41       ` Darrick J. Wong
2025-12-17 16:59   ` Anand Jain
2025-12-12  8:21 ` [PATCH 02/13] ext4/006: call e2fsck directly Christoph Hellwig
2025-12-12 20:02   ` Darrick J. Wong
2025-12-15  5:27     ` Christoph Hellwig
2025-12-15 19:42       ` Darrick J. Wong
2025-12-17 17:01   ` Anand Jain
2025-12-12  8:21 ` [PATCH 03/13] common: add a _check_dev_fs helper Christoph Hellwig
2025-12-17 17:01   ` Anand Jain
2025-12-12  8:21 ` [PATCH 04/13] ext4/032: use _check_dev_fs Christoph Hellwig
2025-12-17 17:02   ` Anand Jain
2025-12-12  8:21 ` [PATCH 05/13] generic/590: split XFS RT specific bits out Christoph Hellwig
2025-12-17 17:02   ` Anand Jain
2025-12-12  8:21 ` [PATCH 06/13] xfs/157: don't override SCRATCH_{,LOG,RT}DEV Christoph Hellwig
2025-12-12  8:21 ` [PATCH 07/13] xfs/185: don't use SCRATCH_{,RT}DEV helpers Christoph Hellwig
2025-12-12  8:21 ` [PATCH 08/13] xfs/424: don't use SCRATCH_DEV helpers Christoph Hellwig
2025-12-12  8:21 ` [PATCH 09/13] xfs/521: require a real SCRATCH_RTDEV Christoph Hellwig
2025-12-12  8:21 ` [PATCH 10/13] xfs/521: call _require_scratch_size Christoph Hellwig
2025-12-12 20:01   ` Darrick J. Wong
2025-12-12  8:21 ` [PATCH 11/13] xfs/528: require a real SCRATCH_RTDEV Christoph Hellwig
2025-12-12 20:00   ` Darrick J. Wong
2025-12-12  8:22 ` [PATCH 12/13] xfs/530: " Christoph Hellwig
2025-12-12 20:00   ` Darrick J. Wong
2025-12-12  8:22 ` [PATCH 13/13] xfs/650: " Christoph Hellwig
  -- strict thread matches above, loose matches on Subject: below --
2025-12-18  7:29 stop overriding SCRATCH_{,LOG,RT}DEV v3 Christoph Hellwig
2025-12-18  7:29 ` [PATCH 01/13] dmflakey: override SCRATCH_DEV in _init_flakey Christoph Hellwig
2025-12-18 21:27   ` Anand Jain

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20251212201142.GF7716@frogsfrogsfrogs \
    --to=djwong@kernel.org \
    --cc=asj@kernel.org \
    --cc=fdmanana@suse.com \
    --cc=fstests@vger.kernel.org \
    --cc=hch@lst.de \
    --cc=linux-ext4@vger.kernel.org \
    --cc=linux-xfs@vger.kernel.org \
    --cc=zlang@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox