diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2016-09-17 21:02:10 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2016-10-03 20:40:56 -0400 |
commit | 25869262ef7af24ccde988867ac3eb1c3d4b88d4 (patch) | |
tree | b625a7350e316e4fe2033e5689fb0bbc6b3e2973 /net/kcm | |
parent | 79fddc4efd5d4de5cf210fe5ecf4d2734140849a (diff) |
skb_splice_bits(): get rid of callback
since pipe_lock is the outermost now, we don't need to drop/regain
socket locks around the call of splice_to_pipe() from skb_splice_bits(),
which kills the need to have a socket-specific callback; we can just
call splice_to_pipe() and be done with that.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'net/kcm')
-rw-r--r-- | net/kcm/kcmsock.c | 16 |
1 files changed, 1 insertions, 15 deletions
diff --git a/net/kcm/kcmsock.c b/net/kcm/kcmsock.c index 411693288648..8a720ba50061 100644 --- a/net/kcm/kcmsock.c +++ b/net/kcm/kcmsock.c | |||
@@ -1462,19 +1462,6 @@ out: | |||
1462 | return copied ? : err; | 1462 | return copied ? : err; |
1463 | } | 1463 | } |
1464 | 1464 | ||
1465 | static ssize_t kcm_sock_splice(struct sock *sk, | ||
1466 | struct pipe_inode_info *pipe, | ||
1467 | struct splice_pipe_desc *spd) | ||
1468 | { | ||
1469 | int ret; | ||
1470 | |||
1471 | release_sock(sk); | ||
1472 | ret = splice_to_pipe(pipe, spd); | ||
1473 | lock_sock(sk); | ||
1474 | |||
1475 | return ret; | ||
1476 | } | ||
1477 | |||
1478 | static ssize_t kcm_splice_read(struct socket *sock, loff_t *ppos, | 1465 | static ssize_t kcm_splice_read(struct socket *sock, loff_t *ppos, |
1479 | struct pipe_inode_info *pipe, size_t len, | 1466 | struct pipe_inode_info *pipe, size_t len, |
1480 | unsigned int flags) | 1467 | unsigned int flags) |
@@ -1504,8 +1491,7 @@ static ssize_t kcm_splice_read(struct socket *sock, loff_t *ppos, | |||
1504 | if (len > rxm->full_len) | 1491 | if (len > rxm->full_len) |
1505 | len = rxm->full_len; | 1492 | len = rxm->full_len; |
1506 | 1493 | ||
1507 | copied = skb_splice_bits(skb, sk, rxm->offset, pipe, len, flags, | 1494 | copied = skb_splice_bits(skb, sk, rxm->offset, pipe, len, flags); |
1508 | kcm_sock_splice); | ||
1509 | if (copied < 0) { | 1495 | if (copied < 0) { |
1510 | err = copied; | 1496 | err = copied; |
1511 | goto err_out; | 1497 | goto err_out; |