summaryrefslogtreecommitdiffstats
path: root/fs/xfs/libxfs/xfs_alloc.c
diff options
context:
space:
mode:
authorDarrick J. Wong <darrick.wong@oracle.com>2016-08-03 03:26:33 +0200
committerDave Chinner <david@fromorbit.com>2016-08-03 03:26:33 +0200
commitba9e780246a15a35f8ebe5b60f4a11bb58e85bda (patch)
tree8216f1d66b69c2a34643d5604d79dc58278e2943 /fs/xfs/libxfs/xfs_alloc.c
parentxfs: refactor redo intent item processing (diff)
downloadlinux-ba9e780246a15a35f8ebe5b60f4a11bb58e85bda.tar.xz
linux-ba9e780246a15a35f8ebe5b60f4a11bb58e85bda.zip
xfs: add tracepoints and error injection for deferred extent freeing
Add a couple of tracepoints for the deferred extent free operation and a site for injecting errors while finishing the operation. This makes it easier to debug deferred ops and test log redo. Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Reviewed-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Dave Chinner <david@fromorbit.com>
Diffstat (limited to 'fs/xfs/libxfs/xfs_alloc.c')
-rw-r--r--fs/xfs/libxfs/xfs_alloc.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/fs/xfs/libxfs/xfs_alloc.c b/fs/xfs/libxfs/xfs_alloc.c
index 5993f87eee3e..22ac3f136f21 100644
--- a/fs/xfs/libxfs/xfs_alloc.c
+++ b/fs/xfs/libxfs/xfs_alloc.c
@@ -2702,6 +2702,13 @@ xfs_free_extent(
ASSERT(len != 0);
+ trace_xfs_bmap_free_deferred(mp, agno, 0, agbno, len);
+
+ if (XFS_TEST_ERROR(false, mp,
+ XFS_ERRTAG_FREE_EXTENT,
+ XFS_RANDOM_FREE_EXTENT))
+ return -EIO;
+
error = xfs_free_extent_fix_freelist(tp, agno, &agbp);
if (error)
return error;