mirror of
https://github.com/torvalds/linux.git
synced 2024-11-24 13:11:40 +00:00
smb3: interface count displayed incorrectly
The "Server interfaces" count in /proc/fs/cifs/DebugData increases as the interfaces are requeried, rather than being reset to the new value. This could cause a problem if the server disabled multichannel as the iface_count is checked in try_adding_channels to see if multichannel still supported. Also fixes a coverity warning: Addresses-Coverity: 1526374 ("Concurrent data access violations (MISSING_LOCK)") Cc: <stable@vger.kernel.org> Reviewed-by: Bharath SM <bharathsm@microsoft.com> Reviewed-by: Shyam Prasad N <sprasad@microsoft.com> Signed-off-by: Steve French <stfrench@microsoft.com>
This commit is contained in:
parent
30b2d7f8f1
commit
096bbeec7b
@ -530,6 +530,7 @@ parse_server_interfaces(struct network_interface_info_ioctl_rsp *buf,
|
||||
p = buf;
|
||||
|
||||
spin_lock(&ses->iface_lock);
|
||||
ses->iface_count = 0;
|
||||
/*
|
||||
* Go through iface_list and do kref_put to remove
|
||||
* any unused ifaces. ifaces in use will be removed
|
||||
@ -651,9 +652,9 @@ parse_server_interfaces(struct network_interface_info_ioctl_rsp *buf,
|
||||
kref_put(&iface->refcount, release_iface);
|
||||
} else
|
||||
list_add_tail(&info->iface_head, &ses->iface_list);
|
||||
spin_unlock(&ses->iface_lock);
|
||||
|
||||
ses->iface_count++;
|
||||
spin_unlock(&ses->iface_lock);
|
||||
ses->iface_last_update = jiffies;
|
||||
next_iface:
|
||||
nb_iface++;
|
||||
|
Loading…
Reference in New Issue
Block a user