The first two patches make blk-mq work fine again for me in a KVM VM,the others make sure that consumers don't have to care if the underlying queueuses blk-mq or not and remove some code at the same time.