diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-09-28 15:01:26 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-09-28 15:01:26 -0400 |
| commit | a2724f28d9f99b7b42e800b528902f0e3321873b (patch) | |
| tree | b4431876af950c16ea6af3a8f2864a4ae494bc62 /net/sunrpc | |
| parent | 050026feae5bd4fe2db4096b63b15abce7c47faa (diff) | |
| parent | 01db403cf99f739f86903314a489fb420e0e254f (diff) | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (47 commits)
tcp: Fix >4GB writes on 64-bit.
net/9p: Mount only matching virtio channels
de2104x: fix ethtool
tproxy: check for transparent flag in ip_route_newports
ipv6: add IPv6 to neighbour table overflow warning
tcp: fix TSO FACK loss marking in tcp_mark_head_lost
3c59x: fix regression from patch "Add ethtool WOL support"
ipv6: add a missing unregister_pernet_subsys call
s390: use free_netdev(netdev) instead of kfree()
sgiseeq: use free_netdev(netdev) instead of kfree()
rionet: use free_netdev(netdev) instead of kfree()
ibm_newemac: use free_netdev(netdev) instead of kfree()
smsc911x: Add MODULE_ALIAS()
net: reset skb queue mapping when rx'ing over tunnel
br2684: fix scheduling while atomic
de2104x: fix TP link detection
de2104x: fix power management
de2104x: disable autonegotiation on broken hardware
net: fix a lockdep splat
e1000e: 82579 do not gate auto config of PHY by hardware during nominal use
...
Diffstat (limited to 'net/sunrpc')
| -rw-r--r-- | net/sunrpc/xprtsock.c | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/net/sunrpc/xprtsock.c b/net/sunrpc/xprtsock.c index b6309db56226..fe9306bf10cc 100644 --- a/net/sunrpc/xprtsock.c +++ b/net/sunrpc/xprtsock.c | |||
| @@ -800,7 +800,7 @@ static void xs_udp_data_ready(struct sock *sk, int len) | |||
| 800 | u32 _xid; | 800 | u32 _xid; |
| 801 | __be32 *xp; | 801 | __be32 *xp; |
| 802 | 802 | ||
| 803 | read_lock(&sk->sk_callback_lock); | 803 | read_lock_bh(&sk->sk_callback_lock); |
| 804 | dprintk("RPC: xs_udp_data_ready...\n"); | 804 | dprintk("RPC: xs_udp_data_ready...\n"); |
| 805 | if (!(xprt = xprt_from_sock(sk))) | 805 | if (!(xprt = xprt_from_sock(sk))) |
| 806 | goto out; | 806 | goto out; |
| @@ -852,7 +852,7 @@ static void xs_udp_data_ready(struct sock *sk, int len) | |||
| 852 | dropit: | 852 | dropit: |
| 853 | skb_free_datagram(sk, skb); | 853 | skb_free_datagram(sk, skb); |
| 854 | out: | 854 | out: |
| 855 | read_unlock(&sk->sk_callback_lock); | 855 | read_unlock_bh(&sk->sk_callback_lock); |
| 856 | } | 856 | } |
| 857 | 857 | ||
| 858 | static inline void xs_tcp_read_fraghdr(struct rpc_xprt *xprt, struct xdr_skb_reader *desc) | 858 | static inline void xs_tcp_read_fraghdr(struct rpc_xprt *xprt, struct xdr_skb_reader *desc) |
| @@ -1229,7 +1229,7 @@ static void xs_tcp_data_ready(struct sock *sk, int bytes) | |||
| 1229 | 1229 | ||
| 1230 | dprintk("RPC: xs_tcp_data_ready...\n"); | 1230 | dprintk("RPC: xs_tcp_data_ready...\n"); |
| 1231 | 1231 | ||
| 1232 | read_lock(&sk->sk_callback_lock); | 1232 | read_lock_bh(&sk->sk_callback_lock); |
| 1233 | if (!(xprt = xprt_from_sock(sk))) | 1233 | if (!(xprt = xprt_from_sock(sk))) |
| 1234 | goto out; | 1234 | goto out; |
| 1235 | if (xprt->shutdown) | 1235 | if (xprt->shutdown) |
| @@ -1248,7 +1248,7 @@ static void xs_tcp_data_ready(struct sock *sk, int bytes) | |||
| 1248 | read = tcp_read_sock(sk, &rd_desc, xs_tcp_data_recv); | 1248 | read = tcp_read_sock(sk, &rd_desc, xs_tcp_data_recv); |
| 1249 | } while (read > 0); | 1249 | } while (read > 0); |
| 1250 | out: | 1250 | out: |
| 1251 | read_unlock(&sk->sk_callback_lock); | 1251 | read_unlock_bh(&sk->sk_callback_lock); |
| 1252 | } | 1252 | } |
| 1253 | 1253 | ||
| 1254 | /* | 1254 | /* |
| @@ -1301,7 +1301,7 @@ static void xs_tcp_state_change(struct sock *sk) | |||
| 1301 | { | 1301 | { |
| 1302 | struct rpc_xprt *xprt; | 1302 | struct rpc_xprt *xprt; |
| 1303 | 1303 | ||
| 1304 | read_lock(&sk->sk_callback_lock); | 1304 | read_lock_bh(&sk->sk_callback_lock); |
| 1305 | if (!(xprt = xprt_from_sock(sk))) | 1305 | if (!(xprt = xprt_from_sock(sk))) |
| 1306 | goto out; | 1306 | goto out; |
| 1307 | dprintk("RPC: xs_tcp_state_change client %p...\n", xprt); | 1307 | dprintk("RPC: xs_tcp_state_change client %p...\n", xprt); |
| @@ -1313,7 +1313,7 @@ static void xs_tcp_state_change(struct sock *sk) | |||
| 1313 | 1313 | ||
| 1314 | switch (sk->sk_state) { | 1314 | switch (sk->sk_state) { |
| 1315 | case TCP_ESTABLISHED: | 1315 | case TCP_ESTABLISHED: |
| 1316 | spin_lock_bh(&xprt->transport_lock); | 1316 | spin_lock(&xprt->transport_lock); |
| 1317 | if (!xprt_test_and_set_connected(xprt)) { | 1317 | if (!xprt_test_and_set_connected(xprt)) { |
| 1318 | struct sock_xprt *transport = container_of(xprt, | 1318 | struct sock_xprt *transport = container_of(xprt, |
| 1319 | struct sock_xprt, xprt); | 1319 | struct sock_xprt, xprt); |
| @@ -1327,7 +1327,7 @@ static void xs_tcp_state_change(struct sock *sk) | |||
| 1327 | 1327 | ||
| 1328 | xprt_wake_pending_tasks(xprt, -EAGAIN); | 1328 | xprt_wake_pending_tasks(xprt, -EAGAIN); |
| 1329 | } | 1329 | } |
| 1330 | spin_unlock_bh(&xprt->transport_lock); | 1330 | spin_unlock(&xprt->transport_lock); |
| 1331 | break; | 1331 | break; |
| 1332 | case TCP_FIN_WAIT1: | 1332 | case TCP_FIN_WAIT1: |
| 1333 | /* The client initiated a shutdown of the socket */ | 1333 | /* The client initiated a shutdown of the socket */ |
| @@ -1365,7 +1365,7 @@ static void xs_tcp_state_change(struct sock *sk) | |||
| 1365 | xs_sock_mark_closed(xprt); | 1365 | xs_sock_mark_closed(xprt); |
| 1366 | } | 1366 | } |
| 1367 | out: | 1367 | out: |
| 1368 | read_unlock(&sk->sk_callback_lock); | 1368 | read_unlock_bh(&sk->sk_callback_lock); |
| 1369 | } | 1369 | } |
| 1370 | 1370 | ||
| 1371 | /** | 1371 | /** |
| @@ -1376,7 +1376,7 @@ static void xs_error_report(struct sock *sk) | |||
| 1376 | { | 1376 | { |
| 1377 | struct rpc_xprt *xprt; | 1377 | struct rpc_xprt *xprt; |
| 1378 | 1378 | ||
| 1379 | read_lock(&sk->sk_callback_lock); | 1379 | read_lock_bh(&sk->sk_callback_lock); |
| 1380 | if (!(xprt = xprt_from_sock(sk))) | 1380 | if (!(xprt = xprt_from_sock(sk))) |
| 1381 | goto out; | 1381 | goto out; |
| 1382 | dprintk("RPC: %s client %p...\n" | 1382 | dprintk("RPC: %s client %p...\n" |
| @@ -1384,7 +1384,7 @@ static void xs_error_report(struct sock *sk) | |||
| 1384 | __func__, xprt, sk->sk_err); | 1384 | __func__, xprt, sk->sk_err); |
| 1385 | xprt_wake_pending_tasks(xprt, -EAGAIN); | 1385 | xprt_wake_pending_tasks(xprt, -EAGAIN); |
| 1386 | out: | 1386 | out: |
| 1387 | read_unlock(&sk->sk_callback_lock); | 1387 | read_unlock_bh(&sk->sk_callback_lock); |
| 1388 | } | 1388 | } |
| 1389 | 1389 | ||
| 1390 | static void xs_write_space(struct sock *sk) | 1390 | static void xs_write_space(struct sock *sk) |
| @@ -1416,13 +1416,13 @@ static void xs_write_space(struct sock *sk) | |||
| 1416 | */ | 1416 | */ |
| 1417 | static void xs_udp_write_space(struct sock *sk) | 1417 | static void xs_udp_write_space(struct sock *sk) |
| 1418 | { | 1418 | { |
| 1419 | read_lock(&sk->sk_callback_lock); | 1419 | read_lock_bh(&sk->sk_callback_lock); |
| 1420 | 1420 | ||
| 1421 | /* from net/core/sock.c:sock_def_write_space */ | 1421 | /* from net/core/sock.c:sock_def_write_space */ |
| 1422 | if (sock_writeable(sk)) | 1422 | if (sock_writeable(sk)) |
| 1423 | xs_write_space(sk); | 1423 | xs_write_space(sk); |
| 1424 | 1424 | ||
| 1425 | read_unlock(&sk->sk_callback_lock); | 1425 | read_unlock_bh(&sk->sk_callback_lock); |
| 1426 | } | 1426 | } |
| 1427 | 1427 | ||
| 1428 | /** | 1428 | /** |
| @@ -1437,13 +1437,13 @@ static void xs_udp_write_space(struct sock *sk) | |||
| 1437 | */ | 1437 | */ |
| 1438 | static void xs_tcp_write_space(struct sock *sk) | 1438 | static void xs_tcp_write_space(struct sock *sk) |
| 1439 | { | 1439 | { |
| 1440 | read_lock(&sk->sk_callback_lock); | 1440 | read_lock_bh(&sk->sk_callback_lock); |
| 1441 | 1441 | ||
| 1442 | /* from net/core/stream.c:sk_stream_write_space */ | 1442 | /* from net/core/stream.c:sk_stream_write_space */ |
| 1443 | if (sk_stream_wspace(sk) >= sk_stream_min_wspace(sk)) | 1443 | if (sk_stream_wspace(sk) >= sk_stream_min_wspace(sk)) |
| 1444 | xs_write_space(sk); | 1444 | xs_write_space(sk); |
| 1445 | 1445 | ||
| 1446 | read_unlock(&sk->sk_callback_lock); | 1446 | read_unlock_bh(&sk->sk_callback_lock); |
| 1447 | } | 1447 | } |
| 1448 | 1448 | ||
| 1449 | static void xs_udp_do_set_buffer_size(struct rpc_xprt *xprt) | 1449 | static void xs_udp_do_set_buffer_size(struct rpc_xprt *xprt) |
