X-Git-Url: http://git.cascardo.info/?a=blobdiff_plain;f=net%2Fkcm%2Fkcmsock.c;h=8a720ba50061617e3dcd9e25f455b97016401438;hb=25869262ef7af24ccde988867ac3eb1c3d4b88d4;hp=cb39e05b166cf5eaa0729b775f3ee0b8a140398a;hpb=b8927721ae9d5ac0582d29d7b8c267d465ad5f00;p=cascardo%2Flinux.git diff --git a/net/kcm/kcmsock.c b/net/kcm/kcmsock.c index cb39e05b166c..8a720ba50061 100644 --- a/net/kcm/kcmsock.c +++ b/net/kcm/kcmsock.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -1461,19 +1462,6 @@ out: return copied ? : err; } -static ssize_t kcm_sock_splice(struct sock *sk, - struct pipe_inode_info *pipe, - struct splice_pipe_desc *spd) -{ - int ret; - - release_sock(sk); - ret = splice_to_pipe(pipe, spd); - lock_sock(sk); - - return ret; -} - static ssize_t kcm_splice_read(struct socket *sock, loff_t *ppos, struct pipe_inode_info *pipe, size_t len, unsigned int flags) @@ -1503,8 +1491,7 @@ static ssize_t kcm_splice_read(struct socket *sock, loff_t *ppos, if (len > rxm->full_len) len = rxm->full_len; - copied = skb_splice_bits(skb, sk, rxm->offset, pipe, len, flags, - kcm_sock_splice); + copied = skb_splice_bits(skb, sk, rxm->offset, pipe, len, flags); if (copied < 0) { err = copied; goto err_out; @@ -2029,7 +2016,7 @@ static int kcm_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg) if (copy_to_user((void __user *)arg, &info, sizeof(info))) { err = -EFAULT; - sock_release(newsock); + sys_close(info.fd); } }