diff --git a/[refs] b/[refs] index e1207994d86e..8a9b26a3e2d2 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 4706b349f4a8312d31b3d0cf61fe721699356920 +refs/heads/master: 852c8bf484a0e17ee27f413ef26e87f522af5607 diff --git a/trunk/drivers/md/linear.c b/trunk/drivers/md/linear.c index 1e3aea9eecf1..09658b218474 100644 --- a/trunk/drivers/md/linear.c +++ b/trunk/drivers/md/linear.c @@ -25,13 +25,13 @@ static inline dev_info_t *which_dev(mddev_t *mddev, sector_t sector) { dev_info_t *hash; linear_conf_t *conf = mddev_to_conf(mddev); + sector_t idx = sector >> conf->sector_shift; /* * sector_div(a,b) returns the remainer and sets a to a/b */ - sector >>= conf->sector_shift; - (void)sector_div(sector, conf->spacing); - hash = conf->hash_table[sector]; + (void)sector_div(idx, conf->spacing); + hash = conf->hash_table[idx]; while (sector >= hash->num_sectors + hash->start_sector) hash++;