X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=net%2Fbridge%2Fbr_device.c;h=9b58d70b0e7d2a4a79129a2a7c769a7b70c3c5bc;hb=ad619800e4e034cad44299b2a22df9eebb043ac3;hp=d9449df7cad518d52d499b201d4e2cfd6ab4718f;hpb=8294fafdafc602ed11f401c44628fab8558c5cf5;p=linux-2.6 diff --git a/net/bridge/br_device.c b/net/bridge/br_device.c index d9449df7ca..9b58d70b0e 100644 --- a/net/bridge/br_device.c +++ b/net/bridge/br_device.c @@ -68,10 +68,17 @@ static int br_dev_stop(struct net_device *dev) static int br_change_mtu(struct net_device *dev, int new_mtu) { - if (new_mtu < 68 || new_mtu > br_min_mtu(netdev_priv(dev))) + struct net_bridge *br = netdev_priv(dev); + if (new_mtu < 68 || new_mtu > br_min_mtu(br)) return -EINVAL; dev->mtu = new_mtu; + +#ifdef CONFIG_BRIDGE_NETFILTER + /* remember the MTU in the rtable for PMTU */ + br->fake_rtable.u.dst.metrics[RTAX_MTU - 1] = new_mtu; +#endif + return 0; }