Btrfs: don't count CRC or header errors twice while scrubbing
authorStefan Behrens <sbehrens@giantdisaster.de>
Fri, 30 Mar 2012 11:58:31 +0000 (13:58 +0200)
committerDavid Sterba <dsterba@suse.cz>
Wed, 18 Apr 2012 17:22:36 +0000 (19:22 +0200)
Each CRC or header error was counted twice, this is now fixed.

Signed-off-by: Stefan Behrens <sbehrens@giantdisaster.de>
fs/btrfs/scrub.c

index 60f0e28..b679bf6 100644 (file)
@@ -1258,12 +1258,6 @@ static int scrub_checksum_data(struct scrub_block *sblock)
        if (memcmp(csum, on_disk_csum, sdev->csum_size))
                fail = 1;
 
-       if (fail) {
-               spin_lock(&sdev->stat_lock);
-               ++sdev->stat.csum_errors;
-               spin_unlock(&sdev->stat_lock);
-       }
-
        return fail;
 }
 
@@ -1336,15 +1330,6 @@ static int scrub_checksum_tree_block(struct scrub_block *sblock)
        if (memcmp(calculated_csum, on_disk_csum, sdev->csum_size))
                ++crc_fail;
 
-       if (crc_fail || fail) {
-               spin_lock(&sdev->stat_lock);
-               if (crc_fail)
-                       ++sdev->stat.csum_errors;
-               if (fail)
-                       ++sdev->stat.verify_errors;
-               spin_unlock(&sdev->stat_lock);
-       }
-
        return fail || crc_fail;
 }