mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-10 15:10:38 +00:00
ocfs2: Use do_sync_mapping_range() in ocfs2_zero_tail_for_truncate()
Do this instead of filemap_fdatawrite() - this way we sync only the range between i_size and the cluster boundary. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
This commit is contained in:
parent
5b04aa3a64
commit
fa41045fcb
@ -3517,6 +3517,7 @@ int ocfs2_zero_tail_for_truncate(struct inode *inode, handle_t *handle,
|
|||||||
u64 new_i_size)
|
u64 new_i_size)
|
||||||
{
|
{
|
||||||
int ret, numpages;
|
int ret, numpages;
|
||||||
|
loff_t endbyte;
|
||||||
struct page **pages = NULL;
|
struct page **pages = NULL;
|
||||||
u64 phys;
|
u64 phys;
|
||||||
|
|
||||||
@ -3555,7 +3556,9 @@ int ocfs2_zero_tail_for_truncate(struct inode *inode, handle_t *handle,
|
|||||||
* wait on them - the truncate_inode_pages() call later will
|
* wait on them - the truncate_inode_pages() call later will
|
||||||
* do that for us.
|
* do that for us.
|
||||||
*/
|
*/
|
||||||
ret = filemap_fdatawrite(inode->i_mapping);
|
endbyte = ocfs2_align_bytes_to_clusters(inode->i_sb, new_i_size);
|
||||||
|
ret = do_sync_mapping_range(inode->i_mapping, new_i_size,
|
||||||
|
endbyte - 1, SYNC_FILE_RANGE_WRITE);
|
||||||
if (ret)
|
if (ret)
|
||||||
mlog_errno(ret);
|
mlog_errno(ret);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user