]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
xfs: cleanup use of the XFS_ALLOC_ flags
authorChristoph Hellwig <hch@lst.de>
Wed, 30 Oct 2019 19:25:00 +0000 (12:25 -0700)
committerDarrick J. Wong <darrick.wong@oracle.com>
Sun, 3 Nov 2019 18:22:31 +0000 (10:22 -0800)
Always set XFS_ALLOC_USERDATA for data fork allocations, and check it
in xfs_alloc_is_userdata instead of the current obsfucated check.
Also remove the xfs_alloc_is_userdata and xfs_alloc_allow_busy_reuse
helpers to make the code a little easier to understand.

Signed-off-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/xfs_extent_busy.c
fs/xfs/xfs_filestream.c

index 0539d61ff12ced1df8e88c72da6c797ddf8d194c..b8d48d5fa6a5781c387ced90e0fc0b3a09e4aecb 100644 (file)
@@ -331,7 +331,7 @@ xfs_alloc_compute_diff(
        xfs_extlen_t    newlen1=0;      /* length with newbno1 */
        xfs_extlen_t    newlen2=0;      /* length with newbno2 */
        xfs_agblock_t   wantend;        /* end of target extent */
-       bool            userdata = xfs_alloc_is_userdata(datatype);
+       bool            userdata = datatype & XFS_ALLOC_USERDATA;
 
        ASSERT(freelen >= wantlen);
        freeend = freebno + freelen;
@@ -1041,9 +1041,9 @@ xfs_alloc_ag_vextent_small(
                goto out;
 
        xfs_extent_busy_reuse(args->mp, args->agno, fbno, 1,
-                             xfs_alloc_allow_busy_reuse(args->datatype));
+                             (args->datatype & XFS_ALLOC_NOBUSY));
 
-       if (xfs_alloc_is_userdata(args->datatype)) {
+       if (args->datatype & XFS_ALLOC_USERDATA) {
                struct xfs_buf  *bp;
 
                bp = xfs_btree_get_bufs(args->mp, args->tp, args->agno, fbno);
@@ -2381,7 +2381,7 @@ xfs_alloc_fix_freelist(
         * somewhere else if we are not being asked to try harder at this
         * point
         */
-       if (pag->pagf_metadata && xfs_alloc_is_userdata(args->datatype) &&
+       if (pag->pagf_metadata && (args->datatype & XFS_ALLOC_USERDATA) &&
            (flags & XFS_ALLOC_FLAG_TRYLOCK)) {
                ASSERT(!(flags & XFS_ALLOC_FLAG_FREEING));
                goto out_agbp_relse;
index 626384d75c9c1186fa8036d71a870f50b8f92f23..7380fbe4a3fffd68e382ccd31c149a3cfd0880cb 100644 (file)
@@ -84,18 +84,6 @@ typedef struct xfs_alloc_arg {
 #define XFS_ALLOC_INITIAL_USER_DATA    (1 << 1)/* special case start of file */
 #define XFS_ALLOC_NOBUSY               (1 << 2)/* Busy extents not allowed */
 
-static inline bool
-xfs_alloc_is_userdata(int datatype)
-{
-       return (datatype & ~XFS_ALLOC_NOBUSY) != 0;
-}
-
-static inline bool
-xfs_alloc_allow_busy_reuse(int datatype)
-{
-       return (datatype & XFS_ALLOC_NOBUSY) == 0;
-}
-
 /* freespace limit calculations */
 #define XFS_ALLOC_AGFL_RESERVE 4
 unsigned int xfs_alloc_set_aside(struct xfs_mount *mp);
index 3fcc91027f63dd7050c264caa66f425d23efc591..bbabbb41e9d86ebc115a7751f79a66e901b495a7 100644 (file)
@@ -3022,7 +3022,7 @@ xfs_bmap_adjacent(
        mp = ap->ip->i_mount;
        nullfb = ap->tp->t_firstblock == NULLFSBLOCK;
        rt = XFS_IS_REALTIME_INODE(ap->ip) &&
-               xfs_alloc_is_userdata(ap->datatype);
+               (ap->datatype & XFS_ALLOC_USERDATA);
        fb_agno = nullfb ? NULLAGNUMBER : XFS_FSB_TO_AGNO(mp,
                                                        ap->tp->t_firstblock);
        /*
@@ -3375,7 +3375,7 @@ xfs_bmap_btalloc(
 
        if (ap->flags & XFS_BMAPI_COWFORK)
                align = xfs_get_cowextsz_hint(ap->ip);
-       else if (xfs_alloc_is_userdata(ap->datatype))
+       else if (ap->datatype & XFS_ALLOC_USERDATA)
                align = xfs_get_extsz_hint(ap->ip);
        if (align) {
                error = xfs_bmap_extsize_align(mp, &ap->got, &ap->prev,
@@ -3390,7 +3390,7 @@ xfs_bmap_btalloc(
        fb_agno = nullfb ? NULLAGNUMBER : XFS_FSB_TO_AGNO(mp,
                                                        ap->tp->t_firstblock);
        if (nullfb) {
-               if (xfs_alloc_is_userdata(ap->datatype) &&
+               if ((ap->datatype & XFS_ALLOC_USERDATA) &&
                    xfs_inode_is_filestream(ap->ip)) {
                        ag = xfs_filestream_lookup_ag(ap->ip);
                        ag = (ag != NULLAGNUMBER) ? ag : 0;
@@ -3430,7 +3430,7 @@ xfs_bmap_btalloc(
                 * enough for the request.  If one isn't found, then adjust
                 * the minimum allocation size to the largest space found.
                 */
-               if (xfs_alloc_is_userdata(ap->datatype) &&
+               if ((ap->datatype & XFS_ALLOC_USERDATA) &&
                    xfs_inode_is_filestream(ap->ip))
                        error = xfs_bmap_btalloc_filestreams(ap, &args, &blen);
                else
@@ -3973,10 +3973,9 @@ xfs_bmap_alloc_userdata(
         */
        bma->datatype = XFS_ALLOC_NOBUSY;
        if (whichfork == XFS_DATA_FORK) {
+               bma->datatype |= XFS_ALLOC_USERDATA;
                if (bma->offset == 0)
                        bma->datatype |= XFS_ALLOC_INITIAL_USER_DATA;
-               else
-                       bma->datatype |= XFS_ALLOC_USERDATA;
 
                if (mp->m_dalign && bma->length >= mp->m_dalign) {
                        error = xfs_bmap_isaeof(bma, whichfork);
index 2183d87be4cfb1c1d68af452f36b982d2d6659d0..3991e59cfd18b7496367be341ac1d03fe0ead60a 100644 (file)
@@ -367,7 +367,7 @@ xfs_extent_busy_trim(
                 * If this is a metadata allocation, try to reuse the busy
                 * extent instead of trimming the allocation.
                 */
-               if (!xfs_alloc_is_userdata(args->datatype) &&
+               if (!(args->datatype & XFS_ALLOC_USERDATA) &&
                    !(busyp->flags & XFS_EXTENT_BUSY_DISCARDED)) {
                        if (!xfs_extent_busy_update_extent(args->mp, args->pag,
                                                          busyp, fbno, flen,
index 574a7a8b4736ba49b297478c0712f16cc8995c42..2ae356775f63120ee67907af7b842ef12646c611 100644 (file)
@@ -374,7 +374,7 @@ xfs_filestream_new_ag(
                startag = (item->ag + 1) % mp->m_sb.sb_agcount;
        }
 
-       if (xfs_alloc_is_userdata(ap->datatype))
+       if (ap->datatype & XFS_ALLOC_USERDATA)
                flags |= XFS_PICK_USERDATA;
        if (ap->tp->t_flags & XFS_TRANS_LOWMODE)
                flags |= XFS_PICK_LOWSPACE;