[PATCH 7/9] nvme: track shared namespaces

Sagi Grimberg sagi at grimberg.me
Wed Oct 11 05:04:14 PDT 2017


> +/*
> + * Anchor structure for namespaces.  There is one for each namespace in a
> + * NVMe subsystem that any of our controllers can see, and the namespace
> + * structure for each controller is chained of it.  For private namespaces
> + * there is a 1:1 relation to our namespace structures, that is ->list
> + * only ever has a single entry for private namespaces.
> + */
> +struct nvme_ns_head {
> +	struct list_head	list;

Didn't we agree to call this list_head siblings?

> +	struct srcu_struct      srcu;
> +	unsigned		ns_id;
> +	struct nvme_ns_ids	ids;
> +	struct list_head	entry;
> +	struct kref		ref;
> +};
> +
>   struct nvme_ns {
>   	struct list_head list;
>   
>   	struct nvme_ctrl *ctrl;
>   	struct request_queue *queue;
>   	struct gendisk *disk;
> +	struct list_head siblings;

And this list_head list (or entry, or sibling, or sibling_entry)?

>   	struct nvm_dev *ndev;
>   	struct kref kref;
> +	struct nvme_ns_head *head;
>   	int instance;
>   
> -	unsigned ns_id;
> -	struct nvme_ns_ids ids;
>   	int lba_shift;
>   	u16 ms;
>   	u16 sgs;
> 



More information about the Linux-nvme mailing list