]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
sysfs: attribute_group: Respect is_visible_const() when changing owner
authorThomas Weißschuh <linux@weissschuh.net>
Fri, 3 Apr 2026 16:31:02 +0000 (18:31 +0200)
committerDanilo Krummrich <dakr@kernel.org>
Sat, 11 Apr 2026 13:57:54 +0000 (15:57 +0200)
The call to grp->is_visible in sysfs_group_attrs_change_owner() was
missed when support for is_visible_const() was added.

Check for both is_visible variants there too.

Fixes: 7dd9fdb4939b ("sysfs: attribute_group: enable const variants of is_visible()")
Cc: stable@vger.kernel.org
Reported-by: Michael Kelley <mhklinux@outlook.com>
Closes: https://lore.kernel.org/lkml/SN6PR02MB4157D5F04608E4E3C21AB56ED45EA@SN6PR02MB4157.namprd02.prod.outlook.com/
Link: https://sashiko.dev/#/patchset/20260403-sysfs-const-hv-v2-0-8932ab8d41db%40weissschuh.net
Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
Reviewed-by: Michael Kelley <mhklinux@outlook.com>
Link: https://patch.msgid.link/20260403-sysfs-is_visible_const-fix-v1-1-f87f26071d2c@weissschuh.net
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
fs/sysfs/group.c

index e1e639f515a0fd4b013f2e25de8bd21557f174c2..989edd6c6c23cabb99343d0a564b8ef89931cc77 100644 (file)
@@ -517,8 +517,11 @@ static int sysfs_group_attrs_change_owner(struct kobject *kobj,
                struct attribute *const *attr;
 
                for (i = 0, attr = grp->attrs; *attr; i++, attr++) {
-                       if (grp->is_visible) {
-                               mode = grp->is_visible(kobj, *attr, i);
+                       if (grp->is_visible || grp->is_visible_const) {
+                               if (grp->is_visible)
+                                       mode = grp->is_visible(kobj, *attr, i);
+                               else
+                                       mode = grp->is_visible_const(kobj, *attr, i);
                                if (mode & SYSFS_GROUP_INVISIBLE)
                                        break;
                                if (!mode)