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
>
next prev parent 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