Messages in this thread Patch in this message | | | Date | Fri, 1 Feb 2008 16:20:28 -0800 | From | Greg KH <> | Subject | [patch 12/27] INET: Fix netdev renaming and inet address labels |
| |
2.6.22-stable review patch. If anyone has any objections, please let us know.
------------------ From: Mark McLoughlin <markmc@redhat.com>
[INET]: Fix netdev renaming and inet address labels
[ Upstream commit: 44344b2a85f03326c7047a8c861b0c625c674839 ]
When re-naming an interface, the previous secondary address labels get lost e.g.
$> brctl addbr foo $> ip addr add 192.168.0.1 dev foo $> ip addr add 192.168.0.2 dev foo label foo:00 $> ip addr show dev foo | grep inet inet 192.168.0.1/32 scope global foo inet 192.168.0.2/32 scope global foo:00 $> ip link set foo name bar $> ip addr show dev bar | grep inet inet 192.168.0.1/32 scope global bar inet 192.168.0.2/32 scope global bar:2
Turns out to be a simple thinko in inetdev_changename() - clearly we want to look at the address label, rather than the device name, for a suffix to retain.
Signed-off-by: Mark McLoughlin <markmc@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- net/ipv4/devinet.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
--- a/net/ipv4/devinet.c +++ b/net/ipv4/devinet.c @@ -1030,7 +1030,7 @@ static void inetdev_changename(struct ne memcpy(ifa->ifa_label, dev->name, IFNAMSIZ); if (named++ == 0) continue; - dot = strchr(ifa->ifa_label, ':'); + dot = strchr(old, ':'); if (dot == NULL) { sprintf(old, ":%d", named); dot = old; --
| |