]> err.no Git - linux-2.6/commit
[PATCH] pipe: introduce ->pin() buffer operation
authorJens Axboe <axboe@suse.de>
Mon, 1 May 2006 17:59:03 +0000 (19:59 +0200)
committerJens Axboe <axboe@suse.de>
Mon, 1 May 2006 17:59:03 +0000 (19:59 +0200)
commitf84d751994441292593523c7069ed147176f6cab
treea1a0c4836289df86bb62e7eae5c80c66fca1643a
parent0568b409c74f7a125d92a09a3f386785700ef688
[PATCH] pipe: introduce ->pin() buffer operation

The ->map() function is really expensive on highmem machines right now,
since it has to use the slower kmap() instead of kmap_atomic(). Splice
rarely needs to access the virtual address of a page, so it's a waste
of time doing it.

Introduce ->pin() to take over the responsibility of making sure the
page data is valid. ->map() is then reduced to just kmap(). That way we
can also share a most of the pipe buffer ops between pipe.c and splice.c

Signed-off-by: Jens Axboe <axboe@suse.de>
fs/pipe.c
fs/splice.c
include/linux/pipe_fs_i.h