md/raid5: get rid of duplicated call to bio_data_dir()
authorNamhyung Kim <namhyung@gmail.com>
Mon, 18 Jul 2011 07:38:51 +0000 (17:38 +1000)
committerNeilBrown <neilb@suse.de>
Mon, 18 Jul 2011 07:38:51 +0000 (17:38 +1000)
In raid5::make_request(), once bio_data_dir(@bi) is detected
it never (and couldn't) be changed. Use the result always.

Signed-off-by: Namhyung Kim <namhyung@gmail.com>
Signed-off-by: NeilBrown <neilb@suse.de>
drivers/md/raid5.c

index 0f71aa9a07c5853a7933dea82497bdf04fcc45bd..71480646a4596a9e6a36a426ab24666c4e3b642c 100644 (file)
@@ -4014,7 +4014,7 @@ static int make_request(mddev_t *mddev, struct bio * bi)
                                }
                        }
 
-                       if (bio_data_dir(bi) == WRITE &&
+                       if (rw == WRITE &&
                            logical_sector >= mddev->suspend_lo &&
                            logical_sector < mddev->suspend_hi) {
                                release_stripe(sh);
@@ -4032,7 +4032,7 @@ static int make_request(mddev_t *mddev, struct bio * bi)
                        }
 
                        if (test_bit(STRIPE_EXPANDING, &sh->state) ||
-                           !add_stripe_bio(sh, bi, dd_idx, (bi->bi_rw&RW_MASK))) {
+                           !add_stripe_bio(sh, bi, dd_idx, rw)) {
                                /* Stripe is busy expanding or
                                 * add failed due to overlap.  Flush everything
                                 * and wait a while