diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2007-11-12 18:10:39 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2007-11-12 18:10:39 -0800 |
commit | 91cf45f02af5c871251165d000c3f42a2a0b0552 (patch) | |
tree | 0e4c0a9f624732d47a46301a394e799dab48afe0 /net/rxrpc/ar-local.c | |
parent | 62768e28d606c10ba54217f908123de34dad9374 (diff) | |
download | lwn-91cf45f02af5c871251165d000c3f42a2a0b0552.tar.gz lwn-91cf45f02af5c871251165d000c3f42a2a0b0552.zip |
[NET]: Add the helper kernel_sock_shutdown()
...and fix a couple of bugs in the NBD, CIFS and OCFS2 socket handlers.
Looking at the sock->op->shutdown() handlers, it looks as if all of them
take a SHUT_RD/SHUT_WR/SHUT_RDWR argument instead of the
RCV_SHUTDOWN/SEND_SHUTDOWN arguments.
Add a helper, and then define the SHUT_* enum to ensure that kernel users
of shutdown() don't get confused.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Acked-by: Mark Fasheh <mark.fasheh@oracle.com>
Acked-by: David Howells <dhowells@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/rxrpc/ar-local.c')
-rw-r--r-- | net/rxrpc/ar-local.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/rxrpc/ar-local.c b/net/rxrpc/ar-local.c index fe03f71f17da..f3a2bd747a8f 100644 --- a/net/rxrpc/ar-local.c +++ b/net/rxrpc/ar-local.c @@ -114,7 +114,7 @@ static int rxrpc_create_local(struct rxrpc_local *local) return 0; error: - local->socket->ops->shutdown(local->socket, 2); + kernel_sock_shutdown(local->socket, SHUT_RDWR); local->socket->sk->sk_user_data = NULL; sock_release(local->socket); local->socket = NULL; @@ -267,7 +267,7 @@ static void rxrpc_destroy_local(struct work_struct *work) /* finish cleaning up the local descriptor */ rxrpc_purge_queue(&local->accept_queue); rxrpc_purge_queue(&local->reject_queue); - local->socket->ops->shutdown(local->socket, 2); + kernel_sock_shutdown(local->socket, SHUT_RDWR); sock_release(local->socket); up_read(&rxrpc_local_sem); |