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.
_________________________________________________________
Do You Yahoo!?
"愿意花几分钟来改善您的雅虎电邮服务吗?"
http://sweepstakes.yahoo.com/email_usage
|