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