diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-05-21 13:48:32 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-05-21 13:48:32 -0400 |
| commit | d6fb1db02e02aea98f2d7e121fd30e24c84639d6 (patch) | |
| tree | 865546f0388c40d52cf98febe2c6d21039915ea2 /lib/kref.c | |
| parent | b4e6b09738fde057ce885703705f71cc953d0512 (diff) | |
| parent | a1b3f594dc5faab91d3a218c7019e9b5edd9fe1a (diff) | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6: (38 commits)
net: Expose all network devices in a namespaces in sysfs
hotplug: netns aware uevent_helper
kobj: Send hotplug events in the proper namespace.
netlink: Implment netlink_broadcast_filtered
net/sysfs: Fix the bitrot in network device kobject namespace support
netns: Teach network device kobjects which namespace they are in.
kobject: Send hotplug events in all network namespaces
driver-core: fix Typo in drivers/base/core.c for CONFIG_MODULE
pci: check caps from sysfs file open to read device dependent config space
sysfs: add struct file* to bin_attr callbacks
sysfs: Remove usage of S_BIAS to avoid merge conflict with the vfs tree
sysfs: Don't use enums in inline function declaration.
sysfs-namespaces: add a high-level Documentation file
sysfs: Comment sysfs directory tagging logic
driver core: Implement ns directory support for device classes.
sysfs: Implement sysfs_delete_link
sysfs: Add support for tagged directories with untagged members.
sysfs: Implement sysfs tagged directory support.
kobj: Add basic infrastructure for dealing with namespaces.
sysfs: Remove double free sysfs_get_sb
...
Diffstat (limited to 'lib/kref.c')
| -rw-r--r-- | lib/kref.c | 15 |
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 @@ | |||
| 16 | #include <linux/slab.h> | 16 | #include <linux/slab.h> |
| 17 | 17 | ||
| 18 | /** | 18 | /** |
| 19 | * kref_set - initialize object and set refcount to requested number. | ||
| 20 | * @kref: object in question. | ||
| 21 | * @num: initial reference counter | ||
| 22 | */ | ||
| 23 | void kref_set(struct kref *kref, int num) | ||
| 24 | { | ||
| 25 | atomic_set(&kref->refcount, num); | ||
| 26 | smp_mb(); | ||
| 27 | } | ||
| 28 | |||
| 29 | /** | ||
| 30 | * kref_init - initialize object. | 19 | * kref_init - initialize object. |
| 31 | * @kref: object in question. | 20 | * @kref: object in question. |
| 32 | */ | 21 | */ |
| 33 | void kref_init(struct kref *kref) | 22 | void kref_init(struct kref *kref) |
| 34 | { | 23 | { |
| 35 | kref_set(kref, 1); | 24 | atomic_set(&kref->refcount, 1); |
| 25 | smp_mb(); | ||
| 36 | } | 26 | } |
| 37 | 27 | ||
| 38 | /** | 28 | /** |
| @@ -72,7 +62,6 @@ int kref_put(struct kref *kref, void (*release)(struct kref *kref)) | |||
| 72 | return 0; | 62 | return 0; |
| 73 | } | 63 | } |
| 74 | 64 | ||
| 75 | EXPORT_SYMBOL(kref_set); | ||
| 76 | EXPORT_SYMBOL(kref_init); | 65 | EXPORT_SYMBOL(kref_init); |
| 77 | EXPORT_SYMBOL(kref_get); | 66 | EXPORT_SYMBOL(kref_get); |
| 78 | EXPORT_SYMBOL(kref_put); | 67 | EXPORT_SYMBOL(kref_put); |
