Messages in this thread Patch in this message | | | Date | Sat, 31 Jul 2004 11:47:14 -0700 | From | Andrew Morton <> | Subject | Re: 2.6.8-rc2-mm1 |
| |
Zwane Mwaikambo <zwane@linuxpower.ca> wrote: > > Ingo i believe you have a patch for this, could you push it to Andrew?
I suspect Ingo's patch will be livelockable under some circumstances.
I suspect mine is too, only less so.
> I reckon it's provoked by CONFIG_PREEMPT.
This should fix.
diff -puN fs/jbd/checkpoint.c~journal_clean_checkpoint_list-latency-fix-fix fs/jbd/checkpoint.c --- 25/fs/jbd/checkpoint.c~journal_clean_checkpoint_list-latency-fix-fix 2004-07-31 11:43:39.320530424 -0700 +++ 25-akpm/fs/jbd/checkpoint.c 2004-07-31 11:44:11.859583736 -0700 @@ -497,8 +497,7 @@ int __journal_clean_checkpoint_list(jour * We don't test cond_resched() here because another CPU could * be waiting on j_list_lock() while holding a different lock. */ - if ((ret & 127) == 127) { - spin_unlock(&journal->j_list_lock); + if (transaction && (ret & 127) == 127) { /* * We need to schedule away. Rotate both this * transaction's buffer list and the checkpoint list to @@ -512,6 +511,7 @@ int __journal_clean_checkpoint_list(jour if (transaction) journal->j_checkpoint_transactions = transaction->t_cpnext; + spin_unlock(&journal->j_list_lock); return ret; } #endif _ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |