summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip Guenther <guenther@cvs.openbsd.org>2014-05-07 02:57:42 +0000
committerPhilip Guenther <guenther@cvs.openbsd.org>2014-05-07 02:57:42 +0000
commita962044eb5d5f8dc75e10167e2092fe311d99026 (patch)
tree1c26a5aab2c8f2bf7d058dd04ebc004bdb8766ac
parentdd0c1abfc540fdc33be8feac63b005ecb25b0f7f (diff)
Fix ext2fs atime and mtime handling that I broke from an airport
lounge after n2k14. Prototype patch from zhuk@ ok zhuk@ krw@ tedu@
-rw-r--r--sys/ufs/ufs/inode.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/sys/ufs/ufs/inode.h b/sys/ufs/ufs/inode.h
index 8acfa30893e..d7989992237 100644
--- a/sys/ufs/ufs/inode.h
+++ b/sys/ufs/ufs/inode.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: inode.h,v 1.44 2014/04/14 22:25:40 beck Exp $ */
+/* $OpenBSD: inode.h,v 1.45 2014/05/07 02:57:41 guenther Exp $ */
/* $NetBSD: inode.h,v 1.8 1995/06/15 23:22:50 cgd Exp $ */
/*
@@ -316,8 +316,14 @@ struct indir {
#define EXT2FS_ITIMES(ip) do { \
if ((ip)->i_flag & (IN_ACCESS | IN_CHANGE | IN_UPDATE)) { \
(ip)->i_flag |= IN_MODIFIED; \
- if ((ip)->i_flag & IN_CHANGE) \
+ if ((ip)->i_flag & IN_ACCESS) \
+ (ip)->i_e2fs_atime = time_second; \
+ if ((ip)->i_flag & IN_UPDATE) \
+ (ip)->i_e2fs_mtime = time_second; \
+ if ((ip)->i_flag & IN_CHANGE) { \
(ip)->i_e2fs_ctime = time_second; \
+ (ip)->i_modrev++; \
+ } \
(ip)->i_flag &= ~(IN_ACCESS | IN_CHANGE | IN_UPDATE); \
} \
} while (0)