All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.