On Thu, Jan 31, 2019 at 08:45:42AM +0800, Qu Wenruo wrote:
> 
> 
> On 2019/1/30 下午11:19, David Sterba wrote:
> > On Fri, Jan 25, 2019 at 01:09:17PM +0800, Qu Wenruo wrote:
> >> +static int __must_check flush_write_bio(struct extent_page_data *epd)
> >>  {
> >> -  if (epd->bio) {
> >> -          int ret;
> >> +  int ret = 0;
> >>  
> >> +  if (epd->bio) {
> >>            ret = submit_one_bio(epd->bio, 0, 0);
> >> -          BUG_ON(ret < 0); /* -ENOMEM */
> >>            epd->bio = NULL;
> > 
> > I'm not sure if resetting epd->bio to NULL is all that needs to be done
> > here. With the BUG_ON the error case never happens so if all goes fine
> > it's also ok to set it to NULL and continue. But the callers might need
> > to send the flush again.
> 
> If flush_write_bio() get called again on the failed one, it will just
> get skipped as  epd->bio is NULL, submit_one_bio() will not be triggered.

Yes that's clear, but what is the state of the bio that went to
flush_write_bio and submit_one_bio failed?

Reply via email to