2012-05-15 07:52:49

by Yuanhan Liu

[permalink] [raw]
Subject: [PATCH] md: remove redudent code

The code does nothing but repating assigning sb->sb_csum with original
value.

Signed-off-by: Yuanhan Liu <[email protected]>
---
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);
}

--
1.7.7.6


2012-05-15 08:04:07

by NeilBrown

[permalink] [raw]
Subject: Re: [PATCH] md: remove redudent code

On Tue, 15 May 2012 16:00:25 +0800 Yuanhan Liu <[email protected]>
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


>
> Signed-off-by: Yuanhan Liu <[email protected]>
> ---
> 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);
> }
>


Attachments:
signature.asc (828.00 B)

2012-05-15 08:12:38

by Yuanhan Liu

[permalink] [raw]
Subject: Re: [PATCH] md: remove redudent code

On Tue, May 15, 2012 at 06:03:49PM +1000, NeilBrown wrote:
> On Tue, 15 May 2012 16:00:25 +0800 Yuanhan Liu <[email protected]>
> 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.

Aha, got it. And sorry for the wrong patch.

Thanks,
Yuanhan Liu

>
> Thanks,
> NeilBrown
>
>
> >
> > Signed-off-by: Yuanhan Liu <[email protected]>
> > ---
> > 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);
> > }
> >
>