The block device driver puts a limit on maximum number of pages that can be sent with the bio. Not all block devices can handle BIO_MAX_PAGES number of pages in bio. Specifically the virtio-blk diriver limits it to 126. When the LogFS file system was excersized in KVM, the following bug from do_virtblk_request() was observed static void do_virtblk_request(struct request_queue *q) { .... .... while ((req = blk_peek_request(q)) != NULL) { BUG_ON(req->nr_phys_segments + 2 > vblk->sg_elems); .... .... } .... } The patch fixes the problem by querring the maximum number of pages in bio allowed from block device driver and then using those many pages during submit_bio. Signed-off-by: Prasad Joshi <prasadjoshi.linux@gmail.com> |
||
---|---|---|
.. | ||
compr.c | ||
dev_bdev.c | ||
dev_mtd.c | ||
dir.c | ||
file.c | ||
gc.c | ||
inode.c | ||
journal.c | ||
Kconfig | ||
logfs_abi.h | ||
logfs.h | ||
Makefile | ||
readwrite.c | ||
segment.c | ||
super.c |