qemu-block
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-block] [PATCH 10/29] qed: Remove callback from qed_write_heade


From: Stefan Hajnoczi
Subject: Re: [Qemu-block] [PATCH 10/29] qed: Remove callback from qed_write_header()
Date: Fri, 2 Jun 2017 17:03:27 +0100
User-agent: Mutt/1.8.0 (2017-02-23)

On Thu, Jun 01, 2017 at 06:04:25PM +0200, Paolo Bonzini wrote:
> 
> 
> On 01/06/2017 17:59, Kevin Wolf wrote:
> > Am 31.05.2017 um 14:32 hat Stefan Hajnoczi geschrieben:
> >> On Fri, May 26, 2017 at 10:21:51PM +0200, Kevin Wolf wrote:
> >>>  static void qed_clear_need_check(void *opaque, int ret)
> >>>  {
> >>>      BDRVQEDState *s = opaque;
> >>>  
> >>>      if (ret) {
> >>> -        qed_unplug_allocating_write_reqs(s);
> >>> -        return;
> >>> +        goto out;
> >>>      }
> >>>  
> >>>      s->header.features &= ~QED_F_NEED_CHECK;
> >>> -    qed_write_header(s, qed_flush_after_clear_need_check, s);
> >>> +    ret = qed_write_header(s);
> >>> +    (void) ret;
> >>> +
> >>> +    ret = bdrv_flush(s->bs);
> >>> +    (void) ret;
> >>> +
> >>> +out:
> >>> +    qed_unplug_allocating_write_reqs(s);
> >>>  }
> >>
> >> Should we unplug allocating write reqs before flushing?  The async code
> >> kicks off a flush but doesn't wait for it to complete.
> > 
> > You're right that moving it up would match the old code. Not sure if it
> > would make much of a difference, though, isn't the request queue drained
> > in the kernel anyway while doing a flush?
> 
> No, it isn't AFAIK.

I was also under the impression that applications must call fsync()
only after their write() calls have completed.

Stefan

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]