diff options
| author | Mitch Harder <mitch.harder@sabayonlinux.org> | 2012-01-26 15:01:11 -0500 | 
|---|---|---|
| committer | Chris Mason <chris.mason@oracle.com> | 2012-01-26 15:01:11 -0500 | 
| commit | 8bedd51b6121c4607784d75f852828d25d119c52 (patch) | |
| tree | e9299eb7b70a1d2f0ea5a4e23b53c7a6496eea59 /kernel/trace/trace_functions.c | |
| parent | 6dd70ce4eb7429c2ba6dd9fa46f78a0a2a254038 (diff) | |
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 <mitch.harder@sabayonlinux.org>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'kernel/trace/trace_functions.c')
0 files changed, 0 insertions, 0 deletions
