linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] neighbour.c, pneigh_get_next() skips published entry
@ 2006-05-11 16:29 Jari Takkala
  0 siblings, 0 replies; only message in thread
From: Jari Takkala @ 2006-05-11 16:29 UTC (permalink / raw)
  To: linux-kernel; +Cc: netdev

The following patch fixes a problem where output from /proc/net/arp
skips a record when the full output does not fit into the users read()
buffer.

To reproduce: publish a large number of ARP entries (more than 10
required on my system). Run 'dd if=/proc/net/arp of=arp-1024.out
bs=1024'. View the output, one entry will be missing.

Please review and commit if acceptable.

Signed-off-by: Jari Takkala <jari.takkala@q9.com>

--- linux-2.6.16.15.orig/net/core/neighbour.c   2006-05-09
15:53:30.000000000 -0400
+++ linux-2.6.16.15/net/core/neighbour.c        2006-05-10
16:06:40.000000000 -0400
@@ -2120,6 +2120,11 @@
        struct neigh_seq_state *state = seq->private;
        struct neigh_table *tbl = state->tbl;

+       if (pos != NULL && *pos == 1 && (pn->next ||
tbl->phash_buckets[state->bucket])) {
+               --(*pos);
+               return pn;
+       }
+
        pn = pn->next;
        while (!pn) {
                if (++state->bucket > PNEIGH_HASHMASK)


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2006-05-11 16:29 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-05-11 16:29 [PATCH] neighbour.c, pneigh_get_next() skips published entry Jari Takkala

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).