Patch "cifs: cifs_inval_name_dfs_link_error: correct the check for fullpath" has been added to the 6.10-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    cifs: cifs_inval_name_dfs_link_error: correct the check for fullpath

to the 6.10-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     cifs-cifs_inval_name_dfs_link_error-correct-the-chec.patch
and it can be found in the queue-6.10 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 43104f58262c84ef87740dfe2fa79693ac370afd
Author: Gleb Korobeynikov <gkorobeynikov@xxxxxxxxxxxxx>
Date:   Thu Aug 8 18:47:48 2024 +0300

    cifs: cifs_inval_name_dfs_link_error: correct the check for fullpath
    
    [ Upstream commit 36bb22a08a69d9984a8399c07310d18b115eae20 ]
    
    Replace the always-true check tcon->origin_fullpath with
    check of server->leaf_fullpath
    
    See https://bugzilla.kernel.org/show_bug.cgi?id=219083
    
    The check of the new @tcon will always be true during mounting,
    since @tcon->origin_fullpath will only be set after the tree is
    connected to the latest common resource, as well as checking if
    the prefix paths from it are fully accessible.
    
    Fixes: 3ae872de4107 ("smb: client: fix shared DFS root mounts with different prefixes")
    Reviewed-by: Paulo Alcantara (Red Hat) <pc@xxxxxxxxxxxxx>
    Signed-off-by: Gleb Korobeynikov <gkorobeynikov@xxxxxxxxxxxxx>
    Signed-off-by: Steve French <stfrench@xxxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/fs/smb/client/misc.c b/fs/smb/client/misc.c
index 07c468ddb88a8..65d4b72b4d51a 100644
--- a/fs/smb/client/misc.c
+++ b/fs/smb/client/misc.c
@@ -1288,6 +1288,7 @@ int cifs_inval_name_dfs_link_error(const unsigned int xid,
 				   const char *full_path,
 				   bool *islink)
 {
+	struct TCP_Server_Info *server = tcon->ses->server;
 	struct cifs_ses *ses = tcon->ses;
 	size_t len;
 	char *path;
@@ -1304,12 +1305,12 @@ int cifs_inval_name_dfs_link_error(const unsigned int xid,
 	    !is_tcon_dfs(tcon))
 		return 0;
 
-	spin_lock(&tcon->tc_lock);
-	if (!tcon->origin_fullpath) {
-		spin_unlock(&tcon->tc_lock);
+	spin_lock(&server->srv_lock);
+	if (!server->leaf_fullpath) {
+		spin_unlock(&server->srv_lock);
 		return 0;
 	}
-	spin_unlock(&tcon->tc_lock);
+	spin_unlock(&server->srv_lock);
 
 	/*
 	 * Slow path - tcon is DFS and @full_path has prefix path, so attempt




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux