All of lore.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.