diff options
author | Paulo Alcantara (SUSE) <pc@cjr.nz> | 2019-12-04 17:38:02 -0300 |
---|---|---|
committer | Steve French <stfrench@microsoft.com> | 2020-01-26 19:24:16 -0600 |
commit | 06d57378bcc9b2c33640945174842115593795d1 (patch) | |
tree | bcb8b54174a3b4c3ed19ddf49ec95768950250c7 /fs/direct-io.c | |
parent | ff2f7fc08268f266372c30a815349749e8499eb5 (diff) |
cifs: Fix potential deadlock when updating vol in cifs_reconnect()
We can't acquire volume lock while refreshing the DFS cache because
cifs_reconnect() may call dfs_cache_update_vol() while we are walking
through the volume list.
To prevent that, make vol_info refcounted, create a temp list with all
volumes eligible for refreshing, and then use it without any locks
held.
Besides, replace vol_lock with a spinlock and protect cache_ttl from
concurrent accesses or changes.
Signed-off-by: Paulo Alcantara (SUSE) <pc@cjr.nz>
Signed-off-by: Steve French <stfrench@microsoft.com>
Diffstat (limited to 'fs/direct-io.c')
0 files changed, 0 insertions, 0 deletions