On Tue, 2017-06-20 at 05:35 -0700, Christoph Hellwig wrote:
> >     error = filemap_write_and_wait_range(filp->f_mapping, start, end);
> >     if (error)
> > -           return error;
> > +           goto out;
> >  
> >     /*
> >      * There is no need to serialise calls to blkdev_issue_flush with
> > @@ -640,6 +640,10 @@ int blkdev_fsync(struct file *filp, loff_t start, 
> > loff_t end, int datasync)
> >     if (error == -EOPNOTSUPP)
> >             error = 0;
> >  
> > +out:
> > +   wberr = filemap_report_wb_err(filp);
> > +   if (!error)
> > +           error = wberr;
> 
> Just curious: what's the reason filemap_write_and_wait_range couldn't
> query for the error using filemap_report_wb_err internally?

In order to query for errors with errseq_t, you need a previously-
sampled point from which to check. When you call
filemap_write_and_wait_range though you don't have a struct file and so
no previously-sampled value.

-- 
Jeff Layton <jlay...@redhat.com>
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to