diff options
Diffstat (limited to 'fs/direct-io.c')
-rw-r--r-- | fs/direct-io.c | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/fs/direct-io.c b/fs/direct-io.c index 476f1ecbd1f0..472037732daf 100644 --- a/fs/direct-io.c +++ b/fs/direct-io.c | |||
@@ -172,7 +172,7 @@ static inline int dio_refill_pages(struct dio *dio, struct dio_submit *sdio) | |||
172 | */ | 172 | */ |
173 | if (dio->page_errors == 0) | 173 | if (dio->page_errors == 0) |
174 | dio->page_errors = ret; | 174 | dio->page_errors = ret; |
175 | page_cache_get(page); | 175 | get_page(page); |
176 | dio->pages[0] = page; | 176 | dio->pages[0] = page; |
177 | sdio->head = 0; | 177 | sdio->head = 0; |
178 | sdio->tail = 1; | 178 | sdio->tail = 1; |
@@ -424,7 +424,7 @@ static inline void dio_bio_submit(struct dio *dio, struct dio_submit *sdio) | |||
424 | static inline void dio_cleanup(struct dio *dio, struct dio_submit *sdio) | 424 | static inline void dio_cleanup(struct dio *dio, struct dio_submit *sdio) |
425 | { | 425 | { |
426 | while (sdio->head < sdio->tail) | 426 | while (sdio->head < sdio->tail) |
427 | page_cache_release(dio->pages[sdio->head++]); | 427 | put_page(dio->pages[sdio->head++]); |
428 | } | 428 | } |
429 | 429 | ||
430 | /* | 430 | /* |
@@ -487,7 +487,7 @@ static int dio_bio_complete(struct dio *dio, struct bio *bio) | |||
487 | if (dio->rw == READ && !PageCompound(page) && | 487 | if (dio->rw == READ && !PageCompound(page) && |
488 | dio->should_dirty) | 488 | dio->should_dirty) |
489 | set_page_dirty_lock(page); | 489 | set_page_dirty_lock(page); |
490 | page_cache_release(page); | 490 | put_page(page); |
491 | } | 491 | } |
492 | err = bio->bi_error; | 492 | err = bio->bi_error; |
493 | bio_put(bio); | 493 | bio_put(bio); |
@@ -696,7 +696,7 @@ static inline int dio_bio_add_page(struct dio_submit *sdio) | |||
696 | */ | 696 | */ |
697 | if ((sdio->cur_page_len + sdio->cur_page_offset) == PAGE_SIZE) | 697 | if ((sdio->cur_page_len + sdio->cur_page_offset) == PAGE_SIZE) |
698 | sdio->pages_in_io--; | 698 | sdio->pages_in_io--; |
699 | page_cache_get(sdio->cur_page); | 699 | get_page(sdio->cur_page); |
700 | sdio->final_block_in_bio = sdio->cur_page_block + | 700 | sdio->final_block_in_bio = sdio->cur_page_block + |
701 | (sdio->cur_page_len >> sdio->blkbits); | 701 | (sdio->cur_page_len >> sdio->blkbits); |
702 | ret = 0; | 702 | ret = 0; |
@@ -810,13 +810,13 @@ submit_page_section(struct dio *dio, struct dio_submit *sdio, struct page *page, | |||
810 | */ | 810 | */ |
811 | if (sdio->cur_page) { | 811 | if (sdio->cur_page) { |
812 | ret = dio_send_cur_page(dio, sdio, map_bh); | 812 | ret = dio_send_cur_page(dio, sdio, map_bh); |
813 | page_cache_release(sdio->cur_page); | 813 | put_page(sdio->cur_page); |
814 | sdio->cur_page = NULL; | 814 | sdio->cur_page = NULL; |
815 | if (ret) | 815 | if (ret) |
816 | return ret; | 816 | return ret; |
817 | } | 817 | } |
818 | 818 | ||
819 | page_cache_get(page); /* It is in dio */ | 819 | get_page(page); /* It is in dio */ |
820 | sdio->cur_page = page; | 820 | sdio->cur_page = page; |
821 | sdio->cur_page_offset = offset; | 821 | sdio->cur_page_offset = offset; |
822 | sdio->cur_page_len = len; | 822 | sdio->cur_page_len = len; |
@@ -830,7 +830,7 @@ out: | |||
830 | if (sdio->boundary) { | 830 | if (sdio->boundary) { |
831 | ret = dio_send_cur_page(dio, sdio, map_bh); | 831 | ret = dio_send_cur_page(dio, sdio, map_bh); |
832 | dio_bio_submit(dio, sdio); | 832 | dio_bio_submit(dio, sdio); |
833 | page_cache_release(sdio->cur_page); | 833 | put_page(sdio->cur_page); |
834 | sdio->cur_page = NULL; | 834 | sdio->cur_page = NULL; |
835 | } | 835 | } |
836 | return ret; | 836 | return ret; |
@@ -947,7 +947,7 @@ static int do_direct_IO(struct dio *dio, struct dio_submit *sdio, | |||
947 | 947 | ||
948 | ret = get_more_blocks(dio, sdio, map_bh); | 948 | ret = get_more_blocks(dio, sdio, map_bh); |
949 | if (ret) { | 949 | if (ret) { |
950 | page_cache_release(page); | 950 | put_page(page); |
951 | goto out; | 951 | goto out; |
952 | } | 952 | } |
953 | if (!buffer_mapped(map_bh)) | 953 | if (!buffer_mapped(map_bh)) |
@@ -988,7 +988,7 @@ do_holes: | |||
988 | 988 | ||
989 | /* AKPM: eargh, -ENOTBLK is a hack */ | 989 | /* AKPM: eargh, -ENOTBLK is a hack */ |
990 | if (dio->rw & WRITE) { | 990 | if (dio->rw & WRITE) { |
991 | page_cache_release(page); | 991 | put_page(page); |
992 | return -ENOTBLK; | 992 | return -ENOTBLK; |
993 | } | 993 | } |
994 | 994 | ||
@@ -1001,7 +1001,7 @@ do_holes: | |||
1001 | if (sdio->block_in_file >= | 1001 | if (sdio->block_in_file >= |
1002 | i_size_aligned >> blkbits) { | 1002 | i_size_aligned >> blkbits) { |
1003 | /* We hit eof */ | 1003 | /* We hit eof */ |
1004 | page_cache_release(page); | 1004 | put_page(page); |
1005 | goto out; | 1005 | goto out; |
1006 | } | 1006 | } |
1007 | zero_user(page, from, 1 << blkbits); | 1007 | zero_user(page, from, 1 << blkbits); |
@@ -1041,7 +1041,7 @@ do_holes: | |||
1041 | sdio->next_block_for_io, | 1041 | sdio->next_block_for_io, |
1042 | map_bh); | 1042 | map_bh); |
1043 | if (ret) { | 1043 | if (ret) { |
1044 | page_cache_release(page); | 1044 | put_page(page); |
1045 | goto out; | 1045 | goto out; |
1046 | } | 1046 | } |
1047 | sdio->next_block_for_io += this_chunk_blocks; | 1047 | sdio->next_block_for_io += this_chunk_blocks; |
@@ -1057,7 +1057,7 @@ next_block: | |||
1057 | } | 1057 | } |
1058 | 1058 | ||
1059 | /* Drop the ref which was taken in get_user_pages() */ | 1059 | /* Drop the ref which was taken in get_user_pages() */ |
1060 | page_cache_release(page); | 1060 | put_page(page); |
1061 | } | 1061 | } |
1062 | out: | 1062 | out: |
1063 | return ret; | 1063 | return ret; |
@@ -1281,7 +1281,7 @@ do_blockdev_direct_IO(struct kiocb *iocb, struct inode *inode, | |||
1281 | ret2 = dio_send_cur_page(dio, &sdio, &map_bh); | 1281 | ret2 = dio_send_cur_page(dio, &sdio, &map_bh); |
1282 | if (retval == 0) | 1282 | if (retval == 0) |
1283 | retval = ret2; | 1283 | retval = ret2; |
1284 | page_cache_release(sdio.cur_page); | 1284 | put_page(sdio.cur_page); |
1285 | sdio.cur_page = NULL; | 1285 | sdio.cur_page = NULL; |
1286 | } | 1286 | } |
1287 | if (sdio.bio) | 1287 | if (sdio.bio) |