nvme fixes for Linux 6.15

- do not create the newly added multipath sysfs group for
    non-multipath nodes (Nilay Shroff)
 -----BEGIN PGP SIGNATURE-----
 
 iQI/BAABCgApFiEEgdbnc3r/njty3Iq9D55TZVIEUYMFAmgvMZULHGhjaEBsc3Qu
 ZGUACgkQD55TZVIEUYNmNhAAuZ/iRkZx9/d3/iaXTubdYAvF8OPyntwkFwkvfTWt
 z68bWG16I0a5cie8LursAZNiW7XoDf6aoO4CF8Z+WMSkDDHAynq54t8Bu1VwGArf
 cNOU0sHzQxHsnIzYHp1clF5HHWZ6mJjVcN52mmnNkKHzMdVEU8eYV4nQyatjEmPj
 IQ7aOXnpqvdiHuhZiZkWPrXCZaqmCbhzlg7c8LGOXJcSHRna+rBBnmB+LnSd8qB9
 kwN3+pCb29VUwP8vfCxSkrAfeCknd4v5ifLaqn+G8pM0fpy8c1j3oGINj7tv6sD8
 vkOlyZBlt8K3w86+gtXeRdSuWTcQJFjsICW06rAQYJ9Jv8Zt2nrZ8E88WHY+SEzr
 5YMnVg8sfkhK/i8QZ3nwCc8dlCh+T3Vsmv+uclB2v3qyzHKPJghuvFWWYZd/L6qk
 8yUDpSx1XhwT0tHtWovph5+BdZtOaS1abPmCRv75JCJGW1XYULOr3fhC7MjbJVwV
 PztoBYU9Y7y4cTPTSJujdNLCTFNfN3H1ukTuQAbOWC+M4M96vQoLAAUl8Wn01r/e
 nE/C4e5swQXG+ZB+99qIVWizIlGNdt1pJ+TzXzJdlE0untVTW0RQf3qMIqF2tlHj
 jOlqggMo3RTP1TBdzoMYq4qcg9oAcbKLkpUG1kR8t8h8fF2HrcdTJO0mx5ySnEG2
 sI4=
 =wIO/
 -----END PGP SIGNATURE-----

Merge tag 'nvme-6.15-2025-05-22' of git://git.infradead.org/nvme into block-6.15

Pull NVMe fix from Christoph:

"nvme fixes for Linux 6.15

 - do not create the newly added multipath sysfs group for
   non-multipath nodes (Nilay Shroff)"

* tag 'nvme-6.15-2025-05-22' of git://git.infradead.org/nvme:
  nvme: avoid creating multipath sysfs group under namespace path devices
This commit is contained in:
Jens Axboe 2025-05-22 09:25:47 -06:00
commit 115c011f5d

View File

@ -306,13 +306,41 @@ static const struct attribute_group nvme_ns_attr_group = {
};
#ifdef CONFIG_NVME_MULTIPATH
/*
* NOTE: The dummy attribute does not appear in sysfs. It exists solely to allow
* control over the visibility of the multipath sysfs node. Without at least one
* attribute defined in nvme_ns_mpath_attrs[], the sysfs implementation does not
* invoke the multipath_sysfs_group_visible() method. As a result, we would not
* be able to control the visibility of the multipath sysfs node.
*/
static struct attribute dummy_attr = {
.name = "dummy",
};
static struct attribute *nvme_ns_mpath_attrs[] = {
&dummy_attr,
NULL,
};
static bool multipath_sysfs_group_visible(struct kobject *kobj)
{
struct device *dev = container_of(kobj, struct device, kobj);
return nvme_disk_is_ns_head(dev_to_disk(dev));
}
static bool multipath_sysfs_attr_visible(struct kobject *kobj,
struct attribute *attr, int n)
{
return false;
}
DEFINE_SYSFS_GROUP_VISIBLE(multipath_sysfs)
const struct attribute_group nvme_ns_mpath_attr_group = {
.name = "multipath",
.attrs = nvme_ns_mpath_attrs,
.is_visible = SYSFS_GROUP_VISIBLE(multipath_sysfs),
};
#endif