diff options
| author | liyouhong <liyouhong@kylinos.cn> | 2026-07-31 10:08:49 +0800 |
|---|---|---|
| committer | Mikulas Patocka <mpatocka@redhat.com> | 2026-08-06 13:55:01 +0200 |
| commit | 39c5aa3bd8ec3912d2cd0b3fe092642b0d2b0713 (patch) | |
| tree | 2a062f984a77dbb7af0fd32bdb99b0ce524ae7cd /tools/perf/scripts/python | |
| parent | 066976b7dbc7e2022efa0244457d804163bc1ee8 (diff) | |
dm-era: fix shadowed superblock leak on take-snap failure
metadata_take_snap() bumps the live superblock refcount and then
dm_tm_shadow_block() allocates a new block for the metadata snapshot.
If the subsequent dm_sm_inc_block() of writeset_tree_root or
era_array_root fails, the function only unlocks the clone and
returns. The newly allocated shadow block is never returned to the
metadata space map, so each failed take-snap permanently leaks one
metadata block.
Free the clone with dm_sm_dec_block() on those error paths, matching
the final step of metadata_drop_snap().
Fixes: eec40579d848 ("dm: add era target")
Cc: stable@vger.kernel.org
Signed-off-by: liyouhong <liyouhong@kylinos.cn>
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Diffstat (limited to 'tools/perf/scripts/python')
0 files changed, 0 insertions, 0 deletions
