On Mon, 19 May 2014 06:31:11 +0200 Julia Lawall wrote: > From: Julia Lawall > > Delete unnecessary local variable whose value is always 0 and that hides > the fact that the result is always 0. > > A simplified version of the semantic patch that fixes this problem is as > follows: (http://coccinelle.lip6.fr/) > > // > @r exists@ > local idexpression ret; > expression e; > position p; > @@ > > -ret = 0; > ... when != ret = e > return > - ret > + 0 > ; > // > > Signed-off-by: Julia Lawall > > --- > Alternatively, was an error code intended in the MD_MAX_BADBLOCKS case? Yes, I did want an error code in that case - thanks! I'll make a patch. NeilBrown > > drivers/md/md.c | 7 ++----- > 1 file changed, 2 insertions(+), 5 deletions(-) > > diff --git a/drivers/md/md.c b/drivers/md/md.c > index f477e4c..23b7fee 100644 > --- a/drivers/md/md.c > +++ b/drivers/md/md.c > @@ -8297,7 +8297,6 @@ static int md_clear_badblocks(struct badblocks *bb, sector_t s, int sectors) > u64 *p; > int lo, hi; > sector_t target = s + sectors; > - int rv = 0; > > if (bb->shift > 0) { > /* When clearing we round the start up and the end down. > @@ -8339,10 +8338,8 @@ static int md_clear_badblocks(struct badblocks *bb, sector_t s, int sectors) > > if (a < s) { > /* we need to split this range */ > - if (bb->count >= MD_MAX_BADBLOCKS) { > - rv = 0; > + if (bb->count >= MD_MAX_BADBLOCKS) > goto out; > - } > memmove(p+lo+1, p+lo, (bb->count - lo) * 8); > bb->count++; > p[lo] = BB_MAKE(a, s-a, ack); > @@ -8378,7 +8375,7 @@ static int md_clear_badblocks(struct badblocks *bb, sector_t s, int sectors) > bb->changed = 1; > out: > write_sequnlock_irq(&bb->lock); > - return rv; > + return 0; > } > > int rdev_clear_badblocks(struct md_rdev *rdev, sector_t s, int sectors,