提交 0f2e6ab8 编写于 作者: C Christoph Hellwig 提交者: Jens Axboe

block: turn the nr_iovecs argument to bio_alloc* into an unsigned short

The bi_max_vecs and bi_vcnt fields are defined as unsigned short, so
don't allow passing larger values in.
Signed-off-by: NChristoph Hellwig <hch@lst.de>
Signed-off-by: NJens Axboe <axboe@kernel.dk>
上级 de76fd89
...@@ -407,7 +407,7 @@ static void punt_bios_to_rescuer(struct bio_set *bs) ...@@ -407,7 +407,7 @@ static void punt_bios_to_rescuer(struct bio_set *bs)
* *
* Returns: Pointer to new bio on success, NULL on failure. * Returns: Pointer to new bio on success, NULL on failure.
*/ */
struct bio *bio_alloc_bioset(gfp_t gfp_mask, unsigned int nr_iovecs, struct bio *bio_alloc_bioset(gfp_t gfp_mask, unsigned short nr_iovecs,
struct bio_set *bs) struct bio_set *bs)
{ {
gfp_t saved_gfp = gfp_mask; gfp_t saved_gfp = gfp_mask;
...@@ -493,7 +493,7 @@ EXPORT_SYMBOL(bio_alloc_bioset); ...@@ -493,7 +493,7 @@ EXPORT_SYMBOL(bio_alloc_bioset);
* *
* Returns: Pointer to new bio on success, NULL on failure. * Returns: Pointer to new bio on success, NULL on failure.
*/ */
struct bio *bio_kmalloc(gfp_t gfp_mask, unsigned int nr_iovecs) struct bio *bio_kmalloc(gfp_t gfp_mask, unsigned short nr_iovecs)
{ {
struct bio *bio; struct bio *bio;
......
...@@ -407,8 +407,9 @@ extern void bioset_exit(struct bio_set *); ...@@ -407,8 +407,9 @@ extern void bioset_exit(struct bio_set *);
extern int biovec_init_pool(mempool_t *pool, int pool_entries); extern int biovec_init_pool(mempool_t *pool, int pool_entries);
extern int bioset_init_from_src(struct bio_set *bs, struct bio_set *src); extern int bioset_init_from_src(struct bio_set *bs, struct bio_set *src);
extern struct bio *bio_alloc_bioset(gfp_t, unsigned int, struct bio_set *); struct bio *bio_alloc_bioset(gfp_t gfp, unsigned short nr_iovecs,
struct bio *bio_kmalloc(gfp_t gfp_mask, unsigned int nr_iovecs); struct bio_set *bs);
struct bio *bio_kmalloc(gfp_t gfp_mask, unsigned short nr_iovecs);
extern void bio_put(struct bio *); extern void bio_put(struct bio *);
extern void __bio_clone_fast(struct bio *, struct bio *); extern void __bio_clone_fast(struct bio *, struct bio *);
...@@ -416,7 +417,7 @@ extern struct bio *bio_clone_fast(struct bio *, gfp_t, struct bio_set *); ...@@ -416,7 +417,7 @@ extern struct bio *bio_clone_fast(struct bio *, gfp_t, struct bio_set *);
extern struct bio_set fs_bio_set; extern struct bio_set fs_bio_set;
static inline struct bio *bio_alloc(gfp_t gfp_mask, unsigned int nr_iovecs) static inline struct bio *bio_alloc(gfp_t gfp_mask, unsigned short nr_iovecs)
{ {
return bio_alloc_bioset(gfp_mask, nr_iovecs, &fs_bio_set); return bio_alloc_bioset(gfp_mask, nr_iovecs, &fs_bio_set);
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册