diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-03-05 13:47:00 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-03-05 13:47:00 -0500 |
commit | 1f63b9c15b17d5af360c180f5c71537e954d5d3b (patch) | |
tree | 4da17d6f2035ae093680fa2caa3e1c84b44bb237 /fs/jbd2/commit.c | |
parent | b24bc1e61cec2174faf5dfa632da16b6ca17144f (diff) | |
parent | 64e290ec69be39f1887fa0b403c1e417b6b038e7 (diff) |
Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4
* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (36 commits)
ext4: fix up rb_root initializations to use RB_ROOT
ext4: Code cleanup for EXT4_IOC_MOVE_EXT ioctl
ext4: Fix the NULL reference in double_down_write_data_sem()
ext4: Fix insertion point of extent in mext_insert_across_blocks()
ext4: consolidate in_range() definitions
ext4: cleanup to use ext4_grp_offs_to_block()
ext4: cleanup to use ext4_group_first_block_no()
ext4: Release page references acquired in ext4_da_block_invalidatepages
ext4: Fix ext4_quota_write cross block boundary behaviour
ext4: Convert BUG_ON checks to use ext4_error() instead
ext4: Use direct_IO_no_locking in ext4 dio read
ext4: use ext4_get_block_write in buffer write
ext4: mechanical rename some of the direct I/O get_block's identifiers
ext4: make "offset" consistent in ext4_check_dir_entry()
ext4: Handle non empty on-disk orphan link
ext4: explicitly remove inode from orphan list after failed direct io
ext4: fix error handling in migrate
ext4: deprecate obsoleted mount options
ext4: Fix fencepost error in chosing choosing group vs file preallocation.
jbd2: clean up an assertion in jbd2_journal_commit_transaction()
...
Diffstat (limited to 'fs/jbd2/commit.c')
-rw-r--r-- | fs/jbd2/commit.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/fs/jbd2/commit.c b/fs/jbd2/commit.c index 1bc74b6f26d2..671da7fb7ffd 100644 --- a/fs/jbd2/commit.c +++ b/fs/jbd2/commit.c | |||
@@ -883,8 +883,7 @@ restart_loop: | |||
883 | spin_unlock(&journal->j_list_lock); | 883 | spin_unlock(&journal->j_list_lock); |
884 | bh = jh2bh(jh); | 884 | bh = jh2bh(jh); |
885 | jbd_lock_bh_state(bh); | 885 | jbd_lock_bh_state(bh); |
886 | J_ASSERT_JH(jh, jh->b_transaction == commit_transaction || | 886 | J_ASSERT_JH(jh, jh->b_transaction == commit_transaction); |
887 | jh->b_transaction == journal->j_running_transaction); | ||
888 | 887 | ||
889 | /* | 888 | /* |
890 | * If there is undo-protected committed data against | 889 | * If there is undo-protected committed data against |
@@ -930,12 +929,12 @@ restart_loop: | |||
930 | /* A buffer which has been freed while still being | 929 | /* A buffer which has been freed while still being |
931 | * journaled by a previous transaction may end up still | 930 | * journaled by a previous transaction may end up still |
932 | * being dirty here, but we want to avoid writing back | 931 | * being dirty here, but we want to avoid writing back |
933 | * that buffer in the future now that the last use has | 932 | * that buffer in the future after the "add to orphan" |
934 | * been committed. That's not only a performance gain, | 933 | * operation been committed, That's not only a performance |
935 | * it also stops aliasing problems if the buffer is left | 934 | * gain, it also stops aliasing problems if the buffer is |
936 | * behind for writeback and gets reallocated for another | 935 | * left behind for writeback and gets reallocated for another |
937 | * use in a different page. */ | 936 | * use in a different page. */ |
938 | if (buffer_freed(bh)) { | 937 | if (buffer_freed(bh) && !jh->b_next_transaction) { |
939 | clear_buffer_freed(bh); | 938 | clear_buffer_freed(bh); |
940 | clear_buffer_jbddirty(bh); | 939 | clear_buffer_jbddirty(bh); |
941 | } | 940 | } |