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-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html