mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@osdl.org>
To: "Stephen C. Tweedie" <sct@redhat.com>
Cc: gene.heskett@verizon.net, sct@redhat.com, linux-kernel@vger.kernel.org
Subject: Re: journal aborted, system read-only
Date: Tue, 21 Sep 2004 01:50:20 -0700	[thread overview]
Message-ID: <20040921015020.7372faac.akpm@osdl.org> (raw)
In-Reply-To: <1095088378.2765.18.camel@sisko.scot.redhat.com>

"Stephen C. Tweedie" <sct@redhat.com> wrote:
>
> Hi,
> 
> On Sun, 2004-09-12 at 16:28, Gene Heskett wrote:
> 
> > I just got up, and found advisories on every shell open that the 
> > journal had encountered an error and aborted, converting my / 
> > partition to read-only.
> ...
> > The kernel is 2.6.9-rc1-mm4.  .config available on request.
> 
> > This is precious little info to go on, but basicly I'm wondering if 
> > anyone else has encountered this?
> 
> Well, we really need to see _what_ error the journal had encountered to
> be able to even begin to diagnose it.  But 2.6.9-rc1-mm3 and -mm4 had a
> bug in the journaling introduced by low-latency work on the checkpoint
> code; can you try -mm5 or back out
> "journal_clean_checkpoint_list-latency-fix.patch" and try again?
> 

Turns out this is due to the reworked buffer/page sleep/wakeup code in
recent -mm's.  If the journal timer wakes kjournald while kjournald is
waiting on a read of a journal indirect block, kjournald just plunges ahead
with a still-locked, non-uptodate buffer.  Which it treats as an I/O error,
and things don't improve from there.

This should fix.

--- 25/kernel/wait.c~wait_on_bit-must-loop	2004-09-21 01:33:18.000000000 -0700
+++ 25-akpm/kernel/wait.c	2004-09-21 01:44:36.706435616 -0700
@@ -157,8 +157,9 @@ __wait_on_bit(wait_queue_head_t *wq, str
 	int ret = 0;
 
 	prepare_to_wait(wq, &q->wait, mode);
-	if (test_bit(q->key.bit_nr, q->key.flags))
+	do {
 		ret = (*action)(q->key.flags);
+	} while (test_bit(q->key.bit_nr, q->key.flags) && !ret);
 	finish_wait(wq, &q->wait);
 	return ret;
 }
_


  parent reply	other threads:[~2004-09-21  8:55 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-09-12 15:28 Gene Heskett
2004-09-13 15:12 ` Stephen C. Tweedie
2004-09-14  1:14   ` Gene Heskett
2004-09-14  3:37   ` Gene Heskett
2004-09-14  9:37     ` Stephen C. Tweedie
2004-09-14 11:01       ` Gene Heskett
2004-09-16  5:03   ` Gene Heskett
2004-09-16 10:48     ` Stephen C. Tweedie
2004-09-16 13:21       ` Gene Heskett
2004-09-16  6:34   ` Valdis.Kletnieks
2004-09-16 13:36     ` Gene Heskett
2004-09-17 16:30       ` Valdis.Kletnieks
2004-09-17 17:19         ` Gene Heskett
2004-09-18  9:55           ` Martin Diehl
2004-09-21  8:50   ` Andrew Morton [this message]
2004-09-21  9:53     ` Andrew Morton
2004-09-21 14:37       ` Gene Heskett
2004-09-21 15:00         ` Gene Heskett
2004-09-21 14:14     ` Gene Heskett

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=20040921015020.7372faac.akpm@osdl.org \
    --to=akpm@osdl.org \
    --cc=gene.heskett@verizon.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sct@redhat.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

Powered by JetHome