[lkml]   [2004]   [Sep]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Patch in this message
    SubjectRe: journal aborted, system read-only
    On Tuesday 21 September 2004 04:50, Andrew Morton wrote:
    >"Stephen C. Tweedie" <> 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.

    Classic understatement :)

    That said, I've not had a repeat of this scene since I moved /var to a
    different drive a week or thereabouts ago. OTOH, this will be
    building in a couple of minutes too, many thanks.

    >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;
    > }

    Cheers, Gene
    "There are four boxes to be used in defense of liberty:
    soap, ballot, jury, and ammo. Please use in that order."
    -Ed Howdershelt (Author)
    99.26% setiathome rank, not too shabby for a WV hillbilly attorneys please note, additions to this message
    by Gene Heskett are:
    Copyright 2004 by Maurice Eugene Heskett, all rights reserved.
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2005-03-22 14:06    [W:0.024 / U:151.708 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site