Btrfs: allow superblock mismatch from older mkfs
authorChris Mason <chris.mason@fusionio.com>
Tue, 7 May 2013 15:00:13 +0000 (11:00 -0400)
committerChris Mason <chris.mason@fusionio.com>
Tue, 7 May 2013 15:00:13 +0000 (11:00 -0400)
We've added new checks to make sure the super block crc is correct
during mount.  A fresh filesystem from an older mkfs won't have the
crc set.  This adds a warning when it finds a newly created filesystem
but doesn't fail the mount.

Signed-off-by: Chris Mason <chris.mason@fusionio.com>
fs/btrfs/disk-io.c

index bc423f7eddce3b252aa0f3cb4ca1ac26b1181444..4e9ebe1f1827895712afdea8e0e8016bd20088ca 100644 (file)
@@ -383,6 +383,11 @@ static int btrfs_check_super_csum(char *raw_disk_sb)
 
                if (memcmp(raw_disk_sb, result, csum_size))
                        ret = 1;
+
+               if (ret && btrfs_super_generation(disk_sb) < 10) {
+                       printk(KERN_WARNING "btrfs: super block crcs don't match, older mkfs detected\n");
+                       ret = 0;
+               }
        }
 
        if (csum_type >= ARRAY_SIZE(btrfs_csum_sizes)) {