]> Pileus Git - ~andy/linux/commitdiff
Revert "kobject: introduce kobj_completion"
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 5 Jan 2014 03:56:40 +0000 (19:56 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 5 Jan 2014 03:56:40 +0000 (19:56 -0800)
This reverts commit eee031649707db3c9920d9498f8d03819b74fc23.

Jeff writes:
I have no objections to reverting it. There were concerns from
Al Viro that it'd be tough to get right by callers and I had
assumed it got dropped after that. I had planned on using it in
my btrfs sysfs exports patchset but came up with a better way.

Cc: Jeff Mahoney <jeffm@suse.com>
Cc: Al Viro <viro@ZenIV.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
include/linux/kobj_completion.h [deleted file]
lib/kobject.c

diff --git a/include/linux/kobj_completion.h b/include/linux/kobj_completion.h
deleted file mode 100644 (file)
index a428f64..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef _KOBJ_COMPLETION_H_
-#define _KOBJ_COMPLETION_H_
-
-#include <linux/kobject.h>
-#include <linux/completion.h>
-
-struct kobj_completion {
-       struct kobject kc_kobj;
-       struct completion kc_unregister;
-};
-
-#define kobj_to_kobj_completion(kobj) \
-       container_of(kobj, struct kobj_completion, kc_kobj)
-
-void kobj_completion_init(struct kobj_completion *kc, struct kobj_type *ktype);
-void kobj_completion_release(struct kobject *kobj);
-void kobj_completion_del_and_wait(struct kobj_completion *kc);
-#endif /* _KOBJ_COMPLETION_H_ */
index 064451f2a6c3c547c3aca75200f6ccc4e288718f..f7f69cbe4f6e02c66a79e5d701442ca4761d8c0a 100644 (file)
@@ -13,7 +13,6 @@
  */
 
 #include <linux/kobject.h>
-#include <linux/kobj_completion.h>
 #include <linux/string.h>
 #include <linux/export.h>
 #include <linux/stat.h>
@@ -781,55 +780,6 @@ const struct sysfs_ops kobj_sysfs_ops = {
        .store  = kobj_attr_store,
 };
 
-/**
- * kobj_completion_init - initialize a kobj_completion object.
- * @kc: kobj_completion
- * @ktype: type of kobject to initialize
- *
- * kobj_completion structures can be embedded within structures with different
- * lifetime rules.  During the release of the enclosing object, we can
- * wait on the release of the kobject so that we don't free it while it's
- * still busy.
- */
-void kobj_completion_init(struct kobj_completion *kc, struct kobj_type *ktype)
-{
-       init_completion(&kc->kc_unregister);
-       kobject_init(&kc->kc_kobj, ktype);
-}
-EXPORT_SYMBOL_GPL(kobj_completion_init);
-
-/**
- * kobj_completion_release - release a kobj_completion object
- * @kobj: kobject embedded in kobj_completion
- *
- * Used with kobject_release to notify waiters that the kobject has been
- * released.
- */
-void kobj_completion_release(struct kobject *kobj)
-{
-       struct kobj_completion *kc = kobj_to_kobj_completion(kobj);
-       complete(&kc->kc_unregister);
-}
-EXPORT_SYMBOL_GPL(kobj_completion_release);
-
-/**
- * kobj_completion_del_and_wait - release the kobject and wait for it
- * @kc: kobj_completion object to release
- *
- * Delete the kobject from sysfs and drop the reference count.  Then wait
- * until any other outstanding references are also dropped.  This routine
- * is only necessary once other references may have been taken on the
- * kobject.  Typically this happens when the kobject has been published
- * to sysfs via kobject_add.
- */
-void kobj_completion_del_and_wait(struct kobj_completion *kc)
-{
-       kobject_del(&kc->kc_kobj);
-       kobject_put(&kc->kc_kobj);
-       wait_for_completion(&kc->kc_unregister);
-}
-EXPORT_SYMBOL_GPL(kobj_completion_del_and_wait);
-
 /**
  * kset_register - initialize and add a kset.
  * @k: kset.