From: guenther Date: Wed, 7 May 2014 02:57:41 +0000 (+0000) Subject: Fix ext2fs atime and mtime handling that I broke from an airport X-Git-Url: http://artulab.com/gitweb/?a=commitdiff_plain;h=3d0bcde7f730627c688fcaacf4c7ddbd676fe658;p=openbsd Fix ext2fs atime and mtime handling that I broke from an airport lounge after n2k14. Prototype patch from zhuk@ ok zhuk@ krw@ tedu@ --- 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)