]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
The structure stripe_c contains a stripes_mask field. This field is
authorMikulas Patocka <mpatocka@redhat.com>
Tue, 24 Jul 2012 23:25:14 +0000 (09:25 +1000)
committerStephen Rothwell <sfr@canb.auug.org.au>
Tue, 24 Jul 2012 23:25:14 +0000 (09:25 +1000)
useless because it can be trivially calculated by subtracting one from
stripes. It is used only at one place. This patch removes it.

The patch also changes ffs(stripes) - 1 to __ffs(stripes).

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
drivers/md/dm-stripe.c

index 1f6316ed2b318a8906ecbbcde69f488c165885dd..6931bd18b615291cfd55a5af654b63ffbd4c2efc 100644 (file)
@@ -26,7 +26,6 @@ struct stripe {
 struct stripe_c {
        uint32_t stripes;
        int stripes_shift;
-       sector_t stripes_mask;
 
        /* The size of this target / num. stripes */
        sector_t stripe_width;
@@ -163,10 +162,8 @@ static int stripe_ctr(struct dm_target *ti, unsigned int argc, char **argv)
 
        if (stripes & (stripes - 1))
                sc->stripes_shift = -1;
-       else {
-               sc->stripes_shift = ffs(stripes) - 1;
-               sc->stripes_mask = ((sector_t) stripes) - 1;
-       }
+       else
+               sc->stripes_shift = __ffs(stripes);
 
        ti->split_io = chunk_size;
        ti->num_flush_requests = stripes;
@@ -218,7 +215,7 @@ static void stripe_map_sector(struct stripe_c *sc, sector_t sector,
        if (sc->stripes_shift < 0)
                *stripe = sector_div(chunk, sc->stripes);
        else {
-               *stripe = chunk & sc->stripes_mask;
+               *stripe = chunk & (sc->stripes - 1);
                chunk >>= sc->stripes_shift;
        }