Re: [patch 2/3] splice: implement default splice_read method

From: Jens Axboe
Date: Thu May 14 2009 - 14:00:43 EST


On Thu, May 14 2009, Miklos Szeredi wrote:
> On Thu, 14 May 2009, Jens Axboe wrote:
>
> > > The bigger problem is that the default_file_splice_write()
> > > implementation in the other patch does the same (it calls
> > > buf->ops->map() on all buffers).
> >
> > Yep that's even worse, as that should go BUG() pretty much immediately
> > when the KM_USER0 slot is reused!
>
> No, ->map() calls plain kmap() if "atomic" argument is zero.
> Nevertheless the deadlock due to multiple kmaps is still possible.

It's buggy either way, didn't check whether you used atomic maps or not.

> > > Hmm. Simple solution would be to do a write() for each buffer. But
> > > this only affects HIGHMEM kernels, so it's a bit pointless to do that
> > > on all archs. Sigh...
> >
> > It is unfortunate, we are going to be stuck with that for some time
> > still...
>
> I'm going to be offline till next monday, I'll post a fix after that.

Until monday, or the monday after? I'm tempted to revert the
readv/writev part until this is settled, we cannot ship it as-is.

--
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/