Module Name:    src
Committed By:   christos
Date:           Fri Nov 18 21:17:46 UTC 2011

Modified Files:
        src/sys/kern: vfs_mount.c vfs_syscalls.c
        src/sys/sys: fstypes.h statvfs.h

Log Message:
- collect the long (and sometimes incomplete) lists of basic flags into
  the header file and use that.
- sort the list of basic flags
- add MNT_RELATIME, ST_RELATIME
- mask all the op flags, for symmetry.

The real bit difference is (which is harmless):
    - mount was missing MNT_EXTATTR
    - update sets MNT_RDONLY twice
    - ops also could or in MNT_GETARGS, but this is impossible because the
      code would have chosen to do getargs then.


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 src/sys/kern/vfs_mount.c
cvs rdiff -u -r1.440 -r1.441 src/sys/kern/vfs_syscalls.c
cvs rdiff -u -r1.29 -r1.30 src/sys/sys/fstypes.h
cvs rdiff -u -r1.16 -r1.17 src/sys/sys/statvfs.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/kern/vfs_mount.c
diff -u src/sys/kern/vfs_mount.c:1.11 src/sys/kern/vfs_mount.c:1.12
--- src/sys/kern/vfs_mount.c:1.11	Fri Oct 14 05:23:31 2011
+++ src/sys/kern/vfs_mount.c	Fri Nov 18 16:17:45 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: vfs_mount.c,v 1.11 2011/10/14 09:23:31 hannken Exp $	*/
+/*	$NetBSD: vfs_mount.c,v 1.12 2011/11/18 21:17:45 christos Exp $	*/
 
 /*-
  * Copyright (c) 1997-2011 The NetBSD Foundation, Inc.
@@ -67,7 +67,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vfs_mount.c,v 1.11 2011/10/14 09:23:31 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vfs_mount.c,v 1.12 2011/11/18 21:17:45 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/kernel.h>
@@ -696,11 +696,7 @@ mount_domount(struct lwp *l, vnode_t **v
 	 *
 	 * Set the mount level flags.
 	 */
-	mp->mnt_flag = flags &
-	   (MNT_FORCE | MNT_NOSUID | MNT_NOEXEC | MNT_NODEV |
-	    MNT_SYNCHRONOUS | MNT_UNION | MNT_ASYNC | MNT_NOCOREDUMP |
-	    MNT_NOATIME | MNT_NODEVMTIME | MNT_SYMPERM | MNT_SOFTDEP |
-	    MNT_LOG | MNT_IGNORE | MNT_RDONLY);
+	mp->mnt_flag = flags & (MNT_BASIC_FLAGS | MNT_FORCE | MNT_IGNORE);
 
 	mutex_enter(&mp->mnt_updating);
 	error = VFS_MOUNT(mp, path, data, data_len);

Index: src/sys/kern/vfs_syscalls.c
diff -u src/sys/kern/vfs_syscalls.c:1.440 src/sys/kern/vfs_syscalls.c:1.441
--- src/sys/kern/vfs_syscalls.c:1.440	Fri Oct 14 05:23:31 2011
+++ src/sys/kern/vfs_syscalls.c	Fri Nov 18 16:17:45 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: vfs_syscalls.c,v 1.440 2011/10/14 09:23:31 hannken Exp $	*/
+/*	$NetBSD: vfs_syscalls.c,v 1.441 2011/11/18 21:17:45 christos Exp $	*/
 
 /*-
  * Copyright (c) 2008, 2009 The NetBSD Foundation, Inc.
@@ -70,7 +70,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vfs_syscalls.c,v 1.440 2011/10/14 09:23:31 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vfs_syscalls.c,v 1.441 2011/11/18 21:17:45 christos Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_fileassoc.h"
@@ -221,7 +221,7 @@ mount_update(struct lwp *l, struct vnode
 	mutex_enter(&mp->mnt_updating);
 
 	mp->mnt_flag &= ~MNT_OP_FLAGS;
-	mp->mnt_flag |= flags & (MNT_RELOAD | MNT_FORCE | MNT_UPDATE);
+	mp->mnt_flag |= flags & MNT_OP_FLAGS;
 
 	/*
 	 * Set the mount level flags.
@@ -230,17 +230,8 @@ mount_update(struct lwp *l, struct vnode
 		mp->mnt_flag |= MNT_RDONLY;
 	else if (mp->mnt_flag & MNT_RDONLY)
 		mp->mnt_iflag |= IMNT_WANTRDWR;
-	mp->mnt_flag &=
-	  ~(MNT_NOSUID | MNT_NOEXEC | MNT_NODEV |
-	    MNT_SYNCHRONOUS | MNT_UNION | MNT_ASYNC | MNT_NOCOREDUMP |
-	    MNT_NOATIME | MNT_NODEVMTIME | MNT_SYMPERM | MNT_SOFTDEP |
-	    MNT_LOG | MNT_EXTATTR);
-	mp->mnt_flag |= flags &
-	   (MNT_NOSUID | MNT_NOEXEC | MNT_NODEV |
-	    MNT_SYNCHRONOUS | MNT_UNION | MNT_ASYNC | MNT_NOCOREDUMP |
-	    MNT_NOATIME | MNT_NODEVMTIME | MNT_SYMPERM | MNT_SOFTDEP |
-	    MNT_LOG | MNT_EXTATTR | MNT_IGNORE);
-
+	mp->mnt_flag &= ~MNT_BASIC_FLAGS;
+	mp->mnt_flag |= flags & MNT_BASIC_FLAGS;
 	error = VFS_MOUNT(mp, path, data, data_len);
 
 	if (error && data != NULL) {

Index: src/sys/sys/fstypes.h
diff -u src/sys/sys/fstypes.h:1.29 src/sys/sys/fstypes.h:1.30
--- src/sys/sys/fstypes.h:1.29	Fri Jun 17 10:23:51 2011
+++ src/sys/sys/fstypes.h	Fri Nov 18 16:17:45 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: fstypes.h,v 1.29 2011/06/17 14:23:51 manu Exp $	*/
+/*	$NetBSD: fstypes.h,v 1.30 2011/11/18 21:17:45 christos Exp $	*/
 
 /*
  * Copyright (c) 1989, 1991, 1993
@@ -83,9 +83,8 @@ typedef struct fhandle	fhandle_t;
  * one of the __MNT_UNUSED flags.
  */
 
-#define	__MNT_UNUSED1	0x00020000
-#define	__MNT_UNUSED2	0x00200000
-#define	__MNT_UNUSED3	0x00800000
+#define	__MNT_UNUSED1	0x00200000
+#define	__MNT_UNUSED2	0x00800000
 
 #define	MNT_RDONLY	0x00000001	/* read only filesystem */
 #define	MNT_SYNCHRONOUS	0x00000002	/* file system written synchronously */
@@ -95,6 +94,7 @@ typedef struct fhandle	fhandle_t;
 #define	MNT_UNION	0x00000020	/* union with underlying filesystem */
 #define	MNT_ASYNC	0x00000040	/* file system written asynchronously */
 #define	MNT_NOCOREDUMP	0x00008000	/* don't write core dumps to this FS */
+#define	MNT_RELATIME	0x00020000	/* only update access time if mod/ch */
 #define	MNT_IGNORE	0x00100000	/* don't show entry in df */
 #define	MNT_EXTATTR	0x01000000	/* enable extended attributes */
 #define	MNT_LOG		0x02000000	/* Use logging */
@@ -104,22 +104,27 @@ typedef struct fhandle	fhandle_t;
 #define	MNT_SOFTDEP	0x80000000	/* Use soft dependencies */
 
 #define	__MNT_BASIC_FLAGS \
-	{ MNT_RDONLY,		0,	"read-only" }, \
-	{ MNT_SYNCHRONOUS,	0,	"synchronous" }, \
-	{ MNT_NOEXEC,		0,	"noexec" }, \
-	{ MNT_NOSUID,		0,	"nosuid" }, \
-	{ MNT_NODEV,		0,	"nodev" }, \
-	{ MNT_UNION,		0,	"union" }, \
 	{ MNT_ASYNC,		0,	"asynchronous" }, \
-	{ MNT_NOCOREDUMP,	0,	"nocoredump" }, \
+	{ MNT_EXTATTR,		0,	"extattr" }, \
 	{ MNT_IGNORE,		0,	"hidden" }, \
+	{ MNT_LOG,		0,	"log" }, \
 	{ MNT_NOATIME,		0,	"noatime" }, \
-	{ MNT_SYMPERM,		0,	"symperm" }, \
+	{ MNT_NOCOREDUMP,	0,	"nocoredump" }, \
+	{ MNT_NODEV,		0,	"nodev" }, \
 	{ MNT_NODEVMTIME,	0,	"nodevmtime" }, \
+	{ MNT_NOEXEC,		0,	"noexec" }, \
+	{ MNT_NOSUID,		0,	"nosuid" }, \
+	{ MNT_RDONLY,		0,	"read-only" }, \
+	{ MNT_RELATIME,		0,	"relatime" }, \
 	{ MNT_SOFTDEP,		0,	"soft dependencies" }, \
-	{ MNT_LOG,		0,	"log" }, \
-	{ MNT_EXTATTR,		0,	"extattr" }, 
+	{ MNT_SYMPERM,		0,	"symperm" }, \
+	{ MNT_SYNCHRONOUS,	0,	"synchronous" }, \
+	{ MNT_UNION,		0,	"union" }, \
 
+#define MNT_BASIC_FLAGS (MNT_ASYNC | MNT_EXTATTR | MNT_LOG | MNT_NOATIME | \
+    MNT_NOCOREDUMP | MNT_NODEV | MNT_NODEVMTIME | MNT_NOEXEC | MNT_NOSUID | \
+    MNT_RDONLY | MNT_RELATIME | MNT_SOFTDEP | MNT_SYMPERM | \
+    MNT_SYNCHRONOUS | MNT_UNION)
 /*
  * exported mount flags.
  */
@@ -236,7 +241,7 @@ typedef struct fhandle	fhandle_t;
 	"\25MNT_IGNORE" \
 	"\24MNT_FORCE" \
 	"\23MNT_RELOAD" \
-	"\22MNT_UNUSED" \
+	"\22MNT_RELATIME" \
 	"\21MNT_UPDATE" \
 	"\20MNT_NOCOREDUMP" \
 	"\17MNT_ROOTFS" \

Index: src/sys/sys/statvfs.h
diff -u src/sys/sys/statvfs.h:1.16 src/sys/sys/statvfs.h:1.17
--- src/sys/sys/statvfs.h:1.16	Fri Jun 17 10:23:51 2011
+++ src/sys/sys/statvfs.h	Fri Nov 18 16:17:45 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: statvfs.h,v 1.16 2011/06/17 14:23:51 manu Exp $	 */
+/*	$NetBSD: statvfs.h,v 1.17 2011/11/18 21:17:45 christos Exp $	 */
 
 /*-
  * Copyright (c) 2004 The NetBSD Foundation, Inc.
@@ -113,6 +113,7 @@ struct statvfs {
 #define	ST_UNION	MNT_UNION
 #define	ST_ASYNC	MNT_ASYNC
 #define	ST_NOCOREDUMP	MNT_NOCOREDUMP
+#define	ST_RELATIME	MNT_RELATIME
 #define	ST_IGNORE	MNT_IGNORE
 #define	ST_NOATIME	MNT_NOATIME
 #define	ST_SYMPERM	MNT_SYMPERM

Reply via email to