mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 03:01:39 -04:00
Btrfs: Check for NULL page in extent_range_uptodate
A user has encountered a NULL pointer kernel oops in btrfs when
encountering media errors. The problem has been identified
as an unhandled NULL pointer returned from find_get_page().
This modification simply checks for a NULL page, and returns
with an error if found (the extent_range_uptodate() function
returns 1 on errors).
After testing this patch, the user reported that the error with
the NULL pointer oops was solved. However, there is still a
remaining problem with a thread becoming stuck in
wait_on_page_locked(page) in the read_extent_buffer_pages(...)
function in extent_io.c
for (i = start_i; i < num_pages; i++) {
page = extent_buffer_page(eb, i);
wait_on_page_locked(page);
if (!PageUptodate(page))
ret = -EIO;
}
This patch leaves the issue with the locked page yet to be resolved.
Signed-off-by: Mitch Harder <[email protected]>
Signed-off-by: Chris Mason <[email protected]>
This commit is contained in:
parent
6dd70ce4eb
commit
8bedd51b61
1 changed files with 2 additions and 0 deletions
|
|
@ -3909,6 +3909,8 @@ int extent_range_uptodate(struct extent_io_tree *tree,
|
|||
while (start <= end) {
|
||||
index = start >> PAGE_CACHE_SHIFT;
|
||||
page = find_get_page(tree->mapping, index);
|
||||
if (!page)
|
||||
return 1;
|
||||
uptodate = PageUptodate(page);
|
||||
page_cache_release(page);
|
||||
if (!uptodate) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue