lkml.org 
[lkml]   [2011]   [May]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 2/14] mm: move vmtruncate_range to truncate.c
    You would expect to find vmtruncate_range() next to vmtruncate()
    in mm/truncate.c: move it there.

    Signed-off-by: Hugh Dickins <hughd@google.co>
    ---
    mm/memory.c | 24 ------------------------
    mm/truncate.c | 24 ++++++++++++++++++++++++
    2 files changed, 24 insertions(+), 24 deletions(-)

    --- linux.orig/mm/memory.c 2011-05-30 13:56:10.416798124 -0700
    +++ linux/mm/memory.c 2011-05-30 14:09:52.908876549 -0700
    @@ -2796,30 +2796,6 @@ void unmap_mapping_range(struct address_
    }
    EXPORT_SYMBOL(unmap_mapping_range);

    -int vmtruncate_range(struct inode *inode, loff_t offset, loff_t end)
    -{
    - struct address_space *mapping = inode->i_mapping;
    -
    - /*
    - * If the underlying filesystem is not going to provide
    - * a way to truncate a range of blocks (punch a hole) -
    - * we should return failure right now.
    - */
    - if (!inode->i_op->truncate_range)
    - return -ENOSYS;
    -
    - mutex_lock(&inode->i_mutex);
    - down_write(&inode->i_alloc_sem);
    - unmap_mapping_range(mapping, offset, (end - offset), 1);
    - truncate_inode_pages_range(mapping, offset, end);
    - unmap_mapping_range(mapping, offset, (end - offset), 1);
    - inode->i_op->truncate_range(inode, offset, end);
    - up_write(&inode->i_alloc_sem);
    - mutex_unlock(&inode->i_mutex);
    -
    - return 0;
    -}
    -
    /*
    * We enter with non-exclusive mmap_sem (to exclude vma changes,
    * but allow concurrent faults), and pte mapped but not yet locked.
    --- linux.orig/mm/truncate.c 2011-05-30 14:08:46.612547848 -0700
    +++ linux/mm/truncate.c 2011-05-30 14:09:52.912876640 -0700
    @@ -605,3 +605,27 @@ int vmtruncate(struct inode *inode, loff
    return 0;
    }
    EXPORT_SYMBOL(vmtruncate);
    +
    +int vmtruncate_range(struct inode *inode, loff_t offset, loff_t end)
    +{
    + struct address_space *mapping = inode->i_mapping;
    +
    + /*
    + * If the underlying filesystem is not going to provide
    + * a way to truncate a range of blocks (punch a hole) -
    + * we should return failure right now.
    + */
    + if (!inode->i_op->truncate_range)
    + return -ENOSYS;
    +
    + mutex_lock(&inode->i_mutex);
    + down_write(&inode->i_alloc_sem);
    + unmap_mapping_range(mapping, offset, (end - offset), 1);
    + truncate_inode_pages_range(mapping, offset, end);
    + unmap_mapping_range(mapping, offset, (end - offset), 1);
    + inode->i_op->truncate_range(inode, offset, end);
    + up_write(&inode->i_alloc_sem);
    + mutex_unlock(&inode->i_mutex);
    +
    + return 0;
    +}

    \
     
     \ /
      Last update: 2011-05-31 02:39    [W:4.228 / U:0.292 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site