act_mirred.c (b409074e6693bcdaa7abbee2a035f22a9eabda53) act_mirred.c (4e8ddd7f1758ca4ddd0c1f7cf3e66fce736241d2)
1/*
2 * net/sched/act_mirred.c packet mirroring and redirect actions
3 *
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License
6 * as published by the Free Software Foundation; either version
7 * 2 of the License, or (at your option) any later version.
8 *

--- 118 unchanged lines hidden (view full) ---

127 NL_SET_ERR_MSG_MOD(extack, "Specified device does not exist");
128 return -EINVAL;
129 }
130 ret = tcf_idr_create(tn, parm->index, est, a,
131 &act_mirred_ops, bind, true);
132 if (ret)
133 return ret;
134 ret = ACT_P_CREATED;
1/*
2 * net/sched/act_mirred.c packet mirroring and redirect actions
3 *
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License
6 * as published by the Free Software Foundation; either version
7 * 2 of the License, or (at your option) any later version.
8 *

--- 118 unchanged lines hidden (view full) ---

127 NL_SET_ERR_MSG_MOD(extack, "Specified device does not exist");
128 return -EINVAL;
129 }
130 ret = tcf_idr_create(tn, parm->index, est, a,
131 &act_mirred_ops, bind, true);
132 if (ret)
133 return ret;
134 ret = ACT_P_CREATED;
135 } else {
135 } else if (!ovr) {
136 tcf_idr_release(*a, bind);
136 tcf_idr_release(*a, bind);
137 if (!ovr)
138 return -EEXIST;
137 return -EEXIST;
139 }
140 m = to_mirred(*a);
141
142 ASSERT_RTNL();
143 m->tcf_action = parm->action;
144 m->tcfm_eaction = parm->eaction;
145 if (dev != NULL) {
146 if (ret != ACT_P_CREATED)

--- 242 unchanged lines hidden ---
138 }
139 m = to_mirred(*a);
140
141 ASSERT_RTNL();
142 m->tcf_action = parm->action;
143 m->tcfm_eaction = parm->eaction;
144 if (dev != NULL) {
145 if (ret != ACT_P_CREATED)

--- 242 unchanged lines hidden ---