xfs: don't open code XFS_FILBLKS_MIN in xfs_bmapi_write
authorChristoph Hellwig <hch@lst.de>
Mon, 29 Apr 2024 06:15:24 +0000 (08:15 +0200)
committerChandan Babu R <chandanbabu@kernel.org>
Tue, 30 Apr 2024 04:15:19 +0000 (09:45 +0530)
XFS_FILBLKS_MIN uses min_t and thus does the comparison using the correct
xfs_filblks_t type.  Use it in xfs_bmapi_write and slightly adjust the
comment document th potential pitfall to take account of this

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/libxfs/xfs_bmap.c

index eade9689599f2367cfb8a7fa22ec7b77b4790098..6507dcaac438e87b8b248c348be80f0f99ecad1f 100644 (file)
@@ -4528,14 +4528,11 @@ xfs_bmapi_write(
                         * allocation length request (which can be 64 bits in
                         * length) and the bma length request, which is
                         * xfs_extlen_t and therefore 32 bits. Hence we have to
-                        * check for 32-bit overflows and handle them here.
+                        * be careful and do the min() using the larger type to
+                        * avoid overflows.
                         */
-                       if (len > (xfs_filblks_t)XFS_MAX_BMBT_EXTLEN)
-                               bma.length = XFS_MAX_BMBT_EXTLEN;
-                       else
-                               bma.length = len;
+                       bma.length = XFS_FILBLKS_MIN(len, XFS_MAX_BMBT_EXTLEN);
 
-                       ASSERT(len > 0);
                        ASSERT(bma.length > 0);
                        error = xfs_bmapi_allocate(&bma);
                        if (error) {