| From 185c9303d5dad0517146172d792cc044c429e8f1 Mon Sep 17 00:00:00 2001 |
| From: "nikolay@redhat.com" <nikolay@redhat.com> |
| Date: Thu, 11 Apr 2013 09:18:56 +0000 |
| Subject: bonding: IFF_BONDING is not stripped on enslave failure |
| |
| |
| From: "nikolay@redhat.com" <nikolay@redhat.com> |
| |
| [ Upstream commit b6a5a7b9a528a8b4c8bec940b607c5dd9102b8cc ] |
| |
| While enslaving a new device and after IFF_BONDING flag is set, in case |
| of failure it is not stripped from the device's priv_flags while |
| cleaning up, which could lead to other problems. |
| Cleaning at err_close because the flag is set after dev_open(). |
| |
| v2: no change |
| |
| Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/net/bonding/bond_main.c | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| --- a/drivers/net/bonding/bond_main.c |
| +++ b/drivers/net/bonding/bond_main.c |
| @@ -1888,6 +1888,7 @@ err_detach: |
| write_unlock_bh(&bond->lock); |
| |
| err_close: |
| + slave_dev->priv_flags &= ~IFF_BONDING; |
| dev_close(slave_dev); |
| |
| err_unset_master: |