diff --git a/fs/cifs/readdir.c b/fs/cifs/readdir.c
index ccf34481d801..384cabdf47ca 100644
--- a/fs/cifs/readdir.c
+++ b/fs/cifs/readdir.c
@@ -1105,10 +1105,8 @@ int cifs_readdir(struct file *file, struct dir_context *ctx)
 	 * find_cifs_entry in case there will be reconnects during
 	 * query_directory.
 	 */
-	if (cfid) {
-		close_cached_dir(cfid);
-		cfid = NULL;
-	}
+	close_cached_dir(cfid);
+	cfid = NULL;
 
  cache_not_found:
 	/*
diff --git a/fs/cifs/smb2ops.c b/fs/cifs/smb2ops.c
index 7e2c86e0cede..d7ade739cde1 100644
--- a/fs/cifs/smb2ops.c
+++ b/fs/cifs/smb2ops.c
@@ -770,6 +770,7 @@ smb2_cached_lease_break(struct work_struct *work)
 /*
  * Open the and cache a directory handle.
  * Only supported for the root handle.
+ * If error then *cfid is not initialized.
  */
 int open_cached_dir(unsigned int xid, struct cifs_tcon *tcon,
 		const char *path,