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 Index: linux-2.6.8-rc1/fs/jbd/recovery.c =================================================================== --- linux-2.6.8-rc1.orig/fs/jbd/recovery.c 2004-05-23 12:54:34.000000000 +1000 +++ linux-2.6.8-rc1/fs/jbd/recovery.c 2004-07-15 10:03:33.315126202 +1000 @@ -354,6 +354,8 @@ 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. */