fat: change timestamp updates to use fat_truncate_time
authorFrank Sorenson <sorenson@redhat.com>
Tue, 30 Oct 2018 22:06:57 +0000 (15:06 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 31 Oct 2018 15:54:14 +0000 (08:54 -0700)
Convert the inode timestamp updates to use fat_truncate_time.

Link: http://lkml.kernel.org/r/2663d3083c4dd62f00b64612c8eaf5542bb05a4c.1538363961.git.sorenson@redhat.com
Signed-off-by: Frank Sorenson <sorenson@redhat.com>
Acked-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/fat/dir.c
fs/fat/file.c
fs/fat/inode.c
fs/fat/namei_msdos.c
fs/fat/namei_vfat.c

index ce5f958..c8366cb 100644 (file)
@@ -1073,7 +1073,7 @@ int fat_remove_entries(struct inode *dir, struct fat_slot_info *sinfo)
                }
        }
 
-       dir->i_mtime = dir->i_atime = current_time(dir);
+       fat_truncate_time(dir, NULL, S_ATIME|S_MTIME);
        if (IS_DIRSYNC(dir))
                (void)fat_sync_inode(dir);
        else
index 19b6b05..4b54384 100644 (file)
@@ -227,7 +227,7 @@ static int fat_cont_expand(struct inode *inode, loff_t size)
        if (err)
                goto out;
 
-       inode->i_ctime = inode->i_mtime = current_time(inode);
+       fat_truncate_time(inode, NULL, S_CTIME|S_MTIME);
        mark_inode_dirty(inode);
        if (IS_SYNC(inode)) {
                int err2;
@@ -330,7 +330,7 @@ static int fat_free(struct inode *inode, int skip)
                MSDOS_I(inode)->i_logstart = 0;
        }
        MSDOS_I(inode)->i_attrs |= ATTR_ARCH;
-       inode->i_ctime = inode->i_mtime = current_time(inode);
+       fat_truncate_time(inode, NULL, S_CTIME|S_MTIME);
        if (wait) {
                err = fat_sync_inode(inode);
                if (err) {
index 3bf60f1..c0b5b5c 100644 (file)
@@ -244,7 +244,7 @@ static int fat_write_end(struct file *file, struct address_space *mapping,
        if (err < len)
                fat_write_failed(mapping, pos + len);
        if (!(err < 0) && !(MSDOS_I(inode)->i_attrs & ATTR_ARCH)) {
-               inode->i_mtime = inode->i_ctime = current_time(inode);
+               fat_truncate_time(inode, NULL, S_CTIME|S_MTIME);
                MSDOS_I(inode)->i_attrs |= ATTR_ARCH;
                mark_inode_dirty(inode);
        }
@@ -564,7 +564,7 @@ int fat_fill_inode(struct inode *inode, struct msdos_dir_entry *de)
                                  de->cdate, de->ctime_cs);
                fat_time_fat2unix(sbi, &inode->i_atime, 0, de->adate, 0);
        } else
-               inode->i_ctime = inode->i_atime = inode->i_mtime;
+               fat_truncate_time(inode, &inode->i_mtime, S_ATIME|S_CTIME);
 
        return 0;
 }
index effbdd5..f2cd365 100644 (file)
@@ -250,7 +250,7 @@ static int msdos_add_entry(struct inode *dir, const unsigned char *name,
        if (err)
                return err;
 
-       dir->i_ctime = dir->i_mtime = *ts;
+       fat_truncate_time(dir, ts, S_CTIME|S_MTIME);
        if (IS_DIRSYNC(dir))
                (void)fat_sync_inode(dir);
        else
@@ -294,7 +294,7 @@ static int msdos_create(struct inode *dir, struct dentry *dentry, umode_t mode,
                err = PTR_ERR(inode);
                goto out;
        }
-       inode->i_mtime = inode->i_atime = inode->i_ctime = ts;
+       fat_truncate_time(inode, &ts, S_ATIME|S_CTIME|S_MTIME);
        /* timestamp is already written, so mark_inode_dirty() is unneeded. */
 
        d_instantiate(dentry, inode);
@@ -327,7 +327,7 @@ static int msdos_rmdir(struct inode *dir, struct dentry *dentry)
        drop_nlink(dir);
 
        clear_nlink(inode);
-       inode->i_ctime = current_time(inode);
+       fat_truncate_time(inode, NULL, S_CTIME);
        fat_detach(inode);
 out:
        mutex_unlock(&MSDOS_SB(sb)->s_lock);
@@ -380,7 +380,7 @@ static int msdos_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode)
                goto out;
        }
        set_nlink(inode, 2);
-       inode->i_mtime = inode->i_atime = inode->i_ctime = ts;
+       fat_truncate_time(inode, &ts, S_ATIME|S_CTIME|S_MTIME);
        /* timestamp is already written, so mark_inode_dirty() is unneeded. */
 
        d_instantiate(dentry, inode);
@@ -413,7 +413,7 @@ static int msdos_unlink(struct inode *dir, struct dentry *dentry)
        if (err)
                goto out;
        clear_nlink(inode);
-       inode->i_ctime = current_time(inode);
+       fat_truncate_time(inode, NULL, S_CTIME);
        fat_detach(inode);
 out:
        mutex_unlock(&MSDOS_SB(sb)->s_lock);
@@ -478,7 +478,7 @@ static int do_msdos_rename(struct inode *old_dir, unsigned char *old_name,
                                mark_inode_dirty(old_inode);
 
                        inode_inc_iversion(old_dir);
-                       old_dir->i_ctime = old_dir->i_mtime = current_time(old_dir);
+                       fat_truncate_time(old_dir, NULL, S_CTIME|S_MTIME);
                        if (IS_DIRSYNC(old_dir))
                                (void)fat_sync_inode(old_dir);
                        else
@@ -538,7 +538,7 @@ static int do_msdos_rename(struct inode *old_dir, unsigned char *old_name,
        if (err)
                goto error_dotdot;
        inode_inc_iversion(old_dir);
-       old_dir->i_ctime = old_dir->i_mtime = ts;
+       fat_truncate_time(old_dir, &ts, S_CTIME|S_MTIME);
        if (IS_DIRSYNC(old_dir))
                (void)fat_sync_inode(old_dir);
        else
@@ -548,7 +548,7 @@ static int do_msdos_rename(struct inode *old_dir, unsigned char *old_name,
                drop_nlink(new_inode);
                if (is_dir)
                        drop_nlink(new_inode);
-               new_inode->i_ctime = ts;
+               fat_truncate_time(new_inode, &ts, S_CTIME);
        }
 out:
        brelse(sinfo.bh);
index 1daa57c..996c8c2 100644 (file)
@@ -678,7 +678,7 @@ static int vfat_add_entry(struct inode *dir, const struct qstr *qname,
                goto cleanup;
 
        /* update timestamp */
-       dir->i_ctime = dir->i_mtime = dir->i_atime = *ts;
+       fat_truncate_time(dir, ts, S_CTIME|S_MTIME);
        if (IS_DIRSYNC(dir))
                (void)fat_sync_inode(dir);
        else
@@ -779,7 +779,7 @@ static int vfat_create(struct inode *dir, struct dentry *dentry, umode_t mode,
                goto out;
        }
        inode_inc_iversion(inode);
-       inode->i_mtime = inode->i_atime = inode->i_ctime = ts;
+       fat_truncate_time(inode, &ts, S_ATIME|S_CTIME|S_MTIME);
        /* timestamp is already written, so mark_inode_dirty() is unneeded. */
 
        d_instantiate(dentry, inode);
@@ -810,7 +810,7 @@ static int vfat_rmdir(struct inode *dir, struct dentry *dentry)
        drop_nlink(dir);
 
        clear_nlink(inode);
-       inode->i_mtime = inode->i_atime = current_time(inode);
+       fat_truncate_time(inode, NULL, S_ATIME|S_MTIME);
        fat_detach(inode);
        vfat_d_version_set(dentry, inode_query_iversion(dir));
 out:
@@ -836,7 +836,7 @@ static int vfat_unlink(struct inode *dir, struct dentry *dentry)
        if (err)
                goto out;
        clear_nlink(inode);
-       inode->i_mtime = inode->i_atime = current_time(inode);
+       fat_truncate_time(inode, NULL, S_ATIME|S_MTIME);
        fat_detach(inode);
        vfat_d_version_set(dentry, inode_query_iversion(dir));
 out:
@@ -876,7 +876,7 @@ static int vfat_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode)
        }
        inode_inc_iversion(inode);
        set_nlink(inode, 2);
-       inode->i_mtime = inode->i_atime = inode->i_ctime = ts;
+       fat_truncate_time(inode, &ts, S_ATIME|S_CTIME|S_MTIME);
        /* timestamp is already written, so mark_inode_dirty() is unneeded. */
 
        d_instantiate(dentry, inode);
@@ -969,7 +969,7 @@ static int vfat_rename(struct inode *old_dir, struct dentry *old_dentry,
        if (err)
                goto error_dotdot;
        inode_inc_iversion(old_dir);
-       old_dir->i_ctime = old_dir->i_mtime = ts;
+       fat_truncate_time(old_dir, &ts, S_CTIME|S_MTIME);
        if (IS_DIRSYNC(old_dir))
                (void)fat_sync_inode(old_dir);
        else
@@ -979,7 +979,7 @@ static int vfat_rename(struct inode *old_dir, struct dentry *old_dentry,
                drop_nlink(new_inode);
                if (is_dir)
                        drop_nlink(new_inode);
-               new_inode->i_ctime = ts;
+               fat_truncate_time(new_inode, &ts, S_CTIME);
        }
 out:
        brelse(sinfo.bh);