Re: [patch v3] splice: fix race with page invalidation

Nick Piggin
2008-08-02T04:27:20Z

On Saturday 02 August 2008 04:28, Miklos Szeredi wrote:
> On Fri, 1 Aug 2008, Nick Piggin wrote:
> > Well, a) it probably makes sense in that case to provide another mode
> > of operation which fills the data synchronously from the sender and
> > copys it to the pipe (although the sender might just use read/write)
> > And b) we could *also* look at clearing PG_uptodate as an optimisation
> > iff that is found to help.
>
> IMO it's not worth it to complicate the API just for the sake of
> correctness in the so-very-rare read error case. Users of the splice
> API will simply ignore this requirement, because things will work fine
> on ext3 and friends, and will break only rarely on NFS and FUSE.
>
> So I think it's much better to make the API simple: invalid pages are
> OK, and for I/O errors we return -EIO on the pipe. It's not 100%
> correct, but all in all it will result in less buggy programs.

That's true, but I hate how we always (in the VM, at least) just brush
error handling under the carpet because it is too hard :(

I guess your patch is OK, though. I don't see any reasons it could cause
problems...