cifs: convert prefixpath delimiters in cifs_build_path_to_root
Regression from 2.6.39... The delimiters in the prefixpath are not being converted based on whether posix paths are in effect. Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=727834 Reported-and-Tested-by: Iain Arnell <iarnell@gmail.com> Reported-by: Patrick Oltmann <patrick.oltmann@gmx.net> Cc: Pavel Shilovsky <piastryyy@gmail.com> Cc: stable@kernel.org Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
This commit is contained in:
committed by
Steve French
parent
0193e07226
commit
f9e8c45002
@@ -764,20 +764,10 @@ char *cifs_build_path_to_root(struct smb_vol *vol, struct cifs_sb_info *cifs_sb,
|
|||||||
if (full_path == NULL)
|
if (full_path == NULL)
|
||||||
return full_path;
|
return full_path;
|
||||||
|
|
||||||
if (dfsplen) {
|
if (dfsplen)
|
||||||
strncpy(full_path, tcon->treeName, dfsplen);
|
strncpy(full_path, tcon->treeName, dfsplen);
|
||||||
/* switch slash direction in prepath depending on whether
|
|
||||||
* windows or posix style path names
|
|
||||||
*/
|
|
||||||
if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_POSIX_PATHS) {
|
|
||||||
int i;
|
|
||||||
for (i = 0; i < dfsplen; i++) {
|
|
||||||
if (full_path[i] == '\\')
|
|
||||||
full_path[i] = '/';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
strncpy(full_path + dfsplen, vol->prepath, pplen);
|
strncpy(full_path + dfsplen, vol->prepath, pplen);
|
||||||
|
convert_delimiter(full_path, CIFS_DIR_SEP(cifs_sb));
|
||||||
full_path[dfsplen + pplen] = 0; /* add trailing null */
|
full_path[dfsplen + pplen] = 0; /* add trailing null */
|
||||||
return full_path;
|
return full_path;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user