Skip to content
Snippets Groups Projects
Commit 3aac630b authored by Eric Biggers's avatar Eric Biggers Committed by Jan Kara
Browse files

gfs2: don't worry about I_DIRTY_TIME in gfs2_fsync()

The I_DIRTY_TIME flag is primary used within the VFS, and there's no
reason for ->fsync() implementations to do anything with it.  This is
because when !datasync, the VFS will expire dirty timestamps before
calling ->fsync().  (See vfs_fsync_range().)  This turns I_DIRTY_TIME
into I_DIRTY_SYNC.

Therefore, change gfs2_fsync() to not check for I_DIRTY_TIME.

Link: https://lore.kernel.org/r/20210112190253.64307-11-ebiggers@kernel.org


Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarJan Kara <jack@suse.cz>
Signed-off-by: default avatarEric Biggers <ebiggers@google.com>
Signed-off-by: default avatarJan Kara <jack@suse.cz>
parent da0c4c60
No related branches found
No related tags found
No related merge requests found
...@@ -749,7 +749,7 @@ static int gfs2_fsync(struct file *file, loff_t start, loff_t end, ...@@ -749,7 +749,7 @@ static int gfs2_fsync(struct file *file, loff_t start, loff_t end,
{ {
struct address_space *mapping = file->f_mapping; struct address_space *mapping = file->f_mapping;
struct inode *inode = mapping->host; struct inode *inode = mapping->host;
int sync_state = inode->i_state & I_DIRTY_ALL; int sync_state = inode->i_state & I_DIRTY;
struct gfs2_inode *ip = GFS2_I(inode); struct gfs2_inode *ip = GFS2_I(inode);
int ret = 0, ret1 = 0; int ret = 0, ret1 = 0;
...@@ -762,7 +762,7 @@ static int gfs2_fsync(struct file *file, loff_t start, loff_t end, ...@@ -762,7 +762,7 @@ static int gfs2_fsync(struct file *file, loff_t start, loff_t end,
if (!gfs2_is_jdata(ip)) if (!gfs2_is_jdata(ip))
sync_state &= ~I_DIRTY_PAGES; sync_state &= ~I_DIRTY_PAGES;
if (datasync) if (datasync)
sync_state &= ~(I_DIRTY_SYNC | I_DIRTY_TIME); sync_state &= ~I_DIRTY_SYNC;
if (sync_state) { if (sync_state) {
ret = sync_inode_metadata(inode, 1); ret = sync_inode_metadata(inode, 1);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment