From: Brian Foster <bfoster@redhat.com>
To: Jeff Liu <jeff.liu@oracle.com>
Cc: "xfs@oss.sgi.com" <xfs@oss.sgi.com>
Subject: Re: [PATCH 3/6] xfsprogs: get rid of XFS_IALLOC_BLOCKS macros
Date: Mon, 5 May 2014 17:10:09 -0400 [thread overview]
Message-ID: <20140505211009.GD13973@laptop.bfoster> (raw)
In-Reply-To: <536784CD.60900@oracle.com>
On Mon, May 05, 2014 at 08:32:13PM +0800, Jeff Liu wrote:
> From: Jie Liu <jeff.liu@oracle.com>
>
> Get rid of XFS_IALLOC_BLOCKS() macros, use mp->m_ialloc_blks directly.
>
> Signed-off-by: Jie Liu <jeff.liu@oracle.com>
> ---
> db/check.c | 2 +-
> db/frag.c | 2 +-
> db/metadump.c | 2 +-
> include/xfs_ialloc.h | 5 -----
> include/xfs_trans_space.h | 2 +-
> libxfs/xfs_ialloc.c | 8 ++++----
> libxfs/xfs_trans_resv.c | 8 ++++----
> mkfs/proto.c | 2 +-
> repair/dino_chunks.c | 24 ++++++++++++------------
> repair/prefetch.c | 2 +-
> repair/xfs_repair.c | 4 ++--
> 11 files changed, 28 insertions(+), 33 deletions(-)
>
> diff --git a/db/check.c b/db/check.c
> index 4fd9fd0..df98cc6 100644
> --- a/db/check.c
> +++ b/db/check.c
> @@ -4223,7 +4223,7 @@ scanfunc_ino(
> set_cur(&typtab[TYP_INODE],
> XFS_AGB_TO_DADDR(mp, seqno,
> XFS_AGINO_TO_AGBNO(mp, agino)),
> - (int)XFS_FSB_TO_BB(mp, XFS_IALLOC_BLOCKS(mp)),
> + (int)XFS_FSB_TO_BB(mp, mp->m_ialloc_blks),
> DB_RING_IGN, NULL);
> if (iocur_top->data == NULL) {
> if (!sflag)
> diff --git a/db/frag.c b/db/frag.c
> index 2eb33d8..38b77e0 100644
> --- a/db/frag.c
> +++ b/db/frag.c
> @@ -484,7 +484,7 @@ scanfunc_ino(
> set_cur(&typtab[TYP_INODE],
> XFS_AGB_TO_DADDR(mp, seqno,
> XFS_AGINO_TO_AGBNO(mp, agino)),
> - XFS_FSB_TO_BB(mp, XFS_IALLOC_BLOCKS(mp)),
> + XFS_FSB_TO_BB(mp, mp->m_ialloc_blks),
> DB_RING_IGN, NULL);
> if (iocur_top->data == NULL) {
> dbprintf(_("can't read inode block %u/%u\n"),
> diff --git a/db/metadump.c b/db/metadump.c
> index 09bb85a..bae08cd 100644
> --- a/db/metadump.c
> +++ b/db/metadump.c
> @@ -1848,7 +1848,7 @@ copy_inode_chunk(
>
> push_cur();
> set_cur(&typtab[TYP_INODE], XFS_AGB_TO_DADDR(mp, agno, agbno),
> - XFS_FSB_TO_BB(mp, XFS_IALLOC_BLOCKS(mp)),
> + XFS_FSB_TO_BB(mp, mp->m_ialloc_blks),
> DB_RING_IGN, NULL);
> if (iocur_top->data == NULL) {
> print_warning("cannot read inode block %u/%u", agno, agbno);
> diff --git a/include/xfs_ialloc.h b/include/xfs_ialloc.h
> index 4026933..0498f20 100644
> --- a/include/xfs_ialloc.h
> +++ b/include/xfs_ialloc.h
> @@ -26,11 +26,6 @@ struct xfs_trans;
> struct xfs_btree_cur;
>
> /*
> - * Allocation parameters for inode allocation.
> - */
> -#define XFS_IALLOC_BLOCKS(mp) (mp)->m_ialloc_blks
> -
> -/*
> * Move inodes in clusters of this size.
> */
> #define XFS_INODE_BIG_CLUSTER_SIZE 8192
> diff --git a/include/xfs_trans_space.h b/include/xfs_trans_space.h
> index 7d2c920..af5dbe0 100644
> --- a/include/xfs_trans_space.h
> +++ b/include/xfs_trans_space.h
> @@ -47,7 +47,7 @@
> #define XFS_DIRREMOVE_SPACE_RES(mp) \
> XFS_DAREMOVE_SPACE_RES(mp, XFS_DATA_FORK)
> #define XFS_IALLOC_SPACE_RES(mp) \
> - (XFS_IALLOC_BLOCKS(mp) + (mp)->m_in_maxlevels - 1)
> + ((mp)->m_ialloc_blks + (mp)->m_in_maxlevels - 1)
>
> /*
> * Space reservation values for various transactions.
> diff --git a/libxfs/xfs_ialloc.c b/libxfs/xfs_ialloc.c
> index bd47971..a3a1c75 100644
> --- a/libxfs/xfs_ialloc.c
> +++ b/libxfs/xfs_ialloc.c
> @@ -309,7 +309,7 @@ xfs_ialloc_ag_alloc(
> if (args.mp->m_maxicount &&
> args.mp->m_sb.sb_icount + newlen > args.mp->m_maxicount)
> return XFS_ERROR(ENOSPC);
> - args.minlen = args.maxlen = XFS_IALLOC_BLOCKS(args.mp);
> + args.minlen = args.maxlen = args.mp->m_ialloc_blks;
> /*
> * First try to allocate inodes contiguous with the last-allocated
> * chunk of inodes. If the filesystem is striped, this will fill
> @@ -319,7 +319,7 @@ xfs_ialloc_ag_alloc(
> newino = be32_to_cpu(agi->agi_newino);
> agno = be32_to_cpu(agi->agi_seqno);
> args.agbno = XFS_AGINO_TO_AGBNO(args.mp, newino) +
> - XFS_IALLOC_BLOCKS(args.mp);
> + args.mp->m_ialloc_blks;
> if (likely(newino != NULLAGINO &&
> (args.agbno < be32_to_cpu(agi->agi_length)))) {
> args.fsbno = XFS_AGB_TO_FSB(args.mp, agno, args.agbno);
> @@ -561,7 +561,7 @@ xfs_ialloc_ag_select(
> * Is there enough free space for the file plus a block of
> * inodes? (if we need to allocate some)?
> */
> - ineed = XFS_IALLOC_BLOCKS(mp);
> + ineed = mp->m_ialloc_blks;
> longest = pag->pagf_longest;
> if (!longest)
> longest = pag->pagf_flcount > 0;
> @@ -1206,7 +1206,7 @@ xfs_difree(
>
> xfs_bmap_add_free(XFS_AGB_TO_FSB(mp,
> agno, XFS_INO_TO_AGBNO(mp,rec.ir_startino)),
> - XFS_IALLOC_BLOCKS(mp), flist, mp);
> + mp->m_ialloc_blks, flist, mp);
> } else {
> *delete = 0;
>
> diff --git a/libxfs/xfs_trans_resv.c b/libxfs/xfs_trans_resv.c
> index ba9c7b0..93261f1 100644
> --- a/libxfs/xfs_trans_resv.c
> +++ b/libxfs/xfs_trans_resv.c
> @@ -157,7 +157,7 @@ xfs_calc_itruncate_reservation(
> xfs_calc_buf_res(5, 0) +
> xfs_calc_buf_res(XFS_ALLOCFREE_LOG_COUNT(mp, 1),
> XFS_FSB_TO_B(mp, 1)) +
> - xfs_calc_buf_res(2 + XFS_IALLOC_BLOCKS(mp) +
> + xfs_calc_buf_res(2 + mp->m_ialloc_blks +
> mp->m_in_maxlevels, 0)));
> }
>
> @@ -265,7 +265,7 @@ xfs_calc_create_resv_modify(
> * For create we can allocate some inodes giving:
> * the agi and agf of the ag getting the new inodes: 2 * sectorsize
> * the superblock for the nlink flag: sector size
> - * the inode blocks allocated: XFS_IALLOC_BLOCKS * blocksize
> + * the inode blocks allocated: mp->m_ialloc_blks * blocksize
> * the inode btree: max depth * blocksize
> * the allocation btrees: 2 trees * (max depth - 1) * block size
> */
> @@ -275,7 +275,7 @@ xfs_calc_create_resv_alloc(
> {
> return xfs_calc_buf_res(2, mp->m_sb.sb_sectsize) +
> mp->m_sb.sb_sectsize +
> - xfs_calc_buf_res(XFS_IALLOC_BLOCKS(mp), XFS_FSB_TO_B(mp, 1)) +
> + xfs_calc_buf_res(mp->m_ialloc_blks, XFS_FSB_TO_B(mp, 1)) +
> xfs_calc_buf_res(mp->m_in_maxlevels, XFS_FSB_TO_B(mp, 1)) +
> xfs_calc_buf_res(XFS_ALLOCFREE_LOG_COUNT(mp, 1),
> XFS_FSB_TO_B(mp, 1));
> @@ -371,7 +371,7 @@ xfs_calc_ifree_reservation(
> MAX((__uint16_t)XFS_FSB_TO_B(mp, 1),
> mp->m_inode_cluster_size) +
> xfs_calc_buf_res(1, 0) +
> - xfs_calc_buf_res(2 + XFS_IALLOC_BLOCKS(mp) +
> + xfs_calc_buf_res(2 + mp->m_ialloc_blks +
> mp->m_in_maxlevels, 0) +
> xfs_calc_buf_res(XFS_ALLOCFREE_LOG_COUNT(mp, 1),
> XFS_FSB_TO_B(mp, 1));
> diff --git a/mkfs/proto.c b/mkfs/proto.c
> index 5a47e27..2689f75 100644
> --- a/mkfs/proto.c
> +++ b/mkfs/proto.c
> @@ -39,7 +39,7 @@ static long filesize(int fd);
> * (basically no fragmentation).
> */
> #define MKFS_BLOCKRES_INODE \
> - ((uint)(XFS_IALLOC_BLOCKS(mp) + ((mp)->m_in_maxlevels - 1)))
> + ((uint)(mp->m_ialloc_blks + ((mp)->m_in_maxlevels - 1)))
Nit: (mp)
Probably not necessary here anyways...
Reviewed-by: Brian Foster <bfoster@redhat.com>
> #define MKFS_BLOCKRES(rb) \
> ((uint)(MKFS_BLOCKRES_INODE + XFS_DA_NODE_MAXDEPTH + \
> (XFS_BM_MAXLEVELS(mp, XFS_DATA_FORK) - 1) + (rb)))
> diff --git a/repair/dino_chunks.c b/repair/dino_chunks.c
> index 2c2fd79..1bf1fca 100644
> --- a/repair/dino_chunks.c
> +++ b/repair/dino_chunks.c
> @@ -117,7 +117,7 @@ verify_inode_chunk(xfs_mount_t *mp,
> agbno = XFS_INO_TO_AGBNO(mp, ino);
> *start_ino = NULLFSINO;
>
> - ASSERT(XFS_IALLOC_BLOCKS(mp) > 0);
> + ASSERT(mp->m_ialloc_blks > 0);
>
> if (agno == mp->m_sb.sb_agcount - 1)
> max_agbno = mp->m_sb.sb_dblocks -
> @@ -135,7 +135,7 @@ verify_inode_chunk(xfs_mount_t *mp,
> * check for the easy case, inodes per block >= XFS_INODES_PER_CHUNK
> * (multiple chunks per block)
> */
> - if (XFS_IALLOC_BLOCKS(mp) == 1) {
> + if (mp->m_ialloc_blks == 1) {
> if (agbno > max_agbno)
> return 0;
> if (check_aginode_block(mp, agno, agino) == 0)
> @@ -208,7 +208,7 @@ verify_inode_chunk(xfs_mount_t *mp,
> */
> start_agbno = rounddown(XFS_INO_TO_AGBNO(mp, ino),
> fs_ino_alignment);
> - end_agbno = start_agbno + XFS_IALLOC_BLOCKS(mp);
> + end_agbno = start_agbno + mp->m_ialloc_blks;
>
> /*
> * if this fs has aligned inodes but the end of the
> @@ -266,14 +266,14 @@ verify_inode_chunk(xfs_mount_t *mp,
> * a discovered inode chunk completely within that range
> * would include the inode passed into us.
> */
> - if (XFS_IALLOC_BLOCKS(mp) > 1) {
> + if (mp->m_ialloc_blks > 1) {
> if (agino > mp->m_ialloc_inos)
> - start_agbno = agbno - XFS_IALLOC_BLOCKS(mp) + 1;
> + start_agbno = agbno - mp->m_ialloc_blks + 1;
> else
> start_agbno = 1;
> }
>
> - end_agbno = agbno + XFS_IALLOC_BLOCKS(mp);
> + end_agbno = agbno + mp->m_ialloc_blks;
>
> if (end_agbno > max_agbno)
> end_agbno = max_agbno;
> @@ -328,7 +328,7 @@ verify_inode_chunk(xfs_mount_t *mp,
>
> start_agbno = XFS_AGINO_TO_AGBNO(mp,
> irec_p->ino_startnum) +
> - XFS_IALLOC_BLOCKS(mp);
> + mp->m_ialloc_blks;
>
> /*
> * we know that the inode we're trying to verify isn't
> @@ -351,7 +351,7 @@ verify_inode_chunk(xfs_mount_t *mp,
> * the inode in question and that the space between them
> * is too small for a legal inode chunk
> */
> - if (end_agbno - start_agbno < XFS_IALLOC_BLOCKS(mp))
> + if (end_agbno - start_agbno < mp->m_ialloc_blks)
> return(0);
>
> /*
> @@ -395,7 +395,7 @@ verify_inode_chunk(xfs_mount_t *mp,
>
> num_blks = chunk_stop_agbno - chunk_start_agbno;
>
> - if (num_blks < XFS_IALLOC_BLOCKS(mp) || ino_cnt == 0)
> + if (num_blks < mp->m_ialloc_blks || ino_cnt == 0)
> return(0);
>
> /*
> @@ -411,8 +411,8 @@ verify_inode_chunk(xfs_mount_t *mp,
> * the chunk
> */
>
> - if (num_blks % XFS_IALLOC_BLOCKS(mp) != 0) {
> - num_blks = rounddown(num_blks, XFS_IALLOC_BLOCKS(mp));
> + if (num_blks % mp->m_ialloc_blks != 0) {
> + num_blks = rounddown(num_blks, mp->m_ialloc_blks);
> chunk_stop_agbno = chunk_start_agbno + num_blks;
> }
>
> @@ -596,7 +596,7 @@ process_inode_chunk(
> ASSERT(XFS_AGINO_TO_OFFSET(mp, first_irec->ino_startnum) == 0);
>
> *bogus = 0;
> - ASSERT(XFS_IALLOC_BLOCKS(mp) > 0);
> + ASSERT(mp->m_ialloc_blks > 0);
>
> blks_per_cluster = mp->m_inode_cluster_size >> mp->m_sb.sb_blocklog;
> if (blks_per_cluster == 0)
> diff --git a/repair/prefetch.c b/repair/prefetch.c
> index 25ceb34..e3dfd08 100644
> --- a/repair/prefetch.c
> +++ b/repair/prefetch.c
> @@ -846,7 +846,7 @@ start_inode_prefetch(
> max_queue = libxfs_bcache->c_maxcount / thread_count / 8;
> if (mp->m_inode_cluster_size > mp->m_sb.sb_blocksize)
> max_queue = max_queue * (mp->m_inode_cluster_size >>
> - mp->m_sb.sb_blocklog) / XFS_IALLOC_BLOCKS(mp);
> + mp->m_sb.sb_blocklog) / mp->m_ialloc_blks;
>
> sem_init(&args->ra_count, 0, max_queue);
>
> diff --git a/repair/xfs_repair.c b/repair/xfs_repair.c
> index b6d070b..5515de8 100644
> --- a/repair/xfs_repair.c
> +++ b/repair/xfs_repair.c
> @@ -441,9 +441,9 @@ calc_mkfs(xfs_mount_t *mp)
> first_prealloc_ino = XFS_OFFBNO_TO_AGINO(mp, fino_bno, 0);
> }
>
> - ASSERT(XFS_IALLOC_BLOCKS(mp) > 0);
> + ASSERT(mp->m_ialloc_blks > 0);
>
> - if (XFS_IALLOC_BLOCKS(mp) > 1)
> + if (mp->m_ialloc_blks > 1)
> last_prealloc_ino = first_prealloc_ino + XFS_INODES_PER_CHUNK;
> else
> last_prealloc_ino = XFS_OFFBNO_TO_AGINO(mp, fino_bno + 1, 0);
> --
> 1.8.3.2
>
> _______________________________________________
> xfs mailing list
> xfs@oss.sgi.com
> http://oss.sgi.com/mailman/listinfo/xfs
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
next prev parent reply other threads:[~2014-05-05 21:30 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-05 12:32 [PATCH 3/6] xfsprogs: get rid of XFS_IALLOC_BLOCKS macros Jeff Liu
2014-05-05 21:10 ` Brian Foster [this message]
2014-05-06 1:50 ` Jeff Liu
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=20140505211009.GD13973@laptop.bfoster \
--to=bfoster@redhat.com \
--cc=jeff.liu@oracle.com \
--cc=xfs@oss.sgi.com \
/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.