return rc;
 }
 
-static void delay_release_kobj(void *kobj)
-{
-       kobject_put((struct kobject *)kobj);
-}
-
 static ssize_t dump_ack_store(struct dump_obj *dump_obj,
                              struct dump_attribute *attr,
                              const char *buf,
                              size_t count)
 {
        dump_send_ack(dump_obj->id);
-       sysfs_schedule_callback(&dump_obj->kobj, delay_release_kobj,
-                               &dump_obj->kobj, THIS_MODULE);
+       sysfs_remove_file_self(&dump_obj->kobj, &attr->attr);
+       kobject_put(&dump_obj->kobj);
        return count;
 }
 
 
        return sprintf(buf, "ack - acknowledge log message\n");
 }
 
-static void delay_release_kobj(void *kobj)
-{
-       kobject_put((struct kobject *)kobj);
-}
-
 static ssize_t elog_ack_store(struct elog_obj *elog_obj,
                              struct elog_attribute *attr,
                              const char *buf,
                              size_t count)
 {
        opal_send_ack_elog(elog_obj->id);
-       sysfs_schedule_callback(&elog_obj->kobj, delay_release_kobj,
-                               &elog_obj->kobj, THIS_MODULE);
+       sysfs_remove_file_self(&elog_obj->kobj, &attr->attr);
+       kobject_put(&elog_obj->kobj);
        return count;
 }