summary refs log tree commit diff
path: root/lib/kref.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2010-03-16 15:14:51 +1100
committerGreg Kroah-Hartman <gregkh@suse.de>2010-05-21 09:37:29 -0700
commitdb1afffab0b5d9f6d31f8f4bea44c9cb3bc59351 (patch)
tree5ba8fd7a5018c0772d999b8c3aa945c0efb929e0 /lib/kref.c
parentdd336c554d8926c3348a2d5f2a5ef5597f6d1a06 (diff)
downloadlinux-db1afffab0b5d9f6d31f8f4bea44c9cb3bc59351.tar.gz
kref: remove kref_set
Of the three uses of kref_set in the kernel:

 One really should be kref_put as the code is letting go of a
    reference,
 Two really should be kref_init because the kref is being
    initialised.

This suggests that making kref_set available encourages bad code.
So fix the three uses and remove kref_set completely.

Signed-off-by: NeilBrown <neilb@suse.de>
Acked-by: Mimi Zohar <zohar@us.ibm.com>
Acked-by: Serge Hallyn <serue@us.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

Diffstat (limited to 'lib/kref.c')
-rw-r--r--lib/kref.c15
1 files changed, 2 insertions, 13 deletions
diff --git a/lib/kref.c b/lib/kref.c
index 6d19f690380b..d3d227a08a4b 100644
--- a/lib/kref.c
+++ b/lib/kref.c
@@ -16,23 +16,13 @@
 #include <linux/slab.h>
 
 /**
- * kref_set - initialize object and set refcount to requested number.
- * @kref: object in question.
- * @num: initial reference counter
- */
-void kref_set(struct kref *kref, int num)
-{
-	atomic_set(&kref->refcount, num);
-	smp_mb();
-}
-
-/**
  * kref_init - initialize object.
  * @kref: object in question.
  */
 void kref_init(struct kref *kref)
 {
-	kref_set(kref, 1);
+	atomic_set(&kref->refcount, 1);
+	smp_mb();
 }
 
 /**
@@ -72,7 +62,6 @@ int kref_put(struct kref *kref, void (*release)(struct kref *kref))
 	return 0;
 }
 
-EXPORT_SYMBOL(kref_set);
 EXPORT_SYMBOL(kref_init);
 EXPORT_SYMBOL(kref_get);
 EXPORT_SYMBOL(kref_put);