]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
xfs: cleanup error handling in xfs_buf_get_map
authorChristoph Hellwig <hch@lst.de>
Mon, 7 Jun 2021 01:50:47 +0000 (11:50 +1000)
committerDave Chinner <david@fromorbit.com>
Mon, 7 Jun 2021 01:50:47 +0000 (11:50 +1000)
Use a single goto label for freeing the buffer and returning an
error.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Dave Chinner <dchinner@redhat.com>
fs/xfs/xfs_buf.c

index 0b0d66d315157bd3527bac0a887cda3feb6f5949..7dea73535959d767d56600fb6e3f7b4d8a544353 100644 (file)
@@ -689,16 +689,12 @@ xfs_buf_get_map(
                return error;
 
        error = xfs_buf_allocate_memory(new_bp, flags);
-       if (error) {
-               xfs_buf_free(new_bp);
-               return error;
-       }
+       if (error)
+               goto out_free_buf;
 
        error = xfs_buf_find(target, map, nmaps, flags, new_bp, &bp);
-       if (error) {
-               xfs_buf_free(new_bp);
-               return error;
-       }
+       if (error)
+               goto out_free_buf;
 
        if (bp != new_bp)
                xfs_buf_free(new_bp);
@@ -726,6 +722,9 @@ found:
        trace_xfs_buf_get(bp, flags, _RET_IP_);
        *bpp = bp;
        return 0;
+out_free_buf:
+       xfs_buf_free(new_bp);
+       return error;
 }
 
 int