jbd2: make journal y2038 safe
authorArnd Bergmann <arnd@arndb.de>
Thu, 30 Jun 2016 15:49:01 +0000 (11:49 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 20 Aug 2016 16:09:20 +0000 (18:09 +0200)
commit abcfb5d979892fc8b12574551fc907c05fe1b11b upstream.

The jbd2 journal stores the commit time in 64-bit seconds and 32-bit
nanoseconds, which avoids an overflow in 2038, but it gets the numbers
from current_kernel_time(), which uses 'long' seconds on 32-bit
architectures.

This simply changes the code to call current_kernel_time64() so
we use 64-bit seconds consistently.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/jbd2/commit.c

index 36345fefa3ffee1f66e56c908cca50b282abeba5..2d964ce4560609778c8d88e9d1d6e4ce7539d3a8 100644 (file)
@@ -124,7 +124,7 @@ static int journal_submit_commit_record(journal_t *journal,
        struct commit_header *tmp;
        struct buffer_head *bh;
        int ret;
-       struct timespec now = current_kernel_time();
+       struct timespec64 now = current_kernel_time64();
 
        *cbh = NULL;