mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 04:18:39 +08:00
net: bridge: Set BR_FDB_ADDED_BY_USER early in fdb_add_entry
In preparation of the following fdb limit for dynamically learned entries, allow fdb_create to detect that the entry was added by the user. This way it can skip applying the limit in this case. Reviewed-by: Ido Schimmel <idosch@nvidia.com> Acked-by: Nikolay Aleksandrov <razor@blackwall.org> Signed-off-by: Johannes Nixdorf <jnixdorf-oss@avm.de> Link: https://lore.kernel.org/r/20231016-fdb_limit-v5-1-32cddff87758@avm.de Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
56a7bb12c7
commit
cbf51acbc5
@ -1075,7 +1075,8 @@ static int fdb_add_entry(struct net_bridge *br, struct net_bridge_port *source,
|
||||
if (!(flags & NLM_F_CREATE))
|
||||
return -ENOENT;
|
||||
|
||||
fdb = fdb_create(br, source, addr, vid, 0);
|
||||
fdb = fdb_create(br, source, addr, vid,
|
||||
BIT(BR_FDB_ADDED_BY_USER));
|
||||
if (!fdb)
|
||||
return -ENOMEM;
|
||||
|
||||
@ -1088,6 +1089,8 @@ static int fdb_add_entry(struct net_bridge *br, struct net_bridge_port *source,
|
||||
WRITE_ONCE(fdb->dst, source);
|
||||
modified = true;
|
||||
}
|
||||
|
||||
set_bit(BR_FDB_ADDED_BY_USER, &fdb->flags);
|
||||
}
|
||||
|
||||
if (fdb_to_nud(br, fdb) != state) {
|
||||
@ -1119,8 +1122,6 @@ static int fdb_add_entry(struct net_bridge *br, struct net_bridge_port *source,
|
||||
if (fdb_handle_notify(fdb, notify))
|
||||
modified = true;
|
||||
|
||||
set_bit(BR_FDB_ADDED_BY_USER, &fdb->flags);
|
||||
|
||||
fdb->used = jiffies;
|
||||
if (modified) {
|
||||
if (refresh)
|
||||
|
Loading…
Reference in New Issue
Block a user