Re: [PATCH 2/5] nvme: register ns_id attributes as default sysfs groups
From: Hannes Reinecke <hare@suse.com>
Date: 2018-09-06 09:56:59
Also in:
linux-nvme
On 09/05/2018 03:45 PM, Christoph Hellwig wrote:
On Wed, Sep 05, 2018 at 03:32:03PM +0200, Hannes Reinecke wrote:quoted
On 09/05/2018 03:18 PM, Christoph Hellwig wrote:quoted
On Wed, Sep 05, 2018 at 09:00:50AM +0200, Hannes Reinecke wrote:quoted
We should be registering the ns_id attribute as default sysfs attribute groups, otherwise we have a race condition between the uevent and the attributes appearing in sysfs.Please give Bart credit for his work, as the lightnvm bits are almost bigger than the rest.Okay, will be doing so.quoted
quoted
+static umode_t nvm_dev_attrs_visible(struct kobject *kobj, + struct attribute *attr, int index) { + struct device *dev = container_of(kobj, struct device, kobj); + struct gendisk *disk = dev_to_disk(dev); + struct nvme_ns *ns = disk->private_data; struct nvm_dev *ndev = ns->ndev; + struct device_attribute *dev_attr = + container_of(attr, typeof(*dev_attr), attr); + if (dev_attr->show == nvm_dev_attr_show) + return attr->mode; + switch (ndev ? ndev->geo.major_ver_id : 0) {How could ndev be zero here?For 'normal' NVMe devices (ie non-lightnvm). As we now register all sysfs attributes (including the lightnvm ones) per default we'll need to blank them out for non-lightnvm devices.But then we need to exit early at the beginning of the function, as we should not register attributes using nvm_dev_attr_show (or anything else for that matter) either.
Okay, will be fixing it up. Cheers, Hannes -- Dr. Hannes Reinecke zSeries & Storage hare@suse.com +49 911 74053 688 SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: F. Imendörffer, J. Smithard, D. Upmanyu, G. Norton HRB 21284 (AG Nürnberg)