diff options
| author | David S. Miller <davem@davemloft.net> | 2010-04-03 15:49:14 -0700 | 
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2010-04-03 15:49:14 -0700 | 
| commit | 87e8b821ed8db3dab03d96cd542e29666bf210aa (patch) | |
| tree | 0027060473aafbbb125655ba027319c8a1a665fc /fs/jbd2/commit.c | |
| parent | 33cd9dfa3a13e3d8e41aef225a9f98169816723b (diff) | |
| parent | 5e11611a5d22252f3f9c169a3c9377eac0c32033 (diff) | |
Merge branch 'master' of /home/davem/src/GIT/linux-2.6/
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 1bc74b6f26d..671da7fb7ff 100644 --- a/fs/jbd2/commit.c +++ b/fs/jbd2/commit.c @@ -883,8 +883,7 @@ restart_loop:  		spin_unlock(&journal->j_list_lock);  		bh = jh2bh(jh);  		jbd_lock_bh_state(bh); -		J_ASSERT_JH(jh,	jh->b_transaction == commit_transaction || -			jh->b_transaction == journal->j_running_transaction); +		J_ASSERT_JH(jh,	jh->b_transaction == commit_transaction);  		/*  		 * If there is undo-protected committed data against @@ -930,12 +929,12 @@ restart_loop:  		/* A buffer which has been freed while still being  		 * journaled by a previous transaction may end up still  		 * being dirty here, but we want to avoid writing back -		 * that buffer in the future now that the last use has -		 * been committed.  That's not only a performance gain, -		 * it also stops aliasing problems if the buffer is left -		 * behind for writeback and gets reallocated for another +		 * that buffer in the future after the "add to orphan" +		 * operation been committed,  That's not only a performance +		 * gain, it also stops aliasing problems if the buffer is +		 * left behind for writeback and gets reallocated for another  		 * use in a different page. */ -		if (buffer_freed(bh)) { +		if (buffer_freed(bh) && !jh->b_next_transaction) {  			clear_buffer_freed(bh);  			clear_buffer_jbddirty(bh);  		} | 
