block: make nr_iovecs unsigned in bio_alloc_bioset()
authorDan Carpenter <dan.carpenter@oracle.com>
Thu, 23 Mar 2017 10:24:55 +0000 (13:24 +0300)
committerJens Axboe <axboe@fb.com>
Thu, 23 Mar 2017 14:16:11 +0000 (08:16 -0600)
There isn't a bug here, but Smatch is not smart enough to know that
"nr_iovecs" can't be negative so it complains about underflows.
Really, it's slightly cleaner to make this parameter unsigned.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@fb.com>
block/bio.c
include/linux/bio.h

index e75878f8b14af8f852d814717c3900759b0ed6fc..6194a8cf2aab0e0019469252e2d5fb66549d1e22 100644 (file)
@@ -427,7 +427,8 @@ static void punt_bios_to_rescuer(struct bio_set *bs)
  *   RETURNS:
  *   Pointer to new bio on success, NULL on failure.
  */
-struct bio *bio_alloc_bioset(gfp_t gfp_mask, int nr_iovecs, struct bio_set *bs)
+struct bio *bio_alloc_bioset(gfp_t gfp_mask, unsigned int nr_iovecs,
+                            struct bio_set *bs)
 {
        gfp_t saved_gfp = gfp_mask;
        unsigned front_pad;
index 8e521194f6fc4ad32138a51c962a365c74debaed..4931756d86d99a0194114229ec04001c223a3963 100644 (file)
@@ -383,7 +383,7 @@ extern struct bio_set *bioset_create_nobvec(unsigned int, unsigned int);
 extern void bioset_free(struct bio_set *);
 extern mempool_t *biovec_create_pool(int pool_entries);
 
-extern struct bio *bio_alloc_bioset(gfp_t, int, struct bio_set *);
+extern struct bio *bio_alloc_bioset(gfp_t, unsigned int, struct bio_set *);
 extern void bio_put(struct bio *);
 
 extern void __bio_clone_fast(struct bio *, struct bio *);