xfs
[Top] [All Lists]

Re: the oops under heavy load

To: tom wang <wddi_1976@xxxxxxxxxxxx>
Subject: Re: the oops under heavy load
From: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date: Tue, 22 Oct 2002 13:01:18 +0100
Cc: linux-xfs@xxxxxxxxxxx
In-reply-to: <20021022072738.85687.qmail@web15206.mail.bjs.yahoo.com>; from wddi_1976@yahoo.com.cn on Tue, Oct 22, 2002 at 03:27:38PM +0800
References: <20021022072738.85687.qmail@web15206.mail.bjs.yahoo.com>
Sender: linux-xfs-bounce@xxxxxxxxxxx
User-agent: Mutt/1.2.5.1i
On Tue, Oct 22, 2002 at 03:27:38PM +0800, tom wang wrote:
> hi:
>  xfs developers.
> 
>  when I test xfs under heavy load, I found an oops at
>  the function unlock_page(). After study the trace of
> oops,
>  I found that the oops happened here.
>  (fs/xfs/pagebuf/page_buf.c 562 )
> 
> 
>  if (!pb->pb_locked) {
>        for (pi = 0; pi < page_count; pi++) {
>             unlock_page(pb->pb_pages[pi]);
>        }
>  }
> 
>  I investigate the src code. I found that when the
> memory is tight,
>  the function (_pagebuf_lookup_pages) did not return
> and it also did not check
>  the pointer pb->pb_pages[pi], so if the memory is
> tight, pb->pb_pages[pi]
>  maybe NULL, at that time, if we called
> unlock_page(pb->pb_pages[pi]), oops
>  will happen.

You're right.  I'll add an check to only unlock if the page is actually
present.  Thanks a lot for finding that bug.


<Prev in Thread] Current Thread [Next in Thread>