There is no need to call into ->dirty_inode for lazytime timestamp updates that use the I_DIRTY_TIME flag, as file systems per definition must ignore them. Signed-off-by: Christoph Hellwig <hch@xxxxxx> --- fs/ext4/inode.c | 8 +------- fs/f2fs/super.c | 3 --- fs/fs-writeback.c | 8 +++----- 3 files changed, 4 insertions(+), 15 deletions(-) diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index fa0ff78dc033..dbdcf3cc0e64 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c @@ -5805,17 +5805,11 @@ void ext4_dirty_inode(struct inode *inode, int flags) { handle_t *handle; - if (flags == I_DIRTY_TIME) - return; handle = ext4_journal_start(inode, EXT4_HT_INODE, 2); if (IS_ERR(handle)) - goto out; - + return; ext4_mark_inode_dirty(handle, inode); - ext4_journal_stop(handle); -out: - return; } int ext4_change_inode_journal_flag(struct inode *inode, int val) diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c index 529334573944..5f3221ade64e 100644 --- a/fs/f2fs/super.c +++ b/fs/f2fs/super.c @@ -1091,9 +1091,6 @@ static void f2fs_dirty_inode(struct inode *inode, int flags) inode->i_ino == F2FS_META_INO(sbi)) return; - if (flags == I_DIRTY_TIME) - return; - if (is_inode_flag_set(inode, FI_AUTO_RECOVER)) clear_inode_flag(inode, FI_AUTO_RECOVER); diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c index dc2d65c765ae..482781da8be1 100644 --- a/fs/fs-writeback.c +++ b/fs/fs-writeback.c @@ -2252,16 +2252,14 @@ void __mark_inode_dirty(struct inode *inode, int flags) * Don't do this for I_DIRTY_PAGES - that doesn't actually * dirty the inode itself */ - if (flags & (I_DIRTY_INODE | I_DIRTY_TIME)) { + if (flags & I_DIRTY_INODE) { trace_writeback_dirty_inode_start(inode, flags); - if (sb->s_op->dirty_inode) sb->s_op->dirty_inode(inode, flags); - trace_writeback_dirty_inode(inode, flags); - } - if (flags & I_DIRTY_INODE) + flags &= ~I_DIRTY_TIME; + } dirtytime = flags & I_DIRTY_TIME; /* -- 2.25.1