diff options
| -rw-r--r-- | drivers/block/loop.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/drivers/block/loop.c b/drivers/block/loop.c index 67d7bc812364..3f09cd8bcc38 100644 --- a/drivers/block/loop.c +++ b/drivers/block/loop.c | |||
| @@ -210,7 +210,7 @@ lo_do_transfer(struct loop_device *lo, int cmd, | |||
| 210 | * space operations write_begin and write_end. | 210 | * space operations write_begin and write_end. |
| 211 | */ | 211 | */ |
| 212 | static int do_lo_send_aops(struct loop_device *lo, struct bio_vec *bvec, | 212 | static int do_lo_send_aops(struct loop_device *lo, struct bio_vec *bvec, |
| 213 | int bsize, loff_t pos, struct page *unused) | 213 | loff_t pos, struct page *unused) |
| 214 | { | 214 | { |
| 215 | struct file *file = lo->lo_backing_file; /* kudos to NFsckingS */ | 215 | struct file *file = lo->lo_backing_file; /* kudos to NFsckingS */ |
| 216 | struct address_space *mapping = file->f_mapping; | 216 | struct address_space *mapping = file->f_mapping; |
| @@ -302,7 +302,7 @@ static int __do_lo_send_write(struct file *file, | |||
| 302 | * filesystems. | 302 | * filesystems. |
| 303 | */ | 303 | */ |
| 304 | static int do_lo_send_direct_write(struct loop_device *lo, | 304 | static int do_lo_send_direct_write(struct loop_device *lo, |
| 305 | struct bio_vec *bvec, int bsize, loff_t pos, struct page *page) | 305 | struct bio_vec *bvec, loff_t pos, struct page *page) |
| 306 | { | 306 | { |
| 307 | ssize_t bw = __do_lo_send_write(lo->lo_backing_file, | 307 | ssize_t bw = __do_lo_send_write(lo->lo_backing_file, |
| 308 | kmap(bvec->bv_page) + bvec->bv_offset, | 308 | kmap(bvec->bv_page) + bvec->bv_offset, |
| @@ -326,7 +326,7 @@ static int do_lo_send_direct_write(struct loop_device *lo, | |||
| 326 | * destination pages of the backing file. | 326 | * destination pages of the backing file. |
| 327 | */ | 327 | */ |
| 328 | static int do_lo_send_write(struct loop_device *lo, struct bio_vec *bvec, | 328 | static int do_lo_send_write(struct loop_device *lo, struct bio_vec *bvec, |
| 329 | int bsize, loff_t pos, struct page *page) | 329 | loff_t pos, struct page *page) |
| 330 | { | 330 | { |
| 331 | int ret = lo_do_transfer(lo, WRITE, page, 0, bvec->bv_page, | 331 | int ret = lo_do_transfer(lo, WRITE, page, 0, bvec->bv_page, |
| 332 | bvec->bv_offset, bvec->bv_len, pos >> 9); | 332 | bvec->bv_offset, bvec->bv_len, pos >> 9); |
| @@ -341,10 +341,9 @@ static int do_lo_send_write(struct loop_device *lo, struct bio_vec *bvec, | |||
| 341 | return ret; | 341 | return ret; |
| 342 | } | 342 | } |
| 343 | 343 | ||
| 344 | static int lo_send(struct loop_device *lo, struct bio *bio, int bsize, | 344 | static int lo_send(struct loop_device *lo, struct bio *bio, loff_t pos) |
| 345 | loff_t pos) | ||
| 346 | { | 345 | { |
| 347 | int (*do_lo_send)(struct loop_device *, struct bio_vec *, int, loff_t, | 346 | int (*do_lo_send)(struct loop_device *, struct bio_vec *, loff_t, |
| 348 | struct page *page); | 347 | struct page *page); |
| 349 | struct bio_vec *bvec; | 348 | struct bio_vec *bvec; |
| 350 | struct page *page = NULL; | 349 | struct page *page = NULL; |
| @@ -362,7 +361,7 @@ static int lo_send(struct loop_device *lo, struct bio *bio, int bsize, | |||
| 362 | } | 361 | } |
| 363 | } | 362 | } |
| 364 | bio_for_each_segment(bvec, bio, i) { | 363 | bio_for_each_segment(bvec, bio, i) { |
| 365 | ret = do_lo_send(lo, bvec, bsize, pos, page); | 364 | ret = do_lo_send(lo, bvec, pos, page); |
| 366 | if (ret < 0) | 365 | if (ret < 0) |
| 367 | break; | 366 | break; |
| 368 | pos += bvec->bv_len; | 367 | pos += bvec->bv_len; |
| @@ -478,7 +477,7 @@ static int do_bio_filebacked(struct loop_device *lo, struct bio *bio) | |||
| 478 | 477 | ||
| 479 | pos = ((loff_t) bio->bi_sector << 9) + lo->lo_offset; | 478 | pos = ((loff_t) bio->bi_sector << 9) + lo->lo_offset; |
| 480 | if (bio_rw(bio) == WRITE) | 479 | if (bio_rw(bio) == WRITE) |
| 481 | ret = lo_send(lo, bio, lo->lo_blocksize, pos); | 480 | ret = lo_send(lo, bio, pos); |
| 482 | else | 481 | else |
| 483 | ret = lo_receive(lo, bio, lo->lo_blocksize, pos); | 482 | ret = lo_receive(lo, bio, lo->lo_blocksize, pos); |
| 484 | return ret; | 483 | return ret; |
