From f8fa893f51ec9d1aa0d813f4398526cfd662cd5f Mon Sep 17 00:00:00 2001 From: Jan Kara Date: Tue, 9 Jun 2009 16:26:26 -0700 Subject: [PATCH] --- yaml --- r: 145567 b: refs/heads/master c: a61d90d75d0f9e86432c45b496b4b0fbf0fd03dc h: refs/heads/master i: 145565: 3a6a15cd0b29a2c24b4c076899f7420e9e4552a7 145563: 8602bf0f8a79b4683d82b0ede8cbb605ece29985 145559: 20469badde2b89cb0aa019628beacf608300c419 145551: e1c77f0be8caa167c1de7f2cb5535c5d6ddfb64b 145535: 31520193b75a5ed1d9cfd1d1a8de25836face410 v: v3 --- [refs] | 2 +- trunk/fs/jbd/commit.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 7ce1ba84f49a..6af4fbe34d7d 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 463aea1a1c49f1a7d4b50656dfd6c8bb33358b1b +refs/heads/master: a61d90d75d0f9e86432c45b496b4b0fbf0fd03dc diff --git a/trunk/fs/jbd/commit.c b/trunk/fs/jbd/commit.c index 06560c520f49..618e21c0b7a3 100644 --- a/trunk/fs/jbd/commit.c +++ b/trunk/fs/jbd/commit.c @@ -241,7 +241,7 @@ static int journal_submit_data_buffers(journal_t *journal, spin_lock(&journal->j_list_lock); } /* Someone already cleaned up the buffer? */ - if (!buffer_jbd(bh) + if (!buffer_jbd(bh) || bh2jh(bh) != jh || jh->b_transaction != commit_transaction || jh->b_jlist != BJ_SyncData) { jbd_unlock_bh_state(bh); @@ -478,7 +478,9 @@ void journal_commit_transaction(journal_t *journal) spin_lock(&journal->j_list_lock); continue; } - if (buffer_jbd(bh) && jh->b_jlist == BJ_Locked) { + if (buffer_jbd(bh) && bh2jh(bh) == jh && + jh->b_transaction == commit_transaction && + jh->b_jlist == BJ_Locked) { __journal_unfile_buffer(jh); jbd_unlock_bh_state(bh); journal_remove_journal_head(bh);