OSDN Git Service

btrfs: use timespec64 for i_otime
authorArnd Bergmann <arnd@arndb.de>
Thu, 21 Jun 2018 16:04:06 +0000 (18:04 +0200)
committerDavid Sterba <dsterba@suse.com>
Mon, 6 Aug 2018 11:12:39 +0000 (13:12 +0200)
While the regular inode timestamps all use timespec64 now, the i_otime
field is btrfs specific and still needs to be converted to correctly
represent times beyond 2038.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Nikolay Borisov <nborisov@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/btrfs_inode.h
fs/btrfs/inode.c

index 7e07534..1343ac5 100644 (file)
@@ -178,7 +178,7 @@ struct btrfs_inode {
        struct btrfs_delayed_node *delayed_node;
 
        /* File creation time. */
-       struct timespec i_otime;
+       struct timespec64 i_otime;
 
        /* Hook into fs_info->delayed_iputs */
        struct list_head delayed_iput;
index 1ade43c..2858bc3 100644 (file)
@@ -5744,7 +5744,7 @@ static struct inode *new_simple_dir(struct super_block *s,
        inode->i_mtime = current_time(inode);
        inode->i_atime = inode->i_mtime;
        inode->i_ctime = inode->i_mtime;
-       BTRFS_I(inode)->i_otime = timespec64_to_timespec(inode->i_mtime);
+       BTRFS_I(inode)->i_otime = inode->i_mtime;
 
        return inode;
 }
@@ -6348,7 +6348,7 @@ static struct inode *btrfs_new_inode(struct btrfs_trans_handle *trans,
        inode->i_mtime = current_time(inode);
        inode->i_atime = inode->i_mtime;
        inode->i_ctime = inode->i_mtime;
-       BTRFS_I(inode)->i_otime = timespec64_to_timespec(inode->i_mtime);
+       BTRFS_I(inode)->i_otime = inode->i_mtime;
 
        inode_item = btrfs_item_ptr(path->nodes[0], path->slots[0],
                                  struct btrfs_inode_item);