RE: [PATCH] sysfs: attribute_group: Respect is_visible_const() when changing owner

From: Michael Kelley

Date: Fri Apr 03 2026 - 13:54:47 EST


From: Thomas Weißschuh <linux@xxxxxxxxxxxxxx> Sent: Friday, April 3, 2026 9:31 AM
>
> 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@xxxxxxxxxxxxxxx
> Reported-by: Michael Kelley <mhklinux@xxxxxxxxxxx>
> Closes: https://lore.kernel.org/lkml/SN6PR02MB4157D5F04608E4E3C21AB56ED45EA@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/
> Link: https://sashiko.dev/#/patchset/20260403-sysfs-const-hv-v2-0-8932ab8d41db%40weissschuh.net
> Signed-off-by: Thomas Weißschuh <linux@xxxxxxxxxxxxxx>

Reviewed-by: Michael Kelley <mhklinux@xxxxxxxxxxx>

> ---
> Currently there are no implementations of 'is_visible_const()' in the
> tree, so this should not affect any code.
> ---
> fs/sysfs/group.c | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/fs/sysfs/group.c b/fs/sysfs/group.c
> index e1e639f515a0..989edd6c6c23 100644
> --- a/fs/sysfs/group.c
> +++ b/fs/sysfs/group.c
> @@ -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)
>
> ---
> base-commit: d8a9a4b11a137909e306e50346148fc5c3b63f9d
> change-id: 20260403-sysfs-is_visible_const-fix-74bd09223a65
>
> Best regards,
> --
> Thomas Weißschuh <linux@xxxxxxxxxxxxxx>
>