From: Andrea Arcangeli <andrea@suse.de>
To: Gergely Nagy <algernon@debian.org>
Cc: linux-kernel@vger.kernel.org,
Linus Torvalds <torvalds@transmeta.com>,
Marcelo Tosatti <marcelo@conectiva.com.br>,
Andrew Morton <andrewm@uow.edu.au>
Subject: Re: 2.4.17rc2aa1
Date: Thu, 20 Dec 2001 19:22:55 +0100 [thread overview]
Message-ID: <20011220192255.B1477@athlon.random> (raw)
In-Reply-To: <20011219161610.I1395@athlon.random> <83k7vjdk8j.wl@iluvatar.ath.cx> <20011219215208.U1395@athlon.random>
In-Reply-To: <20011219215208.U1395@athlon.random>; from andrea@suse.de on Wed, Dec 19, 2001 at 09:52:08PM +0100
On Wed, Dec 19, 2001 at 09:52:08PM +0100, Andrea Arcangeli wrote:
> On Wed, Dec 19, 2001 at 09:32:12PM +0100, Gergely Nagy wrote:
> > > This should fix the last loop deadlocks under VM pressure, if not please
> > > let me know.
> > >
> >
> > Unfortunately, it doesn't. I'll do a SysRq+T and kysmoops combo as
> > soon as I boot into that kernel again (probably later tonight).
>
> perfect, thanks.
My desktop running rc2aa1 crashed in lo_send a few minutes ago while
testing oom conditions with simultaneous heavy I/O to the loop device,
so I had a chance to fix another bug. Maybe this is what you
experienced, but I also got an oops (maybe you didn't seen the oops
because the machine hanged up?). Just guessing.
Anyways here the fix (untested as usual :)
--- 2.4.17rc2aa1/fs/buffer.c.~1~ Wed Dec 19 03:43:24 2001
+++ 2.4.17rc2aa1/fs/buffer.c Thu Dec 20 19:02:02 2001
@@ -2337,7 +2337,7 @@
struct buffer_head *bh;
page = find_or_create_page(bdev->bd_inode->i_mapping, index, GFP_NOFS);
- if (IS_ERR(page))
+ if (!page)
return NULL;
if (!PageLocked(page))
--- 2.4.17rc2aa1/mm/filemap.c.~1~ Wed Dec 19 03:43:23 2001
+++ 2.4.17rc2aa1/mm/filemap.c Thu Dec 20 19:01:53 2001
@@ -942,7 +942,7 @@
spin_unlock(&pagecache_lock);
if (!page) {
struct page *newpage = alloc_page(gfp_mask);
- page = ERR_PTR(-ENOMEM);
+ page = NULL;
if (newpage) {
spin_lock(&pagecache_lock);
page = __find_lock_page_helper(mapping, index, *hash);
explanation: grab_cache_page must definitely return NULL in case of oom,
that's the API used by the callers. find_or_create_page can use the same
API as well (there's no point for the ERR_PTR(-ENOMEM) complication).
Andrea
next prev parent reply other threads:[~2001-12-20 18:23 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20011221025857.M1477@athlon.random>
2001-12-19 15:16 ` 2.4.17rc2aa1 Andrea Arcangeli
2001-12-19 20:32 ` 2.4.17rc2aa1 Gergely Nagy
2001-12-19 20:52 ` 2.4.17rc2aa1 Andrea Arcangeli
2001-12-20 18:17 ` 2.4.17rc2aa1 Gergely Nagy
2001-12-21 19:34 ` 2.4.17rc2aa1 Gergely Nagy
2001-12-20 18:22 ` Andrea Arcangeli [this message]
2001-12-20 18:27 ` 2.4.17rc2aa1 Linus Torvalds
2001-12-20 18:32 ` 2.4.17rc2aa1 Andrea Arcangeli
2001-12-20 18:35 ` 2.4.17rc2aa1 Linus Torvalds
2001-12-20 19:28 ` 2.4.17rc2aa1 Christoph Hellwig
2001-12-25 20:22 ` 2.4.17rc2aa1 - blocking(?) in /proc Adam Schrotenboer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20011220192255.B1477@athlon.random \
--to=andrea@suse.de \
--cc=algernon@debian.org \
--cc=andrewm@uow.edu.au \
--cc=linux-kernel@vger.kernel.org \
--cc=marcelo@conectiva.com.br \
--cc=torvalds@transmeta.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox