diff options
Diffstat (limited to 'net/unix/diag.c')
| -rw-r--r-- | net/unix/diag.c | 12 | 
1 files changed, 7 insertions, 5 deletions
diff --git a/net/unix/diag.c b/net/unix/diag.c index 6b7697fd911b..f0486ae9ebe6 100644 --- a/net/unix/diag.c +++ b/net/unix/diag.c @@ -29,7 +29,7 @@ rtattr_failure:  static int sk_diag_dump_vfs(struct sock *sk, struct sk_buff *nlskb)  { -	struct dentry *dentry = unix_sk(sk)->dentry; +	struct dentry *dentry = unix_sk(sk)->path.dentry;  	struct unix_diag_vfs *uv;  	if (dentry) { @@ -301,10 +301,12 @@ static int unix_diag_handler_dump(struct sk_buff *skb, struct nlmsghdr *h)  	if (nlmsg_len(h) < hdrlen)  		return -EINVAL; -	if (h->nlmsg_flags & NLM_F_DUMP) -		return netlink_dump_start(sock_diag_nlsk, skb, h, -					  unix_diag_dump, NULL, 0); -	else +	if (h->nlmsg_flags & NLM_F_DUMP) { +		struct netlink_dump_control c = { +			.dump = unix_diag_dump, +		}; +		return netlink_dump_start(sock_diag_nlsk, skb, h, &c); +	} else  		return unix_diag_get_exact(skb, h, (struct unix_diag_req *)NLMSG_DATA(h));  }  | 
