diff options
author | Philip Guenther <guenther@cvs.openbsd.org> | 2014-05-07 02:57:42 +0000 |
---|---|---|
committer | Philip Guenther <guenther@cvs.openbsd.org> | 2014-05-07 02:57:42 +0000 |
commit | a962044eb5d5f8dc75e10167e2092fe311d99026 (patch) | |
tree | 1c26a5aab2c8f2bf7d058dd04ebc004bdb8766ac | |
parent | dd0c1abfc540fdc33be8feac63b005ecb25b0f7f (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.h | 10 |
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) |