mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 20:22:09 +00:00
bonding: no longer use RTNL in bonding_show_slaves()
Slave devices are already RCU protected, simply switch to bond_for_each_slave_rcu(), Signed-off-by: Eric Dumazet <edumazet@google.com> Acked-by: Jay Vosburgh <jay.vosburgh@canonical.com> Link: https://lore.kernel.org/r/20240408190437.2214473-3-edumazet@google.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
6c5d17143f
commit
d67fed98ca
@ -170,10 +170,9 @@ static ssize_t bonding_show_slaves(struct device *d,
|
||||
struct slave *slave;
|
||||
int res = 0;
|
||||
|
||||
if (!rtnl_trylock())
|
||||
return restart_syscall();
|
||||
rcu_read_lock();
|
||||
|
||||
bond_for_each_slave(bond, slave, iter) {
|
||||
bond_for_each_slave_rcu(bond, slave, iter) {
|
||||
if (res > (PAGE_SIZE - IFNAMSIZ)) {
|
||||
/* not enough space for another interface name */
|
||||
if ((PAGE_SIZE - res) > 10)
|
||||
@ -184,7 +183,7 @@ static ssize_t bonding_show_slaves(struct device *d,
|
||||
res += sysfs_emit_at(buf, res, "%s ", slave->dev->name);
|
||||
}
|
||||
|
||||
rtnl_unlock();
|
||||
rcu_read_unlock();
|
||||
|
||||
if (res)
|
||||
buf[res-1] = '\n'; /* eat the leftover space */
|
||||
|
Loading…
Reference in New Issue
Block a user