Cc: Herbert Xu <redacted>
quoted
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.