Re: [patch 0/3] make splice more generic

From: Jens Axboe
Date: Fri May 15 2009 - 03:32:25 EST


On Thu, May 14 2009, Jamie Lokier wrote:
> Jens Axboe wrote:
> > SPLICE_F_MOVE is a soft flag in that it will move if it
> > can, but not fail if it can't.
>
> According to local man page, it's not even that.
>
> SPLICE_F_MOVE [...] The initial implementation of this flag was buggy:
> therefore starting in Linux 2.6.21 it is a *no-op*
> (but is still permitted in a splice() call); in the
> future, a correct implementation may be restored.

That's a temporary condition, and the statement isn't completely true
either. What happened was that the stealing of fs pages was disabled.
Other users of splice could still implement it and take advantage of it.

Nick pulled the original code and did promise to work on a replacement,
but so far that hasn't happened.

> > 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.
>
> What should it do in cases where the kernel would choose to copy data,
> i.e. data that isn't a whole page?

Probably -EINVAL, like O_DIRECT would.

--
Jens Axboe

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/