It is more lucky that kernel crash does not happen, since we test the bi_pool in function __bio_clone_fast. Now bi_flags is used to flag the idx, so it is incorrect to test the bi_pool. For now, the bio in function __bio_clone_fast may have its own bvec, if the caller is bio_clone_fast. Removing the test to fix this issue. Signed-off-by: Minfei Huang <mnfhuang@xxxxxxxxx> --- block/bio.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/block/bio.c b/block/bio.c index 4f184d9..70d9814 100644 --- a/block/bio.c +++ b/block/bio.c @@ -573,8 +573,6 @@ EXPORT_SYMBOL(bio_phys_segments); */ void __bio_clone_fast(struct bio *bio, struct bio *bio_src) { - BUG_ON(bio->bi_pool && BIO_POOL_IDX(bio) != BIO_POOL_NONE); - /* * most users will be overriding ->bi_bdev with a new target, * so we don't set nor calculate new physical/hw segment counts here -- 2.6.3 -- To unsubscribe from this list: send the line "unsubscribe linux-block" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html