diff options
author | Robert Richter <robert.richter@amd.com> | 2010-06-04 11:33:10 +0200 |
---|---|---|
committer | Robert Richter <robert.richter@amd.com> | 2010-06-04 11:33:10 +0200 |
commit | d8a382d2662822248a97ce9d670b90e68aefbd3a (patch) | |
tree | 4f5bbd5d0a5881ed42de611402ea4ac2c6d6ff48 /fs/jbd/commit.c | |
parent | 45c34e05c4e3d36e7c44e790241ea11a1d90d54e (diff) | |
parent | c6df8d5ab87a246942d138321e1721edbb69f6e1 (diff) |
Merge remote branch 'tip/perf/urgent' into oprofile/urgent
Diffstat (limited to 'fs/jbd/commit.c')
-rw-r--r-- | fs/jbd/commit.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/fs/jbd/commit.c b/fs/jbd/commit.c index ecb44c94ba8d..28a9ddaa0c49 100644 --- a/fs/jbd/commit.c +++ b/fs/jbd/commit.c @@ -786,6 +786,12 @@ wait_for_iobuf: jbd_debug(3, "JBD: commit phase 6\n"); + /* All metadata is written, now write commit record and do cleanup */ + spin_lock(&journal->j_state_lock); + J_ASSERT(commit_transaction->t_state == T_COMMIT); + commit_transaction->t_state = T_COMMIT_RECORD; + spin_unlock(&journal->j_state_lock); + if (journal_write_commit_record(journal, commit_transaction)) err = -EIO; @@ -923,7 +929,7 @@ restart_loop: jbd_debug(3, "JBD: commit phase 8\n"); - J_ASSERT(commit_transaction->t_state == T_COMMIT); + J_ASSERT(commit_transaction->t_state == T_COMMIT_RECORD); commit_transaction->t_state = T_FINISHED; J_ASSERT(commit_transaction == journal->j_committing_transaction); |