net: add NETDEV_PRECHANGEMTU to notify before mtu change happens
authorVeaceslav Falico <vfalico@redhat.com>
Wed, 15 Jan 2014 23:02:18 +0000 (00:02 +0100)
committerDavid S. Miller <davem@davemloft.net>
Fri, 17 Jan 2014 01:15:41 +0000 (17:15 -0800)
commit1d486bfb66971ebacc2a46a23431ace9af70dc66
treeb280bfff1e11a8857f9a2e967e92e6442a9d043b
parent31cf344caf444ca7411d89c8ac907d886eeab1a7
net: add NETDEV_PRECHANGEMTU to notify before mtu change happens

Currently, if a device changes its mtu, first the change happens (invloving
all the side effects), and after that the NETDEV_CHANGEMTU is sent so that
other devices can catch up with the new mtu. However, if they return
NOTIFY_BAD, then the change is reverted and error returned.

This is a really long and costy operation (sometimes). To fix this, add
NETDEV_PRECHANGEMTU notification which is called prior to any change
actually happening, and if any callee returns NOTIFY_BAD - the change is
aborted. This way we're skipping all the playing with apply/revert the mtu.

CC: "David S. Miller" <davem@davemloft.net>
CC: Jiri Pirko <jiri@resnulli.us>
CC: Eric Dumazet <edumazet@google.com>
CC: Nicolas Dichtel <nicolas.dichtel@6wind.com>
CC: Cong Wang <amwang@redhat.com>
Signed-off-by: Veaceslav Falico <vfalico@redhat.com>
Acked-by: Jiri Pirko <jiri@resnulli.us>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/netdevice.h
net/core/dev.c