X-Git-Url: http://ftp.safe.ca/?a=blobdiff_plain;f=fs%2Fjbd2%2Frecovery.c;h=73063285b13f7c7d868fb8553690bb2d0cbe5a03;hb=50cca715a64b66ccf173767d94d4020ea0a6129c;hp=7199db52b2fdb5ab5a198a52e1ab7ac2194a2da3;hpb=8ea76900be3b4522396e2021260d2818a27b3a5b;p=safe%2Fjmp%2Flinux-2.6 diff --git a/fs/jbd2/recovery.c b/fs/jbd2/recovery.c index 7199db5..7306328 100644 --- a/fs/jbd2/recovery.c +++ b/fs/jbd2/recovery.c @@ -225,7 +225,7 @@ do { \ */ int jbd2_journal_recover(journal_t *journal) { - int err; + int err, err2; journal_superblock_t * sb; struct recovery_info info; @@ -263,7 +263,10 @@ int jbd2_journal_recover(journal_t *journal) journal->j_transaction_sequence = ++info.end_transaction; jbd2_journal_clear_revoke(journal); - sync_blockdev(journal->j_fs_dev); + err2 = sync_blockdev(journal->j_fs_dev); + if (!err) + err = err2; + return err; } @@ -611,9 +614,8 @@ static int do_one_pass(journal_t *journal, chksum_err = chksum_seen = 0; if (info->end_transaction) { - printk(KERN_ERR "JBD: Transaction %u " - "found to be corrupt.\n", - next_commit_ID - 1); + journal->j_failed_commit = + info->end_transaction; brelse(bh); break; } @@ -644,10 +646,8 @@ static int do_one_pass(journal_t *journal, if (!JBD2_HAS_INCOMPAT_FEATURE(journal, JBD2_FEATURE_INCOMPAT_ASYNC_COMMIT)){ - printk(KERN_ERR - "JBD: Transaction %u " - "found to be corrupt.\n", - next_commit_ID); + journal->j_failed_commit = + next_commit_ID; brelse(bh); break; }