Hi Tejun, On 11/19/2015 07:52 PM, Tejun Heo wrote: > +/* > + * There's a theoretical window where the following accessors race with > + * updaters and return part of the previous pointer as the prioidx or > + * classid. Such races are short-lived and the result isn't critical. > + */ > static inline u16 sock_cgroup_prioidx(struct sock_cgroup_data *skcd) > { > - return skcd->prioidx; > + return (skcd->is_data & 1) ? skcd->prioidx : 1; > } > > static inline u32 sock_cgroup_classid(struct sock_cgroup_data *skcd) > { > - return skcd->classid; > + return (skcd->is_data & 1) ? skcd->classid : 0; > } I still try to understand what the code does, hence this stupid question: Why is sock_cgroup_prioidx() returning 1 if is not data and sock_cgroup_classid() a 0? thanks, daniel -- To unsubscribe from this list: send the line "unsubscribe cgroups" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html