Thread (8 messages) 8 messages, 3 authors, 2016-06-24

Re: [PATCH v2 06/24] fs: ext4: Use current_time() for inode timestamps

From: Deepa Dinamani <hidden>
Date: 2016-06-24 23:08:51
Also in: linux-fsdevel, lkml

quoted
@@ -3727,6 +3727,7 @@ static int ext4_cross_rename(struct inode *old_dir, struct dentry *old_dentry,
        };
        u8 new_file_type;
        int retval;
+       struct timespec ctime;

        if ((ext4_encrypted_inode(old_dir) ||
             ext4_encrypted_inode(new_dir)) &&
@@ -3829,8 +3830,9 @@ static int ext4_cross_rename(struct inode *old_dir, struct dentry *old_dentry,
         * Like most other Unix systems, set the ctime for inodes on a
         * rename.
         */
-       old.inode->i_ctime = ext4_current_time(old.inode);
-       new.inode->i_ctime = ext4_current_time(new.inode);
+       ctime = current_time(old.inode);
+       old.inode->i_ctime = ctime;
+       new.inode->i_ctime = ctime;
        ext4_mark_inode_dirty(handle, old.inode);
        ext4_mark_inode_dirty(handle, new.inode);
Adding a local variable here looks like it is going to cause us trouble when we
change the return type of current_time() to timespec64.

I'd write this as

        new.inode->i_ctime = old.inode->i_ctime;

instead.
This should be fine.
There are already instances that use local timespecs for inode time assignments.

These can be changed this way:

+       ctime = vfs_time_to_timespec(current_time(old.inode));
+       old.inode->i_ctime = timespec_to_vfs_time(ctime);
+       new.inode->i_ctime = timespec_to_vfs_time(ctime);

This could be a little inefficient, but only temporary.
The local variable can be changed to timespec64 when the macros are deleted.

I'm trying to make minimal changes.

-Deepa
_______________________________________________
Y2038 mailing list
Y2038@lists.linaro.org
https://lists.linaro.org/mailman/listinfo/y2038
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help