• Christoph Hellwig's avatar
    fs: introduce iomap infrastructure · ae259a9c
    Christoph Hellwig authored
    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: default avatarChristoph Hellwig <hch@lst.de>
    Reviewed-by: default avatarBob Peterson <rpeterso@redhat.com>
    Signed-off-by: default avatarDave Chinner <david@fromorbit.com>
    
    ae259a9c
buffer.c 90 KB