Browse Source

block: don't create bio_vec slabs of less than the inline number

If we don't have CONFIG_BLK_DEV_INTEGRITY set, then we don't have
any external dependencies on the bio_vec slabs. So don't create
the ones that we will inline anyway.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe 16 năm trước cách đây
mục cha
commit
a7fcd37cdc
1 tập tin đã thay đổi với 7 bổ sung0 xóa
  1. 7 0
      fs/bio.c

+ 7 - 0
fs/bio.c

@@ -1589,6 +1589,13 @@ static void __init biovec_init_slabs(void)
 		int size;
 		int size;
 		struct biovec_slab *bvs = bvec_slabs + i;
 		struct biovec_slab *bvs = bvec_slabs + i;
 
 
+#ifndef CONFIG_BLK_DEV_INTEGRITY
+		if (bvs->nr_vecs <= BIO_INLINE_VECS) {
+			bvs->slab = NULL;
+			continue;
+		}
+#endif
+
 		size = bvs->nr_vecs * sizeof(struct bio_vec);
 		size = bvs->nr_vecs * sizeof(struct bio_vec);
 		bvs->slab = kmem_cache_create(bvs->name, size, 0,
 		bvs->slab = kmem_cache_create(bvs->name, size, 0,
                                 SLAB_HWCACHE_ALIGN|SLAB_PANIC, NULL);
                                 SLAB_HWCACHE_ALIGN|SLAB_PANIC, NULL);