• Chaitanya Kulkarni's avatar
    nvme: split nvme_alloc_request() · 39dfe844
    Chaitanya Kulkarni authored
    Right now nvme_alloc_request() allocates a request from block layer
    based on the value of the qid. When qid set to NVME_QID_ANY it used
    blk_mq_alloc_request() else blk_mq_alloc_request_hctx().
    
    The function nvme_alloc_request() is called from different context, The
    only place where it uses non NVME_QID_ANY value is for fabrics connect
    commands :-
    
    nvme_submit_sync_cmd()		NVME_QID_ANY
    nvme_features()			NVME_QID_ANY
    nvme_sec_submit()		NVME_QID_ANY
    nvmf_reg_read32()		NVME_QID_ANY
    nvmf_reg_read64()		NVME_QID_ANY
    nvmf_reg_write32()		NVME_QID_ANY
    nvmf_connect_admin_queue()	NVME_QID_ANY
    nvme_submit_user_cmd()		NVME_QID_ANY
    	nvme_alloc_request()
    nvme_keep_alive()		NVME_QID_ANY
    	nvme_alloc_request()
    nvme_timeout()			NVME_QID_ANY
    	nvme_alloc_request()
    nvme_delete_queue()		NVME_QID_ANY
    	nvme_alloc_request()
    nvmet_passthru_execute_cmd()	NVME_QID_ANY
    	nvme_alloc_request()
    nvmf_connect_io_queue() 	QID
    	__nvme_submit_sync_cmd()
    		nvme_alloc_request()
    
    With passthru nvme_alloc_request() n...
    39dfe844
lightnvm.c 32.2 KB