On 03/16/2016 03:29 PM, Xin Long wrote: > On Wed, Mar 16, 2016 at 10:14 PM, Nikolay Aleksandrov > <niko...@cumulusnetworks.com> wrote: >> On 03/16/2016 02:34 PM, Xin Long wrote: >>> Now when we change the attributes of bridge or br_port by netlink, >>> a relevant netlink notification will be sent, but if we change them >>> by ioctl or sysfs, no notification will be sent. >>> >>> We should ensure that whenever those attributes change internally or from >>> sysfs/ioctl, that a netlink notification is sent out to listeners. >>> >>> Also, NetworkManager will use this in the future to listen for out-of-band >>> bridge master attribute updates and incorporate them into the runtime >>> configuration. >>> >>> This patch is used for br_sysfs_br. and we also need to remove some >>> rtnl_trylock in old functions so that we can call it in a common one. >>> >>> Signed-off-by: Xin Long <lucien....@gmail.com> >>> --- >>> net/bridge/br_sysfs_br.c | 17 ++++++++--------- >>> net/bridge/br_vlan.c | 30 +++++------------------------- >>> 2 files changed, 13 insertions(+), 34 deletions(-) >>> >> >> What about the group_addr option ? Changing it will not generate a >> notification. >> >> > > group_addr is not a string-to-long convert in sysfs. so it's hard to use > store_bridge_parm, that's why I didn't modify it. > > in group_addr_store(): > it also tries to hold rtnl_lock. maybe we can send rtnl msg there. > what do you think? Sounds good.
> > when I cooked this patch, I was wondering why br_recalculate_fwd_mask > "Must be protected by RTNL." > vlan_enabled and vlan_proto are changed under rtnl, also this can race with changing via netlink