Re: [PATCH 2/3] netlink: Mark dumps as inconsistent which have been interrupted by a resize
From: Thomas Graf <tgraf@suug.ch>
Date: 2015-01-21 12:17:51
Also in:
netfilter-devel
From: Thomas Graf <tgraf@suug.ch>
Date: 2015-01-21 12:17:51
Also in:
netfilter-devel
On 01/21/15 at 04:13pm, Ying Xue wrote:
On 01/20/2015 09:20 PM, Thomas Graf wrote:quoted
A deferred resize of nl_table causes the offsets that Netlink diag keeps to become inaccurate. Mark the dump as inconsistent and have user space request a new dump. Signed-off-by: Thomas Graf <tgraf@suug.ch> --- net/netlink/af_netlink.c | 10 ++++++++++ net/netlink/af_netlink.h | 1 + net/netlink/diag.c | 1 + 3 files changed, 12 insertions(+)diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c index 7a94185..e214557 100644 --- a/net/netlink/af_netlink.c +++ b/net/netlink/af_netlink.c@@ -91,6 +91,9 @@ static inline int netlink_is_kernel(struct sock *sk) struct netlink_table *nl_table; EXPORT_SYMBOL_GPL(nl_table); +atomic_t nl_table_seq;It sounds like the atomic variable is not initialized.
Thanks for the review. We also need to avoid hitting 0 when we overflow on a seq increment. The netfilter code is doing this correctly but several other users are suffering from this as well. I'll address this in v2 together with the other discussed changes.