diff --git a/drivers/scsi/ibmvscsi/ibmvfc.h b/drivers/scsi/ibmvscsi/ibmvfc.h index 454968de925b..67f546ff092e 100644 --- a/drivers/scsi/ibmvscsi/ibmvfc.h +++ b/drivers/scsi/ibmvscsi/ibmvfc.h @@ -1011,6 +1011,16 @@ struct ibmvfc_host { wait_queue_head_t work_wait_q; }; +static inline struct ibmvfc_host *ibmvfc_channels_to_vhost(struct ibmvfc_channels *channels) +{ + if (channels->protocol == IBMVFC_PROTO_SCSI) + return container_of(channels, struct ibmvfc_host, scsi_scrqs); + else if (channels->protocol == IBMVFC_PROTO_NVME) + return container_of(channels, struct ibmvfc_host, nvme_scrqs); + + return NULL; +} + #define DBG_CMD(CMD) do { if (ibmvfc_debug) CMD; } while (0) #define tgt_dbg(t, fmt, ...) \