diff options
| author | Christoph Hellwig <hch@lst.de> | 2025-11-04 05:43:01 -0500 |
|---|---|---|
| committer | Carlos Maiolino <cem@kernel.org> | 2025-11-06 08:59:19 +0100 |
| commit | d8a823c6f04ef03e3bd7249d2e796da903e7238d (patch) | |
| tree | 8b69078e7a6da49c009e615994c26e9cd3a727ba /fs | |
| parent | xfs: fix zone selection in xfs_select_open_zone_mru (diff) | |
| download | linux-d8a823c6f04ef03e3bd7249d2e796da903e7238d.tar.gz linux-d8a823c6f04ef03e3bd7249d2e796da903e7238d.zip | |
xfs: free xfs_busy_extents structure when no RT extents are queued
kmemleak occasionally reports leaking xfs_busy_extents structure
from xfs_scrub calls after running xfs/528 (but attributed to following
tests), which seems to be caused by not freeing the xfs_busy_extents
structure when tr.queued is 0 and xfs_trim_rtgroup_extents breaks out
of the main loop. Free the structure in this case.
Fixes: a3315d11305f ("xfs: use rtgroup busy extent list for FITRIM")
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
Diffstat (limited to 'fs')
| -rw-r--r-- | fs/xfs/xfs_discard.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/xfs/xfs_discard.c b/fs/xfs/xfs_discard.c index ee49f20875af..6917de832191 100644 --- a/fs/xfs/xfs_discard.c +++ b/fs/xfs/xfs_discard.c @@ -726,8 +726,10 @@ xfs_trim_rtgroup_extents( break; } - if (!tr.queued) + if (!tr.queued) { + kfree(tr.extents); break; + } /* * We hand the extent list to the discard function here so the |
