Re: [PATCH 6/8] nvme-fabrics: add a generic NVMe over Fabrics library

Keith Busch
2016-06-15T19:16:03Z

On Mon, Jun 13, 2016 at 04:45:26PM +0200, Christoph Hellwig wrote:
> @@ -107,10 +108,19 @@ struct nvme_ctrl {
> u8 event_limit;
> u8 vwc;
> u32 vs;
> + u32 sgls;
> bool subsystem;
> unsigned long quirks;
> struct work_struct scan_work;
> struct work_struct async_event_work;
> +
> + /* Fabrics only */
> + u16 sqsize;
> + u32 ioccsz;
> + u32 iorcsz;
> + u16 icdoff;
> + u16 maxcmd;
> + struct nvmf_ctrl_options *opts;
> };

The pci only stuff goes in 'struct nvme_dev' and embeds 'struct
nvme_ctrl', but fabrics gets to use nvme_ctrl directly?

If we need transport specifics for anything, like you have during
nvme_init_identify, I think we should add function callbacks to
nvme_ctrl_ops to set up those specifics, then we don't need 'is_fabrics'
checks.