Re: 2.6.16-rc6-mm2

Christoph Lameter
2006-06-13T00:24:51Z

I guess this is correct. nfs_clear_page_writeback also ignores the page
if req->wb_page == NULL. Trond?

On Mon, 12 Jun 2006, Christoph Lameter wrote:

> On Mon, 12 Jun 2006, Cedric Le Goater wrote:
>
> > Unable to handle kernel NULL pointer dereference at 0000000000000007 RIP:
> > [<ffffffff8025b017>] dec_zone_page_state+0x1/0x5b
>
> Seems that req->wb_page may be NULL.
>
> This patch may fix it but we may miss an unstable page then. We may
> have to move the decrement of NR_UNSTABLE to a different location when
> wb_page is still valid.
>
> Index: linux-2.6.17-rc6-cl/fs/nfs/write.c
> ===================================================================
> --- linux-2.6.17-rc6-cl.orig/fs/nfs/write.c 2006-06-12 13:37:47.321243148 -0700
> +++ linux-2.6.17-rc6-cl/fs/nfs/write.c 2006-06-12 15:13:48.020908204 -0700
> @@ -1419,7 +1419,8 @@ static void nfs_commit_done(struct rpc_t
> nfs_mark_request_dirty(req);
> next:
> nfs_clear_page_writeback(req);
> - dec_zone_page_state(req->wb_page, NR_UNSTABLE);
> + if (req->wb_page)
> + dec_zone_page_state(req->wb_page, NR_UNSTABLE);
> }
> }
>
>
>