team: block mtu change before it happens via NETDEV_PRECHANGEMTU
authorVeaceslav Falico <vfalico@redhat.com>
Wed, 15 Jan 2014 23:02:19 +0000 (00:02 +0100)
committerDavid S. Miller <davem@davemloft.net>
Fri, 17 Jan 2014 01:15:42 +0000 (17:15 -0800)
Now it catches the NETDEV_CHANGEMTU notification, which is signaled after
the actual change happened on the device, and returns NOTIFY_BAD, so that
the change on the device is reverted.

This might be quite costly and messy, so use the new NETDEV_PRECHANGEMTU to
catch the MTU change before the actual change happens and signal that it's
forbidden to do it.

CC: Jiri Pirko <jiri@resnulli.us>
Signed-off-by: Veaceslav Falico <vfalico@redhat.com>
Acked-by: Jiri Pirko <jiri@resnulli.us>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/team/team.c

index b75ae5bde6734c1c70b196c00a841d84f0f984dd..dff24e3dde4aa602dd8ba8118d8dc05a33a55c65 100644 (file)
@@ -2851,7 +2851,7 @@ static int team_device_event(struct notifier_block *unused,
        case NETDEV_FEAT_CHANGE:
                team_compute_features(port->team);
                break;
-       case NETDEV_CHANGEMTU:
+       case NETDEV_PRECHANGEMTU:
                /* Forbid to change mtu of underlaying device */
                return NOTIFY_BAD;
        case NETDEV_PRE_TYPE_CHANGE: