Re: ext3 journal buffers holding up buffer sync activity
From: Andrew Morton <hidden>
Date: 2003-02-24 20:01:45
Steve Lord [off-list ref] wrote:
Looking at the head of the lru_list of dirty buffers I found a journal buffer with a flushtime in the future, and sitting behind it, a lot of buffers which had flushtimes in the past.
argh. We hit this a while back but it got forgotten about :( <digs through patches directory> This looks like it'll fix it?
--- 2.4.19-pre10/fs/buffer.c~ext3-flushtime Wed Jun 5 21:39:14 2002
+++ 2.4.19-pre10-akpm/fs/buffer.c Wed Jun 5 21:39:22 2002@@ -1067,6 +1067,8 @@ static void __refile_buffer(struct buffe bh->b_list = dispose; if (dispose == BUF_CLEAN) remove_inode_queue(bh); + if (dispose == BUF_DIRTY) + set_buffer_flushtime(bh); __insert_into_lru_list(bh, dispose); } } --- 2.4.19-pre10/fs/jbd/transaction.c~ext3-flushtime Wed Jun 5 21:39:18 2002 +++ 2.4.19-pre10-akpm/fs/jbd/transaction.c Wed Jun 5 21:39:22 2002
@@ -1101,7 +1101,6 @@ int journal_dirty_metadata (handle_t *ha spin_lock(&journal_datalist_lock); set_bit(BH_JBDDirty, &bh->b_state); - set_buffer_flushtime(bh); J_ASSERT_JH(jh, jh->b_transaction != NULL);