Re: Bug at fs/jbd/checkpoint.c:613

From: Jan Kara
Date: Mon Jun 13 2005 - 11:21:26 EST


Hello,

> [1.] One line summary of the problem:
> System got completely frozen
>
> [2.] Full description of the problem/report:
> - System got completely frozen, exept for the mouse pointer
> - Switching to another screen via STR+ALT+Fx not working
> - no service (ssh, samba, mail, ftp) was available any more
> - syslog reportet Kernel bug (localhost kernel: kernel BUG at
> fs/jbd/checkpoint.c:613!)
There were several bugs fixed in recent kernels in the JBD code. Can
you please try running the latest kernel - 2.6.12-rc6 - plus the
attached patch?

Thanks
Honza
We must return 1 whenever we drop the lock.

Signed-off-by: Jan Kara <jack@xxxxxxx>

diff -rupX /home/jack/.kerndiffexclude linux-2.6.12-rc5/kernel/sched.c linux-2.6.12-rc5-1-condresched/kernel/sched.c
--- linux-2.6.12-rc5/kernel/sched.c 2005-05-27 10:48:52.000000000 +0200
+++ linux-2.6.12-rc5-1-condresched/kernel/sched.c 2005-06-11 13:48:29.000000000 +0200
@@ -3755,19 +3755,22 @@ EXPORT_SYMBOL(cond_resched);
*/
int cond_resched_lock(spinlock_t * lock)
{
+ int ret = 0;
+
if (need_lockbreak(lock)) {
spin_unlock(lock);
cpu_relax();
+ ret = 1;
spin_lock(lock);
}
if (need_resched()) {
_raw_spin_unlock(lock);
preempt_enable_no_resched();
__cond_resched();
+ ret = 1;
spin_lock(lock);
- return 1;
}
- return 0;
+ return ret;
}

EXPORT_SYMBOL(cond_resched_lock);