On Mon, 4 Mar 2019 14:24:05 +
Vlad Buslov wrote:
> On Fri 01 Mar 2019 at 23:51, Stefano Brivio wrote:
> > Hi Vlad,
> >
> > On Wed, 27 Feb 2019 12:12:18 +0200
> > Vlad Buslov wrote:
> >
> >> -static bool __fl_delete(struct tcf_proto *tp, struct cls_fl_filter *f,
> >> - str
On Fri 01 Mar 2019 at 23:51, Stefano Brivio wrote:
> Hi Vlad,
>
> On Wed, 27 Feb 2019 12:12:18 +0200
> Vlad Buslov wrote:
>
>> -static bool __fl_delete(struct tcf_proto *tp, struct cls_fl_filter *f,
>> -struct netlink_ext_ack *extack)
>> +static int __fl_delete(struct tcf_pr
Hi Vlad,
On Wed, 27 Feb 2019 12:12:18 +0200
Vlad Buslov wrote:
> -static bool __fl_delete(struct tcf_proto *tp, struct cls_fl_filter *f,
> - struct netlink_ext_ack *extack)
> +static int __fl_delete(struct tcf_proto *tp, struct cls_fl_filter *f,
> +bool *l
In order to prevent double deletion of filter by concurrent tasks when rtnl
lock is not used for synchronization, add 'deleted' filter field. Check
value of this field when modifying filters and return error if concurrent
deletion is detected.
Refactor __fl_delete() to accept pointer to 'last' boo