fs: introduce iomap infrastructure
authorChristoph Hellwig <hch@lst.de>
Mon, 20 Jun 2016 23:23:11 +0000 (09:23 +1000)
committerDave Chinner <david@fromorbit.com>
Mon, 20 Jun 2016 23:23:11 +0000 (09:23 +1000)
commitae259a9c8593f98aa60d045df978a5482a67c53f
treea3c07fa9fb8c61475ff85f4d8812d83c287258ff
parent199a31c6d93ba9dc6f831fa1e77d9926f34f4e8a
fs: introduce iomap infrastructure

Add infrastructure for multipage buffered writes.  This is implemented
using an main iterator that applies an actor function to a range that
can be written.

This infrastucture is used to implement a buffered write helper, one
to zero file ranges and one to implement the ->page_mkwrite VM
operations.  All of them borrow a fair amount of code from fs/buffers.
for now by using an internal version of __block_write_begin that
gets passed an iomap and builds the corresponding buffer head.

The file system is gets a set of paired ->iomap_begin and ->iomap_end
calls which allow it to map/reserve a range and get a notification
once the write code is finished with it.

Based on earlier code from Dave Chinner.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Bob Peterson <rpeterso@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
fs/Kconfig
fs/Makefile
fs/buffer.c
fs/internal.h
fs/iomap.c [new file with mode: 0644]
include/linux/iomap.h