summaryrefslogtreecommitdiff
path: root/mount.cifs.c
diff options
context:
space:
mode:
Diffstat (limited to 'mount.cifs.c')
-rw-r--r--mount.cifs.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/mount.cifs.c b/mount.cifs.c
index 27d267c..5a05caa 100644
--- a/mount.cifs.c
+++ b/mount.cifs.c
@@ -160,6 +160,8 @@
#define OPT_RO 24
#define OPT_RW 25
#define OPT_REMOUNT 26
+#define OPT_MAND 27
+#define OPT_NOMAND 28
/* struct for holding parsed mount info for use by privleged process */
@@ -823,6 +825,10 @@ static int parse_opt_token(const char *token)
return OPT_NO_DEV;
if (strncmp(token, "nobrl", 5) == 0 || strncmp(token, "nolock", 6) == 0)
return OPT_NO_LOCK;
+ if (strncmp(token, "mand", 4) == 0)
+ return OPT_MAND;
+ if (strncmp(token, "nomand", 6) == 0)
+ return OPT_NOMAND;
if (strncmp(token, "dev", 3) == 0)
return OPT_DEV;
if (strncmp(token, "noexec", 6) == 0)
@@ -1109,6 +1115,12 @@ parse_options(const char *data, struct parsed_mount_info *parsed_info)
case OPT_NO_LOCK:
*filesys_flags &= ~MS_MANDLOCK;
break;
+ case OPT_MAND:
+ *filesys_flags |= MS_MANDLOCK;
+ goto nocopy;
+ case OPT_NOMAND:
+ *filesys_flags &= ~MS_MANDLOCK;
+ goto nocopy;
case OPT_DEV:
*filesys_flags &= ~MS_NODEV;
break;
@@ -1735,8 +1747,6 @@ int main(int argc, char **argv)
return EX_SYSERR;
}
- parsed_info->flags = MS_MANDLOCK;
-
/* add sharename in opts string as unc= parm */
while ((c = getopt_long(argc, argv, "?fhno:rvVw",
longopts, NULL)) != -1) {