summaryrefslogtreecommitdiffstats
path: root/net/core/sock.c
diff options
context:
space:
mode:
authorNeil Horman <nhorman@tuxdriver.com>2012-08-20 07:59:10 +0000
committerDavid S. Miller <davem@davemloft.net>2012-08-24 12:41:17 -0400
commit3afa6d00fb4f9712fbb44b63ba31f88b6f9239fe (patch)
treef058281124d7ce597c3814ac496422a6d0c575e7 /net/core/sock.c
parente6e94e392fddb8845bdd2e199f55ebf7d76cb58d (diff)
downloadlinux-3afa6d00fb4f9712fbb44b63ba31f88b6f9239fe.tar.gz
linux-3afa6d00fb4f9712fbb44b63ba31f88b6f9239fe.tar.bz2
linux-3afa6d00fb4f9712fbb44b63ba31f88b6f9239fe.zip
cls_cgroup: Allow classifier cgroups to have their classid reset to 0
The network classifier cgroup initalizes each cgroups instance classid value to 0. However, the sock_update_classid function only updates classid's in sockets if the tasks cgroup classid is not zero, and if it differs from the current classid. The later check is to prevent cache line dirtying, but the former is detrimental, as it prevents resetting a classid for a cgroup to 0. While this is not a common action, it has administrative usefulness (if the admin wants to disable classification of a certain group temporarily for instance). Easy fix, just remove the zero check. Tested successfully by myself Signed-off-by: Neil Horman <nhorman@tuxdriver.com> CC: "David S. Miller" <davem@davemloft.net> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core/sock.c')
-rw-r--r--net/core/sock.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/core/sock.c b/net/core/sock.c
index 8f67ced8d6a8..116786c55fe9 100644
--- a/net/core/sock.c
+++ b/net/core/sock.c
@@ -1230,7 +1230,7 @@ void sock_update_classid(struct sock *sk)
rcu_read_lock(); /* doing current task, which cannot vanish. */
classid = task_cls_classid(current);
rcu_read_unlock();
- if (classid && classid != sk->sk_classid)
+ if (classid != sk->sk_classid)
sk->sk_classid = classid;
}
EXPORT_SYMBOL(sock_update_classid);