aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>2008-08-28 03:17:05 -0400
committerJens Axboe <jens.axboe@oracle.com>2008-10-09 02:56:10 -0400
commita3bce90edd8f6cafe3f63b1a943800792e830178 (patch)
treec07a2962987e57997b4ff6f6c63febe1feaa0a9c /include/linux
parent45333d5a31296d0af886d94f1d08f128231cab8e (diff)
block: add gfp_mask argument to blk_rq_map_user and blk_rq_map_user_iov
Currently, blk_rq_map_user and blk_rq_map_user_iov always do GFP_KERNEL allocation. This adds gfp_mask argument to blk_rq_map_user and blk_rq_map_user_iov so sg can use it (sg always does GFP_ATOMIC allocation). Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Signed-off-by: Douglas Gilbert <dougg@torque.net> Cc: Mike Christie <michaelc@cs.wisc.edu> Cc: James Bottomley <James.Bottomley@HansenPartnership.com> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/bio.h9
-rw-r--r--include/linux/blkdev.h5
2 files changed, 8 insertions, 6 deletions
diff --git a/include/linux/bio.h b/include/linux/bio.h
index 13aba20edb2d..200b185c3e83 100644
--- a/include/linux/bio.h
+++ b/include/linux/bio.h
@@ -325,11 +325,11 @@ extern int bio_add_pc_page(struct request_queue *, struct bio *, struct page *,
325 unsigned int, unsigned int); 325 unsigned int, unsigned int);
326extern int bio_get_nr_vecs(struct block_device *); 326extern int bio_get_nr_vecs(struct block_device *);
327extern struct bio *bio_map_user(struct request_queue *, struct block_device *, 327extern struct bio *bio_map_user(struct request_queue *, struct block_device *,
328 unsigned long, unsigned int, int); 328 unsigned long, unsigned int, int, gfp_t);
329struct sg_iovec; 329struct sg_iovec;
330extern struct bio *bio_map_user_iov(struct request_queue *, 330extern struct bio *bio_map_user_iov(struct request_queue *,
331 struct block_device *, 331 struct block_device *,
332 struct sg_iovec *, int, int); 332 struct sg_iovec *, int, int, gfp_t);
333extern void bio_unmap_user(struct bio *); 333extern void bio_unmap_user(struct bio *);
334extern struct bio *bio_map_kern(struct request_queue *, void *, unsigned int, 334extern struct bio *bio_map_kern(struct request_queue *, void *, unsigned int,
335 gfp_t); 335 gfp_t);
@@ -337,9 +337,10 @@ extern struct bio *bio_copy_kern(struct request_queue *, void *, unsigned int,
337 gfp_t, int); 337 gfp_t, int);
338extern void bio_set_pages_dirty(struct bio *bio); 338extern void bio_set_pages_dirty(struct bio *bio);
339extern void bio_check_pages_dirty(struct bio *bio); 339extern void bio_check_pages_dirty(struct bio *bio);
340extern struct bio *bio_copy_user(struct request_queue *, unsigned long, unsigned int, int); 340extern struct bio *bio_copy_user(struct request_queue *, unsigned long,
341 unsigned int, int, gfp_t);
341extern struct bio *bio_copy_user_iov(struct request_queue *, struct sg_iovec *, 342extern struct bio *bio_copy_user_iov(struct request_queue *, struct sg_iovec *,
342 int, int); 343 int, int, gfp_t);
343extern int bio_uncopy_user(struct bio *); 344extern int bio_uncopy_user(struct bio *);
344void zero_fill_bio(struct bio *bio); 345void zero_fill_bio(struct bio *bio);
345extern struct bio_vec *bvec_alloc_bs(gfp_t, int, unsigned long *, struct bio_set *); 346extern struct bio_vec *bvec_alloc_bs(gfp_t, int, unsigned long *, struct bio_set *);
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index 12df8efeef19..00e388d0e221 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -710,11 +710,12 @@ extern void __blk_stop_queue(struct request_queue *q);
710extern void __blk_run_queue(struct request_queue *); 710extern void __blk_run_queue(struct request_queue *);
711extern void blk_run_queue(struct request_queue *); 711extern void blk_run_queue(struct request_queue *);
712extern void blk_start_queueing(struct request_queue *); 712extern void blk_start_queueing(struct request_queue *);
713extern int blk_rq_map_user(struct request_queue *, struct request *, void __user *, unsigned long); 713extern int blk_rq_map_user(struct request_queue *, struct request *,
714 void __user *, unsigned long, gfp_t);
714extern int blk_rq_unmap_user(struct bio *); 715extern int blk_rq_unmap_user(struct bio *);
715extern int blk_rq_map_kern(struct request_queue *, struct request *, void *, unsigned int, gfp_t); 716extern int blk_rq_map_kern(struct request_queue *, struct request *, void *, unsigned int, gfp_t);
716extern int blk_rq_map_user_iov(struct request_queue *, struct request *, 717extern int blk_rq_map_user_iov(struct request_queue *, struct request *,
717 struct sg_iovec *, int, unsigned int); 718 struct sg_iovec *, int, unsigned int, gfp_t);
718extern int blk_execute_rq(struct request_queue *, struct gendisk *, 719extern int blk_execute_rq(struct request_queue *, struct gendisk *,
719 struct request *, int); 720 struct request *, int);
720extern void blk_execute_rq_nowait(struct request_queue *, struct gendisk *, 721extern void blk_execute_rq_nowait(struct request_queue *, struct gendisk *,