From: Christoph Hellwig <hch@infradead.org>
To: Chandan Rajendra <chandanrlinux@gmail.com>
Cc: linux-xfs@vger.kernel.org, david@fromorbit.com,
chandan@linux.ibm.com, darrick.wong@oracle.com,
bfoster@redhat.com
Subject: Re: [PATCH 2/2] xfs: Extend xattr extent counter to 32-bits
Date: Mon, 27 Apr 2020 00:39:48 -0700 [thread overview]
Message-ID: <20200427073948.GA15777@infradead.org> (raw)
In-Reply-To: <20200404085203.1908-3-chandanrlinux@gmail.com>
FYI, I have had a series in the works for a while but not quite
finished yet that moves the in-memory nextents and format fields
into the ifork structure. I feared this might conflict badly, but
so far this seems relatively harmless. Note that your patch creates
some not so nice layout in struct xfs_icdinode, so maybe I need to
rush and finish that series ASAP.
> +static inline int32_t XFS_DFORK_NEXTENTS(struct xfs_sb *sbp,
> + struct xfs_dinode *dip, int whichfork)
> +{
> + int32_t anextents;
> +
> + if (whichfork == XFS_DATA_FORK)
> + return be32_to_cpu((dip)->di_nextents);
> +
> + anextents = be16_to_cpu((dip)->di_anextents_lo);
> + if (xfs_sb_version_has_v3inode(sbp))
> + anextents |= ((u32)(be16_to_cpu((dip)->di_anextents_hi)) << 16);
> +
> + return anextents;
No need for any of the braces around dip. Also this funcion really
deserves a proper lower case name now, and probably should be moved out
of line.
> typedef uint32_t xfs_extlen_t; /* extent length in blocks */
> typedef uint32_t xfs_agnumber_t; /* allocation group number */
> typedef int32_t xfs_extnum_t; /* # of extents in a file */
> -typedef int16_t xfs_aextnum_t; /* # extents in an attribute fork */
> +typedef int32_t xfs_aextnum_t; /* # extents in an attribute fork */
We can just retire xfs_aextnum_t. It only has 4 uses anyway.
> @@ -327,7 +327,7 @@ xfs_inode_to_log_dinode(
> to->di_nblocks = from->di_nblocks;
> to->di_extsize = from->di_extsize;
> to->di_nextents = from->di_nextents;
> - to->di_anextents = from->di_anextents;
> + to->di_anextents_lo = ((u32)(from->di_anextents)) & 0xffff;
No need for any of the casting here.
> @@ -3044,7 +3045,14 @@ xlog_recover_inode_pass2(
> goto out_release;
> }
> }
> - if (unlikely(ldip->di_nextents + ldip->di_anextents > ldip->di_nblocks)){
> +
> + nextents = ldip->di_anextents_lo;
> + if (xfs_sb_version_has_v3inode(&mp->m_sb))
> + nextents |= ((u32)(ldip->di_anextents_hi) << 16);
> +
> + nextents += ldip->di_nextents;
Little helpers to get/set the attr extents in the log inode would be nice.
Last but not least: This seems like a feature flag we could just lazily
set once needed, similar to attr2.
next prev parent reply other threads:[~2020-04-27 7:39 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-04 8:52 [PATCH 0/2] Extend xattr extent counter to 32-bits Chandan Rajendra
2020-04-04 8:52 ` [PATCH 1/2] xfs: Fix log reservation calculation for xattr insert operation Chandan Rajendra
2020-04-06 15:25 ` Brian Foster
2020-04-06 22:57 ` Dave Chinner
2020-04-07 5:11 ` Chandan Rajendra
2020-04-07 12:59 ` Brian Foster
2020-04-07 0:49 ` Dave Chinner
2020-04-08 8:47 ` Chandan Rajendra
2020-04-04 8:52 ` [PATCH 2/2] xfs: Extend xattr extent counter to 32-bits Chandan Rajendra
2020-04-06 16:45 ` Brian Foster
2020-04-08 12:40 ` Chandan Rajendra
2020-04-06 17:06 ` Darrick J. Wong
2020-04-06 23:30 ` Dave Chinner
2020-04-08 12:43 ` Chandan Rajendra
2020-04-08 15:38 ` Darrick J. Wong
2020-04-08 22:43 ` Dave Chinner
2020-04-08 15:45 ` Darrick J. Wong
2020-04-08 22:45 ` Dave Chinner
2020-04-08 12:42 ` Chandan Rajendra
2020-04-07 1:20 ` Dave Chinner
2020-04-08 12:45 ` Chandan Rajendra
2020-04-10 7:46 ` Chandan Rajendra
2020-04-12 6:34 ` Chandan Rajendra
2020-04-13 18:55 ` Darrick J. Wong
2020-04-20 4:38 ` Chandan Rajendra
2020-04-22 9:38 ` Chandan Rajendra
2020-04-22 22:30 ` Dave Chinner
2020-04-25 12:07 ` Chandan Rajendra
2020-04-26 22:08 ` Dave Chinner
2020-04-29 15:35 ` Chandan Rajendra
2020-05-01 7:08 ` Chandan Rajendra
2020-05-12 23:53 ` Darrick J. Wong
2020-05-13 12:19 ` Chandan Rajendra
2020-04-22 22:51 ` Darrick J. Wong
2020-04-27 7:42 ` Christoph Hellwig
2020-04-27 7:39 ` Christoph Hellwig [this message]
2020-04-30 2:29 ` Chandan Rajendra
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=20200427073948.GA15777@infradead.org \
--to=hch@infradead.org \
--cc=bfoster@redhat.com \
--cc=chandan@linux.ibm.com \
--cc=chandanrlinux@gmail.com \
--cc=darrick.wong@oracle.com \
--cc=david@fromorbit.com \
--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;
as well as URLs for NNTP newsgroup(s).