diff options
| author | Namjae Jeon <linkinjeon@kernel.org> | 2026-10-17 21:43:37 +0900 |
|---|---|---|
| committer | Namjae Jeon <linkinjeon@kernel.org> | 2026-10-21 08:55:35 +0900 |
| commit | 1c087cf7d5386c708d8984b263280b42b3daada0 (patch) | |
| tree | d274521f3994cc06bf804103dab9c17e3e6539ca /scripts/Makefile.thinlto | |
| parent | 26534ef335e92b028eb58e44d98d46a0e26af0ec (diff) | |
| download | linux-1c087cf7d5386c708d8984b263280b42b3daada0.tar.gz linux-1c087cf7d5386c708d8984b263280b42b3daada0.zip | |
ksmbd: drain session procfs readers before dropping table references
Session registration failure and connection cleanup can drop the table
reference while the per-session procfs entry is still accessible. If a
reader holds the last remaining reference, its final put calls
proc_remove() from its own callback and waits for that callback to
finish.
Remove the procfs entry before dropping the table reference in the
registration failure path. Queue sessions removed during connection
cleanup and drain their procfs readers after releasing both session
locks, then return their table references. Keep the global hash node
unhashed while a session is queued so a concurrent unregister cannot
drop the reference again.
Previous-session replacement also destroys the file table before the
session is finally freed. Detach the idr under the lock used by procfs
file counters, and report zero files after it has been detached. This
prevents a reader from accessing the idr during or after its
destruction.
Fixes: d7fd1f98607f ("ksmbd: follow SMB2 session expiration semantics")
Cc: stable@vger.kernel.org
Reported-by: Abdifatah Suruur <suruurism@gmail.com>
Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
Diffstat (limited to 'scripts/Makefile.thinlto')
0 files changed, 0 insertions, 0 deletions
