af_netlink.c (be0c22a46cfb79ab2342bb28fde99afa94ef868e) | af_netlink.c (1ce85fe402137824246bad03ff85f3913d565c17) |
---|---|
1/* 2 * NETLINK Kernel-user communication protocol. 3 * 4 * Authors: Alan Cox <alan@lxorguk.ukuu.org.uk> 5 * Alexey Kuznetsov <kuznet@ms2.inr.ac.ru> 6 * 7 * This program is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU General Public License --- 1746 unchanged lines hidden (view full) --- 1755 if (group) { 1756 int exclude_pid = 0; 1757 1758 if (report) { 1759 atomic_inc(&skb->users); 1760 exclude_pid = pid; 1761 } 1762 | 1/* 2 * NETLINK Kernel-user communication protocol. 3 * 4 * Authors: Alan Cox <alan@lxorguk.ukuu.org.uk> 5 * Alexey Kuznetsov <kuznet@ms2.inr.ac.ru> 6 * 7 * This program is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU General Public License --- 1746 unchanged lines hidden (view full) --- 1755 if (group) { 1756 int exclude_pid = 0; 1757 1758 if (report) { 1759 atomic_inc(&skb->users); 1760 exclude_pid = pid; 1761 } 1762 |
1763 /* errors reported via destination sk->sk_err */ 1764 nlmsg_multicast(sk, skb, exclude_pid, group, flags); | 1763 /* errors reported via destination sk->sk_err, but propagate 1764 * delivery errors if NETLINK_BROADCAST_ERROR flag is set */ 1765 err = nlmsg_multicast(sk, skb, exclude_pid, group, flags); |
1765 } 1766 | 1766 } 1767 |
1767 if (report) 1768 err = nlmsg_unicast(sk, skb, pid); | 1768 if (report) { 1769 int err2; |
1769 | 1770 |
1771 err2 = nlmsg_unicast(sk, skb, pid); 1772 if (!err || err == -ESRCH) 1773 err = err2; 1774 } 1775 |
|
1770 return err; 1771} 1772EXPORT_SYMBOL(nlmsg_notify); 1773 1774#ifdef CONFIG_PROC_FS 1775struct nl_seq_iter { 1776 struct seq_net_private p; 1777 int link; --- 249 unchanged lines hidden --- | 1776 return err; 1777} 1778EXPORT_SYMBOL(nlmsg_notify); 1779 1780#ifdef CONFIG_PROC_FS 1781struct nl_seq_iter { 1782 struct seq_net_private p; 1783 int link; --- 249 unchanged lines hidden --- |