From patchwork Thu Sep 2 18:35:01 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Jorge Boncompte [DTI2]" X-Patchwork-Id: 63514 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 75482B7173 for ; Fri, 3 Sep 2010 04:41:50 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753482Ab0IBSlp (ORCPT ); Thu, 2 Sep 2010 14:41:45 -0400 Received: from alcalazamora.dti2.net ([81.24.162.8]:4886 "EHLO alcalazamora.dti2.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752146Ab0IBSlo (ORCPT ); Thu, 2 Sep 2010 14:41:44 -0400 X-Greylist: delayed 397 seconds by postgrey-1.27 at vger.kernel.org; Thu, 02 Sep 2010 14:41:44 EDT X-MDAV-Processed: alcalazamora.dti2.net, Thu, 02 Sep 2010 20:35:06 +0200 Received: from [172.16.16.6] ([81.24.161.20]) (authenticated user jorge@dti2.net) by alcalazamora.dti2.net (alcalazamora.dti2.net [81.24.162.8]) (MDaemon PRO v11.0.2) with ESMTP id md50010755278.msg for ; Thu, 02 Sep 2010 20:35:04 +0200 X-Authenticated-Sender: jorge@dti2.net X-MDRemoteIP: 81.24.161.20 X-Return-Path: prvs=186115afa7=jorge@dti2.net X-Envelope-From: jorge@dti2.net X-MDaemon-Deliver-To: netdev@vger.kernel.org Message-ID: <4C7FEE55.8060002@dti2.net> Date: Thu, 02 Sep 2010 20:35:01 +0200 From: "Jorge Boncompte [DTI2]" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; es-ES; rv:1.9.2.8) Gecko/20100802 Thunderbird/3.1.2 MIME-Version: 1.0 To: Linux Network Development list , stable@kernel.org Subject: [PATCH] netns: fix proxy ARP entries listing Reply-To: jorge@dti2.net Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Skip entries from foreign network namespaces. Signed-off-by: Jorge Boncompte [DTI2] --- net/core/neighbour.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) if (++state->bucket > PNEIGH_HASHMASK) @@ -2334,6 +2335,9 @@ static struct pneigh_entry *pneigh_get_next(struct seq_file *seq, break; } + if (pn && !net_eq(pneigh_net(pn), net)) + goto restart; + if (pn && pos) --(*pos); diff --git a/net/core/neighbour.c b/net/core/neighbour.c index a4e0a74..4c36fa9 100644 --- a/net/core/neighbour.c +++ b/net/core/neighbour.c @@ -2323,6 +2323,7 @@ static struct pneigh_entry *pneigh_get_next(struct seq_file *seq, struct net *net = seq_file_net(seq); struct neigh_table *tbl = state->tbl; +restart: pn = pn->next; while (!pn) {