]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
xfs: remove xfs_alloc_arg firstblock field
authorBrian Foster <bfoster@redhat.com>
Thu, 12 Jul 2018 05:26:30 +0000 (22:26 -0700)
committerDarrick J. Wong <darrick.wong@oracle.com>
Thu, 12 Jul 2018 05:26:30 +0000 (22:26 -0700)
The xfs_alloc_arg.firstblock field is used to control the starting
agno for an allocation. The structure already carries a pointer to
the transaction, which carries the current firstblock value.

Remove the field and access ->t_firstblock directly in the
allocation code.

Signed-off-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
fs/xfs/libxfs/xfs_alloc.c
fs/xfs/libxfs/xfs_alloc.h
fs/xfs/libxfs/xfs_bmap.c
fs/xfs/libxfs/xfs_bmap_btree.c
fs/xfs/libxfs/xfs_refcount_btree.c
fs/xfs/xfs_trace.h

index 5b1607d76fe906aa21cf5e0b86ead4bb38e99a87..bd6d8aeea825e21fdb0f05f08f808ee2f88a5428 100644 (file)
@@ -2783,16 +2783,16 @@ xfs_alloc_read_agf(
  */
 int                            /* error */
 xfs_alloc_vextent(
-       xfs_alloc_arg_t *args)  /* allocation argument structure */
+       struct xfs_alloc_arg    *args)  /* allocation argument structure */
 {
-       xfs_agblock_t   agsize; /* allocation group size */
-       int             error;
-       int             flags;  /* XFS_ALLOC_FLAG_... locking flags */
-       xfs_mount_t     *mp;    /* mount structure pointer */
-       xfs_agnumber_t  sagno;  /* starting allocation group number */
-       xfs_alloctype_t type;   /* input allocation type */
-       int             bump_rotor = 0;
-       xfs_agnumber_t  rotorstep = xfs_rotorstep; /* inode32 agf stepper */
+       xfs_agblock_t           agsize; /* allocation group size */
+       int                     error;
+       int                     flags;  /* XFS_ALLOC_FLAG_... locking flags */
+       struct xfs_mount        *mp;    /* mount structure pointer */
+       xfs_agnumber_t          sagno;  /* starting allocation group number */
+       xfs_alloctype_t         type;   /* input allocation type */
+       int                     bump_rotor = 0;
+       xfs_agnumber_t          rotorstep = xfs_rotorstep; /* inode32 agf stepper */
 
        mp = args->mp;
        type = args->otype = args->type;
@@ -2913,7 +2913,7 @@ xfs_alloc_vextent(
                        * locking of AGF, which might cause deadlock.
                        */
                        if (++(args->agno) == mp->m_sb.sb_agcount) {
-                               if (args->firstblock != NULLFSBLOCK)
+                               if (args->tp->t_firstblock != NULLFSBLOCK)
                                        args->agno = sagno;
                                else
                                        args->agno = 0;
index e716c993ac4c5b6a52d9f42ea6fa5459bd796a20..00cd5ec4cb6b0424c23205b00e21539fb156c777 100644 (file)
@@ -74,7 +74,6 @@ typedef struct xfs_alloc_arg {
        int             datatype;       /* mask defining data type treatment */
        char            wasdel;         /* set if allocation was prev delayed */
        char            wasfromfl;      /* set if allocation is from freelist */
-       xfs_fsblock_t   firstblock;     /* io first block allocated */
        struct xfs_owner_info   oinfo;  /* owner of blocks being allocated */
        enum xfs_ag_resv_type   resv;   /* block reservation to use */
 } xfs_alloc_arg_t;
index 8a1e6890a64b28562d45faea50aa9ac9e336278d..12be9ad888c3727498426f46bd0bfd68f26ee982 100644 (file)
@@ -697,7 +697,6 @@ xfs_bmap_extents_to_btree(
        args.tp = tp;
        args.mp = mp;
        xfs_rmap_ino_bmbt_owner(&args.oinfo, ip->i_ino, whichfork);
-       args.firstblock = tp->t_firstblock;
        if (tp->t_firstblock == NULLFSBLOCK) {
                args.type = XFS_ALLOCTYPE_START_BNO;
                args.fsbno = XFS_INO_TO_FSB(mp, ip->i_ino);
@@ -845,7 +844,6 @@ xfs_bmap_local_to_extents(
        args.tp = tp;
        args.mp = ip->i_mount;
        xfs_rmap_ino_owner(&args.oinfo, ip->i_ino, whichfork, 0);
-       args.firstblock = tp->t_firstblock;
        /*
         * Allocate a block.  We know we need only one, since the
         * file currently fits in an inode.
@@ -3445,7 +3443,6 @@ xfs_bmap_btalloc(
 
        /* Trim the allocation back to the maximum an AG can fit. */
        args.maxlen = min(ap->length, mp->m_ag_max_usable);
-       args.firstblock = ap->tp->t_firstblock;
        blen = 0;
        if (nullfb) {
                /*
index 8a9b98b11e34befb59700b168afd19bd532ef2bd..628ed82ca286987200e350252100a08b24d2eefb 100644 (file)
@@ -208,7 +208,6 @@ xfs_bmbt_alloc_block(
        args.tp = cur->bc_tp;
        args.mp = cur->bc_mp;
        args.fsbno = cur->bc_tp->t_firstblock;
-       args.firstblock = args.fsbno;
        xfs_rmap_ino_bmbt_owner(&args.oinfo, cur->bc_private.b.ip->i_ino,
                        cur->bc_private.b.whichfork);
 
index 393aa88f93db1eca64265b0fc44dc1c4f6982a26..26d2300ed86551dd727cb30abc83903dc2c2be93 100644 (file)
@@ -70,7 +70,6 @@ xfs_refcountbt_alloc_block(
        args.type = XFS_ALLOCTYPE_NEAR_BNO;
        args.fsbno = XFS_AGB_TO_FSB(cur->bc_mp, cur->bc_private.a.agno,
                        xfs_refc_block(args.mp));
-       args.firstblock = args.fsbno;
        xfs_rmap_ag_owner(&args.oinfo, XFS_RMAP_OWN_REFC);
        args.minlen = args.maxlen = args.prod = 1;
        args.resv = XFS_AG_RESV_METADATA;
index 7f4c7071e7ed3cfa632af33b8d1629e5034fc93e..9d741571b61e3113a52bb210fd9b42141f4d193a 100644 (file)
@@ -1590,7 +1590,7 @@ DECLARE_EVENT_CLASS(xfs_alloc_class,
                __entry->wasfromfl = args->wasfromfl;
                __entry->resv = args->resv;
                __entry->datatype = args->datatype;
-               __entry->firstblock = args->firstblock;
+               __entry->firstblock = args->tp->t_firstblock;
        ),
        TP_printk("dev %d:%d agno %u agbno %u minlen %u maxlen %u mod %u "
                  "prod %u minleft %u total %u alignment %u minalignslop %u "