diff options
| -rw-r--r-- | drivers/block/loop.c | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/drivers/block/loop.c b/drivers/block/loop.c index 20e8fbdfcecc..86d653d168df 100644 --- a/drivers/block/loop.c +++ b/drivers/block/loop.c @@ -350,15 +350,10 @@ static int do_bio_filebacked(struct loop_device *lo, struct bio *bio) int ret; pos = ((loff_t) bio->bi_sector << 9) + lo->lo_offset; - - do { - if (bio_rw(bio) == WRITE) - ret = lo_send(lo, bio, lo->lo_blocksize, pos); - else - ret = lo_receive(lo, bio, lo->lo_blocksize, pos); - - } while (++bio->bi_idx < bio->bi_vcnt); - + if (bio_rw(bio) == WRITE) + ret = lo_send(lo, bio, lo->lo_blocksize, pos); + else + ret = lo_receive(lo, bio, lo->lo_blocksize, pos); return ret; } |
