Whamcloud - gitweb
e2fsck: always fix invalid extra field in timestamps if time_t is 32-bits
authorTheodore Ts'o <tytso@mit.edu>
Sun, 29 May 2016 05:05:06 +0000 (01:05 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Sun, 29 May 2016 05:05:06 +0000 (01:05 -0400)
Systems with 32-bit time_t's can be used past 2038, so we should
always modify dates with extra_time=3.  (On systems with 64-bit
time_t's we will fix these dates before the year 2242.)

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
e2fsck/pass1.c

index 799158e..c924d31 100644 (file)
@@ -512,7 +512,9 @@ static void check_inode_extra_space(e2fsck_t ctx, struct problem_context *pctx)
         * If the inode's extended atime (ctime, crtime, mtime) is stored in
         * the old, invalid format, repair it.
         */
-       if (sizeof(time_t) > 4 && ctx->now < EXT4_EXTRA_NEGATIVE_DATE_CUTOFF &&
+       if (((sizeof(time_t) <= 4) ||
+            ((sizeof(time_t) > 4) &&
+             ctx->now < EXT4_EXTRA_NEGATIVE_DATE_CUTOFF)) &&
            (CHECK_INODE_EXTRA_NEGATIVE_EPOCH(inode, atime) ||
             CHECK_INODE_EXTRA_NEGATIVE_EPOCH(inode, ctime) ||
             CHECK_INODE_EXTRA_NEGATIVE_EPOCH(inode, crtime) ||