]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
xfs: create a helper to compute leftovers of realtime extents
authorDarrick J. Wong <djwong@kernel.org>
Mon, 12 Feb 2024 14:19:20 +0000 (15:19 +0100)
committerCarlos Maiolino <cem@kernel.org>
Thu, 15 Feb 2024 11:56:43 +0000 (12:56 +0100)
Source kernel commit: 68db60bf01c131c09bbe35adf43bd957a4c124bc

Create a helper to compute the misalignment between a file extent
(xfs_extlen_t) and a realtime extent.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
libxfs/xfs_bmap.c
libxfs/xfs_rtbitmap.h

index 69549a94a00b837f83da01799cd812f4a4b962be..6e863c8a49d1eef4c9bf6cdf55337809aa3bb0c1 100644 (file)
@@ -2983,7 +2983,7 @@ xfs_bmap_extsize_align(
         * If realtime, and the result isn't a multiple of the realtime
         * extent size we need to remove blocks until it is.
         */
-       if (rt && (temp = (align_alen % mp->m_sb.sb_rextsize))) {
+       if (rt && (temp = xfs_extlen_to_rtxmod(mp, align_alen))) {
                /*
                 * We're not covering the original request, or
                 * we won't be able to once we fix the length.
@@ -3010,7 +3010,7 @@ xfs_bmap_extsize_align(
                else {
                        align_alen -= orig_off - align_off;
                        align_off = orig_off;
-                       align_alen -= align_alen % mp->m_sb.sb_rextsize;
+                       align_alen -= xfs_extlen_to_rtxmod(mp, align_alen);
                }
                /*
                 * Result doesn't cover the request, fail it.
index 099ea8902aaaf59a334bfec54526af6418b05273..b6a4c46bddc0a4df32f682e676c33dd898440c4f 100644 (file)
@@ -22,6 +22,15 @@ xfs_rtxlen_to_extlen(
        return rtxlen * mp->m_sb.sb_rextsize;
 }
 
+/* Compute the misalignment between an extent length and a realtime extent .*/
+static inline unsigned int
+xfs_extlen_to_rtxmod(
+       struct xfs_mount        *mp,
+       xfs_extlen_t            len)
+{
+       return len % mp->m_sb.sb_rextsize;
+}
+
 /*
  * Functions for walking free space rtextents in the realtime bitmap.
  */