Bugzilla – Attachment 79158 Details for
Bug 152099
kernel oops at boot
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
IDP Log In
|
Forgot Password
[patch]
Patch to fix lockup
InvalidateInodeSoftLockup (text/plain), 1.50 KB, created by
Neil Brown
on 2006-04-20 06:04:19 UTC
(
hide
)
Description:
Patch to fix lockup
Filename:
MIME Type:
Creator:
Neil Brown
Created:
2006-04-20 06:04:19 UTC
Size:
1.50 KB
patch
obsolete
>Status: ok > >Remove softlockup from invalidate_mapping_pages. > >If invalidate_mapping_pages is called to invalidate a very large >mapping (e.g. a very large block device) and if the only active page >in that device is near the end (or at least, at a very large index), >such as, say, the superblock of an md array, and if that page >happens to be locked when invalidate_mapping_pages is called, >then > pagevec_lookup will return this page and > as it is locked, 'next' will be incremented and pagevec_lookup > will be called again. and again. and again. > while we count from 0 upto a very large number. > >We should really always set 'next' to 'page->index+1' before going >around the loop again, not just if the page isn't locked. > > >Cc: "Steinar H. Gunderson" <sgunderson@bigfoot.com> >Signed-off-by: Neil Brown <neilb@suse.de> > >### Diffstat output > ./mm/truncate.c | 10 ++++------ > 1 file changed, 4 insertions(+), 6 deletions(-) > >diff ./mm/truncate.c~current~ ./mm/truncate.c >--- ./mm/truncate.c~current~ 2006-04-20 15:27:22.000000000 +1000 >+++ ./mm/truncate.c 2006-04-20 15:38:20.000000000 +1000 >@@ -238,13 +238,11 @@ unsigned long invalidate_mapping_pages(s > for (i = 0; i < pagevec_count(&pvec); i++) { > struct page *page = pvec.pages[i]; > >- if (TestSetPageLocked(page)) { >- next++; >+ next = page->index+1; >+ >+ if (TestSetPageLocked(page)) > continue; >- } >- if (page->index > next) >- next = page->index; >- next++; >+ > if (PageDirty(page) || PageWriteback(page)) > goto unlock; > if (page_mapped(page))
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
Actions:
View
|
Diff
Attachments on
bug 152099
: 79158