From 19c24c308bda3932d7c174c472df53e66059b551 Mon Sep 17 00:00:00 2001
From: Thomas Bushnell <thomas@gnu.org>
Date: Mon, 20 Sep 1999 13:52:25 +0000
Subject: 1999-09-20  Thomas Bushnell, BSG  <tb@mit.edu>

	* node-times.c (diskfs_set_node_times): Don't implement
	_diskfs_noatime here.
	* conch-fetch.c (iohelp_fetch_shared_data): Don't update
	dn_set_atime on affected node if _diskfs_noatime.
	* rdwr-internal.c (_diskfs_rdwr_internal): Likewise.
---
 libdiskfs/ChangeLog       | 8 ++++++++
 libdiskfs/conch-fetch.c   | 4 ++--
 libdiskfs/node-times.c    | 5 -----
 libdiskfs/rdwr-internal.c | 6 +++---
 4 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/libdiskfs/ChangeLog b/libdiskfs/ChangeLog
index 94979a7c..ecf93c4e 100644
--- a/libdiskfs/ChangeLog
+++ b/libdiskfs/ChangeLog
@@ -1,3 +1,11 @@
+1999-09-20  Thomas Bushnell, BSG  <tb@mit.edu>
+
+	* node-times.c (diskfs_set_node_times): Don't implement
+	_diskfs_noatime here.
+	* conch-fetch.c (iohelp_fetch_shared_data): Don't update
+	dn_set_atime on affected node if _diskfs_noatime.
+	* rdwr-internal.c (_diskfs_rdwr_internal): Likewise.
+
 1999-09-19  Roland McGrath  <roland@baalperazim.frob.com>
 
 	* node-times.c (diskfs_set_node_times): If _diskfs_noatime is set and
diff --git a/libdiskfs/conch-fetch.c b/libdiskfs/conch-fetch.c
index 9d31265c..2c5d0fd8 100644
--- a/libdiskfs/conch-fetch.c
+++ b/libdiskfs/conch-fetch.c
@@ -1,5 +1,5 @@
 /* 
-   Copyright (C) 1994, 1995, 1996 Free Software Foundation
+   Copyright (C) 1994, 1995, 1996, 1999 Free Software Foundation
 
    This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public License as
@@ -58,7 +58,7 @@ iohelp_fetch_shared_data (void *arg)
 	  cred->po->np->dn_set_mtime = 1;
 	  mod = 1;
 	}
-      if (cred->mapped->accessed)
+      if (cred->mapped->accessed && ! _diskfs_noatime)
 	{
 	  cred->po->np->dn_set_atime = 1;
 	  mod = 1;
diff --git a/libdiskfs/node-times.c b/libdiskfs/node-times.c
index 968cfb2f..3931ffb0 100644
--- a/libdiskfs/node-times.c
+++ b/libdiskfs/node-times.c
@@ -29,11 +29,6 @@ diskfs_set_node_times (struct node *np)
 {
   struct timeval t;
 
-  if (_diskfs_noatime		/* Globally disabled for the filesystem.  */
-      && !np->dn_set_mtime
-      && !np->dn_set_ctime)
-    np->dn_set_atime = 0;
-
   if (!np->dn_set_mtime && !np->dn_set_atime && !np->dn_set_ctime)
     return;
 
diff --git a/libdiskfs/rdwr-internal.c b/libdiskfs/rdwr-internal.c
index 046467a3..790fc12e 100644
--- a/libdiskfs/rdwr-internal.c
+++ b/libdiskfs/rdwr-internal.c
@@ -1,5 +1,5 @@
 /*
-   Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation
+   Copyright (C) 1994, 1995, 1996, 1997, 1999 Free Software Foundation
 
    This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public License as
@@ -45,7 +45,7 @@ _diskfs_rdwr_internal (struct node *np,
     {
       if (dir)
 	np->dn_set_mtime = 1;
-      else
+      else if (! _diskfs_noatime)
 	np->dn_set_atime = 1;
     }
 
@@ -61,7 +61,7 @@ _diskfs_rdwr_internal (struct node *np,
     {
       if (dir)
 	np->dn_set_mtime = 1;
-      else
+      else if (!_diskfs_noatime)
 	np->dn_set_atime = 1;
     }
 
-- 
cgit v1.2.3