On Thu, May 07 2009, Miklos Szeredi wrote: > This series makes splice(2) work in more cases: > > - pipe to pipe splicing (zero copy) > - fallback splice_read which uses readv() > - fallback splice_write which uses writev() > > Just after cleaning up my patches after a vacation I found Max > Kellermann's patch on LKML implementing the first part. I'll still > post mine, because it's slightly simpler (no ref + unref on the buffer > if not necessary). I have applied all three, thanks! However, I think we should be able to pass in whether or not this is a strict splice or not. Falling back to readv/writev is a good thing as it may help get the interface adopted more widely, but I can also easily imagine cases where you'd want to make sure that splice actually works without copies. It may even just be for users to retry with alternative code paths, instead of proceeding with the splice. SPLICE_F_MOVE is a soft flag in that it will move if it can, but not fail if it can't. Perhaps we should add a flag that does pass back an error if we can't just move pages around, SPLICE_F_STRICT or something like that. -- Jens Axboe -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html