Skip to content
  • Prasad Joshi's avatar
    logfs: query block device for number of pages to send with bio · 9f0bbd8c
    Prasad Joshi authored
    
    
    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: default avatarPrasad Joshi <prasadjoshi.linux@gmail.com>
    9f0bbd8c