diff options
Diffstat (limited to 'fs/direct-io.c')
-rw-r--r-- | fs/direct-io.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/fs/direct-io.c b/fs/direct-io.c index f853263cf74f..38484b08a39a 100644 --- a/fs/direct-io.c +++ b/fs/direct-io.c | |||
@@ -441,8 +441,8 @@ static struct bio *dio_await_one(struct dio *dio) | |||
441 | static int dio_bio_complete(struct dio *dio, struct bio *bio) | 441 | static int dio_bio_complete(struct dio *dio, struct bio *bio) |
442 | { | 442 | { |
443 | const int uptodate = test_bit(BIO_UPTODATE, &bio->bi_flags); | 443 | const int uptodate = test_bit(BIO_UPTODATE, &bio->bi_flags); |
444 | struct bio_vec *bvec = bio->bi_io_vec; | 444 | struct bio_vec *bvec; |
445 | int page_no; | 445 | unsigned i; |
446 | 446 | ||
447 | if (!uptodate) | 447 | if (!uptodate) |
448 | dio->io_error = -EIO; | 448 | dio->io_error = -EIO; |
@@ -450,8 +450,8 @@ static int dio_bio_complete(struct dio *dio, struct bio *bio) | |||
450 | if (dio->is_async && dio->rw == READ) { | 450 | if (dio->is_async && dio->rw == READ) { |
451 | bio_check_pages_dirty(bio); /* transfers ownership */ | 451 | bio_check_pages_dirty(bio); /* transfers ownership */ |
452 | } else { | 452 | } else { |
453 | for (page_no = 0; page_no < bio->bi_vcnt; page_no++) { | 453 | bio_for_each_segment_all(bvec, bio, i) { |
454 | struct page *page = bvec[page_no].bv_page; | 454 | struct page *page = bvec->bv_page; |
455 | 455 | ||
456 | if (dio->rw == READ && !PageCompound(page)) | 456 | if (dio->rw == READ && !PageCompound(page)) |
457 | set_page_dirty_lock(page); | 457 | set_page_dirty_lock(page); |