jfs: use time64_t for otime
authorArnd Bergmann <arnd@arndb.de>
Tue, 19 Jun 2018 15:51:02 +0000 (17:51 +0200)
committerDave Kleikamp <dave.kleikamp@oracle.com>
Tue, 19 Jun 2018 19:09:30 +0000 (14:09 -0500)
The file creation time in the inode uses time_t which is defined
differently on 32-bit and 64-bit architectures and deprecated. The
representation in the inode uses an unsigned 32-bit number, but this
gets wrapped around after year 2038 when assigned to a time_t.

This changes the type to time64_t, so we can support the full range of
timestamps between 1970 and 2106 on 32-bit systems like we do on 64-bit
systems already, and matching what we do for the atime/ctime/mtime stamps
since the introduction of 64-bit timestamps in VFS.

Note: the otime stamp is not actually used anywhere at the moment in
the kernel, it is just set when writing a file, so none of this really
makes a difference unless we implement setting the btime field in the
getattr() callback.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Dave Kleikamp <dave.kleikamp@oracle.com>
fs/jfs/jfs_incore.h

index 1f26d19..d5c46f8 100644 (file)
@@ -43,7 +43,7 @@ struct jfs_inode_info {
        pxd_t   ixpxd;          /* inode extent descriptor      */
        dxd_t   acl;            /* dxd describing acl   */
        dxd_t   ea;             /* dxd describing ea    */
-       time_t  otime;          /* time created */
+       time64_t otime;         /* time created */
        uint    next_index;     /* next available directory entry index */
        int     acltype;        /* Type of ACL  */
        short   btorder;        /* access order */