aboutsummaryrefslogtreecommitdiffstats
path: root/fs/cifs/inode.c
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2010-08-05 15:19:56 -0400
committerSteve French <sfrench@us.ibm.com>2010-09-29 15:04:31 -0400
commit1b12b9c15b4371d83b729b8fc18c670e78a1479b (patch)
treef82c9b0d01cdc5e64765780403f460e9e0d8496b /fs/cifs/inode.c
parent8713d01db8bf948eb9632726f529ec4f821bb025 (diff)
cifs: use Minshall+French symlink functions
If configured, Minshall+French Symlinks are used against all servers. If the server supports UNIX Extensions, we still create Minshall+French Symlinks on write, but on read we fallback to UNIX Extension symlinks. Signed-off-by: Stefan Metzmacher <metze@samba.org> Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'fs/cifs/inode.c')
-rw-r--r--fs/cifs/inode.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c
index 93f77d438d3c..016975b8e6dd 100644
--- a/fs/cifs/inode.c
+++ b/fs/cifs/inode.c
@@ -332,6 +332,13 @@ int cifs_get_inode_info_unix(struct inode **pinode,
332 return rc; 332 return rc;
333 } 333 }
334 334
335 /* check for Minshall+French symlinks */
336 if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MF_SYMLINKS) {
337 int tmprc = CIFSCheckMFSymlink(&fattr, full_path, cifs_sb, xid);
338 if (tmprc)
339 cFYI(1, "CIFSCheckMFSymlink: %d", tmprc);
340 }
341
335 if (*pinode == NULL) { 342 if (*pinode == NULL) {
336 /* get new inode */ 343 /* get new inode */
337 cifs_fill_uniqueid(sb, &fattr); 344 cifs_fill_uniqueid(sb, &fattr);
@@ -661,6 +668,13 @@ int cifs_get_inode_info(struct inode **pinode,
661 if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_UNX_EMUL) 668 if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_UNX_EMUL)
662 cifs_sfu_mode(&fattr, full_path, cifs_sb, xid); 669 cifs_sfu_mode(&fattr, full_path, cifs_sb, xid);
663 670
671 /* check for Minshall+French symlinks */
672 if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MF_SYMLINKS) {
673 tmprc = CIFSCheckMFSymlink(&fattr, full_path, cifs_sb, xid);
674 if (tmprc)
675 cFYI(1, "CIFSCheckMFSymlink: %d", tmprc);
676 }
677
664 if (!*pinode) { 678 if (!*pinode) {
665 *pinode = cifs_iget(sb, &fattr); 679 *pinode = cifs_iget(sb, &fattr);
666 if (!*pinode) 680 if (!*pinode)