diff options
Diffstat (limited to 'fs/smb/client/misc.c')
| -rw-r--r-- | fs/smb/client/misc.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/fs/smb/client/misc.c b/fs/smb/client/misc.c index da23cc12a52c..8d70333a6a3d 100644 --- a/fs/smb/client/misc.c +++ b/fs/smb/client/misc.c @@ -169,7 +169,14 @@ tconInfoFree(struct cifs_tcon *tcon, enum smb3_tcon_ref_trace trace) return; } trace_smb3_tcon_ref(tcon->debug_id, tcon->tc_count, trace); - free_cached_dirs(tcon->cfids); + + if (tcon->cfids) { + invalidate_all_cached_dirs(tcon->cfids); + cancel_delayed_work_sync(&tcon->cfids->laundromat_work); + kfree(tcon->cfids); + tcon->cfids = NULL; + } + atomic_dec(&tconInfoAllocCount); kfree(tcon->nativeFileSystem); kfree_sensitive(tcon->password); |
