From: Jay Vosburgh <fubar@us.ibm.com>
To: netdev@vger.kernel.org
Cc: Jeff Garzik <jgarzik@pobox.com>,
David Miller <davem@davemloft.net>,
Or Gerlitz <ogerlitz@voltaire.com>,
Jay Vosburgh <fubar@us.ibm.com>
Subject: [PATCH 3/5] bonding: deliver netdev event for fail-over under the active-backup mode
Date: Fri, 13 Jun 2008 18:12:02 -0700 [thread overview]
Message-ID: <12134059261873-git-send-email-fubar@us.ibm.com> (raw)
In-Reply-To: <12134059253839-git-send-email-fubar@us.ibm.com>
From: Or Gerlitz <ogerlitz@voltaire.com>
under active-backup mode and when there's actual new_active slave,
have bond_change_active_slave() call the networking core to deliver
NETDEV_BONDING_FAILOVER event such that the fail-over can be notable
by code outside of the bonding driver such as the RDMA stack and
monitoring tools.
As the correct context of locking appropriate for notifier calls is RTNL
and nothing else, bond->curr_slave_lock and bond->lock are unlocked and
later locked again. This is ensured by the rest of the code to be safe
under backup-mode AND when new_active is not NULL.
Jay Vosburgh modified the original patch for formatting and fixed a
compiler error.
Signed-off-by: Or Gerlitz <ogerlitz@voltaire.com>
Signed-off-by: Jay Vosburgh <fubar@us.ibm.com>
---
drivers/net/bonding/bond_main.c | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index 2db2d05..925402b 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -1203,6 +1203,14 @@ void bond_change_active_slave(struct bonding *bond, struct slave *new_active)
dprintk("delaying gratuitous arp on %s\n",
bond->curr_active_slave->dev->name);
}
+
+ write_unlock_bh(&bond->curr_slave_lock);
+ read_unlock(&bond->lock);
+
+ netdev_bonding_change(bond->dev);
+
+ read_lock(&bond->lock);
+ write_lock_bh(&bond->curr_slave_lock);
}
}
}
--
1.5.2.4
next prev parent reply other threads:[~2008-06-14 1:12 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-14 1:11 [PATCH net-next-2.6 0/5] bonding: Fixes and updates Jay Vosburgh
2008-06-14 1:12 ` [PATCH 1/5] net/core: add NETDEV_BONDING_FAILOVER event Jay Vosburgh
2008-06-14 1:12 ` [PATCH 2/5] bonding: bond_change_active_slave() cleanup under active-backup Jay Vosburgh
2008-06-14 1:12 ` Jay Vosburgh [this message]
2008-06-14 1:12 ` [PATCH 4/5] bonding: Rework / fix multiple gratuitous ARP support Jay Vosburgh
2008-06-14 1:12 ` [PATCH 5/5] bonding: Allow setting max_bonds to zero Jay Vosburgh
2008-06-18 3:31 ` Jeff Garzik
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=12134059261873-git-send-email-fubar@us.ibm.com \
--to=fubar@us.ibm.com \
--cc=davem@davemloft.net \
--cc=jgarzik@pobox.com \
--cc=netdev@vger.kernel.org \
--cc=ogerlitz@voltaire.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).