fat: change timestamp updates to use fat_truncate_time
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>
This commit is contained in:
parent
6bb885ecd7
commit
cd83f6b194
@ -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
|
||||
|
@ -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) {
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user