Skip to content

Commit

Permalink
After creating a filesystem using newfs -j the time stamps are all
Browse files Browse the repository at this point in the history
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 <[email protected]>
MFC after:   1 week
  • Loading branch information
Kirk McKusick authored and Kirk McKusick committed Oct 11, 2011
1 parent cd795a6 commit 8ee53ea
Showing 1 changed file with 10 additions and 0 deletions.
10 changes: 10 additions & 0 deletions sbin/tunefs/tunefs.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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();
Expand Down

0 comments on commit 8ee53ea

Please sign in to comment.