lkml.org 
[lkml]   [2009]   [Aug]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 01/17] vfs: Introduce filemap_fdatawait_range
    Date
    This simple helper saves some filesystems conversion from byte offset
    to page numbers and also makes the fdata* interface more complete.

    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Jan Kara <jack@suse.cz>
    ---
    include/linux/fs.h | 2 ++
    mm/filemap.c | 20 ++++++++++++++++++++
    2 files changed, 22 insertions(+), 0 deletions(-)

    diff --git a/include/linux/fs.h b/include/linux/fs.h
    index 67888a9..cb365ad 100644
    --- a/include/linux/fs.h
    +++ b/include/linux/fs.h
    @@ -2076,6 +2076,8 @@ extern int write_inode_now(struct inode *, int);
    extern int filemap_fdatawrite(struct address_space *);
    extern int filemap_flush(struct address_space *);
    extern int filemap_fdatawait(struct address_space *);
    +extern int filemap_fdatawait_range(struct address_space *, loff_t lstart,
    + loff_t lend);
    extern int filemap_write_and_wait(struct address_space *mapping);
    extern int filemap_write_and_wait_range(struct address_space *mapping,
    loff_t lstart, loff_t lend);
    diff --git a/mm/filemap.c b/mm/filemap.c
    index ccea3b6..65b2e50 100644
    --- a/mm/filemap.c
    +++ b/mm/filemap.c
    @@ -307,6 +307,26 @@ int wait_on_page_writeback_range(struct address_space *mapping,
    }

    /**
    + * filemap_fdatawait_range - wait for all under-writeback pages to complete in a given range
    + * @mapping: address space structure to wait for
    + * @start: offset in bytes where the range starts
    + * @end: offset in bytes where the range ends (inclusive)
    + *
    + * Walk the list of under-writeback pages of the given address space
    + * in the given range and wait for all of them.
    + *
    + * This is just a simple wrapper so that callers don't have to convert offsets
    + * to page indexes themselves
    + */
    +int filemap_fdatawait_range(struct address_space *mapping, loff_t start,
    + loff_t end)
    +{
    + return wait_on_page_writeback_range(mapping, start >> PAGE_CACHE_SHIFT,
    + end >> PAGE_CACHE_SHIFT);
    +}
    +EXPORT_SYMBOL(filemap_fdatawait_range);
    +
    +/**
    * sync_page_range - write and wait on all pages in the passed range
    * @inode: target inode
    * @mapping: target address_space
    --
    1.6.0.2


    \
     
     \ /
      Last update: 2009-08-21 19:05    [W:0.037 / U:150.332 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site