On Tue, 15 May 2012 16:00:25 +0800 Yuanhan Liu [off-list ref]
wrote:
The code does nothing but repating assigning sb->sb_csum with original
value.
This code sets the sb_csum to 0 while the csum is calculated.
Without this, calculating the csum, setting it, then calculating again would
produce a different result.
So the code is correct as is.
Thanks,
NeilBrown
quoted hunk ↗ jump to hunk
Signed-off-by: Yuanhan Liu <redacted>
---
drivers/md/md.c | 4 ----
1 files changed, 0 insertions(+), 4 deletions(-)
diff --git a/drivers/md/md.c b/drivers/md/md.c
index 0bd44e3..f2d799a 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -1439,15 +1439,12 @@ super_90_rdev_size_change(struct md_rdev *rdev, sector_t num_sectors)
static __le32 calc_sb_1_csum(struct mdp_superblock_1 * sb)
{
- __le32 disk_csum;
u32 csum;
unsigned long long newcsum;
int size = 256 + le32_to_cpu(sb->max_dev)*2;
__le32 *isuper = (__le32*)sb;
int i;
- disk_csum = sb->sb_csum;
- sb->sb_csum = 0;
newcsum = 0;
for (i=0; size>=4; size -= 4 )
newcsum += le32_to_cpu(*isuper++);@@ -1456,7 +1453,6 @@ static __le32 calc_sb_1_csum(struct mdp_superblock_1 * sb)
newcsum += le16_to_cpu(*(__le16*) isuper);
csum = (newcsum & 0xffffffff) + (newcsum >> 32);
- sb->sb_csum = disk_csum;
return cpu_to_le32(csum);
}