diff options
author | mckusick <mckusick@FreeBSD.org> | 2011-10-11 19:03:57 +0000 |
---|---|---|
committer | mckusick <mckusick@FreeBSD.org> | 2011-10-11 19:03:57 +0000 |
commit | 42aa10a9a139809533ee7832f9cdecc8bead877d (patch) | |
tree | 2cf2820bd629b7f045a1ae386df707851929883d | |
parent | b6c294da1b26f52993b47e80e6d245b2a0cb1dad (diff) | |
download | FreeBSD-src-42aa10a9a139809533ee7832f9cdecc8bead877d.zip FreeBSD-src-42aa10a9a139809533ee7832f9cdecc8bead877d.tar.gz |
After creating a filesystem using newfs -j the time stamps are all
zero and thus report as having been made in January 1970. Apart
from looking a bit silly, it also triggers alarms from scripts
that detect weird time stamps. This update sets all 4 (or 3, in
the case of UFS1) time stamps to the current time when enabling
journaling during newfs or later when enabling it with tunefs.
Reported by: Hans Ottevanger <hans@beastielabs.net>
MFC after: 1 week
-rw-r--r-- | sbin/tunefs/tunefs.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/sbin/tunefs/tunefs.c b/sbin/tunefs/tunefs.c index aee33fb..c219607 100644 --- a/sbin/tunefs/tunefs.c +++ b/sbin/tunefs/tunefs.c @@ -64,6 +64,7 @@ __FBSDID("$FreeBSD$"); #include <stdlib.h> #include <stdint.h> #include <string.h> +#include <time.h> #include <unistd.h> /* the optimization warning string template */ @@ -923,6 +924,7 @@ journal_alloc(int64_t size) ino_t ino; int blks; int mode; + time_t utime; int i; cgp = &disk.d_cg; @@ -983,18 +985,26 @@ journal_alloc(int64_t size) */ dp2 = ip; dp1 = ip; + time(&utime); if (sblock.fs_magic == FS_UFS1_MAGIC) { bzero(dp1, sizeof(*dp1)); dp1->di_size = size; dp1->di_mode = IFREG | IREAD; dp1->di_nlink = 1; dp1->di_flags = SF_IMMUTABLE | SF_NOUNLINK | UF_NODUMP; + dp1->di_atime = utime; + dp1->di_mtime = utime; + dp1->di_ctime = utime; } else { bzero(dp2, sizeof(*dp2)); dp2->di_size = size; dp2->di_mode = IFREG | IREAD; dp2->di_nlink = 1; dp2->di_flags = SF_IMMUTABLE | SF_NOUNLINK | UF_NODUMP; + dp2->di_atime = utime; + dp2->di_mtime = utime; + dp2->di_ctime = utime; + dp2->di_birthtime = utime; } for (i = 0; i < NDADDR && resid; i++, resid--) { blk = journal_balloc(); |