aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiklos Szeredi2009-05-19 04:37:46 -0500
committerJens Axboe2009-05-19 04:37:46 -0500
commitb2858d7d1639c04ca3c54988d76c5f7300b76f1c (patch)
tree87bd9ecead14418c44320e2944a0178af64af9ea /block/blk-map.c
parent4fc981ef9e7c0953d5c4896ce088b19c50cb018f (diff)
downloadkernel-common-b2858d7d1639c04ca3c54988d76c5f7300b76f1c.tar.gz
kernel-common-b2858d7d1639c04ca3c54988d76c5f7300b76f1c.tar.xz
kernel-common-b2858d7d1639c04ca3c54988d76c5f7300b76f1c.zip
splice: fix kmaps in default_file_splice_write()
Unfortunately multiple kmap() within a single thread are deadlockable, so writing out multiple buffers with writev() isn't possible. Change the implementation so that it does a separate write() for each buffer. This actually simplifies the code a lot since the splice_from_pipe() helper can be used. This limitation is caused by HIGHMEM pages, and so only affects a subset of architectures and configurations. In the future it may be worth to implement default_file_splice_write() in a more efficient way on configs that allow it. Signed-off-by: Miklos Szeredi <mszeredi@suse.cz> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'block/blk-map.c')
0 files changed, 0 insertions, 0 deletions