diff options
author | Ronnie Sahlberg <lsahlber@redhat.com> | 2022-08-11 05:00:08 +0200 |
---|---|---|
committer | Steve French <stfrench@microsoft.com> | 2022-08-11 17:33:18 +0200 |
commit | 05b98fd2da6bdf241d3b9ba40582d60a84a89d70 (patch) | |
tree | 8d32c6b3ed80270c9c81574fc9449e9b783ee2e2 /fs/cifs/cifsfs.c | |
parent | cifs: Remove {cifs,nfs}_fscache_release_page() (diff) | |
download | linux-05b98fd2da6bdf241d3b9ba40582d60a84a89d70.tar.xz linux-05b98fd2da6bdf241d3b9ba40582d60a84a89d70.zip |
cifs: Move cached-dir functions into a separate file
Also rename crfid to cfid to have consistent naming for this variable.
This commit does not change any logic.
Signed-off-by: Ronnie Sahlberg <lsahlber@redhat.com>
Reviewed-by: Paulo Alcantara (SUSE) <pc@cjr.nz>
Signed-off-by: Steve French <stfrench@microsoft.com>
Diffstat (limited to 'fs/cifs/cifsfs.c')
-rw-r--r-- | fs/cifs/cifsfs.c | 20 |
1 files changed, 2 insertions, 18 deletions
diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c index 8849f0852110..945fb083cea7 100644 --- a/fs/cifs/cifsfs.c +++ b/fs/cifs/cifsfs.c @@ -46,6 +46,7 @@ #include "netlink.h" #endif #include "fs_context.h" +#include "cached_dir.h" /* * DOS dates from 1980/1/1 through 2107/12/31 @@ -283,30 +284,13 @@ out_no_root: static void cifs_kill_sb(struct super_block *sb) { struct cifs_sb_info *cifs_sb = CIFS_SB(sb); - struct cifs_tcon *tcon; - struct cached_fid *cfid; - struct rb_root *root = &cifs_sb->tlink_tree; - struct rb_node *node; - struct tcon_link *tlink; /* * We ned to release all dentries for the cached directories * before we kill the sb. */ if (cifs_sb->root) { - for (node = rb_first(root); node; node = rb_next(node)) { - tlink = rb_entry(node, struct tcon_link, tl_rbnode); - tcon = tlink_tcon(tlink); - if (IS_ERR(tcon)) - continue; - cfid = &tcon->crfid; - mutex_lock(&cfid->fid_mutex); - if (cfid->dentry) { - dput(cfid->dentry); - cfid->dentry = NULL; - } - mutex_unlock(&cfid->fid_mutex); - } + close_all_cached_dirs(cifs_sb); /* finally release root dentry */ dput(cifs_sb->root); |