aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ocfs2/alloc.c
diff options
context:
space:
mode:
authorMark Fasheh <mark.fasheh@oracle.com>2007-03-01 14:22:19 -0500
committerMark Fasheh <mark.fasheh@oracle.com>2007-04-26 18:02:30 -0400
commitfa41045fcbf78269991d5aebb1820fc51534f05d (patch)
treeee27e05ef25614d175ae5baf2ab8fb5dcdedce06 /fs/ocfs2/alloc.c
parent5b04aa3a64f854244bc40a6f528176ed50b5c4f6 (diff)
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>
Diffstat (limited to 'fs/ocfs2/alloc.c')
-rw-r--r--fs/ocfs2/alloc.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/fs/ocfs2/alloc.c b/fs/ocfs2/alloc.c
index 98694a1add43..027cf5d05ffb 100644
--- a/fs/ocfs2/alloc.c
+++ b/fs/ocfs2/alloc.c
@@ -3517,6 +3517,7 @@ int ocfs2_zero_tail_for_truncate(struct inode *inode, handle_t *handle,
3517 u64 new_i_size) 3517 u64 new_i_size)
3518{ 3518{
3519 int ret, numpages; 3519 int ret, numpages;
3520 loff_t endbyte;
3520 struct page **pages = NULL; 3521 struct page **pages = NULL;
3521 u64 phys; 3522 u64 phys;
3522 3523
@@ -3555,7 +3556,9 @@ int ocfs2_zero_tail_for_truncate(struct inode *inode, handle_t *handle,
3555 * wait on them - the truncate_inode_pages() call later will 3556 * wait on them - the truncate_inode_pages() call later will
3556 * do that for us. 3557 * do that for us.
3557 */ 3558 */
3558 ret = filemap_fdatawrite(inode->i_mapping); 3559 endbyte = ocfs2_align_bytes_to_clusters(inode->i_sb, new_i_size);
3560 ret = do_sync_mapping_range(inode->i_mapping, new_i_size,
3561 endbyte - 1, SYNC_FILE_RANGE_WRITE);
3559 if (ret) 3562 if (ret)
3560 mlog_errno(ret); 3563 mlog_errno(ret);
3561 3564