mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-25 21:24:08 +08:00
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: Mark Fasheh <mark.fasheh@oracle.com>
This commit is contained in:
parent
db56246c69
commit
5c26a7b70f
@ -930,18 +930,11 @@ static void ocfs2_write_failure(struct inode *inode,
|
||||
loff_t user_pos, unsigned user_len)
|
||||
{
|
||||
int i;
|
||||
unsigned from, to;
|
||||
unsigned from = user_pos & (PAGE_CACHE_SIZE - 1),
|
||||
to = user_pos + user_len;
|
||||
struct page *tmppage;
|
||||
|
||||
ocfs2_zero_new_buffers(wc->w_target_page, user_pos, user_len);
|
||||
|
||||
if (wc->w_large_pages) {
|
||||
from = wc->w_target_from;
|
||||
to = wc->w_target_to;
|
||||
} else {
|
||||
from = 0;
|
||||
to = PAGE_CACHE_SIZE;
|
||||
}
|
||||
ocfs2_zero_new_buffers(wc->w_target_page, from, to);
|
||||
|
||||
for(i = 0; i < wc->w_num_pages; i++) {
|
||||
tmppage = wc->w_pages[i];
|
||||
@ -991,9 +984,6 @@ static int ocfs2_prepare_page_for_write(struct inode *inode, u64 *p_blkno,
|
||||
map_from = cluster_start;
|
||||
map_to = cluster_end;
|
||||
}
|
||||
|
||||
wc->w_target_from = map_from;
|
||||
wc->w_target_to = map_to;
|
||||
} else {
|
||||
/*
|
||||
* If we haven't allocated the new page yet, we
|
||||
|
Loading…
Reference in New Issue
Block a user