Linux CIFS filesystem development
 help / color / mirror / Atom feed
* [PATCH v1 1/1] fs/cifs/dir.c: use correct path separators
@ 2016-09-07 13:45 Aurelien Aptel
       [not found] ` <1473255952-27579-1-git-send-email-aaptel-IBi9RG/b67k@public.gmane.org>
  0 siblings, 1 reply; 3+ messages in thread
From: Aurelien Aptel @ 2016-09-07 13:45 UTC (permalink / raw)
  To: linux-cifs-u79uwXL29TY76Z2rM5mHXA; +Cc: Aurelien Aptel

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-IBi9RG/b67k@public.gmane.org>
---
 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

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2016-09-17  7:54 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-09-07 13:45 [PATCH v1 1/1] fs/cifs/dir.c: use correct path separators Aurelien Aptel
     [not found] ` <1473255952-27579-1-git-send-email-aaptel-IBi9RG/b67k@public.gmane.org>
2016-09-12 18:36   ` Sachin Prabhu
     [not found]     ` <1473705389.29354.20.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-09-17  7:54       ` Aurélien Aptel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox