teamd: do no remove the ports on shutdown with -N

With -N, teamd currently leaves the team device in place on shutdown,
as it's supposed to, but it removes all the ports. This severely limits
usefullness of the option, because it's still impossible to replace
the daemon with another one without disrupting connectivity.

One use case where this is important is the handover from initrd to real
root, when a team device was used to provide connectivity to a network
root filesystem:

Systemd's isolation of switch-root.target stops NetworkManager.service and
then terminates its kids, including teamd.  The real NetworkManager.service
would eventually catch up and restart it, but there's a short period when
team ports are removed which is not great if we're booting off that device.
Also, it may be that ports come up in different order, causing team to get
a different MAC address, which will invalidate the DHCP lease we got
beforehands and screwing up L3 addressing.

Let's not flush the ports when -N is used.

Suggested-by: Jiri Pirko <jiri@resnulli.us>
Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
Signed-off-by: Jiri Pirko <jiri@nvidia.com>
1 file changed