diff options
Diffstat (limited to 'lib/kref.c')
-rw-r--r-- | lib/kref.c | 16 |
1 files changed, 3 insertions, 13 deletions
diff --git a/lib/kref.c b/lib/kref.c index 9ecd6e865610..d3d227a08a4b 100644 --- a/lib/kref.c +++ b/lib/kref.c | |||
@@ -13,17 +13,7 @@ | |||
13 | 13 | ||
14 | #include <linux/kref.h> | 14 | #include <linux/kref.h> |
15 | #include <linux/module.h> | 15 | #include <linux/module.h> |
16 | 16 | #include <linux/slab.h> | |
17 | /** | ||
18 | * kref_set - initialize object and set refcount to requested number. | ||
19 | * @kref: object in question. | ||
20 | * @num: initial reference counter | ||
21 | */ | ||
22 | void kref_set(struct kref *kref, int num) | ||
23 | { | ||
24 | atomic_set(&kref->refcount, num); | ||
25 | smp_mb(); | ||
26 | } | ||
27 | 17 | ||
28 | /** | 18 | /** |
29 | * kref_init - initialize object. | 19 | * kref_init - initialize object. |
@@ -31,7 +21,8 @@ void kref_set(struct kref *kref, int num) | |||
31 | */ | 21 | */ |
32 | void kref_init(struct kref *kref) | 22 | void kref_init(struct kref *kref) |
33 | { | 23 | { |
34 | kref_set(kref, 1); | 24 | atomic_set(&kref->refcount, 1); |
25 | smp_mb(); | ||
35 | } | 26 | } |
36 | 27 | ||
37 | /** | 28 | /** |
@@ -71,7 +62,6 @@ int kref_put(struct kref *kref, void (*release)(struct kref *kref)) | |||
71 | return 0; | 62 | return 0; |
72 | } | 63 | } |
73 | 64 | ||
74 | EXPORT_SYMBOL(kref_set); | ||
75 | EXPORT_SYMBOL(kref_init); | 65 | EXPORT_SYMBOL(kref_init); |
76 | EXPORT_SYMBOL(kref_get); | 66 | EXPORT_SYMBOL(kref_get); |
77 | EXPORT_SYMBOL(kref_put); | 67 | EXPORT_SYMBOL(kref_put); |