Commit 5c26a7b7 authored by Mark Fasheh's avatar Mark Fasheh

ocfs2: Don't double set write parameters

The target page offsets were being incorrectly set a second time in
ocfs2_prepare_page_for_write(), which was causing problems on a 16k page
size kernel. Additionally, ocfs2_write_failure() was incorrectly using those
parameters instead of the parameters for the individual page being cleaned
up.
Signed-off-by: default avatarMark Fasheh <mark.fasheh@oracle.com>
parent db56246c
...@@ -930,18 +930,11 @@ static void ocfs2_write_failure(struct inode *inode, ...@@ -930,18 +930,11 @@ static void ocfs2_write_failure(struct inode *inode,
loff_t user_pos, unsigned user_len) loff_t user_pos, unsigned user_len)
{ {
int i; int i;
unsigned from, to; unsigned from = user_pos & (PAGE_CACHE_SIZE - 1),
to = user_pos + user_len;
struct page *tmppage; struct page *tmppage;
ocfs2_zero_new_buffers(wc->w_target_page, user_pos, user_len); ocfs2_zero_new_buffers(wc->w_target_page, from, to);
if (wc->w_large_pages) {
from = wc->w_target_from;
to = wc->w_target_to;
} else {
from = 0;
to = PAGE_CACHE_SIZE;
}
for(i = 0; i < wc->w_num_pages; i++) { for(i = 0; i < wc->w_num_pages; i++) {
tmppage = wc->w_pages[i]; tmppage = wc->w_pages[i];
...@@ -991,9 +984,6 @@ static int ocfs2_prepare_page_for_write(struct inode *inode, u64 *p_blkno, ...@@ -991,9 +984,6 @@ static int ocfs2_prepare_page_for_write(struct inode *inode, u64 *p_blkno,
map_from = cluster_start; map_from = cluster_start;
map_to = cluster_end; map_to = cluster_end;
} }
wc->w_target_from = map_from;
wc->w_target_to = map_to;
} else { } else {
/* /*
* If we haven't allocated the new page yet, we * If we haven't allocated the new page yet, we
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment