The 'offset' local variable can't be changed inside the loop, so
move it out.

Signed-off-by: Ming Lei <tom.leim...@gmail.com>
---
 drivers/md/raid1.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c
index 4034a2963da8..2f3622c695ce 100644
--- a/drivers/md/raid1.c
+++ b/drivers/md/raid1.c
@@ -1317,6 +1317,7 @@ static void raid1_write_request(struct mddev *mddev, 
struct bio *bio)
        int first_clone;
        int sectors_handled;
        int max_sectors;
+       sector_t offset;
 
        /*
         * Register the new request and wait if the reconstruction
@@ -1481,13 +1482,13 @@ static void raid1_write_request(struct mddev *mddev, 
struct bio *bio)
        atomic_set(&r1_bio->behind_remaining, 0);
 
        first_clone = 1;
+
+       offset = r1_bio->sector - bio->bi_iter.bi_sector;
        for (i = 0; i < disks; i++) {
                struct bio *mbio = NULL;
-               sector_t offset;
                if (!r1_bio->bios[i])
                        continue;
 
-               offset = r1_bio->sector - bio->bi_iter.bi_sector;
 
                if (first_clone) {
                        /* do behind I/O ?
-- 
2.9.3

Reply via email to