CIFS: Fix symbolic links usage
authorPavel Shilovsky <piastry@etersoft.ru>
Wed, 23 Oct 2013 13:49:47 +0000 (17:49 +0400)
committerSteve French <smfrench@gmail.com>
Mon, 11 Nov 2013 22:31:03 +0000 (16:31 -0600)
commiteb85d94bdd91fb4dbea4ee465d4349cbea4eaaca
tree217ed41bd6bdf55b5a7263d42ebab386f6377785
parent6c86ae2928f9e4cbf0d5844f5fcfd549e3450b8c
CIFS: Fix symbolic links usage

Now we treat any reparse point as a symbolic link and map it to a Unix
one that is not true in a common case due to many reparse point types
supported by SMB servers.

Distinguish reparse point types into two groups:
1) that can be accessed directly through a reparse point
(junctions, deduplicated files, NFS symlinks);
2) that need to be processed manually (Windows symbolic links, DFS);

and map only Windows symbolic links to Unix ones.

Cc: <stable@vger.kernel.org>
Acked-by: Jeff Layton <jlayton@redhat.com>
Reported-and-tested-by: Joao Correia <joaomiguelcorreia@gmail.com>
Signed-off-by: Pavel Shilovsky <piastry@etersoft.ru>
Signed-off-by: Steve French <smfrench@gmail.com>
fs/cifs/cifsglob.h
fs/cifs/inode.c
fs/cifs/readdir.c
fs/cifs/smb1ops.c
fs/cifs/smb2inode.c
fs/cifs/smb2proto.h