All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Darrick J. Wong" <djwong@kernel.org>
To: Chandan Babu R <chandan.babu@oracle.com>
Cc: linux-xfs@vger.kernel.org, david@fromorbit.com
Subject: Re: [PATCH V4 02/16] xfs: Introduce xfs_iext_max_nextents() helper
Date: Tue, 4 Jan 2022 15:30:21 -0800	[thread overview]
Message-ID: <20220104233021.GH31583@magnolia> (raw)
In-Reply-To: <20211214084519.759272-3-chandan.babu@oracle.com>

On Tue, Dec 14, 2021 at 02:15:05PM +0530, Chandan Babu R wrote:
> xfs_iext_max_nextents() returns the maximum number of extents possible for one
> of data, cow or attribute fork. This helper will be extended further in a
> future commit when maximum extent counts associated with data/attribute forks
> are increased.
> 
> Signed-off-by: Chandan Babu R <chandan.babu@oracle.com>

Pretty straightforward...
Reviewed-by: Darrick J. Wong <djwong@kernel.org>

--D

> ---
>  fs/xfs/libxfs/xfs_bmap.c       | 9 ++++-----
>  fs/xfs/libxfs/xfs_inode_buf.c  | 8 +++-----
>  fs/xfs/libxfs/xfs_inode_fork.c | 2 +-
>  fs/xfs/libxfs/xfs_inode_fork.h | 8 ++++++++
>  4 files changed, 16 insertions(+), 11 deletions(-)
> 
> diff --git a/fs/xfs/libxfs/xfs_bmap.c b/fs/xfs/libxfs/xfs_bmap.c
> index 4dccd4d90622..75e8e8a97568 100644
> --- a/fs/xfs/libxfs/xfs_bmap.c
> +++ b/fs/xfs/libxfs/xfs_bmap.c
> @@ -74,13 +74,12 @@ xfs_bmap_compute_maxlevels(
>  	 * ATTR2 we have to assume the worst case scenario of a minimum size
>  	 * available.
>  	 */
> -	if (whichfork == XFS_DATA_FORK) {
> -		maxleafents = MAXEXTNUM;
> +	maxleafents = xfs_iext_max_nextents(whichfork);
> +	if (whichfork == XFS_DATA_FORK)
>  		sz = XFS_BMDR_SPACE_CALC(MINDBTPTRS);
> -	} else {
> -		maxleafents = MAXAEXTNUM;
> +	else
>  		sz = XFS_BMDR_SPACE_CALC(MINABTPTRS);
> -	}
> +
>  	maxrootrecs = xfs_bmdr_maxrecs(sz, 0);
>  	minleafrecs = mp->m_bmap_dmnr[0];
>  	minnoderecs = mp->m_bmap_dmnr[1];
> diff --git a/fs/xfs/libxfs/xfs_inode_buf.c b/fs/xfs/libxfs/xfs_inode_buf.c
> index cae9708c8587..e6f9bdc4558f 100644
> --- a/fs/xfs/libxfs/xfs_inode_buf.c
> +++ b/fs/xfs/libxfs/xfs_inode_buf.c
> @@ -337,6 +337,7 @@ xfs_dinode_verify_fork(
>  	int			whichfork)
>  {
>  	uint32_t		di_nextents = XFS_DFORK_NEXTENTS(dip, whichfork);
> +	xfs_extnum_t		max_extents;
>  
>  	switch (XFS_DFORK_FORMAT(dip, whichfork)) {
>  	case XFS_DINODE_FMT_LOCAL:
> @@ -358,12 +359,9 @@ xfs_dinode_verify_fork(
>  			return __this_address;
>  		break;
>  	case XFS_DINODE_FMT_BTREE:
> -		if (whichfork == XFS_ATTR_FORK) {
> -			if (di_nextents > MAXAEXTNUM)
> -				return __this_address;
> -		} else if (di_nextents > MAXEXTNUM) {
> +		max_extents = xfs_iext_max_nextents(whichfork);
> +		if (di_nextents > max_extents)
>  			return __this_address;
> -		}
>  		break;
>  	default:
>  		return __this_address;
> diff --git a/fs/xfs/libxfs/xfs_inode_fork.c b/fs/xfs/libxfs/xfs_inode_fork.c
> index 9149f4f796fc..e136c29a0ec1 100644
> --- a/fs/xfs/libxfs/xfs_inode_fork.c
> +++ b/fs/xfs/libxfs/xfs_inode_fork.c
> @@ -744,7 +744,7 @@ xfs_iext_count_may_overflow(
>  	if (whichfork == XFS_COW_FORK)
>  		return 0;
>  
> -	max_exts = (whichfork == XFS_ATTR_FORK) ? MAXAEXTNUM : MAXEXTNUM;
> +	max_exts = xfs_iext_max_nextents(whichfork);
>  
>  	if (XFS_TEST_ERROR(false, ip->i_mount, XFS_ERRTAG_REDUCE_MAX_IEXTENTS))
>  		max_exts = 10;
> diff --git a/fs/xfs/libxfs/xfs_inode_fork.h b/fs/xfs/libxfs/xfs_inode_fork.h
> index 3d64a3acb0ed..2605f7ff8fc1 100644
> --- a/fs/xfs/libxfs/xfs_inode_fork.h
> +++ b/fs/xfs/libxfs/xfs_inode_fork.h
> @@ -133,6 +133,14 @@ static inline int8_t xfs_ifork_format(struct xfs_ifork *ifp)
>  	return ifp->if_format;
>  }
>  
> +static inline xfs_extnum_t xfs_iext_max_nextents(int whichfork)
> +{
> +	if (whichfork == XFS_DATA_FORK || whichfork == XFS_COW_FORK)
> +		return MAXEXTNUM;
> +
> +	return MAXAEXTNUM;
> +}
> +
>  struct xfs_ifork *xfs_ifork_alloc(enum xfs_dinode_fmt format,
>  				xfs_extnum_t nextents);
>  struct xfs_ifork *xfs_iext_state_to_fork(struct xfs_inode *ip, int state);
> -- 
> 2.30.2
> 

  reply	other threads:[~2022-01-04 23:30 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-14  8:45 [PATCH V4 00/16] xfs: Extend per-inode extent counters Chandan Babu R
2021-12-14  8:45 ` [PATCH V4 01/16] xfs: Move extent count limits to xfs_format.h Chandan Babu R
2022-01-04 23:28   ` Darrick J. Wong
2021-12-14  8:45 ` [PATCH V4 02/16] xfs: Introduce xfs_iext_max_nextents() helper Chandan Babu R
2022-01-04 23:30   ` Darrick J. Wong [this message]
2021-12-14  8:45 ` [PATCH V4 03/16] xfs: Use xfs_extnum_t instead of basic data types Chandan Babu R
2021-12-14  8:45 ` [PATCH V4 04/16] xfs: Introduce xfs_dfork_nextents() helper Chandan Babu R
2022-01-04 23:48   ` Darrick J. Wong
2021-12-14  8:45 ` [PATCH V4 05/16] xfs: Use basic types to define xfs_log_dinode's di_nextents and di_anextents Chandan Babu R
2022-01-04 23:50   ` Darrick J. Wong
2022-01-05 13:43     ` Chandan Babu R
2021-12-14  8:45 ` [PATCH V4 06/16] xfs: Promote xfs_extnum_t and xfs_aextnum_t to 64 and 32-bits respectively Chandan Babu R
2021-12-14 14:54   ` kernel test robot
2021-12-14 14:54     ` kernel test robot
2021-12-14 15:05   ` kernel test robot
2021-12-14 15:05     ` kernel test robot
2021-12-14 15:15   ` kernel test robot
2021-12-14 15:15     ` kernel test robot
2021-12-15  9:19     ` Chandan Babu R
2021-12-15  9:19       ` Chandan Babu R
2022-01-04 23:54       ` Darrick J. Wong
2022-01-04 23:54         ` Darrick J. Wong
2022-01-05 14:14         ` Chandan Babu R
2022-01-05 14:14           ` Chandan Babu R
2022-01-05 17:21           ` Darrick J. Wong
2022-01-05 17:21             ` Darrick J. Wong
2022-01-06  7:03             ` Chandan Babu R
2022-01-06  7:03               ` Chandan Babu R
2022-01-06 20:31               ` Darrick J. Wong
2022-01-06 20:31                 ` Darrick J. Wong
2021-12-14  8:45 ` [PATCH V4 07/16] xfs: Introduce XFS_SB_FEAT_INCOMPAT_NREXT64 and associated per-fs feature bit Chandan Babu R
2022-01-05  0:03   ` Darrick J. Wong
2021-12-14  8:45 ` [PATCH V4 08/16] xfs: Introduce XFS_FSOP_GEOM_FLAGS_NREXT64 Chandan Babu R
2022-01-05  0:05   ` Darrick J. Wong
2022-01-05 13:44     ` Chandan Babu R
2022-01-05 17:22       ` Darrick J. Wong
2021-12-14  8:45 ` [PATCH V4 09/16] xfs: Introduce XFS_DIFLAG2_NREXT64 and associated helpers Chandan Babu R
2022-01-05  0:43   ` Darrick J. Wong
2021-12-14  8:45 ` [PATCH V4 10/16] xfs: Use xfs_rfsblock_t to count maximum blocks that can be used by BMBT Chandan Babu R
2021-12-14 18:15   ` kernel test robot
2021-12-14 18:15     ` kernel test robot
2021-12-14  8:45 ` [PATCH V4 11/16] xfs: Introduce macros to represent new maximum extent counts for data/attr forks Chandan Babu R
2022-01-05  0:42   ` Darrick J. Wong
2022-01-05 13:46     ` Chandan Babu R
2021-12-14  8:45 ` [PATCH V4 12/16] xfs: Introduce per-inode 64-bit extent counters Chandan Babu R
2022-01-05  1:04   ` Darrick J. Wong
2022-01-05 13:47     ` Chandan Babu R
2021-12-14  8:45 ` [PATCH V4 13/16] xfs: Conditionally upgrade existing inodes to use " Chandan Babu R
2022-01-05  0:18   ` Darrick J. Wong
2022-01-05 13:49     ` Chandan Babu R
2021-12-14  8:45 ` [PATCH V4 14/16] xfs: Enable bulkstat ioctl to support 64-bit per-inode " Chandan Babu R
2022-01-05  0:28   ` Darrick J. Wong
2022-01-05 13:50     ` Chandan Babu R
2021-12-14  8:45 ` [PATCH V4 15/16] xfs: Add XFS_SB_FEAT_INCOMPAT_NREXT64 to the list of supported flags Chandan Babu R
2022-01-05  0:47   ` Darrick J. Wong
2021-12-14  8:45 ` [PATCH V4 16/16] xfs: Define max extent length based on on-disk format definition Chandan Babu R
2022-01-05  0:47   ` Darrick J. Wong
2022-01-05 13:51     ` 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=20220104233021.GH31583@magnolia \
    --to=djwong@kernel.org \
    --cc=chandan.babu@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 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.