jbd2: don't leak modified metadata buffers on an aborted journal
[pandora-kernel.git] / fs / jbd2 / transaction.c
index e3c41c5..61537fe 100644 (file)
@@ -1601,7 +1601,9 @@ void __jbd2_journal_temp_unlink_buffer(struct journal_head *jh)
 
        __blist_del_buffer(list, jh);
        jh->b_jlist = BJ_None;
-       if (test_clear_buffer_jbddirty(bh))
+       if (transaction && is_journal_aborted(transaction->t_journal))
+               clear_buffer_jbddirty(bh);
+       else if (test_clear_buffer_jbddirty(bh))
                mark_buffer_dirty(bh);  /* Expose it to the VM */
 }