When a prefix path needs to be added, current code hardcodes the initial path separator to backslash. Use CIFS_DIR_SEP instead and properly convert path separator in the prefix path. CIFS_MOUNT_USE_PREFIX_PATH is rarely needed (Windows shares with very specific ACL or buggy mount call AFAIK) which explains why the backsplash wasn't a big issue. Signed-off-by: Aurelien Aptel <aaptel@xxxxxxxx> --- fs/cifs/dir.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/fs/cifs/dir.c b/fs/cifs/dir.c index 4716c54..c85a8bb 100644 --- a/fs/cifs/dir.c +++ b/fs/cifs/dir.c @@ -160,13 +160,15 @@ cifs_bp_rename_retry: if (pplen) { int i; + char oldsep = dirsep == '/' ? '\\' : '/'; cifs_dbg(FYI, "using cifs_sb prepath <%s>\n", cifs_sb->prepath); + + full_path[dfsplen] = dirsep; memcpy(full_path+dfsplen+1, cifs_sb->prepath, pplen-1); - full_path[dfsplen] = '\\'; - for (i = 0; i < pplen-1; i++) - if (full_path[dfsplen+1+i] == '/') - full_path[dfsplen+1+i] = CIFS_DIR_SEP(cifs_sb); + for (i = 1; i < pplen; i++) + if (full_path[dfsplen+i] == oldsep) + full_path[dfsplen+i] = dirsep; } if (dfsplen) { -- 2.1.4 -- To unsubscribe from this list: send the line "unsubscribe linux-cifs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html