splice: add block device specific splice buffered write method

Block device write procedure is different from regular file:
 - Actual write performed without i_mutex.
 - It has no metadata, so generic_osync_inode(O_SYNCMETEDATA) can not livelock.
 - We do not have to worry about S_ISUID/S_ISGID bits.

Modified by Jens to better conform with the splice helpers and to apply
on top of the splice branch.

Signed-off-by: Dmitri Monakhov <dmonakhov@openvz.org>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
3 files changed