]> git.itanic.dy.fi Git - linux-stable/commitdiff
xfs: reflow the tail end of xfs_rtallocate_extent_block
authorChristoph Hellwig <hch@lst.de>
Mon, 18 Dec 2023 04:57:29 +0000 (05:57 +0100)
committerChandan Babu R <chandanbabu@kernel.org>
Fri, 22 Dec 2023 05:48:13 +0000 (11:18 +0530)
Change polarity of a check so that the successful case of being able to
allocate an extent is in the main path of the function and error handling
is on a branch.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
Signed-off-by: Chandan Babu R <chandanbabu@kernel.org>
fs/xfs/xfs_rtalloc.c

index abcbd0c95b3015b98a07ff8c28c0e38bc1894202..c52f479e3abd3541a307a2bc03212e2264b4c2c4 100644 (file)
@@ -289,36 +289,38 @@ xfs_rtallocate_extent_block(
                if (error)
                        return error;
        }
+
        /*
         * Searched the whole thing & didn't find a maxlen free extent.
         */
-       if (minlen <= maxlen && besti != -1) {
-               xfs_rtxlen_t    p;      /* amount to trim length by */
-
+       if (minlen > maxlen || besti == -1) {
                /*
-                * If size should be a multiple of prod, make that so.
+                * Allocation failed.  Set *nextp to the next block to try.
                 */
-               if (prod > 1) {
-                       div_u64_rem(bestlen, prod, &p);
-                       if (p)
-                               bestlen -= p;
-               }
+               *nextp = next;
+               return -ENOSPC;
+       }
 
-               /*
-                * Allocate besti for bestlen & return that.
-                */
-               error = xfs_rtallocate_range(args, besti, bestlen);
-               if (error)
-                       return error;
-               *len = bestlen;
-               *rtx = besti;
-               return 0;
+       /*
+        * If size should be a multiple of prod, make that so.
+        */
+       if (prod > 1) {
+               xfs_rtxlen_t    p;      /* amount to trim length by */
+
+               div_u64_rem(bestlen, prod, &p);
+               if (p)
+                       bestlen -= p;
        }
+
        /*
-        * Allocation failed.  Set *nextp to the next block to try.
+        * Allocate besti for bestlen & return that.
         */
-       *nextp = next;
-       return -ENOSPC;
+       error = xfs_rtallocate_range(args, besti, bestlen);
+       if (error)
+               return error;
+       *len = bestlen;
+       *rtx = besti;
+       return 0;
 }
 
 /*