On Sun, Jan 30, 2005 at 06:26:29PM +0100, Patrick McHardy wrote: > Patrick McHardy wrote: > > > Russell King wrote: > > > >> I don't know if the code is using fragment lists in ip_fragment(), but > >> on reading the code a question comes to mind: if we have a list of > >> fragments, does each fragment skb have a valid (and refcounted) dst > >> pointer before ip_fragment() does it's job? If yes, then isn't the > >> first ip_copy_metadata() in ip_fragment() going to overwrite this > >> pointer without dropping the refcount? > >> > > Nice spotting. If conntrack isn't loaded defragmentation happens after > > routing, so this is likely the cause. > > OTOH, if conntrack isn't loaded forwarded packet are never defragmented, > so frag_list should be empty. So probably false alarm, sorry.
I've just checked Phil's mails - both Phil and myself are using netfilter on the troublesome boxen. Also, since FragCreates is zero, and this does mean that the frag_list is not empty in all cases so far where ip_fragment() has been called. (Reading the code, if frag_list was empty, we'd have to create some fragments, which increments the FragCreates statistic.) -- Russell King Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/ maintainer of: 2.6 PCMCIA - http://pcmcia.arm.linux.org.uk/ 2.6 Serial core - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/