aboutsummaryrefslogtreecommitdiffstats
path: root/fs/jbd/commit.c
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2010-04-29 19:53:17 -0400
committerH. Peter Anvin <hpa@zytor.com>2010-04-29 19:53:17 -0400
commitd9c5841e22231e4e49fd0a1004164e6fce59b7a6 (patch)
treee1f589c46b3ff79bbe7b1b2469f6362f94576da6 /fs/jbd/commit.c
parentb701a47ba48b698976fb2fe05fb285b0edc1d26a (diff)
parent5967ed87ade85a421ef814296c3c7f182b08c225 (diff)
Merge branch 'x86/asm' into x86/atomic
Merge reason: Conflict between LOCK_PREFIX_HERE and relative alternatives pointers Resolved Conflicts: arch/x86/include/asm/alternative.h arch/x86/kernel/alternative.c Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'fs/jbd/commit.c')
-rw-r--r--fs/jbd/commit.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/fs/jbd/commit.c b/fs/jbd/commit.c
index 4bd882548c45..ecb44c94ba8d 100644
--- a/fs/jbd/commit.c
+++ b/fs/jbd/commit.c
@@ -17,7 +17,6 @@
17#include <linux/fs.h> 17#include <linux/fs.h>
18#include <linux/jbd.h> 18#include <linux/jbd.h>
19#include <linux/errno.h> 19#include <linux/errno.h>
20#include <linux/slab.h>
21#include <linux/mm.h> 20#include <linux/mm.h>
22#include <linux/pagemap.h> 21#include <linux/pagemap.h>
23#include <linux/bio.h> 22#include <linux/bio.h>
@@ -862,12 +861,12 @@ restart_loop:
862 /* A buffer which has been freed while still being 861 /* A buffer which has been freed while still being
863 * journaled by a previous transaction may end up still 862 * journaled by a previous transaction may end up still
864 * being dirty here, but we want to avoid writing back 863 * being dirty here, but we want to avoid writing back
865 * that buffer in the future now that the last use has 864 * that buffer in the future after the "add to orphan"
866 * been committed. That's not only a performance gain, 865 * operation been committed, That's not only a performance
867 * it also stops aliasing problems if the buffer is left 866 * gain, it also stops aliasing problems if the buffer is
868 * behind for writeback and gets reallocated for another 867 * left behind for writeback and gets reallocated for another
869 * use in a different page. */ 868 * use in a different page. */
870 if (buffer_freed(bh)) { 869 if (buffer_freed(bh) && !jh->b_next_transaction) {
871 clear_buffer_freed(bh); 870 clear_buffer_freed(bh);
872 clear_buffer_jbddirty(bh); 871 clear_buffer_jbddirty(bh);
873 } 872 }