From: "Darrick J. Wong" <djwong@kernel.org>
To: Dave Chinner <david@fromorbit.com>
Cc: linux-xfs@vger.kernel.org
Subject: Re: [PATCH 13/16] xfs: convert xfs_sb_version_has checks to use mount features
Date: Wed, 14 Jul 2021 16:19:52 -0700 [thread overview]
Message-ID: <20210714231952.GG22402@magnolia> (raw)
In-Reply-To: <20210714041912.2625692-14-david@fromorbit.com>
On Wed, Jul 14, 2021 at 02:19:09PM +1000, Dave Chinner wrote:
> From: Dave Chinner <dchinner@redhat.com>
>
> This is a conversion of the remaining xfs_sb_version_has..(sbp)
> checks to use xfs_has_..(mp) feature checks.
>
> This was largely done with a vim replacement macro that did:
>
> :0,$s/xfs_sb_version_has\(.*\)&\(.*\)->m_sb/xfs_has_\1\2/g<CR>
>
> A couple of other variants were also used, and the rest touched up
> by hand.
>
> $ size -t fs/xfs/built-in.a
> text data bss dec hex filename
> before 1127533 311352 484 1439369 15f689 (TOTALS)
> after 1125360 311352 484 1437196 15ee0c (TOTALS)
>
> Signed-off-by: Dave Chinner <dchinner@redhat.com>
Looks good, tastes great!
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
--D
> ---
> fs/xfs/libxfs/xfs_ag.c | 4 ++--
> fs/xfs/libxfs/xfs_alloc.c | 12 ++++++------
> fs/xfs/libxfs/xfs_alloc.h | 2 +-
> fs/xfs/libxfs/xfs_alloc_btree.c | 2 +-
> fs/xfs/libxfs/xfs_bmap_btree.c | 2 +-
> fs/xfs/libxfs/xfs_btree.c | 6 +++---
> fs/xfs/libxfs/xfs_da_btree.c | 6 +++---
> fs/xfs/libxfs/xfs_dir2.c | 6 +++---
> fs/xfs/libxfs/xfs_dir2_block.c | 4 ++--
> fs/xfs/libxfs/xfs_dir2_data.c | 10 +++++-----
> fs/xfs/libxfs/xfs_dir2_leaf.c | 4 ++--
> fs/xfs/libxfs/xfs_dir2_node.c | 4 ++--
> fs/xfs/libxfs/xfs_dir2_priv.h | 2 +-
> fs/xfs/libxfs/xfs_dir2_sf.c | 10 +++++-----
> fs/xfs/libxfs/xfs_dquot_buf.c | 2 +-
> fs/xfs/libxfs/xfs_ialloc.c | 30 +++++++++++++++---------------
> fs/xfs/libxfs/xfs_ialloc_btree.c | 10 +++++-----
> fs/xfs/libxfs/xfs_inode_buf.c | 10 +++++-----
> fs/xfs/libxfs/xfs_log_format.h | 2 +-
> fs/xfs/libxfs/xfs_refcount.c | 8 ++++----
> fs/xfs/libxfs/xfs_sb.c | 2 +-
> fs/xfs/libxfs/xfs_trans_inode.c | 2 +-
> fs/xfs/libxfs/xfs_trans_resv.c | 6 +++---
> fs/xfs/libxfs/xfs_trans_space.h | 6 ++----
> fs/xfs/scrub/agheader.c | 6 +++---
> fs/xfs/scrub/agheader_repair.c | 5 ++---
> fs/xfs/scrub/bmap.c | 3 +--
> fs/xfs/scrub/common.c | 6 +++---
> fs/xfs/scrub/fscounters.c | 2 +-
> fs/xfs/scrub/inode.c | 3 +--
> fs/xfs/scrub/quota.c | 2 +-
> fs/xfs/xfs_reflink.h | 3 +--
> fs/xfs/xfs_super.c | 2 +-
> 33 files changed, 89 insertions(+), 95 deletions(-)
>
> diff --git a/fs/xfs/libxfs/xfs_ag.c b/fs/xfs/libxfs/xfs_ag.c
> index 1eb21912a80c..e3bc40182e16 100644
> --- a/fs/xfs/libxfs/xfs_ag.c
> +++ b/fs/xfs/libxfs/xfs_ag.c
> @@ -607,9 +607,9 @@ xfs_agiblock_init(
> }
> for (bucket = 0; bucket < XFS_AGI_UNLINKED_BUCKETS; bucket++)
> agi->agi_unlinked[bucket] = cpu_to_be32(NULLAGINO);
> - if (xfs_sb_version_hasinobtcounts(&mp->m_sb)) {
> + if (xfs_has_inobtcounts(mp)) {
> agi->agi_iblocks = cpu_to_be32(1);
> - if (xfs_sb_version_hasfinobt(&mp->m_sb))
> + if (xfs_has_finobt(mp))
> agi->agi_fblocks = cpu_to_be32(1);
> }
> }
> diff --git a/fs/xfs/libxfs/xfs_alloc.c b/fs/xfs/libxfs/xfs_alloc.c
> index e40235bc487d..2dd01f034f36 100644
> --- a/fs/xfs/libxfs/xfs_alloc.c
> +++ b/fs/xfs/libxfs/xfs_alloc.c
> @@ -2264,7 +2264,7 @@ xfs_alloc_min_freelist(
> min_free += min_t(unsigned int, levels[XFS_BTNUM_CNTi] + 1,
> mp->m_ag_maxlevels);
> /* space needed reverse mapping used space btree */
> - if (xfs_sb_version_hasrmapbt(&mp->m_sb))
> + if (xfs_has_rmapbt(mp))
> min_free += min_t(unsigned int, levels[XFS_BTNUM_RMAPi] + 1,
> mp->m_rmap_maxlevels);
>
> @@ -2912,7 +2912,7 @@ xfs_agf_verify(
> be32_to_cpu(agf->agf_levels[XFS_BTNUM_RMAP]) > mp->m_rmap_maxlevels))
> return __this_address;
>
> - if (xfs_sb_version_hasrmapbt(&mp->m_sb) &&
> + if (xfs_has_rmapbt(mp) &&
> be32_to_cpu(agf->agf_rmap_blocks) > be32_to_cpu(agf->agf_length))
> return __this_address;
>
> @@ -2925,16 +2925,16 @@ xfs_agf_verify(
> if (bp->b_pag && be32_to_cpu(agf->agf_seqno) != bp->b_pag->pag_agno)
> return __this_address;
>
> - if (xfs_sb_version_haslazysbcount(&mp->m_sb) &&
> + if (xfs_has_lazysbcount(mp) &&
> be32_to_cpu(agf->agf_btreeblks) > be32_to_cpu(agf->agf_length))
> return __this_address;
>
> - if (xfs_sb_version_hasreflink(&mp->m_sb) &&
> + if (xfs_has_reflink(mp) &&
> be32_to_cpu(agf->agf_refcount_blocks) >
> be32_to_cpu(agf->agf_length))
> return __this_address;
>
> - if (xfs_sb_version_hasreflink(&mp->m_sb) &&
> + if (xfs_has_reflink(mp) &&
> (be32_to_cpu(agf->agf_refcount_level) < 1 ||
> be32_to_cpu(agf->agf_refcount_level) > mp->m_refc_maxlevels))
> return __this_address;
> @@ -3073,7 +3073,7 @@ xfs_alloc_read_agf(
> * counter only tracks non-root blocks.
> */
> allocbt_blks = pag->pagf_btreeblks;
> - if (xfs_sb_version_hasrmapbt(&mp->m_sb))
> + if (xfs_has_rmapbt(mp))
> allocbt_blks -= be32_to_cpu(agf->agf_rmap_blocks) - 1;
> if (allocbt_blks > 0)
> atomic64_add(allocbt_blks, &mp->m_allocbt_blks);
> diff --git a/fs/xfs/libxfs/xfs_alloc.h b/fs/xfs/libxfs/xfs_alloc.h
> index e30900b6f8ba..eb9088aff4e7 100644
> --- a/fs/xfs/libxfs/xfs_alloc.h
> +++ b/fs/xfs/libxfs/xfs_alloc.h
> @@ -243,7 +243,7 @@ static inline __be32 *
> xfs_buf_to_agfl_bno(
> struct xfs_buf *bp)
> {
> - if (xfs_sb_version_hascrc(&bp->b_mount->m_sb))
> + if (xfs_has_crc(bp->b_mount))
> return bp->b_addr + sizeof(struct xfs_agfl);
> return bp->b_addr;
> }
> diff --git a/fs/xfs/libxfs/xfs_alloc_btree.c b/fs/xfs/libxfs/xfs_alloc_btree.c
> index 6dce6a566926..81a8e1d0cd90 100644
> --- a/fs/xfs/libxfs/xfs_alloc_btree.c
> +++ b/fs/xfs/libxfs/xfs_alloc_btree.c
> @@ -295,7 +295,7 @@ xfs_allocbt_verify(
> if (!xfs_verify_magic(bp, block->bb_magic))
> return __this_address;
>
> - if (xfs_sb_version_hascrc(&mp->m_sb)) {
> + if (xfs_has_crc(mp)) {
> fa = xfs_btree_sblock_v5hdr_verify(bp);
> if (fa)
> return fa;
> diff --git a/fs/xfs/libxfs/xfs_bmap_btree.c b/fs/xfs/libxfs/xfs_bmap_btree.c
> index 4565e471c55e..c04b2a697b29 100644
> --- a/fs/xfs/libxfs/xfs_bmap_btree.c
> +++ b/fs/xfs/libxfs/xfs_bmap_btree.c
> @@ -428,7 +428,7 @@ xfs_bmbt_verify(
> if (!xfs_verify_magic(bp, block->bb_magic))
> return __this_address;
>
> - if (xfs_sb_version_hascrc(&mp->m_sb)) {
> + if (xfs_has_crc(mp)) {
> /*
> * XXX: need a better way of verifying the owner here. Right now
> * just make sure there has been one set.
> diff --git a/fs/xfs/libxfs/xfs_btree.c b/fs/xfs/libxfs/xfs_btree.c
> index 08b58135b424..393c9438d5a7 100644
> --- a/fs/xfs/libxfs/xfs_btree.c
> +++ b/fs/xfs/libxfs/xfs_btree.c
> @@ -273,7 +273,7 @@ xfs_btree_lblock_calc_crc(
> struct xfs_btree_block *block = XFS_BUF_TO_BLOCK(bp);
> struct xfs_buf_log_item *bip = bp->b_log_item;
>
> - if (!xfs_sb_version_hascrc(&bp->b_mount->m_sb))
> + if (!xfs_has_crc(bp->b_mount))
> return;
> if (bip)
> block->bb_u.l.bb_lsn = cpu_to_be64(bip->bli_item.li_lsn);
> @@ -311,7 +311,7 @@ xfs_btree_sblock_calc_crc(
> struct xfs_btree_block *block = XFS_BUF_TO_BLOCK(bp);
> struct xfs_buf_log_item *bip = bp->b_log_item;
>
> - if (!xfs_sb_version_hascrc(&bp->b_mount->m_sb))
> + if (!xfs_has_crc(bp->b_mount))
> return;
> if (bip)
> block->bb_u.s.bb_lsn = cpu_to_be64(bip->bli_item.li_lsn);
> @@ -1749,7 +1749,7 @@ xfs_btree_lookup_get_block(
> return error;
>
> /* Check the inode owner since the verifiers don't. */
> - if (xfs_sb_version_hascrc(&cur->bc_mp->m_sb) &&
> + if (xfs_has_crc(cur->bc_mp) &&
> !(cur->bc_ino.flags & XFS_BTCUR_BMBT_INVALID_OWNER) &&
> (cur->bc_flags & XFS_BTREE_LONG_PTRS) &&
> be64_to_cpu((*blkp)->bb_u.l.bb_owner) !=
> diff --git a/fs/xfs/libxfs/xfs_da_btree.c b/fs/xfs/libxfs/xfs_da_btree.c
> index 0a8cde1fbe0d..99f81f6bb306 100644
> --- a/fs/xfs/libxfs/xfs_da_btree.c
> +++ b/fs/xfs/libxfs/xfs_da_btree.c
> @@ -129,7 +129,7 @@ xfs_da3_node_hdr_from_disk(
> struct xfs_da3_icnode_hdr *to,
> struct xfs_da_intnode *from)
> {
> - if (xfs_sb_version_hascrc(&mp->m_sb)) {
> + if (xfs_has_crc(mp)) {
> struct xfs_da3_intnode *from3 = (struct xfs_da3_intnode *)from;
>
> to->forw = be32_to_cpu(from3->hdr.info.hdr.forw);
> @@ -156,7 +156,7 @@ xfs_da3_node_hdr_to_disk(
> struct xfs_da_intnode *to,
> struct xfs_da3_icnode_hdr *from)
> {
> - if (xfs_sb_version_hascrc(&mp->m_sb)) {
> + if (xfs_has_crc(mp)) {
> struct xfs_da3_intnode *to3 = (struct xfs_da3_intnode *)to;
>
> ASSERT(from->magic == XFS_DA3_NODE_MAGIC);
> @@ -191,7 +191,7 @@ xfs_da3_blkinfo_verify(
> if (!xfs_verify_magic16(bp, hdr->magic))
> return __this_address;
>
> - if (xfs_sb_version_hascrc(&mp->m_sb)) {
> + if (xfs_has_crc(mp)) {
> if (!uuid_equal(&hdr3->uuid, &mp->m_sb.sb_meta_uuid))
> return __this_address;
> if (be64_to_cpu(hdr3->blkno) != bp->b_bn)
> diff --git a/fs/xfs/libxfs/xfs_dir2.c b/fs/xfs/libxfs/xfs_dir2.c
> index 050bdcc4fe73..50546eadaae2 100644
> --- a/fs/xfs/libxfs/xfs_dir2.c
> +++ b/fs/xfs/libxfs/xfs_dir2.c
> @@ -115,7 +115,7 @@ xfs_da_mount(
> dageo->fsblog = mp->m_sb.sb_blocklog;
> dageo->blksize = xfs_dir2_dirblock_bytes(&mp->m_sb);
> dageo->fsbcount = 1 << mp->m_sb.sb_dirblklog;
> - if (xfs_sb_version_hascrc(&mp->m_sb)) {
> + if (xfs_has_crc(mp)) {
> dageo->node_hdr_size = sizeof(struct xfs_da3_node_hdr);
> dageo->leaf_hdr_size = sizeof(struct xfs_dir3_leaf_hdr);
> dageo->free_hdr_size = sizeof(struct xfs_dir3_free_hdr);
> @@ -730,7 +730,7 @@ xfs_dir2_hashname(
> struct xfs_mount *mp,
> struct xfs_name *name)
> {
> - if (unlikely(xfs_sb_version_hasasciici(&mp->m_sb)))
> + if (unlikely(xfs_has_asciici(mp)))
> return xfs_ascii_ci_hashname(name);
> return xfs_da_hashname(name->name, name->len);
> }
> @@ -741,7 +741,7 @@ xfs_dir2_compname(
> const unsigned char *name,
> int len)
> {
> - if (unlikely(xfs_sb_version_hasasciici(&args->dp->i_mount->m_sb)))
> + if (unlikely(xfs_has_asciici(args->dp->i_mount)))
> return xfs_ascii_ci_compname(args, name, len);
> return xfs_da_compname(args, name, len);
> }
> diff --git a/fs/xfs/libxfs/xfs_dir2_block.c b/fs/xfs/libxfs/xfs_dir2_block.c
> index 49e61ca1045b..41e406067f91 100644
> --- a/fs/xfs/libxfs/xfs_dir2_block.c
> +++ b/fs/xfs/libxfs/xfs_dir2_block.c
> @@ -53,7 +53,7 @@ xfs_dir3_block_verify(
> if (!xfs_verify_magic(bp, hdr3->magic))
> return __this_address;
>
> - if (xfs_sb_version_hascrc(&mp->m_sb)) {
> + if (xfs_has_crc(mp)) {
> if (!uuid_equal(&hdr3->uuid, &mp->m_sb.sb_meta_uuid))
> return __this_address;
> if (be64_to_cpu(hdr3->blkno) != bp->b_bn)
> @@ -121,7 +121,7 @@ xfs_dir3_block_header_check(
> {
> struct xfs_mount *mp = dp->i_mount;
>
> - if (xfs_sb_version_hascrc(&mp->m_sb)) {
> + if (xfs_has_crc(mp)) {
> struct xfs_dir3_blk_hdr *hdr3 = bp->b_addr;
>
> if (be64_to_cpu(hdr3->owner) != dp->i_ino)
> diff --git a/fs/xfs/libxfs/xfs_dir2_data.c b/fs/xfs/libxfs/xfs_dir2_data.c
> index 920bd13512a8..c90180f2ba5c 100644
> --- a/fs/xfs/libxfs/xfs_dir2_data.c
> +++ b/fs/xfs/libxfs/xfs_dir2_data.c
> @@ -29,7 +29,7 @@ xfs_dir2_data_bestfree_p(
> struct xfs_mount *mp,
> struct xfs_dir2_data_hdr *hdr)
> {
> - if (xfs_sb_version_hascrc(&mp->m_sb))
> + if (xfs_has_crc(mp))
> return ((struct xfs_dir3_data_hdr *)hdr)->best_free;
> return hdr->bestfree;
> }
> @@ -51,7 +51,7 @@ xfs_dir2_data_get_ftype(
> struct xfs_mount *mp,
> struct xfs_dir2_data_entry *dep)
> {
> - if (xfs_sb_version_hasftype(&mp->m_sb)) {
> + if (xfs_has_ftype(mp)) {
> uint8_t ftype = dep->name[dep->namelen];
>
> if (likely(ftype < XFS_DIR3_FT_MAX))
> @@ -70,7 +70,7 @@ xfs_dir2_data_put_ftype(
> ASSERT(ftype < XFS_DIR3_FT_MAX);
> ASSERT(dep->namelen != 0);
>
> - if (xfs_sb_version_hasftype(&mp->m_sb))
> + if (xfs_has_ftype(mp))
> dep->name[dep->namelen] = ftype;
> }
>
> @@ -297,7 +297,7 @@ xfs_dir3_data_verify(
> if (!xfs_verify_magic(bp, hdr3->magic))
> return __this_address;
>
> - if (xfs_sb_version_hascrc(&mp->m_sb)) {
> + if (xfs_has_crc(mp)) {
> if (!uuid_equal(&hdr3->uuid, &mp->m_sb.sb_meta_uuid))
> return __this_address;
> if (be64_to_cpu(hdr3->blkno) != bp->b_bn)
> @@ -401,7 +401,7 @@ xfs_dir3_data_header_check(
> {
> struct xfs_mount *mp = dp->i_mount;
>
> - if (xfs_sb_version_hascrc(&mp->m_sb)) {
> + if (xfs_has_crc(mp)) {
> struct xfs_dir3_data_hdr *hdr3 = bp->b_addr;
>
> if (be64_to_cpu(hdr3->hdr.owner) != dp->i_ino)
> diff --git a/fs/xfs/libxfs/xfs_dir2_leaf.c b/fs/xfs/libxfs/xfs_dir2_leaf.c
> index 40ac411acf03..d03db9cde271 100644
> --- a/fs/xfs/libxfs/xfs_dir2_leaf.c
> +++ b/fs/xfs/libxfs/xfs_dir2_leaf.c
> @@ -37,7 +37,7 @@ xfs_dir2_leaf_hdr_from_disk(
> struct xfs_dir3_icleaf_hdr *to,
> struct xfs_dir2_leaf *from)
> {
> - if (xfs_sb_version_hascrc(&mp->m_sb)) {
> + if (xfs_has_crc(mp)) {
> struct xfs_dir3_leaf *from3 = (struct xfs_dir3_leaf *)from;
>
> to->forw = be32_to_cpu(from3->hdr.info.hdr.forw);
> @@ -68,7 +68,7 @@ xfs_dir2_leaf_hdr_to_disk(
> struct xfs_dir2_leaf *to,
> struct xfs_dir3_icleaf_hdr *from)
> {
> - if (xfs_sb_version_hascrc(&mp->m_sb)) {
> + if (xfs_has_crc(mp)) {
> struct xfs_dir3_leaf *to3 = (struct xfs_dir3_leaf *)to;
>
> ASSERT(from->magic == XFS_DIR3_LEAF1_MAGIC ||
> diff --git a/fs/xfs/libxfs/xfs_dir2_node.c b/fs/xfs/libxfs/xfs_dir2_node.c
> index a2ee1d48519c..fbd2de8b3cf2 100644
> --- a/fs/xfs/libxfs/xfs_dir2_node.c
> +++ b/fs/xfs/libxfs/xfs_dir2_node.c
> @@ -247,7 +247,7 @@ xfs_dir2_free_hdr_from_disk(
> struct xfs_dir3_icfree_hdr *to,
> struct xfs_dir2_free *from)
> {
> - if (xfs_sb_version_hascrc(&mp->m_sb)) {
> + if (xfs_has_crc(mp)) {
> struct xfs_dir3_free *from3 = (struct xfs_dir3_free *)from;
>
> to->magic = be32_to_cpu(from3->hdr.hdr.magic);
> @@ -274,7 +274,7 @@ xfs_dir2_free_hdr_to_disk(
> struct xfs_dir2_free *to,
> struct xfs_dir3_icfree_hdr *from)
> {
> - if (xfs_sb_version_hascrc(&mp->m_sb)) {
> + if (xfs_has_crc(mp)) {
> struct xfs_dir3_free *to3 = (struct xfs_dir3_free *)to;
>
> ASSERT(from->magic == XFS_DIR3_FREE_MAGIC);
> diff --git a/fs/xfs/libxfs/xfs_dir2_priv.h b/fs/xfs/libxfs/xfs_dir2_priv.h
> index 94943ce49cab..711709a2aa53 100644
> --- a/fs/xfs/libxfs/xfs_dir2_priv.h
> +++ b/fs/xfs/libxfs/xfs_dir2_priv.h
> @@ -196,7 +196,7 @@ xfs_dir2_data_entsize(
>
> len = offsetof(struct xfs_dir2_data_entry, name[0]) + namelen +
> sizeof(xfs_dir2_data_off_t) /* tag */;
> - if (xfs_sb_version_hasftype(&mp->m_sb))
> + if (xfs_has_ftype(mp))
> len += sizeof(uint8_t);
> return round_up(len, XFS_DIR2_DATA_ALIGN);
> }
> diff --git a/fs/xfs/libxfs/xfs_dir2_sf.c b/fs/xfs/libxfs/xfs_dir2_sf.c
> index 1afe09910bee..5a97a87eaa20 100644
> --- a/fs/xfs/libxfs/xfs_dir2_sf.c
> +++ b/fs/xfs/libxfs/xfs_dir2_sf.c
> @@ -48,7 +48,7 @@ xfs_dir2_sf_entsize(
> count += sizeof(struct xfs_dir2_sf_entry); /* namelen + offset */
> count += hdr->i8count ? XFS_INO64_SIZE : XFS_INO32_SIZE; /* ino # */
>
> - if (xfs_sb_version_hasftype(&mp->m_sb))
> + if (xfs_has_ftype(mp))
> count += sizeof(uint8_t);
> return count;
> }
> @@ -76,7 +76,7 @@ xfs_dir2_sf_get_ino(
> {
> uint8_t *from = sfep->name + sfep->namelen;
>
> - if (xfs_sb_version_hasftype(&mp->m_sb))
> + if (xfs_has_ftype(mp))
> from++;
>
> if (!hdr->i8count)
> @@ -95,7 +95,7 @@ xfs_dir2_sf_put_ino(
>
> ASSERT(ino <= XFS_MAXINUMBER);
>
> - if (xfs_sb_version_hasftype(&mp->m_sb))
> + if (xfs_has_ftype(mp))
> to++;
>
> if (hdr->i8count)
> @@ -135,7 +135,7 @@ xfs_dir2_sf_get_ftype(
> struct xfs_mount *mp,
> struct xfs_dir2_sf_entry *sfep)
> {
> - if (xfs_sb_version_hasftype(&mp->m_sb)) {
> + if (xfs_has_ftype(mp)) {
> uint8_t ftype = sfep->name[sfep->namelen];
>
> if (ftype < XFS_DIR3_FT_MAX)
> @@ -153,7 +153,7 @@ xfs_dir2_sf_put_ftype(
> {
> ASSERT(ftype < XFS_DIR3_FT_MAX);
>
> - if (xfs_sb_version_hasftype(&mp->m_sb))
> + if (xfs_has_ftype(mp))
> sfep->name[sfep->namelen] = ftype;
> }
>
> diff --git a/fs/xfs/libxfs/xfs_dquot_buf.c b/fs/xfs/libxfs/xfs_dquot_buf.c
> index edd0f413f030..deeb74becabc 100644
> --- a/fs/xfs/libxfs/xfs_dquot_buf.c
> +++ b/fs/xfs/libxfs/xfs_dquot_buf.c
> @@ -70,7 +70,7 @@ xfs_dquot_verify(
> return __this_address;
>
> if ((ddq->d_type & XFS_DQTYPE_BIGTIME) &&
> - !xfs_sb_version_hasbigtime(&mp->m_sb))
> + !xfs_has_bigtime(mp))
> return __this_address;
>
> if ((ddq->d_type & XFS_DQTYPE_BIGTIME) && !ddq->d_id)
> diff --git a/fs/xfs/libxfs/xfs_ialloc.c b/fs/xfs/libxfs/xfs_ialloc.c
> index 41bc382a91ec..51768f8999e5 100644
> --- a/fs/xfs/libxfs/xfs_ialloc.c
> +++ b/fs/xfs/libxfs/xfs_ialloc.c
> @@ -302,7 +302,7 @@ xfs_ialloc_inode_init(
> * That means for v3 inode we log the entire buffer rather than just the
> * inode cores.
> */
> - if (xfs_sb_version_has_v3inode(&mp->m_sb)) {
> + if (xfs_has_v3inodes(mp)) {
> version = 3;
> ino = XFS_AGINO_TO_INO(mp, agno, XFS_AGB_TO_AGINO(mp, agbno));
>
> @@ -635,7 +635,7 @@ xfs_ialloc_ag_alloc(
>
> #ifdef DEBUG
> /* randomly do sparse inode allocations */
> - if (xfs_sb_version_hassparseinodes(&tp->t_mountp->m_sb) &&
> + if (xfs_has_sparseinodes(tp->t_mountp) &&
> igeo->ialloc_min_blks < igeo->ialloc_blks)
> do_sparse = prandom_u32() & 1;
> #endif
> @@ -754,7 +754,7 @@ xfs_ialloc_ag_alloc(
> * Finally, try a sparse allocation if the filesystem supports it and
> * the sparse allocation length is smaller than a full chunk.
> */
> - if (xfs_sb_version_hassparseinodes(&args.mp->m_sb) &&
> + if (xfs_has_sparseinodes(args.mp) &&
> igeo->ialloc_min_blks < igeo->ialloc_blks &&
> args.fsbno == NULLFSBLOCK) {
> sparse_alloc:
> @@ -856,7 +856,7 @@ xfs_ialloc_ag_alloc(
> * from the previous call. Set merge false to replace any
> * existing record with this one.
> */
> - if (xfs_sb_version_hasfinobt(&args.mp->m_sb)) {
> + if (xfs_has_finobt(args.mp)) {
> error = xfs_inobt_insert_sprec(args.mp, tp, agbp, pag,
> XFS_BTNUM_FINO, &rec, false);
> if (error)
> @@ -869,7 +869,7 @@ xfs_ialloc_ag_alloc(
> if (error)
> return error;
>
> - if (xfs_sb_version_hasfinobt(&args.mp->m_sb)) {
> + if (xfs_has_finobt(args.mp)) {
> error = xfs_inobt_insert(args.mp, tp, agbp, pag, newino,
> newlen, XFS_BTNUM_FINO);
> if (error)
> @@ -1448,7 +1448,7 @@ xfs_dialloc_ag(
> int offset;
> int i;
>
> - if (!xfs_sb_version_hasfinobt(&mp->m_sb))
> + if (!xfs_has_finobt(mp))
> return xfs_dialloc_ag_inobt(tp, agbp, pag, parent, inop);
>
> /*
> @@ -2187,7 +2187,7 @@ xfs_difree(
> /*
> * Fix up the free inode btree.
> */
> - if (xfs_sb_version_hasfinobt(&mp->m_sb)) {
> + if (xfs_has_finobt(mp)) {
> error = xfs_difree_finobt(mp, tp, agbp, pag, agino, &rec);
> if (error)
> goto error0;
> @@ -2771,7 +2771,7 @@ xfs_ialloc_setup_geometry(
> uint inodes;
>
> igeo->new_diflags2 = 0;
> - if (xfs_sb_version_hasbigtime(&mp->m_sb))
> + if (xfs_has_bigtime(mp))
> igeo->new_diflags2 |= XFS_DIFLAG2_BIGTIME;
>
> /* Compute inode btree geometry. */
> @@ -2826,7 +2826,7 @@ xfs_ialloc_setup_geometry(
> * cannot change the behavior.
> */
> igeo->inode_cluster_size_raw = XFS_INODE_BIG_CLUSTER_SIZE;
> - if (xfs_sb_version_has_v3inode(&mp->m_sb)) {
> + if (xfs_has_v3inodes(mp)) {
> int new_size = igeo->inode_cluster_size_raw;
>
> new_size *= mp->m_sb.sb_inodesize / XFS_DINODE_MIN_SIZE;
> @@ -2844,7 +2844,7 @@ xfs_ialloc_setup_geometry(
> igeo->inodes_per_cluster = XFS_FSB_TO_INO(mp, igeo->blocks_per_cluster);
>
> /* Calculate inode cluster alignment. */
> - if (xfs_sb_version_hasalign(&mp->m_sb) &&
> + if (xfs_has_align(mp) &&
> mp->m_sb.sb_inoalignmt >= igeo->blocks_per_cluster)
> igeo->cluster_align = mp->m_sb.sb_inoalignmt;
> else
> @@ -2892,15 +2892,15 @@ xfs_ialloc_calc_rootino(
> first_bno += xfs_alloc_min_freelist(mp, NULL);
>
> /* ...the free inode btree root... */
> - if (xfs_sb_version_hasfinobt(&mp->m_sb))
> + if (xfs_has_finobt(mp))
> first_bno++;
>
> /* ...the reverse mapping btree root... */
> - if (xfs_sb_version_hasrmapbt(&mp->m_sb))
> + if (xfs_has_rmapbt(mp))
> first_bno++;
>
> /* ...the reference count btree... */
> - if (xfs_sb_version_hasreflink(&mp->m_sb))
> + if (xfs_has_reflink(mp))
> first_bno++;
>
> /*
> @@ -2918,9 +2918,9 @@ xfs_ialloc_calc_rootino(
> * Now round first_bno up to whatever allocation alignment is given
> * by the filesystem or was passed in.
> */
> - if (xfs_sb_version_hasdalign(&mp->m_sb) && igeo->ialloc_align > 0)
> + if (xfs_has_dalign(mp) && igeo->ialloc_align > 0)
> first_bno = roundup(first_bno, sunit);
> - else if (xfs_sb_version_hasalign(&mp->m_sb) &&
> + else if (xfs_has_align(mp) &&
> mp->m_sb.sb_inoalignmt > 1)
> first_bno = roundup(first_bno, mp->m_sb.sb_inoalignmt);
>
> diff --git a/fs/xfs/libxfs/xfs_ialloc_btree.c b/fs/xfs/libxfs/xfs_ialloc_btree.c
> index 4a599c8ca33a..f1384c280059 100644
> --- a/fs/xfs/libxfs/xfs_ialloc_btree.c
> +++ b/fs/xfs/libxfs/xfs_ialloc_btree.c
> @@ -76,7 +76,7 @@ xfs_inobt_mod_blockcount(
> struct xfs_buf *agbp = cur->bc_ag.agbp;
> struct xfs_agi *agi = agbp->b_addr;
>
> - if (!xfs_sb_version_hasinobtcounts(&cur->bc_mp->m_sb))
> + if (!xfs_has_inobtcounts(cur->bc_mp))
> return;
>
> if (cur->bc_btnum == XFS_BTNUM_FINO)
> @@ -292,7 +292,7 @@ xfs_inobt_verify(
> * but beware of the landmine (i.e. need to check pag->pagi_init) if we
> * ever do.
> */
> - if (xfs_sb_version_hascrc(&mp->m_sb)) {
> + if (xfs_has_crc(mp)) {
> fa = xfs_btree_sblock_v5hdr_verify(bp);
> if (fa)
> return fa;
> @@ -511,7 +511,7 @@ xfs_inobt_commit_staged_btree(
> fields = XFS_AGI_ROOT | XFS_AGI_LEVEL;
> agi->agi_root = cpu_to_be32(afake->af_root);
> agi->agi_level = cpu_to_be32(afake->af_levels);
> - if (xfs_sb_version_hasinobtcounts(&cur->bc_mp->m_sb)) {
> + if (xfs_has_inobtcounts(cur->bc_mp)) {
> agi->agi_iblocks = cpu_to_be32(afake->af_blocks);
> fields |= XFS_AGI_IBLOCKS;
> }
> @@ -521,7 +521,7 @@ xfs_inobt_commit_staged_btree(
> fields = XFS_AGI_FREE_ROOT | XFS_AGI_FREE_LEVEL;
> agi->agi_free_root = cpu_to_be32(afake->af_root);
> agi->agi_free_level = cpu_to_be32(afake->af_levels);
> - if (xfs_sb_version_hasinobtcounts(&cur->bc_mp->m_sb)) {
> + if (xfs_has_inobtcounts(cur->bc_mp)) {
> agi->agi_fblocks = cpu_to_be32(afake->af_blocks);
> fields |= XFS_AGI_IBLOCKS;
> }
> @@ -740,7 +740,7 @@ xfs_finobt_calc_reserves(
> if (!xfs_has_finobt(mp))
> return 0;
>
> - if (xfs_sb_version_hasinobtcounts(&mp->m_sb))
> + if (xfs_has_inobtcounts(mp))
> error = xfs_finobt_read_blocks(mp, tp, pag, &tree_len);
> else
> error = xfs_inobt_count_blocks(mp, tp, pag, XFS_BTNUM_FINO,
> diff --git a/fs/xfs/libxfs/xfs_inode_buf.c b/fs/xfs/libxfs/xfs_inode_buf.c
> index 5ae5011b72ab..08b4413d3ac4 100644
> --- a/fs/xfs/libxfs/xfs_inode_buf.c
> +++ b/fs/xfs/libxfs/xfs_inode_buf.c
> @@ -192,7 +192,7 @@ xfs_inode_from_disk(
> * inode. If the inode is unused, mode is zero and we shouldn't mess
> * with the uninitialized part of it.
> */
> - if (!xfs_sb_version_has_v3inode(&ip->i_mount->m_sb))
> + if (!xfs_has_v3inodes(ip->i_mount))
> ip->i_flushiter = be16_to_cpu(from->di_flushiter);
> inode->i_generation = be32_to_cpu(from->di_gen);
> inode->i_mode = be16_to_cpu(from->di_mode);
> @@ -235,7 +235,7 @@ xfs_inode_from_disk(
> if (from->di_dmevmask || from->di_dmstate)
> xfs_iflags_set(ip, XFS_IPRESERVE_DM_FIELDS);
>
> - if (xfs_sb_version_has_v3inode(&ip->i_mount->m_sb)) {
> + if (xfs_has_v3inodes(ip->i_mount)) {
> inode_set_iversion_queried(inode,
> be64_to_cpu(from->di_changecount));
> ip->i_crtime = xfs_inode_from_disk_ts(from, from->di_crtime);
> @@ -313,7 +313,7 @@ xfs_inode_to_disk(
> to->di_aformat = xfs_ifork_format(ip->i_afp);
> to->di_flags = cpu_to_be16(ip->i_diflags);
>
> - if (xfs_sb_version_has_v3inode(&ip->i_mount->m_sb)) {
> + if (xfs_has_v3inodes(ip->i_mount)) {
> to->di_version = 3;
> to->di_changecount = cpu_to_be64(inode_peek_iversion(inode));
> to->di_crtime = xfs_inode_to_disk_ts(ip, ip->i_crtime);
> @@ -413,7 +413,7 @@ xfs_dinode_verify(
>
> /* Verify v3 integrity information first */
> if (dip->di_version >= 3) {
> - if (!xfs_sb_version_has_v3inode(&mp->m_sb))
> + if (!xfs_has_v3inodes(mp))
> return __this_address;
> if (!xfs_verify_cksum((char *)dip, mp->m_sb.sb_inodesize,
> XFS_DINODE_CRC_OFF))
> @@ -534,7 +534,7 @@ xfs_dinode_verify(
>
> /* bigtime iflag can only happen on bigtime filesystems */
> if (xfs_dinode_has_bigtime(dip) &&
> - !xfs_sb_version_hasbigtime(&mp->m_sb))
> + !xfs_has_bigtime(mp))
> return __this_address;
>
> return NULL;
> diff --git a/fs/xfs/libxfs/xfs_log_format.h b/fs/xfs/libxfs/xfs_log_format.h
> index c01bd648e5ce..9ffb74ccde79 100644
> --- a/fs/xfs/libxfs/xfs_log_format.h
> +++ b/fs/xfs/libxfs/xfs_log_format.h
> @@ -425,7 +425,7 @@ struct xfs_log_dinode {
> };
>
> #define xfs_log_dinode_size(mp) \
> - (xfs_sb_version_has_v3inode(&(mp)->m_sb) ? \
> + (xfs_has_v3inodes((mp)) ? \
> sizeof(struct xfs_log_dinode) : \
> offsetof(struct xfs_log_dinode, di_next_unlinked))
>
> diff --git a/fs/xfs/libxfs/xfs_refcount.c b/fs/xfs/libxfs/xfs_refcount.c
> index 860a0c9801ba..d48fd879d3d9 100644
> --- a/fs/xfs/libxfs/xfs_refcount.c
> +++ b/fs/xfs/libxfs/xfs_refcount.c
> @@ -1253,7 +1253,7 @@ xfs_refcount_increase_extent(
> struct xfs_trans *tp,
> struct xfs_bmbt_irec *PREV)
> {
> - if (!xfs_sb_version_hasreflink(&tp->t_mountp->m_sb))
> + if (!xfs_has_reflink(tp->t_mountp))
> return;
>
> __xfs_refcount_add(tp, XFS_REFCOUNT_INCREASE, PREV->br_startblock,
> @@ -1268,7 +1268,7 @@ xfs_refcount_decrease_extent(
> struct xfs_trans *tp,
> struct xfs_bmbt_irec *PREV)
> {
> - if (!xfs_sb_version_hasreflink(&tp->t_mountp->m_sb))
> + if (!xfs_has_reflink(tp->t_mountp))
> return;
>
> __xfs_refcount_add(tp, XFS_REFCOUNT_DECREASE, PREV->br_startblock,
> @@ -1617,7 +1617,7 @@ xfs_refcount_alloc_cow_extent(
> {
> struct xfs_mount *mp = tp->t_mountp;
>
> - if (!xfs_sb_version_hasreflink(&mp->m_sb))
> + if (!xfs_has_reflink(mp))
> return;
>
> __xfs_refcount_add(tp, XFS_REFCOUNT_ALLOC_COW, fsb, len);
> @@ -1636,7 +1636,7 @@ xfs_refcount_free_cow_extent(
> {
> struct xfs_mount *mp = tp->t_mountp;
>
> - if (!xfs_sb_version_hasreflink(&mp->m_sb))
> + if (!xfs_has_reflink(mp))
> return;
>
> /* Remove rmap entry */
> diff --git a/fs/xfs/libxfs/xfs_sb.c b/fs/xfs/libxfs/xfs_sb.c
> index 2a01769b316a..a4ea6e2a38e2 100644
> --- a/fs/xfs/libxfs/xfs_sb.c
> +++ b/fs/xfs/libxfs/xfs_sb.c
> @@ -912,7 +912,7 @@ xfs_log_sb(
> * unclean shutdown, this will be corrected by log recovery rebuilding
> * the counters from the AGF block counts.
> */
> - if (xfs_sb_version_haslazysbcount(&mp->m_sb)) {
> + if (xfs_has_lazysbcount(mp)) {
> mp->m_sb.sb_icount = percpu_counter_sum(&mp->m_icount);
> mp->m_sb.sb_ifree = percpu_counter_sum(&mp->m_ifree);
> mp->m_sb.sb_fdblocks = percpu_counter_sum(&mp->m_fdblocks);
> diff --git a/fs/xfs/libxfs/xfs_trans_inode.c b/fs/xfs/libxfs/xfs_trans_inode.c
> index 8d595a5c4abd..6ba554c1e532 100644
> --- a/fs/xfs/libxfs/xfs_trans_inode.c
> +++ b/fs/xfs/libxfs/xfs_trans_inode.c
> @@ -136,7 +136,7 @@ xfs_trans_log_inode(
> * to upgrade this inode to bigtime format, do so now.
> */
> if ((flags & (XFS_ILOG_CORE | XFS_ILOG_TIMESTAMP)) &&
> - xfs_sb_version_hasbigtime(&ip->i_mount->m_sb) &&
> + xfs_has_bigtime(ip->i_mount) &&
> !xfs_inode_has_bigtime(ip)) {
> ip->i_diflags2 |= XFS_DIFLAG2_BIGTIME;
> flags |= XFS_ILOG_CORE;
> diff --git a/fs/xfs/libxfs/xfs_trans_resv.c b/fs/xfs/libxfs/xfs_trans_resv.c
> index 8bf7bc09bcaa..fa3a855b7e67 100644
> --- a/fs/xfs/libxfs/xfs_trans_resv.c
> +++ b/fs/xfs/libxfs/xfs_trans_resv.c
> @@ -187,7 +187,7 @@ xfs_calc_inode_chunk_res(
> XFS_FSB_TO_B(mp, 1));
> if (alloc) {
> /* icreate tx uses ordered buffers */
> - if (xfs_sb_version_has_v3inode(&mp->m_sb))
> + if (xfs_has_v3inodes(mp))
> return res;
> size = XFS_FSB_TO_B(mp, 1);
> }
> @@ -268,7 +268,7 @@ xfs_calc_write_reservation(
> xfs_calc_buf_res(3, mp->m_sb.sb_sectsize) +
> xfs_calc_buf_res(xfs_allocfree_log_count(mp, 2), blksz);
>
> - if (xfs_sb_version_hasrealtime(&mp->m_sb)) {
> + if (xfs_has_realtime(mp)) {
> t2 = xfs_calc_inode_res(mp, 1) +
> xfs_calc_buf_res(XFS_BM_MAXLEVELS(mp, XFS_DATA_FORK),
> blksz) +
> @@ -317,7 +317,7 @@ xfs_calc_itruncate_reservation(
> t2 = xfs_calc_buf_res(9, mp->m_sb.sb_sectsize) +
> xfs_calc_buf_res(xfs_allocfree_log_count(mp, 4), blksz);
>
> - if (xfs_sb_version_hasrealtime(&mp->m_sb)) {
> + if (xfs_has_realtime(mp)) {
> t3 = xfs_calc_buf_res(5, mp->m_sb.sb_sectsize) +
> xfs_calc_buf_res(xfs_rtalloc_log_count(mp, 2), blksz) +
> xfs_calc_buf_res(xfs_allocfree_log_count(mp, 2), blksz);
> diff --git a/fs/xfs/libxfs/xfs_trans_space.h b/fs/xfs/libxfs/xfs_trans_space.h
> index 7ad3659c5d2a..50332be34388 100644
> --- a/fs/xfs/libxfs/xfs_trans_space.h
> +++ b/fs/xfs/libxfs/xfs_trans_space.h
> @@ -57,8 +57,7 @@
> XFS_DAREMOVE_SPACE_RES(mp, XFS_DATA_FORK)
> #define XFS_IALLOC_SPACE_RES(mp) \
> (M_IGEO(mp)->ialloc_blks + \
> - ((xfs_sb_version_hasfinobt(&mp->m_sb) ? 2 : 1) * \
> - M_IGEO(mp)->inobt_maxlevels))
> + ((xfs_has_finobt(mp) ? 2 : 1) * M_IGEO(mp)->inobt_maxlevels))
>
> /*
> * Space reservation values for various transactions.
> @@ -94,8 +93,7 @@
> #define XFS_SYMLINK_SPACE_RES(mp,nl,b) \
> (XFS_IALLOC_SPACE_RES(mp) + XFS_DIRENTER_SPACE_RES(mp,nl) + (b))
> #define XFS_IFREE_SPACE_RES(mp) \
> - (xfs_sb_version_hasfinobt(&mp->m_sb) ? \
> - M_IGEO(mp)->inobt_maxlevels : 0)
> + (xfs_has_finobt(mp) ? M_IGEO(mp)->inobt_maxlevels : 0)
>
>
> #endif /* __XFS_TRANS_SPACE_H__ */
> diff --git a/fs/xfs/scrub/agheader.c b/fs/xfs/scrub/agheader.c
> index 417f07d4dfd0..549e6dda16e6 100644
> --- a/fs/xfs/scrub/agheader.c
> +++ b/fs/xfs/scrub/agheader.c
> @@ -419,7 +419,7 @@ xchk_agf_xref_btreeblks(
> int error;
>
> /* agf_btreeblks didn't exist before lazysbcount */
> - if (!xfs_sb_version_haslazysbcount(&sc->mp->m_sb))
> + if (!xfs_has_lazysbcount(sc->mp))
> return;
>
> /* Check agf_rmap_blocks; set up for agf_btreeblks check */
> @@ -587,7 +587,7 @@ xchk_agf(
> xchk_block_set_corrupt(sc, sc->sa.agf_bp);
> if (pag->pagf_flcount != be32_to_cpu(agf->agf_flcount))
> xchk_block_set_corrupt(sc, sc->sa.agf_bp);
> - if (xfs_sb_version_haslazysbcount(&sc->mp->m_sb) &&
> + if (xfs_has_lazysbcount(sc->mp) &&
> pag->pagf_btreeblks != be32_to_cpu(agf->agf_btreeblks))
> xchk_block_set_corrupt(sc, sc->sa.agf_bp);
> xfs_perag_put(pag);
> @@ -787,7 +787,7 @@ xchk_agi_xref_fiblocks(
> xfs_agblock_t blocks;
> int error = 0;
>
> - if (!xfs_sb_version_hasinobtcounts(&sc->mp->m_sb))
> + if (!xfs_has_inobtcounts(sc->mp))
> return;
>
> if (sc->sa.ino_cur) {
> diff --git a/fs/xfs/scrub/agheader_repair.c b/fs/xfs/scrub/agheader_repair.c
> index df594cebb319..ae1e9a47e24c 100644
> --- a/fs/xfs/scrub/agheader_repair.c
> +++ b/fs/xfs/scrub/agheader_repair.c
> @@ -811,7 +811,7 @@ xrep_agi_calc_from_btrees(
> error = xfs_ialloc_count_inodes(cur, &count, &freecount);
> if (error)
> goto err;
> - if (xfs_sb_version_hasinobtcounts(&mp->m_sb)) {
> + if (xfs_has_inobtcounts(mp)) {
> xfs_agblock_t blocks;
>
> error = xfs_btree_count_blocks(cur, &blocks);
> @@ -824,8 +824,7 @@ xrep_agi_calc_from_btrees(
> agi->agi_count = cpu_to_be32(count);
> agi->agi_freecount = cpu_to_be32(freecount);
>
> - if (xfs_sb_version_hasfinobt(&mp->m_sb) &&
> - xfs_sb_version_hasinobtcounts(&mp->m_sb)) {
> + if (xfs_has_finobt(mp) && xfs_has_inobtcounts(mp)) {
> xfs_agblock_t blocks;
>
> cur = xfs_inobt_init_cursor(mp, sc->tp, agi_bp,
> diff --git a/fs/xfs/scrub/bmap.c b/fs/xfs/scrub/bmap.c
> index 1c7d090f9fd0..aa485b473622 100644
> --- a/fs/xfs/scrub/bmap.c
> +++ b/fs/xfs/scrub/bmap.c
> @@ -659,8 +659,7 @@ xchk_bmap(
> }
> break;
> case XFS_ATTR_FORK:
> - if (!xfs_sb_version_hasattr(&mp->m_sb) &&
> - !xfs_sb_version_hasattr2(&mp->m_sb))
> + if (!xfs_has_attr(mp) && !xfs_has_attr2(mp))
> xchk_ino_set_corrupt(sc, sc->ip->i_ino);
> break;
> default:
> diff --git a/fs/xfs/scrub/common.c b/fs/xfs/scrub/common.c
> index d4599a71a5b2..c1e301bdce68 100644
> --- a/fs/xfs/scrub/common.c
> +++ b/fs/xfs/scrub/common.c
> @@ -484,21 +484,21 @@ xchk_ag_btcur_init(
> }
>
> /* Set up a finobt cursor for cross-referencing. */
> - if (sa->agi_bp && xfs_sb_version_hasfinobt(&mp->m_sb) &&
> + if (sa->agi_bp && xfs_has_finobt(mp) &&
> xchk_ag_btree_healthy_enough(sc, sa->pag, XFS_BTNUM_FINO)) {
> sa->fino_cur = xfs_inobt_init_cursor(mp, sc->tp, sa->agi_bp,
> sa->pag, XFS_BTNUM_FINO);
> }
>
> /* Set up a rmapbt cursor for cross-referencing. */
> - if (sa->agf_bp && xfs_sb_version_hasrmapbt(&mp->m_sb) &&
> + if (sa->agf_bp && xfs_has_rmapbt(mp) &&
> xchk_ag_btree_healthy_enough(sc, sa->pag, XFS_BTNUM_RMAP)) {
> sa->rmap_cur = xfs_rmapbt_init_cursor(mp, sc->tp, sa->agf_bp,
> sa->pag);
> }
>
> /* Set up a refcountbt cursor for cross-referencing. */
> - if (sa->agf_bp && xfs_sb_version_hasreflink(&mp->m_sb) &&
> + if (sa->agf_bp && xfs_has_reflink(mp) &&
> xchk_ag_btree_healthy_enough(sc, sa->pag, XFS_BTNUM_REFC)) {
> sa->refc_cur = xfs_refcountbt_init_cursor(mp, sc->tp,
> sa->agf_bp, sa->pag);
> diff --git a/fs/xfs/scrub/fscounters.c b/fs/xfs/scrub/fscounters.c
> index fd7941e04ae1..bd3521e7582b 100644
> --- a/fs/xfs/scrub/fscounters.c
> +++ b/fs/xfs/scrub/fscounters.c
> @@ -207,7 +207,7 @@ xchk_fscount_aggregate_agcounts(
> /* Add up the free/freelist/bnobt/cntbt blocks */
> fsc->fdblocks += pag->pagf_freeblks;
> fsc->fdblocks += pag->pagf_flcount;
> - if (xfs_sb_version_haslazysbcount(&sc->mp->m_sb)) {
> + if (xfs_has_lazysbcount(sc->mp)) {
> fsc->fdblocks += pag->pagf_btreeblks;
> } else {
> error = xchk_fscount_btreeblks(sc, fsc, agno);
> diff --git a/fs/xfs/scrub/inode.c b/fs/xfs/scrub/inode.c
> index 23950e384fda..d4bb36746d22 100644
> --- a/fs/xfs/scrub/inode.c
> +++ b/fs/xfs/scrub/inode.c
> @@ -185,8 +185,7 @@ xchk_inode_flags2(
> goto bad;
>
> /* no bigtime iflag without the bigtime feature */
> - if (xfs_dinode_has_bigtime(dip) &&
> - !xfs_sb_version_hasbigtime(&mp->m_sb))
> + if (xfs_dinode_has_bigtime(dip) && !xfs_has_bigtime(mp))
> goto bad;
>
> return;
> diff --git a/fs/xfs/scrub/quota.c b/fs/xfs/scrub/quota.c
> index acbb9839d42f..c35c8b33fd21 100644
> --- a/fs/xfs/scrub/quota.c
> +++ b/fs/xfs/scrub/quota.c
> @@ -127,7 +127,7 @@ xchk_quota_item(
> * a reflink filesystem we're allowed to exceed physical space
> * if there are no quota limits.
> */
> - if (xfs_sb_version_hasreflink(&mp->m_sb)) {
> + if (xfs_has_reflink(mp)) {
> if (mp->m_sb.sb_dblocks < dq->q_blk.count)
> xchk_fblock_set_warning(sc, XFS_DATA_FORK,
> offset);
> diff --git a/fs/xfs/xfs_reflink.h b/fs/xfs/xfs_reflink.h
> index 487b00434b96..bea65f2fe657 100644
> --- a/fs/xfs/xfs_reflink.h
> +++ b/fs/xfs/xfs_reflink.h
> @@ -8,8 +8,7 @@
>
> static inline bool xfs_is_always_cow_inode(struct xfs_inode *ip)
> {
> - return ip->i_mount->m_always_cow &&
> - xfs_sb_version_hasreflink(&ip->i_mount->m_sb);
> + return ip->i_mount->m_always_cow && xfs_has_reflink(ip->i_mount);
> }
>
> static inline bool xfs_is_cow_inode(struct xfs_inode *ip)
> diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c
> index 2463848f92ff..8dd8398846fa 100644
> --- a/fs/xfs/xfs_super.c
> +++ b/fs/xfs/xfs_super.c
> @@ -1444,7 +1444,7 @@ xfs_fs_fill_super(
> }
>
> /* Filesystem claims it needs repair, so refuse the mount. */
> - if (xfs_sb_version_needsrepair(&mp->m_sb)) {
> + if (xfs_has_needsrepair(mp)) {
> xfs_warn(mp, "Filesystem needs repair. Please run xfs_repair.");
> error = -EFSCORRUPTED;
> goto out_free_sb;
> --
> 2.31.1
>
next prev parent reply other threads:[~2021-07-14 23:19 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-14 4:18 [PATCH 00/16] xfs: rework feature flags Dave Chinner
2021-07-14 4:18 ` [PATCH 01/16] xfs: sb verifier doesn't handle uncached sb buffer Dave Chinner
2021-07-14 6:43 ` Christoph Hellwig
2021-07-14 9:37 ` Dave Chinner
2021-07-14 22:44 ` Darrick J. Wong
2021-07-14 23:00 ` Dave Chinner
2021-07-14 23:03 ` Darrick J. Wong
2021-07-14 4:18 ` [PATCH 02/16] xfs: rename xfs_has_attr() Dave Chinner
2021-07-14 6:49 ` Christoph Hellwig
2021-07-14 22:46 ` Darrick J. Wong
2021-07-14 4:18 ` [PATCH 03/16] xfs: rework attr2 feature and mount options Dave Chinner
2021-07-14 6:58 ` Christoph Hellwig
2021-07-14 9:45 ` Dave Chinner
2021-07-15 5:55 ` Christoph Hellwig
2021-07-15 23:47 ` Dave Chinner
2021-07-16 9:43 ` Christoph Hellwig
2021-07-14 22:51 ` Darrick J. Wong
2021-07-14 4:19 ` [PATCH 04/16] xfs: reflect sb features in xfs_mount Dave Chinner
2021-07-14 7:01 ` Christoph Hellwig
2021-07-14 22:56 ` Darrick J. Wong
2021-07-14 23:07 ` Dave Chinner
2021-07-14 23:17 ` Darrick J. Wong
2021-07-14 4:19 ` [PATCH 05/16] xfs: replace xfs_sb_version checks with feature flag checks Dave Chinner
2021-07-14 7:03 ` Christoph Hellwig
2021-07-14 22:57 ` Darrick J. Wong
2021-07-14 4:19 ` [PATCH 06/16] xfs: consolidate mount option features in m_features Dave Chinner
2021-07-14 7:05 ` Christoph Hellwig
2021-07-14 9:55 ` Dave Chinner
2021-07-15 5:59 ` Christoph Hellwig
2021-07-15 23:43 ` Dave Chinner
2021-07-14 23:02 ` Darrick J. Wong
2021-07-14 4:19 ` [PATCH 07/16] xfs: convert mount flags to features Dave Chinner
2021-07-14 23:07 ` Darrick J. Wong
2021-07-14 4:19 ` [PATCH 08/16] xfs: convert remaining mount flags to state flags Dave Chinner
2021-07-14 23:10 ` Darrick J. Wong
2021-07-14 4:19 ` [PATCH 09/16] xfs: replace XFS_FORCED_SHUTDOWN with xfs_is_shutdown Dave Chinner
2021-07-14 23:11 ` Darrick J. Wong
2021-07-14 4:19 ` [PATCH 10/16] xfs: convert xfs_fs_geometry to use mount feature checks Dave Chinner
2021-07-14 7:11 ` Christoph Hellwig
2021-07-14 23:15 ` Darrick J. Wong
2021-07-14 23:35 ` Dave Chinner
2021-07-14 23:38 ` Darrick J. Wong
2021-07-14 4:19 ` [PATCH 11/16] xfs: open code sb verifier " Dave Chinner
2021-07-14 7:19 ` Christoph Hellwig
2021-07-16 0:26 ` Darrick J. Wong
2021-07-14 4:19 ` [PATCH 12/16] xfs: convert scrub to use mount-based " Dave Chinner
2021-07-14 23:18 ` Darrick J. Wong
2021-07-14 4:19 ` [PATCH 13/16] xfs: convert xfs_sb_version_has checks to use mount features Dave Chinner
2021-07-14 23:19 ` Darrick J. Wong [this message]
2021-07-14 4:19 ` [PATCH 14/16] xfs: remove unused xfs_sb_version_has wrappers Dave Chinner
2021-07-14 23:21 ` Darrick J. Wong
2021-07-14 4:19 ` [PATCH 15/16] xfs: introduce xfs_sb_is_v5 helper Dave Chinner
2021-07-14 23:24 ` Darrick J. Wong
2021-07-14 4:19 ` [PATCH 16/16] xfs: kill xfs_sb_version_has_v3inode() Dave Chinner
2021-07-14 23:24 ` Darrick J. Wong
-- strict thread matches above, loose matches on Subject: below --
2021-08-10 5:24 [PATCH 00/16 v2] xfs: rework feature flags Dave Chinner
2021-08-10 5:24 ` [PATCH 13/16] xfs: convert xfs_sb_version_has checks to use mount features Dave Chinner
2021-08-18 23:59 [PATCH 00/16 v3] xfs: rework feature flags Dave Chinner
2021-08-18 23:59 ` [PATCH 13/16] xfs: convert xfs_sb_version_has checks to use mount features 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=20210714231952.GG22402@magnolia \
--to=djwong@kernel.org \
--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