• Mitch Harder's avatar
    Btrfs: Check for NULL page in extent_range_uptodate · 8bedd51b
    Mitch Harder authored
    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: default avatarMitch Harder <mitch.harder@sabayonlinux.org>
    Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
    8bedd51b
extent_io.c 109 KB