From e5b20b2e303e29c99192846d550df4532410688e Mon Sep 17 00:00:00 2001 From: Thomas Bushnell Date: Sun, 31 Jan 1999 23:49:27 +0000 Subject: Sun Jan 31 18:24:33 1999 Thomas Bushnell, BSG * file-utimes.c (diskfs_S_file_utimes): Implement new semantics for setting to exactly present time. --- libdiskfs/file-utimes.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) (limited to 'libdiskfs/file-utimes.c') diff --git a/libdiskfs/file-utimes.c b/libdiskfs/file-utimes.c index 98db0738..b87aa18e 100644 --- a/libdiskfs/file-utimes.c +++ b/libdiskfs/file-utimes.c @@ -1,5 +1,5 @@ /* libdiskfs implementation of fs.defs: file_utimes - Copyright (C) 1992, 1993, 1994, 1998 Free Software Foundation + Copyright (C) 1992, 1993, 1994, 1998, 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 @@ -28,10 +28,24 @@ diskfs_S_file_utimes (struct protid *cred, ({ if (!(err = fshelp_isowner (&np->dn_stat, cred->user))) { - np->dn_stat.st_atime = atime.seconds; - np->dn_stat.st_mtime = mtime.seconds; - np->dn_set_atime = np->dn_set_mtime = 0; + if (atime.microseconds == -1) + np->dn_set_atime = 1; + else + { + np->dn_stat.st_atime = atime.seconds; + np->dn_set_atime = 0; + } + + if (mtime.microseconds == -1) + np->dn_set_mtime = 1; + else + { + np->dn_stat.st_mtime = mtime.seconds; + np->dn_set_mtime = 0; + } + np->dn_set_ctime = 1; + if (np->filemod_reqs) diskfs_notice_filechange (np, FILE_CHANGED_META, -- cgit v1.2.3