diff options
Diffstat (limited to 'net/unix/af_unix.c')
| -rw-r--r-- | net/unix/af_unix.c | 58 | 
1 files changed, 25 insertions, 33 deletions
| diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c index 526b6edab018..5266ea7b922b 100644 --- a/net/unix/af_unix.c +++ b/net/unix/af_unix.c @@ -305,7 +305,7 @@ static struct sock *unix_find_socket_byinode(struct inode *i)  		    &unix_socket_table[i->i_ino & (UNIX_HASH_SIZE - 1)]) {  		struct dentry *dentry = unix_sk(s)->path.dentry; -		if (dentry && dentry->d_inode == i) { +		if (dentry && d_backing_inode(dentry) == i) {  			sock_hold(s);  			goto found;  		} @@ -516,20 +516,15 @@ static unsigned int unix_dgram_poll(struct file *, struct socket *,  				    poll_table *);  static int unix_ioctl(struct socket *, unsigned int, unsigned long);  static int unix_shutdown(struct socket *, int); -static int unix_stream_sendmsg(struct kiocb *, struct socket *, -			       struct msghdr *, size_t); -static int unix_stream_recvmsg(struct kiocb *, struct socket *, -			       struct msghdr *, size_t, int); -static int unix_dgram_sendmsg(struct kiocb *, struct socket *, -			      struct msghdr *, size_t); -static int unix_dgram_recvmsg(struct kiocb *, struct socket *, -			      struct msghdr *, size_t, int); +static int unix_stream_sendmsg(struct socket *, struct msghdr *, size_t); +static int unix_stream_recvmsg(struct socket *, struct msghdr *, size_t, int); +static int unix_dgram_sendmsg(struct socket *, struct msghdr *, size_t); +static int unix_dgram_recvmsg(struct socket *, struct msghdr *, size_t, int);  static int unix_dgram_connect(struct socket *, struct sockaddr *,  			      int, int); -static int unix_seqpacket_sendmsg(struct kiocb *, struct socket *, -				  struct msghdr *, size_t); -static int unix_seqpacket_recvmsg(struct kiocb *, struct socket *, -				  struct msghdr *, size_t, int); +static int unix_seqpacket_sendmsg(struct socket *, struct msghdr *, size_t); +static int unix_seqpacket_recvmsg(struct socket *, struct msghdr *, size_t, +				  int);  static int unix_set_peek_off(struct sock *sk, int val)  { @@ -783,7 +778,7 @@ static struct sock *unix_find_other(struct net *net,  		err = kern_path(sunname->sun_path, LOOKUP_FOLLOW, &path);  		if (err)  			goto fail; -		inode = path.dentry->d_inode; +		inode = d_backing_inode(path.dentry);  		err = inode_permission(inode, MAY_WRITE);  		if (err)  			goto put_fail; @@ -844,7 +839,7 @@ static int unix_mknod(const char *sun_path, umode_t mode, struct path *res)  	 */  	err = security_path_mknod(&path, dentry, mode, 0);  	if (!err) { -		err = vfs_mknod(path.dentry->d_inode, dentry, mode, 0); +		err = vfs_mknod(d_inode(path.dentry), dentry, mode, 0);  		if (!err) {  			res->mnt = mntget(path.mnt);  			res->dentry = dget(dentry); @@ -910,7 +905,7 @@ static int unix_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)  			goto out_up;  		}  		addr->hash = UNIX_HASH_SIZE; -		hash = path.dentry->d_inode->i_ino & (UNIX_HASH_SIZE-1); +		hash = d_backing_inode(path.dentry)->i_ino & (UNIX_HASH_SIZE-1);  		spin_lock(&unix_table_lock);  		u->path = path;  		list = &unix_socket_table[hash]; @@ -1442,8 +1437,8 @@ static void maybe_add_creds(struct sk_buff *skb, const struct socket *sock,   *	Send AF_UNIX data.   */ -static int unix_dgram_sendmsg(struct kiocb *kiocb, struct socket *sock, -			      struct msghdr *msg, size_t len) +static int unix_dgram_sendmsg(struct socket *sock, struct msghdr *msg, +			      size_t len)  {  	struct sock *sk = sock->sk;  	struct net *net = sock_net(sk); @@ -1622,8 +1617,8 @@ out:   */  #define UNIX_SKB_FRAGS_SZ (PAGE_SIZE << get_order(32768)) -static int unix_stream_sendmsg(struct kiocb *kiocb, struct socket *sock, -			       struct msghdr *msg, size_t len) +static int unix_stream_sendmsg(struct socket *sock, struct msghdr *msg, +			       size_t len)  {  	struct sock *sk = sock->sk;  	struct sock *other = NULL; @@ -1725,8 +1720,8 @@ out_err:  	return sent ? : err;  } -static int unix_seqpacket_sendmsg(struct kiocb *kiocb, struct socket *sock, -				  struct msghdr *msg, size_t len) +static int unix_seqpacket_sendmsg(struct socket *sock, struct msghdr *msg, +				  size_t len)  {  	int err;  	struct sock *sk = sock->sk; @@ -1741,19 +1736,18 @@ static int unix_seqpacket_sendmsg(struct kiocb *kiocb, struct socket *sock,  	if (msg->msg_namelen)  		msg->msg_namelen = 0; -	return unix_dgram_sendmsg(kiocb, sock, msg, len); +	return unix_dgram_sendmsg(sock, msg, len);  } -static int unix_seqpacket_recvmsg(struct kiocb *iocb, struct socket *sock, -			      struct msghdr *msg, size_t size, -			      int flags) +static int unix_seqpacket_recvmsg(struct socket *sock, struct msghdr *msg, +				  size_t size, int flags)  {  	struct sock *sk = sock->sk;  	if (sk->sk_state != TCP_ESTABLISHED)  		return -ENOTCONN; -	return unix_dgram_recvmsg(iocb, sock, msg, size, flags); +	return unix_dgram_recvmsg(sock, msg, size, flags);  }  static void unix_copy_addr(struct msghdr *msg, struct sock *sk) @@ -1766,9 +1760,8 @@ static void unix_copy_addr(struct msghdr *msg, struct sock *sk)  	}  } -static int unix_dgram_recvmsg(struct kiocb *iocb, struct socket *sock, -			      struct msghdr *msg, size_t size, -			      int flags) +static int unix_dgram_recvmsg(struct socket *sock, struct msghdr *msg, +			      size_t size, int flags)  {  	struct scm_cookie scm;  	struct sock *sk = sock->sk; @@ -1900,9 +1893,8 @@ static unsigned int unix_skb_len(const struct sk_buff *skb)  	return skb->len - UNIXCB(skb).consumed;  } -static int unix_stream_recvmsg(struct kiocb *iocb, struct socket *sock, -			       struct msghdr *msg, size_t size, -			       int flags) +static int unix_stream_recvmsg(struct socket *sock, struct msghdr *msg, +			       size_t size, int flags)  {  	struct scm_cookie scm;  	struct sock *sk = sock->sk; | 
