From: Chandan Babu R <chandan.babu@oracle.com>
To: Dave Chinner <david@fromorbit.com>
Cc: linux-xfs@vger.kernel.org, djwong@kernel.org,
Dave Chinner <dchinner@redhat.com>
Subject: Re: [PATCH V8 14/19] xfs: Introduce per-inode 64-bit extent counters
Date: Fri, 25 Mar 2022 11:32:01 +0530 [thread overview]
Message-ID: <87zglewox2.fsf@debian-BULLSEYE-live-builder-AMD64> (raw)
In-Reply-To: <20220324215348.GK1544202@dread.disaster.area>
On 25 Mar 2022 at 03:23, Dave Chinner wrote:
> On Mon, Mar 21, 2022 at 10:47:45AM +0530, Chandan Babu R wrote:
>> This commit introduces new fields in the on-disk inode format to support
>> 64-bit data fork extent counters and 32-bit attribute fork extent
>> counters. The new fields will be used only when an inode has
>> XFS_DIFLAG2_NREXT64 flag set. Otherwise we continue to use the regular 32-bit
>> data fork extent counters and 16-bit attribute fork extent counters.
>>
>> Reviewed-by: Darrick J. Wong <djwong@kernel.org>
>> Signed-off-by: Chandan Babu R <chandan.babu@oracle.com>
>> Suggested-by: Dave Chinner <dchinner@redhat.com>
>
> Looks good, minor nits below.
>
> Reviewed-by: Dave Chinner <dchinner@redhat.com>
>
>> +STATIC int
>> +xlog_dinode_verify_extent_counts(
>> + struct xfs_mount *mp,
>> + struct xfs_log_dinode *ldip)
>> +{
>> + xfs_extnum_t nextents;
>> + xfs_aextnum_t anextents;
>> +
>> + if (xfs_log_dinode_has_large_extent_counts(ldip)) {
>> + if (!xfs_has_large_extent_counts(mp) ||
>> + (ldip->di_nrext64_pad != 0)) {
>> + XFS_CORRUPTION_ERROR(
>> + "Bad log dinode large extent count format",
>> + XFS_ERRLEVEL_LOW, mp, ldip, sizeof(*ldip));
>> + xfs_alert(mp,
>> + "Bad inode 0x%llx, nrext64 %d, padding 0x%x",
>
> "large extent counts" rather than "nrext64"?
>
>> + ldip->di_ino, xfs_has_large_extent_counts(mp),
>> + ldip->di_nrext64_pad);
>> + return -EFSCORRUPTED;
>> + }
>> +
>> + nextents = ldip->di_big_nextents;
>> + anextents = ldip->di_big_anextents;
>> + } else {
>> + if (ldip->di_version == 3 && ldip->di_v3_pad != 0) {
>> + XFS_CORRUPTION_ERROR(
>> + "Bad log dinode di_v3_pad",
>> + XFS_ERRLEVEL_LOW, mp, ldip, sizeof(*ldip));
>> + xfs_alert(mp,
>> + "Bad inode 0x%llx, di_v3_pad %llu",
>> + ldip->di_ino, ldip->di_v3_pad);
>
> the padding should be dumped as a hexadecimal value - it's much
> easier to see the bit corruption patterns in hex dumps than decimal
> output.
>
I agree. I will make the suggested change.
>> + return -EFSCORRUPTED;
>> + }
>> +
>> + nextents = ldip->di_nextents;
>> + anextents = ldip->di_anextents;
>> + }
>> +
>> + if (unlikely(nextents + anextents > ldip->di_nblocks)) {
>> + XFS_CORRUPTION_ERROR("Bad log dinode extent counts",
>> + XFS_ERRLEVEL_LOW, mp, ldip, sizeof(*ldip));
>> + xfs_alert(mp,
>> + "Bad inode 0x%llx, nextents 0x%llx, anextents 0x%x, nblocks 0x%llx",
>> + ldip->di_ino, nextents, anextents, ldip->di_nblocks);
>> + return -EFSCORRUPTED;
>
> Maybe should indicate large extent count status here, too.
>
Yes, I think it will make it easier to determine the inode fields of the two
extent counts.
--
chandan
next prev parent reply other threads:[~2022-03-25 6:02 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-21 5:17 [PATCH V8 00/19] xfs: Extend per-inode extent counters Chandan Babu R
2022-03-21 5:17 ` [PATCH V8 01/19] xfs: Move extent count limits to xfs_format.h Chandan Babu R
2022-03-21 5:17 ` [PATCH V8 02/19] xfs: Define max extent length based on on-disk format definition Chandan Babu R
2022-03-21 5:17 ` [PATCH V8 03/19] xfs: Introduce xfs_iext_max_nextents() helper Chandan Babu R
2022-03-21 5:17 ` [PATCH V8 04/19] xfs: Use xfs_extnum_t instead of basic data types Chandan Babu R
2022-03-21 5:17 ` [PATCH V8 05/19] xfs: Introduce xfs_dfork_nextents() helper Chandan Babu R
2022-03-24 21:31 ` Dave Chinner
2022-03-21 5:17 ` [PATCH V8 06/19] xfs: Use basic types to define xfs_log_dinode's di_nextents and di_anextents Chandan Babu R
2022-03-21 5:17 ` [PATCH V8 07/19] xfs: Promote xfs_extnum_t and xfs_aextnum_t to 64 and 32-bits respectively Chandan Babu R
2022-03-24 21:33 ` Dave Chinner
2022-03-21 5:17 ` [PATCH V8 08/19] xfs: Introduce XFS_SB_FEAT_INCOMPAT_NREXT64 and associated per-fs feature bit Chandan Babu R
2022-03-24 21:37 ` Dave Chinner
2022-03-24 21:40 ` Darrick J. Wong
2022-03-25 6:01 ` Chandan Babu R
2022-03-21 5:17 ` [PATCH V8 09/19] xfs: Introduce XFS_FSOP_GEOM_FLAGS_NREXT64 Chandan Babu R
2022-03-21 5:17 ` [PATCH V8 10/19] xfs: Introduce XFS_DIFLAG2_NREXT64 and associated helpers Chandan Babu R
2022-03-24 21:38 ` Dave Chinner
2022-03-21 5:17 ` [PATCH V8 11/19] xfs: Use uint64_t to count maximum blocks that can be used by BMBT Chandan Babu R
2022-03-24 21:42 ` Dave Chinner
2022-03-25 6:01 ` Chandan Babu R
2022-03-21 5:17 ` [PATCH V8 12/19] xfs: Introduce macros to represent new maximum extent counts for data/attr forks Chandan Babu R
2022-03-21 5:17 ` [PATCH V8 13/19] xfs: Replace numbered inode recovery error messages with descriptive ones Chandan Babu R
2022-03-24 21:47 ` Dave Chinner
2022-03-21 5:17 ` [PATCH V8 14/19] xfs: Introduce per-inode 64-bit extent counters Chandan Babu R
2022-03-24 21:53 ` Dave Chinner
2022-03-25 6:02 ` Chandan Babu R [this message]
2022-03-21 5:17 ` [PATCH V8 15/19] xfs: Directory's data fork extent counter can never overflow Chandan Babu R
2022-03-24 22:14 ` Dave Chinner
2022-03-25 6:02 ` Chandan Babu R
2022-03-25 6:37 ` Chandan Babu R
2022-03-29 5:22 ` Chandan Babu R
2022-03-29 6:23 ` Dave Chinner
2022-03-30 3:43 ` Darrick J. Wong
2022-03-30 15:39 ` Chandan Babu R
2022-03-30 15:52 ` Darrick J. Wong
2022-04-01 1:27 ` Dave Chinner
2022-04-01 7:46 ` Chandan Babu R
2022-03-21 5:17 ` [PATCH V8 16/19] xfs: Conditionally upgrade existing inodes to use large extent counters Chandan Babu R
2022-03-24 22:28 ` Dave Chinner
2022-03-25 6:02 ` Chandan Babu R
2022-03-21 5:17 ` [PATCH V8 17/19] xfs: Decouple XFS_IBULK flags from XFS_IWALK flags Chandan Babu R
2022-03-24 22:28 ` Dave Chinner
2022-03-21 5:17 ` [PATCH V8 18/19] xfs: Enable bulkstat ioctl to support 64-bit per-inode extent counters Chandan Babu R
2022-03-24 22:33 ` Dave Chinner
2022-03-21 5:17 ` [PATCH V8 19/19] xfs: Add XFS_SB_FEAT_INCOMPAT_NREXT64 to the list of supported flags Chandan Babu R
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=87zglewox2.fsf@debian-BULLSEYE-live-builder-AMD64 \
--to=chandan.babu@oracle.com \
--cc=david@fromorbit.com \
--cc=dchinner@redhat.com \
--cc=djwong@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox