diff options
author | Filipe Manana <fdmanana@suse.com> | 2022-11-01 19:15:37 +0300 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2022-11-02 19:43:25 +0300 |
commit | 5614dc3a47e3310fbc77ea3b67eaadd1c6417bf1 (patch) | |
tree | 4b4c57b26365dddd5987dafbddd9fb543323299f /tools/perf/scripts/python/export-to-postgresql.py | |
parent | 8184620ae21213d51eaf2e0bd4186baacb928172 (diff) | |
download | linux-5614dc3a47e3310fbc77ea3b67eaadd1c6417bf1.tar.xz |
btrfs: fix inode list leak during backref walking at resolve_indirect_refs()
During backref walking, at resolve_indirect_refs(), if we get an error
we jump to the 'out' label and call ulist_free() on the 'parents' ulist,
which frees all the elements in the ulist - however that does not free
any inode lists that may be attached to elements, through the 'aux' field
of a ulist node, so we end up leaking lists if we have any attached to
the unodes.
Fix this by calling free_leaf_list() instead of ulist_free() when we exit
from resolve_indirect_refs(). The static function free_leaf_list() is
moved up for this to be possible and it's slightly simplified by removing
unnecessary code.
Fixes: 3301958b7c1d ("Btrfs: add inodes before dropping the extent lock in find_all_leafs")
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'tools/perf/scripts/python/export-to-postgresql.py')
0 files changed, 0 insertions, 0 deletions