Re: [PATCH v7 0/5] vfs: Non-blockling buffered fs read (page cache only)

Andrew Morton
2015-03-27T08:34:14Z

On Fri, 27 Mar 2015 01:18:22 -0700 Christoph Hellwig <hch@infradead.org> wrote:

> On Thu, Mar 26, 2015 at 08:28:24PM -0700, Andrew Morton wrote:
> > I still don't understand why pwritev() exists. We discussed this last
> > time but it seems nothing has changed. I'm not seeing here an adequate
> > description of why it exists nor a justification for its addition.
>
> pwritev2? I have patches to support per-I/O O_DSYNC with it, lots of
> folks including Samba and SCSI targets want this because their protocols
> support it. The patches were posted with earlier versions of Miklos
> series.
>
> It's cleaner to add the two system calls in go when we plan using them
> anyway and have symmetric infrastructure, and I did not hear any
> disagreement with that on LSF. Did you skip this session?

Put it in the changelogs. All of it. A conference discussion
is no use to people who weren't there.

> > And (again) we've discussed this before, but the patchset gets resent
> > as if nothing had happened.
>
> We had long discussiosn about it both here and at LSF. We had everyone
> agree and nod there, and only your repeated argument here, so maybe it's
> not Miklos who is disonnected but you?

I don't find conferences to be a good place to conduct code and design
review.

> Also that whole fincore argument is rather hypothetic - it's only been
> pushed in to ugly to live multiplexers that also expose things like
> pfns, while with preadv2 we have a trivial and easy to use API read to
> merge, and various consumerms just waiting for it.

fincore() doesn't have to be ugly. Please address the design issues I
raised. How is pread2() useful to the class of applications which
cannot proceed until all data is available?