From: Ronnie Sahlberg Date: Wed, 31 Aug 2022 02:49:43 +0000 (+1000) Subject: cifs: improve handlecaching X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=47fc2491e108f253cf963c50acc59a74d34c7f2b;p=linux.git cifs: improve handlecaching Only track the dentry for the root handle Signed-off-by: Ronnie Sahlberg Signed-off-by: Steve French --- diff --git a/fs/cifs/cached_dir.c b/fs/cifs/cached_dir.c index 88d117ddb6308..211f630cd8760 100644 --- a/fs/cifs/cached_dir.c +++ b/fs/cifs/cached_dir.c @@ -47,11 +47,11 @@ int open_cached_dir(unsigned int xid, struct cifs_tcon *tcon, if (cifs_sb->root == NULL) return -ENOENT; - if (strlen(path)) + if (!path[0]) + dentry = cifs_sb->root; + else return -ENOENT; - dentry = cifs_sb->root; - cfid = &tcon->cfids->cfid; mutex_lock(&cfid->fid_mutex); if (cfid->is_valid) { @@ -177,7 +177,8 @@ int open_cached_dir(unsigned int xid, struct cifs_tcon *tcon, cfid->tcon = tcon; cfid->is_valid = true; cfid->dentry = dentry; - dget(dentry); + if (dentry) + dget(dentry); kref_init(&cfid->refcount); /* BB TBD check to see if oplock level check can be removed below */