On 09/05/2018 03:18 PM, Christoph Hellwig wrote:
> On Wed, Sep 05, 2018 at 09:00:50AM +0200, Hannes Reinecke wrote:
>> 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.

>> +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.

Cheers,

Hannes
-- 
Dr. Hannes Reinecke                Teamlead Storage & Networking
[email protected]                                   +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
HRB 21284 (AG Nürnberg)

Reply via email to