• D
    cgroup: net_cls: Rework update socket logic · 6a328d8c
    Daniel Wagner 提交于
    The cgroup logic part of net_cls is very similar as the one in
    net_prio. Let's stream line the net_cls logic with the net_prio one.
    
    The net_prio update logic was changed by following commit (note there
    were some changes necessary later on)
    
    commit 406a3c63
    Author: John Fastabend <john.r.fastabend@intel.com>
    Date:   Fri Jul 20 10:39:25 2012 +0000
    
        net: netprio_cgroup: rework update socket logic
    
        Instead of updating the sk_cgrp_prioidx struct field on every send
        this only updates the field when a task is moved via cgroup
        infrastructure.
    
        This allows sockets that may be used by a kernel worker thread
        to be managed. For example in the iscsi case today a user can
        put iscsid in a netprio cgroup and control traffic will be sent
        with the correct sk_cgrp_prioidx value set but as soon as data
        is sent the kernel worker thread isssues a send and sk_cgrp_prioidx
        is updated with the kernel worker threads value which is the
        default case.
    
        It seems more correct to only update the field when the user
        explicitly sets it via control group infrastructure. This allows
        the users to manage sockets that may be used with other threads.
    
    Since classid is now updated when the task is moved between the
    cgroups, we don't have to call sock_update_classid() from various
    places to ensure we always using the latest classid value.
    
    [v2: Use iterate_fd() instead of open coding]
    Signed-off-by: NDaniel Wagner <daniel.wagner@bmw-carit.de>
    Cc:  Li Zefan <lizefan@huawei.com>
    Cc: "David S. Miller" <davem@davemloft.net>
    Cc: "Michael S. Tsirkin" <mst@redhat.com>
    Cc: Jamal Hadi Salim <jhs@mojatatu.com>
    Cc: Joe Perches <joe@perches.com>
    Cc: John Fastabend <john.r.fastabend@intel.com>
    Cc: Neil Horman <nhorman@tuxdriver.com>
    Cc: Stanislav Kinsbursky <skinsbursky@parallels.com>
    Cc: Tejun Heo <tj@kernel.org>
    Cc: <netdev@vger.kernel.org>
    Cc: <cgroups@vger.kernel.org>
    Acked-by: NNeil Horman <nhorman@tuxdriver.com>
    Signed-off-by: NDavid S. Miller <davem@davemloft.net>
    6a328d8c
socket.c 83.3 KB