On Mon, Dec 18, 2023 at 05:57:29AM +0100, Christoph Hellwig wrote: > 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@xxxxxx> Reviewed-by: Darrick J. Wong <djwong@xxxxxxxxxx> --D > --- > fs/xfs/xfs_rtalloc.c | 44 +++++++++++++++++++++++--------------------- > 1 file changed, 23 insertions(+), 21 deletions(-) > > diff --git a/fs/xfs/xfs_rtalloc.c b/fs/xfs/xfs_rtalloc.c > index 924665b66210ed..6fcc847b116273 100644 > --- a/fs/xfs/xfs_rtalloc.c > +++ b/fs/xfs/xfs_rtalloc.c > @@ -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; > } > > /* > -- > 2.39.2 > >