summaryrefslogtreecommitdiffstats
path: root/sbin/tunefs
diff options
context:
space:
mode:
authormckusick <mckusick@FreeBSD.org>2011-10-11 19:03:57 +0000
committermckusick <mckusick@FreeBSD.org>2011-10-11 19:03:57 +0000
commit42aa10a9a139809533ee7832f9cdecc8bead877d (patch)
tree2cf2820bd629b7f045a1ae386df707851929883d /sbin/tunefs
parentb6c294da1b26f52993b47e80e6d245b2a0cb1dad (diff)
downloadFreeBSD-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
Diffstat (limited to 'sbin/tunefs')
-rw-r--r--sbin/tunefs/tunefs.c10
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();
OpenPOWER on IntegriCloud