* [PATCH v2] fstests: generic/730: exclude btrfs for now
@ 2025-06-04 7:10 Qu Wenruo
2025-06-04 8:10 ` Anand Jain
0 siblings, 1 reply; 3+ messages in thread
From: Qu Wenruo @ 2025-06-04 7:10 UTC (permalink / raw)
To: linux-btrfs, fstests
The test case always fail for btrfs:
generic/730 - output mismatch (see /home/adam/xfstests-dev/results//generic/730.out.bad)
--- tests/generic/730.out 2024-04-25 18:13:45.203549435 +0930
+++ /home/adam/xfstests-dev/results//generic/730.out.bad 2025-06-04 15:10:39.062430952 +0930
@@ -1,2 +1 @@
QA output created by 730
-cat: -: Input/output error
...
The root reason is that, btrfs doesn't implement its blk_holder_ops when
opening a block device.
Thus when the underlying block device is marked dead, btrfs is never
going to know thus no way to shutdown (nor btrfs has a way to shutdown
either).
I'm trying to improve the situation, but until then just exlucde btrfs
from the test case for now.
Signed-off-by: Qu Wenruo <wqu@suse.com>
---
Changelog:
v2:
- Update the root reason
It's not the sb->s_op->shutdown, that is only for single device
fs (through fs_bdev_mark_dead()).
For a multi-devices fs, it should provide a blk_holder_ops when
opening the block device.
---
tests/generic/730 | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/tests/generic/730 b/tests/generic/730
index 6251980e..cae6489f 100755
--- a/tests/generic/730
+++ b/tests/generic/730
@@ -26,6 +26,10 @@ _require_test
_require_block_device $TEST_DEV
_require_scsi_debug
+if [ "$FSTYP" = "btrfs" ]; then
+ _notrun "btrfs doesn't support per-fs shutdown yet"
+fi
+
size=$(_small_fs_size_mb 256)
SCSI_DEBUG_DEV=`_get_scsi_debug_dev 512 512 0 $size`
test -b "$SCSI_DEBUG_DEV" || _notrun "Failed to initialize scsi debug device"
--
2.49.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH v2] fstests: generic/730: exclude btrfs for now
2025-06-04 7:10 [PATCH v2] fstests: generic/730: exclude btrfs for now Qu Wenruo
@ 2025-06-04 8:10 ` Anand Jain
2025-06-04 9:13 ` Qu Wenruo
0 siblings, 1 reply; 3+ messages in thread
From: Anand Jain @ 2025-06-04 8:10 UTC (permalink / raw)
To: Qu Wenruo, linux-btrfs, fstests
On 6/4/2025 3:10 PM, Qu Wenruo wrote:
> The test case always fail for btrfs:
>
> generic/730 - output mismatch (see /home/adam/xfstests-dev/results//generic/730.out.bad)
> --- tests/generic/730.out 2024-04-25 18:13:45.203549435 +0930
> +++ /home/adam/xfstests-dev/results//generic/730.out.bad 2025-06-04 15:10:39.062430952 +0930
> @@ -1,2 +1 @@
> QA output created by 730
> -cat: -: Input/output error
> ...
[PATCH v1 5/7] generic/730: add _require_scratch_shutdown
Fixed it.
>
> The root reason is that, btrfs doesn't implement its blk_holder_ops when
> opening a block device.
> Thus when the underlying block device is marked dead, btrfs is never
> going to know thus no way to shutdown (nor btrfs has a way to shutdown
> either).
>
> I'm trying to improve the situation, but until then just exlucde btrfs
> from the test case for now.
>
> Signed-off-by: Qu Wenruo <wqu@suse.com>
> ---
> Changelog:
> v2:
> - Update the root reason
> It's not the sb->s_op->shutdown, that is only for single device
> fs (through fs_bdev_mark_dead()).
> For a multi-devices fs, it should provide a blk_holder_ops when
> opening the block device.
Along with that, I think it is a good idea to bring XFS_IOC_GOINGDOWN,
per fs (all devices in a multi-device fs) and vfs level so that we could
support unmount --force.
>
> +if [ "$FSTYP" = "btrfs" ]; then
> + _notrun "btrfs doesn't support per-fs shutdown yet"
> +fi
> +
_require_scratch_shutdown() will take care.
Thanks, Anand
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH v2] fstests: generic/730: exclude btrfs for now
2025-06-04 8:10 ` Anand Jain
@ 2025-06-04 9:13 ` Qu Wenruo
0 siblings, 0 replies; 3+ messages in thread
From: Qu Wenruo @ 2025-06-04 9:13 UTC (permalink / raw)
To: Anand Jain, Qu Wenruo, linux-btrfs, fstests
在 2025/6/4 17:40, Anand Jain 写道:
> On 6/4/2025 3:10 PM, Qu Wenruo wrote:
>> The test case always fail for btrfs:
>>
>> generic/730 - output mismatch (see /home/adam/xfstests-dev/
>> results//generic/730.out.bad)
>> --- tests/generic/730.out 2024-04-25 18:13:45.203549435 +0930
>> +++ /home/adam/xfstests-dev/results//generic/730.out.bad
>> 2025-06-04 15:10:39.062430952 +0930
>> @@ -1,2 +1 @@
>> QA output created by 730
>> -cat: -: Input/output error
>> ...
>
>
>
> [PATCH v1 5/7] generic/730: add _require_scratch_shutdown
That works fine for btrfs, but that's only for now.
The _require_scratch_shutdown is only going to check the shutdown ioctl,
not the per-block-device shutdown.
I guess this means for fs supporting per-bdev shutdown, it must have a
dedicated shutdown ioctl.
Thanks,
Qu>
> Fixed it.
>
>
>>
>> The root reason is that, btrfs doesn't implement its blk_holder_ops when
>> opening a block device.
>> Thus when the underlying block device is marked dead, btrfs is never
>> going to know thus no way to shutdown (nor btrfs has a way to shutdown
>> either).
>>
>> I'm trying to improve the situation, but until then just exlucde btrfs
>> from the test case for now.
>>
>> Signed-off-by: Qu Wenruo <wqu@suse.com>
>> ---
>> Changelog:
>> v2:
>> - Update the root reason
>> It's not the sb->s_op->shutdown, that is only for single device
>> fs (through fs_bdev_mark_dead()).
>> For a multi-devices fs, it should provide a blk_holder_ops when
>> opening the block device.
>
> Along with that, I think it is a good idea to bring XFS_IOC_GOINGDOWN,
> per fs (all devices in a multi-device fs) and vfs level so that we could
> support unmount --force.
>
>> +if [ "$FSTYP" = "btrfs" ]; then
>> + _notrun "btrfs doesn't support per-fs shutdown yet"
>> +fi
>> +
>
> _require_scratch_shutdown() will take care.
>
>
> Thanks, Anand
>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-06-04 9:13 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-04 7:10 [PATCH v2] fstests: generic/730: exclude btrfs for now Qu Wenruo
2025-06-04 8:10 ` Anand Jain
2025-06-04 9:13 ` Qu Wenruo
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox