On 10/07/2013 05:17 PM, Daniel Borkmann wrote: > On 10/07/2013 05:07 AM, Gao feng wrote: >> On 10/05/2013 02:20 AM, Daniel Borkmann wrote: >>> +static void cgroup_attach(struct cgroup_subsys_state *css, >>> + struct cgroup_taskset *tset) >>> +{ >>> + struct task_struct *p; >>> + void *v; >>> + >>> + cgroup_taskset_for_each(p, css, tset) { >>> + task_lock(p); >>> + v = (void *)(unsigned long) task_fwid(p); >> >> Shouldn't v be css_nf_state(css)->fwid? > > Nope, this is in line with net_cls and net_prio; the task has been > moved there via cgroup backend already through cgroup_attach_task(), Yes, these tasks have already been migrated to this cgroup. > so we only need to update each of it's socket sk_cgrp_fwid parts. Sorry, I still don't know in which situation that css_nf_state(css)->fwid isn't equal to task_fwid(p). two threads write the same pid to different cgroup at the same time? it seems can not happen since we have cgroup_mutex protected. > css is not strictly for net_filter. See also: 6a328d8c6f (cgroup: > net_cls: Rework update socket logic) > >>> + iterate_fd(p->files, 0, cgroup_fwid_update, v); >>> + task_unlock(p); >>> + } >>> +} > -- 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