On Fri, Feb 24, 2012 at 05:47:26PM -0500, David Miller wrote: > From: pablo@xxxxxxxxxxxxx > Date: Fri, 24 Feb 2012 23:14:07 +0100 > > > From: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx> > > > > This patch modifies the netlink_dump_start function to take one > > generic pointer to data. This pointer can be used inside the > > dump() and done() callbacks via cb->data. > > > > Netfilter is going to use this patch to provide filtered dumps > > to user-space. This is specifically interesting in ctnetlink that > > may handle lots of conntrack entries. We can save precious > > cycles by skipping the conversion to TLV format of conntrack > > entries that are not interesting for user-space. > > > > More specifically, ctnetlink will include one operation to allow > > to filter the dumping of conntrack entries by ctmark values. > > > > Signed-off-by: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx> > > This isn't really your fault but netlink_dump_start() has an > enormous number of arguments. > > Several of them are zero or NULL in all except one special situation. > > An entire argument is a lot of overhead for one situation to impose on > all the others. > > I have no objection to the data callback scheme, it's just that > the argument list of this interface is getting out of control. > > Usually, in situations like this, we have some control structure > that holds all the control state and we pass that in instead. > > struct netlink_dump_control c = { .dump = dump, .done = done, ... }; > > netlink_dump_start(..., &c); > > It could be perhaps used here to get things back under control. OK, I'll send a patch to make it like this. -- 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