Commit 5bf91ef0 authored by Shyam Prasad N's avatar Shyam Prasad N Committed by Steve French
Browse files

cifs: wait for tcon resource_id before getting fscache super



The logic for initializing tcon->resource_id is done inside
cifs_root_iget. fscache super cookie relies on this for aux
data. So we need to push the fscache initialization to this
later point during mount.

Signed-off-by: default avatarShyam Prasad N <sprasad@microsoft.com>
Reviewed-by: default avatarPaulo Alcantara (SUSE) <pc@cjr.nz>
Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
parent 65de262a
Loading
Loading
Loading
Loading
+0 −6
Original line number Diff line number Diff line
@@ -3046,12 +3046,6 @@ static int mount_get_conns(struct mount_ctx *mnt_ctx)
				cifs_dbg(VFS, "read only mount of RW share\n");
			/* no need to log a RW mount of a typical RW share */
		}
		/*
		 * The cookie is initialized from volume info returned above.
		 * Inside cifs_fscache_get_super_cookie it checks
		 * that we do not get super cookie twice.
		 */
		cifs_fscache_get_super_cookie(tcon);
	}

	/*
+1 −1
Original line number Diff line number Diff line
@@ -92,7 +92,7 @@ void cifs_fscache_get_super_cookie(struct cifs_tcon *tcon)
	 * In the future, as we integrate with newer fscache features,
	 * we may want to instead add a check if cookie has changed
	 */
	if (tcon->fscache == NULL)
	if (tcon->fscache)
		return;

	sharename = extract_sharename(tcon->treeName);
+7 −0
Original line number Diff line number Diff line
@@ -1376,6 +1376,13 @@ struct inode *cifs_root_iget(struct super_block *sb)
		inode = ERR_PTR(rc);
	}

	/*
	 * The cookie is initialized from volume info returned above.
	 * Inside cifs_fscache_get_super_cookie it checks
	 * that we do not get super cookie twice.
	 */
	cifs_fscache_get_super_cookie(tcon);

out:
	kfree(path);
	free_xid(xid);