[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [Qemu-block] [PATCH 10/29] qed: Remove callback from qe
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-devel] [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
signature.asc
Description: PGP signature