]> Git Repo - linux.git/commitdiff
cifs: Do not convert delimiter when parsing NFS-style symlinks
authorPali Rohár <[email protected]>
Sat, 28 Sep 2024 21:59:46 +0000 (23:59 +0200)
committerSteve French <[email protected]>
Thu, 3 Oct 2024 17:06:36 +0000 (12:06 -0500)
NFS-style symlinks have target location always stored in NFS/UNIX form
where backslash means the real UNIX backslash and not the SMB path
separator.

So do not mangle slash and backslash content of NFS-style symlink during
readlink() syscall as it is already in the correct Linux form.

This fixes interoperability of NFS-style symlinks with backslashes created
by Linux NFS3 client throw Windows NFS server and retrieved by Linux SMB
client throw Windows SMB server, where both Windows servers exports the
same directory.

Fixes: d5ecebc4900d ("smb3: Allow query of symlinks stored as reparse points")
Acked-by: Paulo Alcantara (Red Hat) <[email protected]>
Signed-off-by: Pali Rohár <[email protected]>
Signed-off-by: Steve French <[email protected]>
fs/smb/client/reparse.c

index f0cfcf32de190778594dffc51c9290f48908d251..c848b5e88d32f77f3d004c08113958c885ba4952 100644 (file)
@@ -347,7 +347,6 @@ static int parse_reparse_posix(struct reparse_posix_data *buf,
                                                               cifs_sb->local_nls);
                if (!data->symlink_target)
                        return -ENOMEM;
-               convert_delimiter(data->symlink_target, '/');
                cifs_dbg(FYI, "%s: target path: %s\n",
                         __func__, data->symlink_target);
                break;
This page took 0.055222 seconds and 4 git commands to generate.