]> git.proxmox.com Git - mirror_zfs.git/commitdiff
Fix lockdep warning on insmod
authorTomohiro Kusumi <kusumi.tomohiro@gmail.com>
Thu, 13 Jun 2019 00:15:06 +0000 (09:15 +0900)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Thu, 13 Jun 2019 00:15:06 +0000 (17:15 -0700)
sysfs_attr_init() is required to make lockdep happy for dynamically
allocated sysfs attributes. This fixed #8868 on Fedora 29 running
kernel-debug.

This requirement was introduced in 2.6.34.
See include/linux/sysfs.h for what it actually does.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Olaf Faaland <faaland1@llnl.gov>
Signed-off-by: Tomohiro Kusumi <kusumi.tomohiro@gmail.com>
Closes #8868
Closes #8884

module/zfs/zfs_sysfs.c

index 30b5edb01e183c8e05bd369bba2bfecb70c93c53..2f5bea9aa9966789841ceffec2bb1501d708df8e 100644 (file)
@@ -144,6 +144,10 @@ zfs_kobj_release(struct kobject *kobj)
        zkobj->zko_attr_count = 0;
 }
 
+#ifndef sysfs_attr_init
+#define        sysfs_attr_init(attr) do {} while (0)
+#endif
+
 static void
 zfs_kobj_add_attr(zfs_mod_kobj_t *zkobj, int attr_num, const char *attr_name)
 {
@@ -154,6 +158,7 @@ zfs_kobj_add_attr(zfs_mod_kobj_t *zkobj, int attr_num, const char *attr_name)
        zkobj->zko_attr_list[attr_num].name = attr_name;
        zkobj->zko_attr_list[attr_num].mode = 0444;
        zkobj->zko_default_attrs[attr_num] = &zkobj->zko_attr_list[attr_num];
+       sysfs_attr_init(&zkobj->zko_attr_list[attr_num]);
 }
 
 static int