Skip to content

Commit 97a3a38

Browse files
author
Matthew Wilcox (Oracle)
committed
ocfs2: Use filemap_write_and_wait_range() in ocfs2_cow_sync_writeback()
Remove the open-coding of filemap_fdatawait_range(). Signed-off-by: Matthew Wilcox (Oracle) <[email protected]>
1 parent e775dfb commit 97a3a38

File tree

1 file changed

+6
-36
lines changed

1 file changed

+6
-36
lines changed

fs/ocfs2/refcounttree.c

Lines changed: 6 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -3146,48 +3146,18 @@ int ocfs2_cow_sync_writeback(struct super_block *sb,
31463146
struct inode *inode,
31473147
u32 cpos, u32 num_clusters)
31483148
{
3149-
int ret = 0;
3150-
loff_t offset, end, map_end;
3151-
pgoff_t page_index;
3152-
struct page *page;
3149+
int ret;
3150+
loff_t start, end;
31533151

31543152
if (ocfs2_should_order_data(inode))
31553153
return 0;
31563154

3157-
offset = ((loff_t)cpos) << OCFS2_SB(sb)->s_clustersize_bits;
3158-
end = offset + (num_clusters << OCFS2_SB(sb)->s_clustersize_bits);
3155+
start = ((loff_t)cpos) << OCFS2_SB(sb)->s_clustersize_bits;
3156+
end = start + (num_clusters << OCFS2_SB(sb)->s_clustersize_bits) - 1;
31593157

3160-
ret = filemap_fdatawrite_range(inode->i_mapping,
3161-
offset, end - 1);
3162-
if (ret < 0) {
3158+
ret = filemap_write_and_wait_range(inode->i_mapping, start, end);
3159+
if (ret < 0)
31633160
mlog_errno(ret);
3164-
return ret;
3165-
}
3166-
3167-
while (offset < end) {
3168-
page_index = offset >> PAGE_SHIFT;
3169-
map_end = ((loff_t)page_index + 1) << PAGE_SHIFT;
3170-
if (map_end > end)
3171-
map_end = end;
3172-
3173-
page = find_or_create_page(inode->i_mapping,
3174-
page_index, GFP_NOFS);
3175-
BUG_ON(!page);
3176-
3177-
wait_on_page_writeback(page);
3178-
if (PageError(page)) {
3179-
ret = -EIO;
3180-
mlog_errno(ret);
3181-
} else
3182-
mark_page_accessed(page);
3183-
3184-
unlock_page(page);
3185-
put_page(page);
3186-
page = NULL;
3187-
offset = map_end;
3188-
if (ret)
3189-
break;
3190-
}
31913161

31923162
return ret;
31933163
}

0 commit comments

Comments
 (0)