#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;
                        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,
                                break;
                }
                if (error) {
-                       remove_files(parent, kobj, grp);
+                       remove_files(parent, grp);
                        goto exit;
                }
        }
                                break;
                }
                if (error)
-                       remove_files(parent, kobj, grp);
+                       remove_files(parent, grp);
        }
 exit:
        return error;
                kernfs_get(kn);
        }
 
-       remove_files(kn, kobj, grp);
+       remove_files(kn, grp);
        if (grp->name)
                kernfs_remove(kn);