--- linux-2.6/include/net/dst.h.orig 2005-03-18 22:20:39.000000000 +1100 +++ linux-2.6/include/net/dst.h 2005-03-18 22:20:46.000000000 +1100 @@ -122,7 +122,7 @@ static inline u32 dst_allfrag(const struct dst_entry *dst) { - int ret = dst_metric(dst->path, RTAX_FEATURES) & RTAX_FEATURE_ALLFRAG; + int ret = dst_metric(dst, RTAX_FEATURES) & RTAX_FEATURE_ALLFRAG; /* Yes, _exactly_. This is paranoia. */ barrier(); return ret; --- linux-2.6/net/ipv6/ip6_output.c.orig 2005-03-18 22:21:01.000000000 +1100 +++ linux-2.6/net/ipv6/ip6_output.c 2005-03-18 22:23:52.000000000 +1100 @@ -851,7 +851,7 @@ inet->cork.fl = *fl; np->cork.hop_limit = hlimit; inet->cork.fragsize = mtu = dst_mtu(rt->u.dst.path); - if (dst_allfrag(&rt->u.dst)) + if (dst_allfrag(rt->u.dst.path)) inet->cork.flags |= IPCORK_ALLFRAG; inet->cork.length = 0; sk->sk_sndmsg_page = NULL;