Re: [Nbd] [RESEND][PATCH 0/5] nbd improvements
From: Christoph Hellwig
Date: Thu Sep 15 2016 - 08:18:29 EST
On Thu, Sep 15, 2016 at 01:11:24PM +0100, Alex Bligh wrote:
> > NBD_CMD_FLUSH (3)
> >
> > A flush request; a write barrier.
>
> I can see that's potentially confusing as isn't meant to mean 'an old-style
> linux kernel block device write barrier'. I think in general terms it
> probably is some form of barrier, but I see no problem in deleting the
> words "a write barrier" from the spec text if only to make it
> clearer.
Yes, please do that. A "barrier" implies draining of the queue.
> However, I think the description of the command itself:
>
> > The server MUST NOT send a successful reply header for this request before all write requests for which a reply has already been sent to the client have reached permanent storage (using fsync() or similar).
>
> and the ordering section I pointed you to before, were both correct, yes?
Yes, this seems correct.
> actually fdatasync() technically does more than is necessary, as it
> will also flush commands that have been processed, but for which no
> reply has yet been sent - that's no bad thing.
Yes. But without an actual barrier it's hard to be exact - and
fdatasync does the right thing by including false positives.