Re: [PATCH v2 4/4] gfs2: convert to errseq_t based writeback error reporting for fsync

From: Matthew Wilcox
Date: Wed Jul 26 2017 - 15:21:15 EST


On Wed, Jul 26, 2017 at 01:55:38PM -0400, Jeff Layton wrote:
> @@ -668,12 +668,14 @@ static int gfs2_fsync(struct file *file, loff_t start, loff_t end,
> if (ret)
> return ret;
> if (gfs2_is_jdata(ip))
> - filemap_write_and_wait(mapping);
> + ret = file_write_and_wait(file);
> + if (ret)
> + return ret;
> gfs2_ail_flush(ip->i_gl, 1);
> }

Do we want to skip flushing the AIL if there was an error (possibly
previously encountered)? I'd think we'd want to flush the AIL then report
the error, like this:

if (gfs2_is_jdata(ip))
- filemap_write_and_wait(mapping);
+ ret = file_write_and_wait(file);
gfs2_ail_flush(ip->i_gl, 1);
+ if (ret)
+ return ret;
}