diff --git a/fs/bio.c b/fs/bio.c
index 6a0b9ad8f8c9d031d4c32fb32e1c53e0677d1ef2..52de79c299424d9806dafe475b362246c14a5087 100644
--- a/fs/bio.c
+++ b/fs/bio.c
@@ -1142,7 +1142,7 @@ static int biovec_create_pools(struct bio_set *bs, int pool_entries, int scale)
 		struct biovec_slab *bp = bvec_slabs + i;
 		mempool_t **bvp = bs->bvec_pools + i;
 
-		if (i >= scale)
+		if (pool_entries > 1 && i >= scale)
 			pool_entries >>= 1;
 
 		*bvp = mempool_create_slab_pool(pool_entries, bp->slab);