Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 10 Mar 2015 12:25:06 +0000 (UTC)
From:      Edward Tomasz Napierala <trasz@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r279846 - head/usr.sbin/autofs
Message-ID:  <201503101225.t2ACP6bn091503@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: trasz
Date: Tue Mar 10 12:25:05 2015
New Revision: 279846
URL: https://svnweb.freebsd.org/changeset/base/279846

Log:
  Properly pass options for direct maps.
  
  MFC after:	1 month
  Sponsored by:	The FreeBSD Foundation

Modified:
  head/usr.sbin/autofs/automount.c
  head/usr.sbin/autofs/automountd.c

Modified: head/usr.sbin/autofs/automount.c
==============================================================================
--- head/usr.sbin/autofs/automount.c	Tue Mar 10 11:59:33 2015	(r279845)
+++ head/usr.sbin/autofs/automount.c	Tue Mar 10 12:25:05 2015	(r279846)
@@ -141,8 +141,8 @@ mount_autofs(const char *from, const cha
 }
 
 static void
-mount_if_not_already(const struct node *n, const char *map,
-    const struct statfs *mntbuf, int nitems)
+mount_if_not_already(const struct node *n, const char *map, const char *options,
+    const char *prefix, const struct statfs *mntbuf, int nitems)
 {
 	const struct statfs *sb;
 	char *mountpoint;
@@ -175,7 +175,7 @@ mount_if_not_already(const struct node *
 		    mountpoint);
 	}
 
-	mount_autofs(from, mountpoint, n->n_options, n->n_key);
+	mount_autofs(from, mountpoint, options, prefix);
 	free(from);
 	free(mountpoint);
 }
@@ -184,7 +184,7 @@ static void
 mount_unmount(struct node *root)
 {
 	struct statfs *mntbuf;
-	struct node *n, *n2, *n3;
+	struct node *n, *n2;
 	int i, nitems;
 
 	nitems = getmntinfo(&mntbuf, MNT_WAIT);
@@ -216,15 +216,14 @@ mount_unmount(struct node *root)
 
 	TAILQ_FOREACH(n, &root->n_children, n_next) {
 		if (!node_is_direct_map(n)) {
-			mount_if_not_already(n, n->n_map, mntbuf, nitems);
+			mount_if_not_already(n, n->n_map, n->n_options,
+			    n->n_key, mntbuf, nitems);
 			continue;
 		}
 
 		TAILQ_FOREACH(n2, &n->n_children, n_next) {
-			TAILQ_FOREACH(n3, &n2->n_children, n_next) {
-				mount_if_not_already(n3, n->n_map,
-				    mntbuf, nitems);
-			}
+			mount_if_not_already(n2, n->n_map, n->n_options,
+			    "/", mntbuf, nitems);
 		}
 	}
 }

Modified: head/usr.sbin/autofs/automountd.c
==============================================================================
--- head/usr.sbin/autofs/automountd.c	Tue Mar 10 11:59:33 2015	(r279845)
+++ head/usr.sbin/autofs/automountd.c	Tue Mar 10 12:25:05 2015	(r279846)
@@ -202,7 +202,7 @@ handle_request(const struct autofs_daemo
 		parent = root;
 	} else {
 		parent = node_new_map(root, checked_strdup(adr->adr_prefix),
-		    checked_strdup(adr->adr_options), checked_strdup(map),
+		    NULL,  checked_strdup(map),
 		    checked_strdup("[kernel request]"), lineno);
 	}
 
@@ -231,19 +231,19 @@ handle_request(const struct autofs_daemo
 		    "failing mount", map, adr->adr_path);
 	}
 
+	options = node_options(node);
+	options = concat(adr->adr_options, ',', options);
+
+	/*
+	 * Prepend options passed via automountd(8) command line.
+	 */
+	if (cmdline_options != NULL)
+		options = concat(cmdline_options, ',', options);
+
 	if (node->n_location == NULL) {
 		log_debugx("found node defined at %s:%d; not a mountpoint",
 		    node->n_config_file, node->n_config_line);
 
-		options = node_options(node);
-
-		/*
-		 * Prepend options passed via automountd(8) command line.
-		 */
-		if (cmdline_options != NULL) {
-			options = concat(cmdline_options, ',', options);
-		}
-
 		nobrowse = pick_option("nobrowse", &options);
 		if (nobrowse != NULL && adr->adr_key[0] == '\0') {
 			log_debugx("skipping map %s due to \"nobrowse\" "
@@ -293,14 +293,6 @@ handle_request(const struct autofs_daemo
 		    "failing mount", adr->adr_path);
 	}
 
-	options = node_options(node);
-
-	/*
-	 * Prepend options passed via automountd(8) command line.
-	 */
-	if (cmdline_options != NULL)
-		options = concat(cmdline_options, ',', options);
-
 	/*
 	 * Append "automounted".
 	 */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201503101225.t2ACP6bn091503>