Преглед на файлове

vlan: Propagate physical MTU changes

When the physical MTU changes we want to ensure that all existing
VLAN device MTUs do not exceed the new underlying MTU.  This patch
adds that propagation.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
Herbert Xu преди 16 години
родител
ревизия
2e477c9bd2
променени са 1 файла, в които са добавени 13 реда и са изтрити 0 реда
  1. 13 0
      net/8021q/vlan.c

+ 13 - 0
net/8021q/vlan.c

@@ -468,6 +468,19 @@ static int vlan_device_event(struct notifier_block *unused, unsigned long event,
 		}
 		}
 		break;
 		break;
 
 
+	case NETDEV_CHANGEMTU:
+		for (i = 0; i < VLAN_GROUP_ARRAY_LEN; i++) {
+			vlandev = vlan_group_get_device(grp, i);
+			if (!vlandev)
+				continue;
+
+			if (vlandev->mtu <= dev->mtu)
+				continue;
+
+			dev_set_mtu(vlandev, dev->mtu);
+		}
+		break;
+
 	case NETDEV_FEAT_CHANGE:
 	case NETDEV_FEAT_CHANGE:
 		/* Propagate device features to underlying device */
 		/* Propagate device features to underlying device */
 		for (i = 0; i < VLAN_GROUP_ARRAY_LEN; i++) {
 		for (i = 0; i < VLAN_GROUP_ARRAY_LEN; i++) {