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 --- |