From: Dave Chinner <david@fromorbit.com>
To: "Darrick J. Wong" <djwong@kernel.org>
Cc: xfs <linux-xfs@vger.kernel.org>, fstests <fstests@vger.kernel.org>
Subject: Re: [RFC PATCH] fstests: test fix for an agbno overflow in __xfs_getfsmap_datadev
Date: Thu, 24 Aug 2023 13:42:21 +1000 [thread overview]
Message-ID: <ZObRnfDTls3VBnNA@dread.disaster.area> (raw)
In-Reply-To: <20230824031939.GI11263@frogsfrogsfrogs>
On Wed, Aug 23, 2023 at 08:19:39PM -0700, Darrick J. Wong wrote:
> On Thu, Aug 24, 2023 at 12:36:11PM +1000, Dave Chinner wrote:
> > On Tue, Aug 22, 2023 at 06:02:39PM -0700, Darrick J. Wong wrote:
> > > From: Darrick J. Wong <djwong@kernel.org>
> > >
> > > Dave Chinner reported that xfs/273 fails if the AG size happens to be an
> > > exact power of two. I traced this to an agbno integer overflow when the
> > > current GETFSMAP call is a continuation of a previous GETFSMAP call, and
> > > the last record returned was non-shareable space at the end of an AG.
> > >
> > > This is the regression test for that bug.
> > >
> > > Signed-off-by: Darrick J. Wong <djwong@kernel.org>
> > > ---
> > > tests/xfs/935 | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++
> > > tests/xfs/935.out | 2 ++
> > > 2 files changed, 57 insertions(+)
> > > create mode 100755 tests/xfs/935
> > > create mode 100644 tests/xfs/935.out
> > >
> > > diff --git a/tests/xfs/935 b/tests/xfs/935
> > > new file mode 100755
> > > index 0000000000..a06f2fc8dc
> > > --- /dev/null
> > > +++ b/tests/xfs/935
> > > @@ -0,0 +1,55 @@
> > > +#! /bin/bash
> > > +# SPDX-License-Identifier: GPL-2.0
> > > +# Copyright (c) 2023 Oracle. All Rights Reserved.
> > > +#
> > > +# FS QA Test 935
> > > +#
> > > +# Regression test for an agbno overflow bug in XFS GETFSMAP involving an
> > > +# fsmap_advance call. Userspace can indicate that a GETFSMAP call is actually
> > > +# a continuation of a previous call by setting the "low" key to the last record
> > > +# returned by the previous call.
> > > +#
> > > +# If the last record returned by GETFSMAP is a non-shareable extent at the end
> > > +# of an AG and the AG size is exactly a power of two, the startblock in the low
> > > +# key of the rmapbt query can be set to a value larger than EOAG. When this
> > > +# happens, GETFSMAP will return EINVAL instead of returning records for the
> > > +# next AG.
> > > +#
> > > +. ./common/preamble
> > > +_begin_fstest auto quick fsmap
> > > +
> > > +. ./common/filter
> > > +
> > > +_fixed_by_git_commit kernel XXXXXXXXXXXXX \
> > > + "xfs: fix an agbno overflow in __xfs_getfsmap_datadev"
> > > +
> > > +# Modify as appropriate.
> > > +_supported_fs generic
> > > +_require_xfs_io_command fsmap
> > > +_require_xfs_scratch_rmapbt
> > > +
> > > +_scratch_mkfs | _filter_mkfs 2> $tmp.mkfs >> $seqres.full
> > > +source $tmp.mkfs
> > > +
> > > +# Find the next power of two agsize smaller than whatever the default is.
> > > +for ((p = 31; p > 0; p--)); do
> > > + desired_agsize=$((2 ** p))
> > > + test "$desired_agsize" -lt "$agsize" && break
> > > +done
> > > +
> > > +echo "desired asize=$desired_agsize" >> $seqres.full
> > agsize
>
> Fixed.
>
> > Otherwise looks fine.
> >
> > Reviewed-by: Dave Chinner <dchinner@redhat.com>
>
> Does the kernel patch fix the bug on your end too?
Haven't had a chance to test it yet. I'll let you know when I do.
-Dave.
--
Dave Chinner
david@fromorbit.com
next prev parent reply other threads:[~2023-08-24 3:43 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-23 1:00 [PATCH] xfs: fix an agbno overflow in __xfs_getfsmap_datadev Darrick J. Wong
2023-08-23 1:02 ` [RFC PATCH] fstests: test fix for " Darrick J. Wong
2023-08-24 2:36 ` Dave Chinner
2023-08-24 3:19 ` Darrick J. Wong
2023-08-24 3:42 ` Dave Chinner [this message]
2023-08-27 13:06 ` Zorro Lang
2023-08-27 15:56 ` Darrick J. Wong
2023-08-28 2:00 ` Dave Chinner
2023-08-28 14:24 ` Zorro Lang
2023-08-28 2:01 ` [PATCH] xfs: fix " Dave Chinner
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=ZObRnfDTls3VBnNA@dread.disaster.area \
--to=david@fromorbit.com \
--cc=djwong@kernel.org \
--cc=fstests@vger.kernel.org \
--cc=linux-xfs@vger.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.