]> www.infradead.org Git - users/jedix/linux-maple.git/commit
smb:client: smb: client: Add reverse mapping from tcon to superblocks
authorWang Zhaolong <wangzhaolong1@huawei.com>
Mon, 31 Mar 2025 13:33:13 +0000 (21:33 +0800)
committerSteve French <stfrench@microsoft.com>
Tue, 1 Apr 2025 02:12:31 +0000 (21:12 -0500)
commita091d9711bdee46a76fa14fad31cb261a6dad74a
treea707bc84e7f4807bca2ba77c765931e31899f73e
parentbe5d361e3083a469385eff34b46ad58eb97b1e38
smb:client: smb: client: Add reverse mapping from tcon to superblocks

Currently, when a SMB connection is reset and renegotiated with the
server, there's no way to update all related mount points with new
negotiated sizes. This is because while superblocks (cifs_sb_info)
maintain references to tree connections (tcon) through tcon_link
structures, there is no reverse mapping from a tcon back to all the
superblocks using it.

This patch adds a bidirectional relationship between tcon and
cifs_sb_info structures by:

1. Adding a cifs_sb_list to tcon structure with appropriate locking
2. Adding tcon_sb_link to cifs_sb_info to join the list
3. Managing the list entries during mount and umount operations

The bidirectional relationship enables future functionality to locate and
update all superblocks connected to a specific tree connection, such as:

- Updating negotiated parameters after reconnection
- Efficiently notifying all affected mounts of capability changes

This is the first part of a series to improve connection resilience
by keeping all mount parameters in sync with server capabilities
after reconnection.

Signed-off-by: Wang Zhaolong <wangzhaolong1@huawei.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/smb/client/cifs_fs_sb.h
fs/smb/client/cifsglob.h
fs/smb/client/connect.c
fs/smb/client/misc.c