Please use a more meaningful patch summary. This one is too generic. On Mon, May 14, 2018 at 05:27:11PM +0300, Vlad Buslov wrote: ... > +int tcf_idr_find_delete(struct tc_action_net *tn, u32 index) What about naming it tcf_idr_delete_index() instead? The find operation is always implicit when you don't specify the object itself directly, and then it describes which key will be used. > +{ > + struct tcf_idrinfo *idrinfo = tn->idrinfo; > + struct tc_action *p; > + int ret = 0; > + > + spin_lock_bh(&idrinfo->lock); > + p = idr_find(&idrinfo->action_idr, index); > + if (!p) { > + spin_unlock(&idrinfo->lock); > + return -ENOENT; > + } > + > + if (!atomic_read(&p->tcfa_bindcnt)) { > + if (refcount_dec_and_test(&p->tcfa_refcnt)) { > + struct module *owner = p->ops->owner; > + > + WARN_ON(p != idr_remove(&idrinfo->action_idr, > + p->tcfa_index)); > + spin_unlock_bh(&idrinfo->lock); > + > + tcf_action_cleanup(p); > + module_put(owner); > + return 0; > + } > + ret = 0; > + } else { > + ret = -EPERM; > + } > + > + spin_unlock_bh(&idrinfo->lock); > + return ret; > +} > +EXPORT_SYMBOL(tcf_idr_find_delete); ... -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html