All the mount code runs under lock_kernel(), so JBD journal recovery can hold off preemption for a long time. Drill a hole in it. Signed-off-by: Andrew Morton --- 25-akpm/fs/jbd/recovery.c | 2 ++ 1 files changed, 2 insertions(+) diff -puN fs/jbd/recovery.c~jbd-recovery-latency-fix fs/jbd/recovery.c --- 25/fs/jbd/recovery.c~jbd-recovery-latency-fix 2004-07-12 22:35:32.666531312 -0700 +++ 25-akpm/fs/jbd/recovery.c 2004-07-12 22:35:56.260944416 -0700 @@ -354,6 +354,8 @@ static int do_one_pass(journal_t *journa struct buffer_head * obh; struct buffer_head * nbh; + cond_resched(); /* We're under lock_kernel() */ + /* If we already know where to stop the log traversal, * check right now that we haven't gone past the end of * the log. */ _