Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9f70a401 authored by Robert ABEL's avatar Robert ABEL Committed by Greg Kroah-Hartman
Browse files

sysfs: fix attribute_group bin file path on removal

Cody Schafer already fixed binary file creation for attribute groups, see [1].
This patch makes the appropriate changes for binary file removal
of attribute groups.
[1]: http://lkml.org/lkml/2014/2/27/832



Signed-off-by: default avatarRobert ABEL <rabel@cit-ec.uni-bielefeld.de>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 78e1da62
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -18,7 +18,7 @@
#include "sysfs.h"


static void remove_files(struct kernfs_node *parent, struct kobject *kobj,
static void remove_files(struct kernfs_node *parent,
			 const struct attribute_group *grp)
{
	struct attribute *const *attr;
@@ -29,7 +29,7 @@ static void remove_files(struct kernfs_node *parent, struct kobject *kobj,
			kernfs_remove_by_name(parent, (*attr)->name);
	if (grp->bin_attrs)
		for (bin_attr = grp->bin_attrs; *bin_attr; bin_attr++)
			sysfs_remove_bin_file(kobj, *bin_attr);
			kernfs_remove_by_name(parent, (*bin_attr)->attr.name);
}

static int create_files(struct kernfs_node *parent, struct kobject *kobj,
@@ -62,7 +62,7 @@ static int create_files(struct kernfs_node *parent, struct kobject *kobj,
				break;
		}
		if (error) {
			remove_files(parent, kobj, grp);
			remove_files(parent, grp);
			goto exit;
		}
	}
@@ -79,7 +79,7 @@ static int create_files(struct kernfs_node *parent, struct kobject *kobj,
				break;
		}
		if (error)
			remove_files(parent, kobj, grp);
			remove_files(parent, grp);
	}
exit:
	return error;
@@ -224,7 +224,7 @@ void sysfs_remove_group(struct kobject *kobj,
		kernfs_get(kn);
	}

	remove_files(kn, kobj, grp);
	remove_files(kn, grp);
	if (grp->name)
		kernfs_remove(kn);