mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 18:51:56 -04:00
ext4: call out CRC and corruption errors with specific error codes
Instead of overloading EIO for CRC errors and corrupt structures, return the same error codes that XFS returns for the same issues. Signed-off-by: Darrick J. Wong <[email protected]> Signed-off-by: Theodore Ts'o <[email protected]>
This commit is contained in:
parent
8c81bd8f58
commit
6a797d2737
16 changed files with 107 additions and 88 deletions
|
|
@ -1558,6 +1558,7 @@ static int journal_get_superblock(journal_t *journal)
|
|||
/* Check superblock checksum */
|
||||
if (!jbd2_superblock_csum_verify(journal, sb)) {
|
||||
printk(KERN_ERR "JBD2: journal checksum error\n");
|
||||
err = -EFSBADCRC;
|
||||
goto out;
|
||||
}
|
||||
|
||||
|
|
@ -1649,7 +1650,7 @@ int jbd2_journal_load(journal_t *journal)
|
|||
printk(KERN_ERR "JBD2: journal transaction %u on %s "
|
||||
"is corrupt.\n", journal->j_failed_commit,
|
||||
journal->j_devname);
|
||||
return -EIO;
|
||||
return -EFSCORRUPTED;
|
||||
}
|
||||
|
||||
/* OK, we've finished with the dynamic journal bits:
|
||||
|
|
|
|||
|
|
@ -140,7 +140,7 @@ static int jread(struct buffer_head **bhp, journal_t *journal,
|
|||
|
||||
if (offset >= journal->j_maxlen) {
|
||||
printk(KERN_ERR "JBD2: corrupted journal superblock\n");
|
||||
return -EIO;
|
||||
return -EFSCORRUPTED;
|
||||
}
|
||||
|
||||
err = jbd2_journal_bmap(journal, offset, &blocknr);
|
||||
|
|
@ -527,7 +527,7 @@ static int do_one_pass(journal_t *journal,
|
|||
printk(KERN_ERR "JBD2: Invalid checksum "
|
||||
"recovering block %lu in log\n",
|
||||
next_log_block);
|
||||
err = -EIO;
|
||||
err = -EFSBADCRC;
|
||||
brelse(bh);
|
||||
goto failed;
|
||||
}
|
||||
|
|
@ -602,7 +602,7 @@ static int do_one_pass(journal_t *journal,
|
|||
journal, tag, obh->b_data,
|
||||
be32_to_cpu(tmp->h_sequence))) {
|
||||
brelse(obh);
|
||||
success = -EIO;
|
||||
success = -EFSBADCRC;
|
||||
printk(KERN_ERR "JBD2: Invalid "
|
||||
"checksum recovering "
|
||||
"block %llu in log\n",
|
||||
|
|
@ -851,7 +851,7 @@ static int scan_revoke_records(journal_t *journal, struct buffer_head *bh,
|
|||
rcount = be32_to_cpu(header->r_count);
|
||||
|
||||
if (!jbd2_revoke_block_csum_verify(journal, header))
|
||||
return -EINVAL;
|
||||
return -EFSBADCRC;
|
||||
|
||||
if (jbd2_journal_has_csum_v2or3(journal))
|
||||
csum_size = sizeof(struct jbd2_journal_revoke_tail);
|
||||
|
|
|
|||
Loading…
Reference in a new issue