Message ID | 20250128071449.676462-1-hch@lst.de (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | xfs/541: _notrun if the file system can't mount | expand |
On Tue, Jan 28, 2025 at 08:14:48AM +0100, Christoph Hellwig wrote: > A file system created without an RT section might not be able to mount > with an rtdev specified if the RT device has a larger LBA size. Where does the mount failure occur? The initial mount (where we specify -o rtdev but sb_rblocks is still zero) should succeed because xfs_rtmount_init ignores m_rtdev_targp if !rblocks, right? So it's only when you get to growfs and we try to read the device that things fail? --D > Instead of letting the test fail, _notrun it for that case. > > Signed-off-by: Christoph Hellwig <hch@lst.de> > --- > tests/xfs/541 | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/tests/xfs/541 b/tests/xfs/541 > index 42bcd95802c5..c8b312fddc92 100755 > --- a/tests/xfs/541 > +++ b/tests/xfs/541 > @@ -26,7 +26,7 @@ _require_scratch > > # Format scratch fs with no realtime section. > SCRATCH_RTDEV="" _scratch_mkfs | _filter_mkfs 2> $tmp.mkfs >> $seqres.full > -_scratch_mount > +_try_scratch_mount || _notrun "Can't mount file system" > > # Zoned file systems don't support rtextsize > 1 > _require_xfs_scratch_non_zoned > -- > 2.45.2 > >
On Tue, Jan 28, 2025 at 11:25:06AM -0800, Darrick J. Wong wrote: > On Tue, Jan 28, 2025 at 08:14:48AM +0100, Christoph Hellwig wrote: > > A file system created without an RT section might not be able to mount > > with an rtdev specified if the RT device has a larger LBA size. > > Where does the mount failure occur? The initial mount (where we specify > -o rtdev but sb_rblocks is still zero) should succeed because > xfs_rtmount_init ignores m_rtdev_targp if !rblocks, right? So it's only > when you get to growfs and we try to read the device that things fail? There only is a single mount in the test. The test only clears the rtdev for the mkfs call, not the mount call. As XFS doesn't allow adding a new rtdev at runtime, just expanding the file system to the already passed but not actually used rt device in growfs that's actually needed, even if it sounds counterintuitive. (that being said I sent the patch directly from my zoned branch, so it won't apply as-is due to context issues)
On Wed, Jan 29, 2025 at 06:49:18AM +0100, Christoph Hellwig wrote: > On Tue, Jan 28, 2025 at 11:25:06AM -0800, Darrick J. Wong wrote: > > On Tue, Jan 28, 2025 at 08:14:48AM +0100, Christoph Hellwig wrote: > > > A file system created without an RT section might not be able to mount > > > with an rtdev specified if the RT device has a larger LBA size. > > > > Where does the mount failure occur? The initial mount (where we specify > > -o rtdev but sb_rblocks is still zero) should succeed because > > xfs_rtmount_init ignores m_rtdev_targp if !rblocks, right? So it's only > > when you get to growfs and we try to read the device that things fail? > > There only is a single mount in the test. > > The test only clears the rtdev for the mkfs call, not the mount call. > As XFS doesn't allow adding a new rtdev at runtime, just expanding the > file system to the already passed but not actually used rt device in > growfs that's actually needed, even if it sounds counterintuitive. > > (that being said I sent the patch directly from my zoned branch, > so it won't apply as-is due to context issues) Gross, it's the set_blocksize call in xfs_setsize_buftarg that trips everything up. But, it makes sense that one cannot mix sector sizes nor mount an rtdev with a larger sector size than what's configured on the data device. Reviewed-by: "Darrick J. Wong" <djwong@kernel.org> --D
diff --git a/tests/xfs/541 b/tests/xfs/541 index 42bcd95802c5..c8b312fddc92 100755 --- a/tests/xfs/541 +++ b/tests/xfs/541 @@ -26,7 +26,7 @@ _require_scratch # Format scratch fs with no realtime section. SCRATCH_RTDEV="" _scratch_mkfs | _filter_mkfs 2> $tmp.mkfs >> $seqres.full -_scratch_mount +_try_scratch_mount || _notrun "Can't mount file system" # Zoned file systems don't support rtextsize > 1 _require_xfs_scratch_non_zoned
A file system created without an RT section might not be able to mount with an rtdev specified if the RT device has a larger LBA size. Instead of letting the test fail, _notrun it for that case. Signed-off-by: Christoph Hellwig <hch@lst.de> --- tests/xfs/541 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)