On Wed, Feb 01, 2012 at 03:20:00PM +0800, Li Zefan wrote: > Cc: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> > > >> diff --git a/net/core/sock.c b/net/core/sock.c > >> index 213c856..c0bab23 100644 > >> --- a/net/core/sock.c > >> +++ b/net/core/sock.c > >> @@ -1160,9 +1160,7 @@ void sock_update_classid(struct sock *sk) > >> { > >> u32 classid; > >> > >> - rcu_read_lock(); /* doing current task, which cannot vanish. */ > >> classid = task_cls_classid(current); > >> - rcu_read_unlock(); > >> if (classid && classid != sk->sk_classid) > >> sk->sk_classid = classid; > > > > Yes, this seems fine. > > > > Then, I wonder why we do the "if (classid && classid != sk->sk_classid)" > > > > before the : > > > > sk->sk_classid = classid; > > > > This seems unnecessary checks. > > > > I was wondering about this too. He who added this may provide us with an > answer. Well writing a cache-line unnecessarily is bad. Cheers, -- Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt -- 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