|
@@ -4414,6 +4414,15 @@ static journal_t *ext4_get_dev_journal(struct super_block *sb,
|
|
|
goto out_bdev;
|
|
|
}
|
|
|
|
|
|
+ if ((le32_to_cpu(es->s_feature_ro_compat) &
|
|
|
+ EXT4_FEATURE_RO_COMPAT_METADATA_CSUM) &&
|
|
|
+ es->s_checksum != ext4_superblock_csum(sb, es)) {
|
|
|
+ ext4_msg(sb, KERN_ERR, "external journal has "
|
|
|
+ "corrupt superblock");
|
|
|
+ brelse(bh);
|
|
|
+ goto out_bdev;
|
|
|
+ }
|
|
|
+
|
|
|
if (memcmp(EXT4_SB(sb)->s_es->s_journal_uuid, es->s_uuid, 16)) {
|
|
|
ext4_msg(sb, KERN_ERR, "journal UUID does not match");
|
|
|
brelse(bh);
|