aboutsummaryrefslogtreecommitdiffstats
path: root/fs/cifs/connect.c
diff options
context:
space:
mode:
authorSteve French <sfrench@us.ibm.com>2005-07-14 19:25:12 -0400
committerSteve French <sfrench@us.ibm.com>2005-07-14 19:25:12 -0400
commitd7245c2ccf14cde2023273c1ec246732d96e2c27 (patch)
tree657d7b5c9431b6117659f9638f4121ac237d4c5f /fs/cifs/connect.c
parent4887c61811c2283162684d7f9075b7676ef6a9bf (diff)
[CIFS] Add compat with SFU (part 1)
This should help the case of creating fifos and other special files to servers which do not support the Unix extensions. Signed-off-by: Steve French (sfrench@us.ibm.com) Thanks to Martin Koeppe for his suggestions and good analysis
Diffstat (limited to 'fs/cifs/connect.c')
-rw-r--r--fs/cifs/connect.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
index f6d2a7974fc1..36f78596c81a 100644
--- a/fs/cifs/connect.c
+++ b/fs/cifs/connect.c
@@ -75,6 +75,7 @@ struct smb_vol {
75 unsigned direct_io:1; 75 unsigned direct_io:1;
76 unsigned remap:1; /* set to remap seven reserved chars in filenames */ 76 unsigned remap:1; /* set to remap seven reserved chars in filenames */
77 unsigned posix_paths:1; /* unset to not ask for posix pathnames. */ 77 unsigned posix_paths:1; /* unset to not ask for posix pathnames. */
78 unsigned sfu_emul:1;
78 unsigned int rsize; 79 unsigned int rsize;
79 unsigned int wsize; 80 unsigned int wsize;
80 unsigned int sockopt; 81 unsigned int sockopt;
@@ -1027,6 +1028,10 @@ cifs_parse_mount_options(char *options, const char *devname,struct smb_vol *vol)
1027 vol->remap = 1; 1028 vol->remap = 1;
1028 } else if (strnicmp(data, "nomapchars", 10) == 0) { 1029 } else if (strnicmp(data, "nomapchars", 10) == 0) {
1029 vol->remap = 0; 1030 vol->remap = 0;
1031 } else if (strnicmp(data, "sfu", 3) == 0) {
1032 vol->sfu_emul = 1;
1033 } else if (strnicmp(data, "nosfu", 5) == 0) {
1034 vol->sfu_emul = 0;
1030 } else if (strnicmp(data, "posixpaths", 10) == 0) { 1035 } else if (strnicmp(data, "posixpaths", 10) == 0) {
1031 vol->posix_paths = 1; 1036 vol->posix_paths = 1;
1032 } else if (strnicmp(data, "noposixpaths", 12) == 0) { 1037 } else if (strnicmp(data, "noposixpaths", 12) == 0) {
@@ -1687,6 +1692,8 @@ cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb,
1687 cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_MAP_SPECIAL_CHR; 1692 cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_MAP_SPECIAL_CHR;
1688 if(volume_info.no_xattr) 1693 if(volume_info.no_xattr)
1689 cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_NO_XATTR; 1694 cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_NO_XATTR;
1695 if(volume_info.sfu_emul)
1696 cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_UNX_EMUL;
1690 1697
1691 if(volume_info.direct_io) { 1698 if(volume_info.direct_io) {
1692 cERROR(1,("mounting share using direct i/o")); 1699 cERROR(1,("mounting share using direct i/o"));