svn commit: r364401 - in head: sbin/mount sys/sys

Warner Losh imp at FreeBSD.org
Wed Aug 19 17:09:59 UTC 2020


Author: imp
Date: Wed Aug 19 17:09:58 2020
New Revision: 364401
URL: https://svnweb.freebsd.org/changeset/base/364401

Log:
  Move the mount name to bit mapping into sys/mount.h so it can be shared with the
  kernel.
  
  Discussed with: kib@
  Reviewed by: kirk@ (prior version)
  Sponsored by: Netflix
  Diffential Revision: https://reviews.freebsd.org/D25969

Modified:
  head/sbin/mount/mount.c
  head/sys/sys/mount.h

Modified: head/sbin/mount/mount.c
==============================================================================
--- head/sbin/mount/mount.c	Wed Aug 19 17:05:30 2020	(r364400)
+++ head/sbin/mount/mount.c	Wed Aug 19 17:09:58 2020	(r364401)
@@ -42,6 +42,7 @@ static char sccsid[] = "@(#)mount.c	8.25 (Berkeley) 5/
 __FBSDID("$FreeBSD$");
 
 #include <sys/param.h>
+#define _WANT_MNTOPTNAMES
 #include <sys/mount.h>
 #include <sys/stat.h>
 #include <sys/wait.h>
@@ -92,36 +93,8 @@ void	usage(void);
 char   *flags2opts(int);
 
 /* Map from mount options to printable formats. */
-static struct opt {
-	uint64_t o_opt;
-	const char *o_name;
-} optnames[] = {
-	{ MNT_ASYNC,		"asynchronous" },
-	{ MNT_EXPORTED,		"NFS exported" },
-	{ MNT_LOCAL,		"local" },
-	{ MNT_NOATIME,		"noatime" },
-	{ MNT_NOEXEC,		"noexec" },
-	{ MNT_NOSUID,		"nosuid" },
-	{ MNT_NOSYMFOLLOW,	"nosymfollow" },
-	{ MNT_QUOTA,		"with quotas" },
-	{ MNT_RDONLY,		"read-only" },
-	{ MNT_SYNCHRONOUS,	"synchronous" },
-	{ MNT_UNION,		"union" },
-	{ MNT_NOCLUSTERR,	"noclusterr" },
-	{ MNT_NOCLUSTERW,	"noclusterw" },
-	{ MNT_SUIDDIR,		"suiddir" },
-	{ MNT_SOFTDEP,		"soft-updates" },
-	{ MNT_SUJ,		"journaled soft-updates" },
-	{ MNT_MULTILABEL,	"multilabel" },
-	{ MNT_ACLS,		"acls" },
-	{ MNT_NFS4ACLS,		"nfsv4acls" },
-	{ MNT_GJOURNAL,		"gjournal" },
-	{ MNT_AUTOMOUNTED,	"automounted" },
-	{ MNT_VERIFIED,		"verified" },
-	{ MNT_UNTRUSTED,	"untrusted" },
-	{ MNT_NOCOVER,		"nocover" },
-	{ MNT_EMPTYDIR,		"emptydir" },
-	{ 0, NULL }
+static struct mntoptnames optnames[] = {
+	MNTOPT_NAMES
 };
 
 /*
@@ -664,7 +637,7 @@ prmount(struct statfs *sfp)
 {
 	uint64_t flags;
 	unsigned int i;
-	struct opt *o;
+	struct mntoptnames *o;
 	struct passwd *pw;
 
 	(void)printf("%s on %s (%s", sfp->f_mntfromname, sfp->f_mntonname,

Modified: head/sys/sys/mount.h
==============================================================================
--- head/sys/sys/mount.h	Wed Aug 19 17:05:30 2020	(r364400)
+++ head/sys/sys/mount.h	Wed Aug 19 17:09:58 2020	(r364401)
@@ -294,6 +294,45 @@ void          __mnt_vnode_markerfree_lazy(struct vnode
 
 #endif /* _KERNEL */
 
+#if defined(_WANT_MNTOPTNAMES) || defined(_KERNEL)
+struct mntoptnames {
+	uint64_t o_opt;
+	const char *o_name;
+};
+#define MNTOPT_NAMES							\
+	{ MNT_ASYNC,		"asynchronous" },			\
+	{ MNT_EXPORTED,		"NFS exported" },			\
+	{ MNT_LOCAL,		"local" },				\
+	{ MNT_NOATIME,		"noatime" },				\
+	{ MNT_NOEXEC,		"noexec" },				\
+	{ MNT_NOSUID,		"nosuid" },				\
+	{ MNT_NOSYMFOLLOW,	"nosymfollow" },			\
+	{ MNT_QUOTA,		"with quotas" },			\
+	{ MNT_RDONLY,		"read-only" },				\
+	{ MNT_SYNCHRONOUS,	"synchronous" },			\
+	{ MNT_UNION,		"union" },				\
+	{ MNT_NOCLUSTERR,	"noclusterr" },				\
+	{ MNT_NOCLUSTERW,	"noclusterw" },				\
+	{ MNT_SUIDDIR,		"suiddir" },				\
+	{ MNT_SOFTDEP,		"soft-updates" },			\
+	{ MNT_SUJ,		"journaled soft-updates" },		\
+	{ MNT_MULTILABEL,	"multilabel" },				\
+	{ MNT_ACLS,		"acls" },				\
+	{ MNT_NFS4ACLS,		"nfsv4acls" },				\
+	{ MNT_GJOURNAL,		"gjournal" },				\
+	{ MNT_AUTOMOUNTED,	"automounted" },			\
+	{ MNT_VERIFIED,		"verified" },				\
+	{ MNT_UNTRUSTED,	"untrusted" },				\
+	{ MNT_NOCOVER,		"nocover" },				\
+	{ MNT_EMPTYDIR,		"emptydir" },				\
+	{ MNT_UPDATE,		"update" },				\
+	{ MNT_DELEXPORT,	"delexport" },				\
+	{ MNT_RELOAD,		"reload" },				\
+	{ MNT_FORCE,		"force" },				\
+	{ MNT_SNAPSHOT,		"snapshot" },				\
+	{ 0, NULL }
+#endif
+
 /*
  * User specifiable flags, stored in mnt_flag.
  */


More information about the svn-src-head mailing list