lkml.org 
[lkml]   [2017]   [Feb]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.10 154/319] ext4: allow DAX writeback for hole punch
    Date
    From: Ross Zwisler <ross.zwisler@linux.intel.com>

    commit cca32b7eeb4ea24fa6596650e06279ad9130af98 upstream.

    Currently when doing a DAX hole punch with ext4 we fail to do a writeback.
    This is because the logic around filemap_write_and_wait_range() in
    ext4_punch_hole() only looks for dirty page cache pages in the radix tree,
    not for dirty DAX exceptional entries.

    Signed-off-by: Ross Zwisler <ross.zwisler@linux.intel.com>
    Reviewed-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Willy Tarreau <w@1wt.eu>
    ---
    fs/ext4/inode.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
    index a187055..31179ba 100644
    --- a/fs/ext4/inode.c
    +++ b/fs/ext4/inode.c
    @@ -3610,7 +3610,7 @@ int ext4_can_truncate(struct inode *inode)
    }

    /*
    - * ext4_punch_hole: punches a hole in a file by releaseing the blocks
    + * ext4_punch_hole: punches a hole in a file by releasing the blocks
    * associated with the given offset and length
    *
    * @inode: File inode
    @@ -3646,7 +3646,7 @@ int ext4_punch_hole(struct file *file, loff_t offset, loff_t length)
    * Write out all dirty pages to avoid race conditions
    * Then release them.
    */
    - if (mapping->nrpages && mapping_tagged(mapping, PAGECACHE_TAG_DIRTY)) {
    + if (mapping_tagged(mapping, PAGECACHE_TAG_DIRTY)) {
    ret = filemap_write_and_wait_range(mapping, offset,
    offset + length - 1);
    if (ret)
    --
    2.8.0.rc2.1.gbe9624a
    \
     
     \ /
      Last update: 2017-02-05 21:21    [W:2.826 / U:0.068 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site