summaryrefslogtreecommitdiff
path: root/tools/perf/scripts/python/bin
diff options
context:
space:
mode:
authorChristian Brauner <brauner@kernel.org>2026-09-09 21:30:34 +0200
committerChristian Brauner <brauner@kernel.org>2026-09-23 09:26:46 +0200
commit2d2a2d7aa98741b58f54cacc99b52024e4d865f9 (patch)
tree722e1e97efca8021eeb0579776e974cd689c2cdf /tools/perf/scripts/python/bin
parentfabd3242122872f260cc0a2df9100fe5d6194916 (diff)
downloadlinux-next-2d2a2d7aa98741b58f54cacc99b52024e4d865f9.tar.gz
linux-next-2d2a2d7aa98741b58f54cacc99b52024e4d865f9.zip
super: make iterate_supers_type() deletion-safe
iterate_supers_type() drops sb_lock while invoking the callback and keeps only a passive reference to the current superblock. That reference keeps the object allocated, but does not keep its s_instances node linked. After the iterator releases s_umount, final teardown can unlink the current s_instances node. The iterator then advances through a reinitialized node. With the current hlist it stops without visiting the remaining superblocks. The unlink moved from generic_shutdown_super() to kill_super_notify(), but the cursor lifetime has been unsafe since the helper was introduced. The CIFS DFS lookup can consequently miss a matching superblock and return -EINVAL. Move removal from fs_supers to put_super(), alongside removal from super_blocks, so a passive reference keeps both list nodes linked. Keep the filesystem module reference until then, since unlinking s_instances may touch type->fs_supers. Make sget_fc() skip SB_DEAD superblocks before invoking test(), and set SB_DEAD under sb_lock to serialize with those callbacks. This allows kernfs to free its private information after kill_anon_super() returns. Keep matching SB_DYING superblocks until SB_DEAD is set so concurrent mounts still wait for teardown before retrying. Fixes: 43e15cdbefea ("new helper: iterate_supers_type()") Reported-by: Karl Mehltretter <kmehltretter@gmail.com> Closes: https://lore.kernel.org/r/20260903013336.92081-1-kmehltretter@gmail.com Suggested-by: Jan Kara <jack@suse.cz> Cc: stable@vger.kernel.org Tested-by: Karl Mehltretter <kmehltretter@gmail.com> [kmehltretter: supplied the commit message] Signed-off-by: Karl Mehltretter <kmehltretter@gmail.com> Link: https://patch.msgid.link/20260909193034.7467-1-kmehltretter@gmail.com Reviewed-by: Jan Kara <jack@suse.cz> Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
Diffstat (limited to 'tools/perf/scripts/python/bin')
0 files changed, 0 insertions, 0 deletions