|
@@ -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);
|