]> git.neil.brown.name Git - lafs-utils.git/commitdiff
FORMAT CHANGE use crc32 for cluster head rather than toy checksum
authorNeilBrown <neilb@suse.de>
Tue, 3 May 2011 05:57:34 +0000 (15:57 +1000)
committerNeilBrown <neilb@suse.de>
Tue, 3 May 2011 05:57:34 +0000 (15:57 +1000)
Signed-off-by: NeilBrown <neilb@suse.de>
lib/lafs_cluster_flush.c

index 63d34f0421383888f84ed81c57bdfdca7f0b20f5..ac317182d772b87543eaf2a2ac73da415cd0a658 100644 (file)
@@ -224,15 +224,10 @@ static void cluster_incdesc(struct lafs_cluster *wc, struct descriptor *desc_sta
 int lafs_calc_cluster_csum(struct cluster_head *head)
 {
        unsigned int oldcsum = head->checksum;
-       unsigned long long newcsum = 0;
        unsigned long csum;
-       int i;
-       unsigned int *superc = (unsigned int *) head;
-       head->checksum = 0;
 
-       for (i = 0; i < __le16_to_cpu(head->Hlength)/4; i++)
-               newcsum += __le32_to_cpu(superc[i]);
-       csum = (newcsum & 0xffffffff) + (newcsum>>32);
+       head->checksum = 0;
+       csum = crc32(0, (uint32_t *)head, __le16_to_cpu(head->Hlength));
        head->checksum = oldcsum;
        return __cpu_to_le32(csum);
 }