mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-31 12:10:52 -04:00
[PATCH] replace inode_update_time with file_update_time
To allow various options to work per-mount instead of per-sb we need a struct vfsmount when updating ctime and mtime. This preparation patch replaces the inode_update_time routine with a file_update_atime routine so we can easily get at the vfsmount. (and the file makes more sense in this context anyway). Also get rid of the unused second argument - we always want to update the ctime when calling this routine. Signed-off-by: Christoph Hellwig <[email protected]> Cc: Al Viro <[email protected]> Cc: Anton Altaparmakov <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
This commit is contained in:
parent
3542c6e18f
commit
870f481793
11 changed files with 44 additions and 27 deletions
|
|
@ -2173,7 +2173,7 @@ static ssize_t ntfs_file_aio_write_nolock(struct kiocb *iocb,
|
|||
err = remove_suid(file->f_dentry);
|
||||
if (err)
|
||||
goto out;
|
||||
inode_update_time(inode, 1);
|
||||
file_update_time(file);
|
||||
written = ntfs_file_buffered_write(iocb, iov, nr_segs, pos, ppos,
|
||||
count);
|
||||
out:
|
||||
|
|
|
|||
|
|
@ -2767,7 +2767,25 @@ unm_done:
|
|||
up_write(&ni->runlist.lock);
|
||||
done:
|
||||
/* Update the mtime and ctime on the base inode. */
|
||||
inode_update_time(VFS_I(base_ni), 1);
|
||||
/* normally ->truncate shouldn't update ctime or mtime,
|
||||
* but ntfs did before so it got a copy & paste version
|
||||
* of file_update_time. one day someone should fix this
|
||||
* for real.
|
||||
*/
|
||||
if (!IS_NOCMTIME(VFS_I(base_ni)) && !IS_RDONLY(VFS_I(base_ni))) {
|
||||
struct timespec now = current_fs_time(VFS_I(base_ni)->i_sb);
|
||||
int sync_it = 0;
|
||||
|
||||
if (!timespec_equal(&VFS_I(base_ni)->i_mtime, &now) ||
|
||||
!timespec_equal(&VFS_I(base_ni)->i_ctime, &now))
|
||||
sync_it = 1;
|
||||
VFS_I(base_ni)->i_mtime = now;
|
||||
VFS_I(base_ni)->i_ctime = now;
|
||||
|
||||
if (sync_it)
|
||||
mark_inode_dirty_sync(VFS_I(base_ni));
|
||||
}
|
||||
|
||||
if (likely(!err)) {
|
||||
NInoClearTruncateFailed(ni);
|
||||
ntfs_debug("Done.");
|
||||
|
|
|
|||
Loading…
Reference in a new issue