SUNRPC: remove BUG_ONs from *_reclassify_socket*
Replace multiple BUG_ON() calls with WARN_ON_ONCE() and early return when sanity checking socket ownership (lock). The bind call will fail if the socket was unsuccessfully reclassified. Signed-off-by: Weston Andros Adamson <dros@netapp.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
parent
1bd58aaff4
commit
1b7a181907
2 changed files with 9 additions and 4 deletions
|
@ -84,7 +84,11 @@ static struct lock_class_key svc_slock_key[2];
|
|||
static void svc_reclassify_socket(struct socket *sock)
|
||||
{
|
||||
struct sock *sk = sock->sk;
|
||||
BUG_ON(sock_owned_by_user(sk));
|
||||
|
||||
WARN_ON_ONCE(sock_owned_by_user(sk));
|
||||
if (sock_owned_by_user(sk))
|
||||
return;
|
||||
|
||||
switch (sk->sk_family) {
|
||||
case AF_INET:
|
||||
sock_lock_init_class_and_name(sk, "slock-AF_INET-NFSD",
|
||||
|
|
|
@ -1746,7 +1746,6 @@ static inline void xs_reclassify_socketu(struct socket *sock)
|
|||
{
|
||||
struct sock *sk = sock->sk;
|
||||
|
||||
BUG_ON(sock_owned_by_user(sk));
|
||||
sock_lock_init_class_and_name(sk, "slock-AF_LOCAL-RPC",
|
||||
&xs_slock_key[1], "sk_lock-AF_LOCAL-RPC", &xs_key[1]);
|
||||
}
|
||||
|
@ -1755,7 +1754,6 @@ static inline void xs_reclassify_socket4(struct socket *sock)
|
|||
{
|
||||
struct sock *sk = sock->sk;
|
||||
|
||||
BUG_ON(sock_owned_by_user(sk));
|
||||
sock_lock_init_class_and_name(sk, "slock-AF_INET-RPC",
|
||||
&xs_slock_key[0], "sk_lock-AF_INET-RPC", &xs_key[0]);
|
||||
}
|
||||
|
@ -1764,13 +1762,16 @@ static inline void xs_reclassify_socket6(struct socket *sock)
|
|||
{
|
||||
struct sock *sk = sock->sk;
|
||||
|
||||
BUG_ON(sock_owned_by_user(sk));
|
||||
sock_lock_init_class_and_name(sk, "slock-AF_INET6-RPC",
|
||||
&xs_slock_key[1], "sk_lock-AF_INET6-RPC", &xs_key[1]);
|
||||
}
|
||||
|
||||
static inline void xs_reclassify_socket(int family, struct socket *sock)
|
||||
{
|
||||
WARN_ON_ONCE(sock_owned_by_user(sock->sk));
|
||||
if (sock_owned_by_user(sock->sk))
|
||||
return;
|
||||
|
||||
switch (family) {
|
||||
case AF_LOCAL:
|
||||
xs_reclassify_socketu(sock);
|
||||
|
|
Loading…
Reference in a new issue