diff options
author | Eric Dumazet <eric.dumazet@gmail.com> | 2011-11-08 17:07:07 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-11-08 17:07:07 -0500 |
commit | e56c57d0d3fdbbdf583d3af96bfb803b8dfa713e (patch) | |
tree | f415160c8fd39efebfc49d41493cc5b964503482 /net/core | |
parent | 9ecd04bc04af7df98b3a93c571e31b6ef6a90681 (diff) | |
download | kernel_goldelico_gta04-e56c57d0d3fdbbdf583d3af96bfb803b8dfa713e.zip kernel_goldelico_gta04-e56c57d0d3fdbbdf583d3af96bfb803b8dfa713e.tar.gz kernel_goldelico_gta04-e56c57d0d3fdbbdf583d3af96bfb803b8dfa713e.tar.bz2 |
net: rename sk_clone to sk_clone_lock
Make clear that sk_clone() and inet_csk_clone() return a locked socket.
Add _lock() prefix and kerneldoc.
Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core')
-rw-r--r-- | net/core/sock.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/net/core/sock.c b/net/core/sock.c index 4ed7b1d..2de9dc2 100644 --- a/net/core/sock.c +++ b/net/core/sock.c @@ -1204,7 +1204,14 @@ void sk_release_kernel(struct sock *sk) } EXPORT_SYMBOL(sk_release_kernel); -struct sock *sk_clone(const struct sock *sk, const gfp_t priority) +/** + * sk_clone_lock - clone a socket, and lock its clone + * @sk: the socket to clone + * @priority: for allocation (%GFP_KERNEL, %GFP_ATOMIC, etc) + * + * Caller must unlock socket even in error path (bh_unlock_sock(newsk)) + */ +struct sock *sk_clone_lock(const struct sock *sk, const gfp_t priority) { struct sock *newsk; @@ -1297,7 +1304,7 @@ struct sock *sk_clone(const struct sock *sk, const gfp_t priority) out: return newsk; } -EXPORT_SYMBOL_GPL(sk_clone); +EXPORT_SYMBOL_GPL(sk_clone_lock); void sk_setup_caps(struct sock *sk, struct dst_entry *dst) { |