Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys Obey MNT_RELATIME, the only addition is that mkdir in uf...



details:   https://anonhg.NetBSD.org/src/rev/22eb9ac241be
branches:  trunk
changeset: 771306:22eb9ac241be
user:      christos <christos%NetBSD.org@localhost>
date:      Fri Nov 18 21:18:50 2011 +0000

description:
Obey MNT_RELATIME, the only addition is that mkdir in ufs sets IN_ACCESS too.

diffstat:

 sys/fs/nilfs/nilfs_vnops.c        |   6 ++++--
 sys/fs/ptyfs/ptyfs_vnops.c        |   9 ++++++---
 sys/fs/puffs/puffs_vnops.c        |   6 ++++--
 sys/fs/tmpfs/tmpfs_vnops.c        |   9 ++++++---
 sys/fs/udf/udf_vnops.c            |  17 ++++++++++++++---
 sys/ufs/ext2fs/ext2fs_readwrite.c |   6 ++++--
 sys/ufs/ext2fs/ext2fs_vnops.c     |  11 ++++++++---
 sys/ufs/ufs/ufs_readwrite.c       |   6 ++++--
 sys/ufs/ufs/ufs_vnops.c           |  13 +++++++++----
 9 files changed, 59 insertions(+), 24 deletions(-)

diffs (truncated from 326 to 300 lines):

diff -r 68bd1e7e0b62 -r 22eb9ac241be sys/fs/nilfs/nilfs_vnops.c
--- a/sys/fs/nilfs/nilfs_vnops.c        Fri Nov 18 21:17:45 2011 +0000
+++ b/sys/fs/nilfs/nilfs_vnops.c        Fri Nov 18 21:18:50 2011 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: nilfs_vnops.c,v 1.15 2011/10/16 12:41:45 hannken Exp $ */
+/* $NetBSD: nilfs_vnops.c,v 1.16 2011/11/18 21:18:50 christos Exp $ */
 
 /*
  * Copyright (c) 2008, 2009 Reinoud Zandijk
@@ -28,7 +28,7 @@
 
 #include <sys/cdefs.h>
 #ifndef lint
-__KERNEL_RCSID(0, "$NetBSD: nilfs_vnops.c,v 1.15 2011/10/16 12:41:45 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nilfs_vnops.c,v 1.16 2011/11/18 21:18:50 christos Exp $");
 #endif /* not lint */
 
 
@@ -280,6 +280,8 @@
 
        /* mark node changed and request update */
        nilfs_node->i_flags |= IN_CHANGE | IN_UPDATE;
+       if (vp->v_mount->mnt_flag & MNT_RELATIME)
+               nilfs_node->i_flags |= IN_ACCESS;
 
        /*
         * XXX TODO FFS has code here to reset setuid & setgid when we're not
diff -r 68bd1e7e0b62 -r 22eb9ac241be sys/fs/ptyfs/ptyfs_vnops.c
--- a/sys/fs/ptyfs/ptyfs_vnops.c        Fri Nov 18 21:17:45 2011 +0000
+++ b/sys/fs/ptyfs/ptyfs_vnops.c        Fri Nov 18 21:18:50 2011 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: ptyfs_vnops.c,v 1.36 2011/09/16 18:43:44 christos Exp $        */
+/*     $NetBSD: ptyfs_vnops.c,v 1.37 2011/11/18 21:18:50 christos Exp $        */
 
 /*
  * Copyright (c) 1993, 1995
@@ -76,7 +76,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ptyfs_vnops.c,v 1.36 2011/09/16 18:43:44 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ptyfs_vnops.c,v 1.37 2011/11/18 21:18:50 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -426,8 +426,11 @@
                if (vap->va_atime.tv_sec != VNOVAL)
                        if (!(vp->v_mount->mnt_flag & MNT_NOATIME))
                                ptyfs->ptyfs_flag |= PTYFS_ACCESS;
-               if (vap->va_mtime.tv_sec != VNOVAL)
+               if (vap->va_mtime.tv_sec != VNOVAL) {
                        ptyfs->ptyfs_flag |= PTYFS_CHANGE | PTYFS_MODIFY;
+                       if (vp->v_mount->mnt_flag & MNT_RELATIME)
+                               ptyfs->ptyfs_flag |= PTYFS_ACCESS;
+               }
                if (vap->va_birthtime.tv_sec != VNOVAL)
                        ptyfs->ptyfs_birthtime = vap->va_birthtime;
                ptyfs->ptyfs_flag |= PTYFS_CHANGE;
diff -r 68bd1e7e0b62 -r 22eb9ac241be sys/fs/puffs/puffs_vnops.c
--- a/sys/fs/puffs/puffs_vnops.c        Fri Nov 18 21:17:45 2011 +0000
+++ b/sys/fs/puffs/puffs_vnops.c        Fri Nov 18 21:18:50 2011 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: puffs_vnops.c,v 1.161 2011/10/30 13:24:13 hannken Exp $        */
+/*     $NetBSD: puffs_vnops.c,v 1.162 2011/11/18 21:18:50 christos Exp $       */
 
 /*
  * Copyright (c) 2005, 2006, 2007  Antti Kantee.  All Rights Reserved.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: puffs_vnops.c,v 1.161 2011/10/30 13:24:13 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: puffs_vnops.c,v 1.162 2011/11/18 21:18:50 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/buf.h>
@@ -1967,6 +1967,8 @@
 
                origoff = uio->uio_offset;
                while (uio->uio_resid > 0) {
+                       if (vp->v_mount->mnt_flag & MNT_RELATIME)
+                               uflags |= PUFFS_UPDATEATIME;
                        uflags |= PUFFS_UPDATECTIME;
                        uflags |= PUFFS_UPDATEMTIME;
                        oldoff = uio->uio_offset;
diff -r 68bd1e7e0b62 -r 22eb9ac241be sys/fs/tmpfs/tmpfs_vnops.c
--- a/sys/fs/tmpfs/tmpfs_vnops.c        Fri Nov 18 21:17:45 2011 +0000
+++ b/sys/fs/tmpfs/tmpfs_vnops.c        Fri Nov 18 21:18:50 2011 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: tmpfs_vnops.c,v 1.92 2011/09/27 01:32:21 christos Exp $        */
+/*     $NetBSD: tmpfs_vnops.c,v 1.93 2011/11/18 21:18:51 christos Exp $        */
 
 /*
  * Copyright (c) 2005, 2006, 2007 The NetBSD Foundation, Inc.
@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: tmpfs_vnops.c,v 1.92 2011/09/27 01:32:21 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: tmpfs_vnops.c,v 1.93 2011/11/18 21:18:51 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/dirent.h>
@@ -2465,8 +2465,11 @@
                if ((vp->v_mount->mnt_flag & MNT_NOATIME) == 0)
                        node->tn_status |= TMPFS_NODE_ACCESSED;
 
-               if ((access_type & VM_PROT_WRITE) != 0)
+               if ((access_type & VM_PROT_WRITE) != 0) {
                        node->tn_status |= TMPFS_NODE_MODIFIED;
+                       if (vp->v_mount->mnt_flag & MNT_RELATIME)
+                               node->tn_status |= TMPFS_NODE_ACCESSED;
+               }
        }
 
        /*
diff -r 68bd1e7e0b62 -r 22eb9ac241be sys/fs/udf/udf_vnops.c
--- a/sys/fs/udf/udf_vnops.c    Fri Nov 18 21:17:45 2011 +0000
+++ b/sys/fs/udf/udf_vnops.c    Fri Nov 18 21:18:50 2011 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: udf_vnops.c,v 1.68 2011/10/18 20:20:29 hannken Exp $ */
+/* $NetBSD: udf_vnops.c,v 1.69 2011/11/18 21:18:51 christos Exp $ */
 
 /*
  * Copyright (c) 2006, 2008 Reinoud Zandijk
@@ -32,7 +32,7 @@
 
 #include <sys/cdefs.h>
 #ifndef lint
-__KERNEL_RCSID(0, "$NetBSD: udf_vnops.c,v 1.68 2011/10/18 20:20:29 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: udf_vnops.c,v 1.69 2011/11/18 21:18:51 christos Exp $");
 #endif /* not lint */
 
 
@@ -376,6 +376,8 @@
 
        /* mark node changed and request update */
        udf_node->i_flags |= IN_CHANGE | IN_UPDATE;
+       if (vp->v_mount->mnt_flag & MNT_RELATIME)
+               udf_node->i_flags |= IN_ACCESS;
 
        /*
         * XXX TODO FFS has code here to reset setuid & setgid when we're not
@@ -977,6 +979,8 @@
 
        /* mark node changed */
        udf_node->i_flags |= IN_CHANGE;
+       if (vp->v_mount->mnt_flag & MNT_RELATIME)
+               udf_node->i_flags |= IN_ACCESS;
 
        return 0;
 }
@@ -1013,6 +1017,8 @@
 
        /* mark node changed */
        udf_node->i_flags |= IN_CHANGE;
+       if (vp->v_mount->mnt_flag & MNT_RELATIME)
+               udf_node->i_flags |= IN_ACCESS;
 
        return 0;
 }
@@ -1063,6 +1069,8 @@
        if (error == 0) {
                /* mark change */
                udf_node->i_flags |= IN_CHANGE | IN_MODIFY;
+               if (vp->v_mount->mnt_flag & MNT_RELATIME)
+                       udf_node->i_flags |= IN_ACCESS;
                VN_KNOTE(vp, NOTE_ATTRIB | (extended ? NOTE_EXTEND : 0));
                udf_update(vp, NULL, NULL, NULL, 0);
        }
@@ -1116,8 +1124,11 @@
        if (atime->tv_sec != VNOVAL)
                if (!(vp->v_mount->mnt_flag & MNT_NOATIME))
                        udf_node->i_flags |= IN_ACCESS;
-       if ((mtime->tv_sec != VNOVAL) || (birthtime->tv_sec != VNOVAL))
+       if ((mtime->tv_sec != VNOVAL) || (birthtime->tv_sec != VNOVAL)) {
                udf_node->i_flags |= IN_CHANGE | IN_UPDATE;
+               if (vp->v_mount->mnt_flag & MNT_RELATIME)
+                       udf_node->i_flags |= IN_ACCESS;
+       }
 
        return udf_update(vp, atime, mtime, birthtime, 0);
 }
diff -r 68bd1e7e0b62 -r 22eb9ac241be sys/ufs/ext2fs/ext2fs_readwrite.c
--- a/sys/ufs/ext2fs/ext2fs_readwrite.c Fri Nov 18 21:17:45 2011 +0000
+++ b/sys/ufs/ext2fs/ext2fs_readwrite.c Fri Nov 18 21:18:50 2011 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: ext2fs_readwrite.c,v 1.57 2011/06/12 03:36:00 rmind Exp $      */
+/*     $NetBSD: ext2fs_readwrite.c,v 1.58 2011/11/18 21:18:51 christos Exp $   */
 
 /*-
  * Copyright (c) 1993
@@ -60,7 +60,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ext2fs_readwrite.c,v 1.57 2011/06/12 03:36:00 rmind Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ext2fs_readwrite.c,v 1.58 2011/11/18 21:18:51 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -374,6 +374,8 @@
 
 out:
        ip->i_flag |= IN_CHANGE | IN_UPDATE;
+       if (vp->v_mount->mnt_flag & MNT_RELATIME)
+               ip->i_flag |= IN_ACCESS;
        if (resid > uio->uio_resid && ap->a_cred &&
            kauth_authorize_generic(ap->a_cred, KAUTH_GENERIC_ISSUSER, NULL))
                ip->i_e2fs_mode &= ~(ISUID | ISGID);
diff -r 68bd1e7e0b62 -r 22eb9ac241be sys/ufs/ext2fs/ext2fs_vnops.c
--- a/sys/ufs/ext2fs/ext2fs_vnops.c     Fri Nov 18 21:17:45 2011 +0000
+++ b/sys/ufs/ext2fs/ext2fs_vnops.c     Fri Nov 18 21:18:50 2011 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: ext2fs_vnops.c,v 1.100 2011/07/12 16:59:48 dholland Exp $      */
+/*     $NetBSD: ext2fs_vnops.c,v 1.101 2011/11/18 21:18:51 christos Exp $      */
 
 /*
  * Copyright (c) 1982, 1986, 1989, 1993
@@ -65,7 +65,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ext2fs_vnops.c,v 1.100 2011/07/12 16:59:48 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ext2fs_vnops.c,v 1.101 2011/11/18 21:18:51 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -431,8 +431,11 @@
                if (vap->va_atime.tv_sec != VNOVAL)
                        if (!(vp->v_mount->mnt_flag & MNT_NOATIME))
                                ip->i_flag |= IN_ACCESS;
-               if (vap->va_mtime.tv_sec != VNOVAL)
+               if (vap->va_mtime.tv_sec != VNOVAL) {
                        ip->i_flag |= IN_CHANGE | IN_UPDATE;
+                       if (vp->v_mount->mnt_flag & MNT_RELATIME)
+                               ip->i_flag |= IN_ACCESS;
+               }
                error = ext2fs_update(vp, &vap->va_atime, &vap->va_mtime,
                        UPDATE_WAIT);
                if (error)
@@ -1282,6 +1285,8 @@
                if (error)
                        goto bad;
                ip->i_flag |= IN_CHANGE | IN_UPDATE;
+               if (vp->v_mount->mnt_flag & MNT_RELATIME)
+                       ip->i_flag |= IN_ACCESS;
                uvm_vnp_setsize(vp, len);
        } else
                error = vn_rdwr(UIO_WRITE, vp, ap->a_target, len, (off_t)0,
diff -r 68bd1e7e0b62 -r 22eb9ac241be sys/ufs/ufs/ufs_readwrite.c
--- a/sys/ufs/ufs/ufs_readwrite.c       Fri Nov 18 21:17:45 2011 +0000
+++ b/sys/ufs/ufs/ufs_readwrite.c       Fri Nov 18 21:18:50 2011 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: ufs_readwrite.c,v 1.99 2011/07/11 08:27:41 hannken Exp $       */
+/*     $NetBSD: ufs_readwrite.c,v 1.100 2011/11/18 21:18:52 christos Exp $     */
 
 /*-
  * Copyright (c) 1993
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(1, "$NetBSD: ufs_readwrite.c,v 1.99 2011/07/11 08:27:41 hannken Exp $");
+__KERNEL_RCSID(1, "$NetBSD: ufs_readwrite.c,v 1.100 2011/11/18 21:18:52 christos Exp $");
 
 #ifdef LFS_READWRITE
 #define        FS                      struct lfs
@@ -507,6 +507,8 @@
         */
 out:
        ip->i_flag |= IN_CHANGE | IN_UPDATE;
+       if (vp->v_mount->mnt_flag & MNT_RELATIME)
+               ip->i_flag |= IN_ACCESS;
        if (resid > uio->uio_resid && ap->a_cred &&
            kauth_authorize_generic(ap->a_cred, KAUTH_GENERIC_ISSUSER, NULL)) {
                ip->i_mode &= ~(ISUID | ISGID);
diff -r 68bd1e7e0b62 -r 22eb9ac241be sys/ufs/ufs/ufs_vnops.c
--- a/sys/ufs/ufs/ufs_vnops.c   Fri Nov 18 21:17:45 2011 +0000
+++ b/sys/ufs/ufs/ufs_vnops.c   Fri Nov 18 21:18:50 2011 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: ufs_vnops.c,v 1.205 2011/09/27 02:10:32 christos Exp $ */
+/*     $NetBSD: ufs_vnops.c,v 1.206 2011/11/18 21:18:52 christos Exp $ */
 
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -66,7 +66,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ufs_vnops.c,v 1.205 2011/09/27 02:10:32 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ufs_vnops.c,v 1.206 2011/11/18 21:18:52 christos Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_ffs.h"
@@ -638,8 +638,11 @@
                if (vap->va_atime.tv_sec != VNOVAL)
                        if (!(vp->v_mount->mnt_flag & MNT_NOATIME))
                                ip->i_flag |= IN_ACCESS;
-               if (vap->va_mtime.tv_sec != VNOVAL)



Home | Main Index | Thread Index | Old Index