diff mbox

mount.cifs: handle the "mand" and "nomand" mount options (try #2)

Message ID 1280230934-20830-1-git-send-email-jlayton@samba.org (mailing list archive)
State New, archived
Headers show

Commit Message

Jeff Layton July 27, 2010, 11:42 a.m. UTC
None
diff mbox

Patch

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) {