Skip to content

Commit

Permalink
team: allow async option changes
Browse files Browse the repository at this point in the history
This patch adds two exported functions. One allows to mark option
instance as changed and the second processes change check and does
transfer of changed options to userspace.

Signed-off-by: Jiri Pirko <jpirko@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Jiri Pirko authored and David S. Miller committed Jun 19, 2012
1 parent 85d59a8 commit 0f1aad2
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 0 deletions.
18 changes: 18 additions & 0 deletions drivers/net/team/team.c
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ static void team_refresh_port_linkup(struct team_port *port)
port->state.linkup;
}


/*******************
* Options handling
*******************/
Expand Down Expand Up @@ -387,6 +388,22 @@ static int team_option_set(struct team *team,
return err;
}

void team_option_inst_set_change(struct team_option_inst_info *opt_inst_info)
{
struct team_option_inst *opt_inst;

opt_inst = container_of(opt_inst_info, struct team_option_inst, info);
opt_inst->changed = true;
}
EXPORT_SYMBOL(team_option_inst_set_change);

void team_options_change_check(struct team *team)
{
__team_options_change_check(team);
}
EXPORT_SYMBOL(team_options_change_check);


/****************
* Mode handling
****************/
Expand Down Expand Up @@ -2051,6 +2068,7 @@ static void team_port_change_check(struct team_port *port, bool linkup)
mutex_unlock(&team->lock);
}


/************************************
* Net device notifier event handler
************************************/
Expand Down
3 changes: 3 additions & 0 deletions include/linux/if_team.h
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,9 @@ struct team_option {
int (*setter)(struct team *team, struct team_gsetter_ctx *ctx);
};

extern void team_option_inst_set_change(struct team_option_inst_info *opt_inst_info);
extern void team_options_change_check(struct team *team);

struct team_mode {
const char *kind;
struct module *owner;
Expand Down

0 comments on commit 0f1aad2

Please sign in to comment.