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.com> Acked-by: Christoph Hellwig <hch@infradead.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
4d258b25d9
commit
5b8ba10198
24
mm/memory.c
24
mm/memory.c
@ -2798,30 +2798,6 @@ void unmap_mapping_range(struct address_space *mapping,
|
||||
}
|
||||
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.
|
||||
|
@ -603,3 +603,27 @@ int vmtruncate(struct inode *inode, loff_t offset)
|
||||
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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user