]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
xfs: support error injection when freeing rt extents
authorDarrick J. Wong <djwong@kernel.org>
Mon, 4 Nov 2024 04:19:27 +0000 (20:19 -0800)
committerDarrick J. Wong <djwong@kernel.org>
Tue, 5 Nov 2024 21:38:42 +0000 (13:38 -0800)
A handful of fstests expect to be able to test what happens when extent
free intents fail to actually free the extent.  Now that we're
supporting EFIs for realtime extents, add to xfs_rtfree_extent the same
injection point that exists in the regular extent freeing code.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
fs/xfs/libxfs/xfs_rtbitmap.c

index cae0b22397d0079d087386d36edd2419437b7c6a..c73826aa4425afcd8f74148fde30ac50d0c13816 100644 (file)
@@ -21,6 +21,7 @@
 #include "xfs_rtbitmap.h"
 #include "xfs_health.h"
 #include "xfs_sb.h"
+#include "xfs_errortag.h"
 #include "xfs_log.h"
 #include "xfs_buf_item.h"
 
@@ -1065,6 +1066,9 @@ xfs_rtfree_extent(
        ASSERT(rbmip->i_itemp != NULL);
        xfs_assert_ilocked(rbmip, XFS_ILOCK_EXCL);
 
+       if (XFS_TEST_ERROR(false, mp, XFS_ERRTAG_FREE_EXTENT))
+               return -EIO;
+
        error = xfs_rtcheck_alloc_range(&args, start, len);
        if (error)
                return error;