10 Jan, 2012

1 commit

  • * 'for-3.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup: (21 commits)
    cgroup: fix to allow mounting a hierarchy by name
    cgroup: move assignement out of condition in cgroup_attach_proc()
    cgroup: Remove task_lock() from cgroup_post_fork()
    cgroup: add sparse annotation to cgroup_iter_start() and cgroup_iter_end()
    cgroup: mark cgroup_rmdir_waitq and cgroup_attach_proc() as static
    cgroup: only need to check oldcgrp==newgrp once
    cgroup: remove redundant get/put of task struct
    cgroup: remove redundant get/put of old css_set from migrate
    cgroup: Remove unnecessary task_lock before fetching css_set on migration
    cgroup: Drop task_lock(parent) on cgroup_fork()
    cgroups: remove redundant get/put of css_set from css_set_check_fetched()
    resource cgroups: remove bogus cast
    cgroup: kill subsys->can_attach_task(), pre_attach() and attach_task()
    cgroup, cpuset: don't use ss->pre_attach()
    cgroup: don't use subsys->can_attach_task() or ->attach_task()
    cgroup: introduce cgroup_taskset and use it in subsys->can_attach(), cancel_attach() and attach()
    cgroup: improve old cgroup handling in cgroup_attach_proc()
    cgroup: always lock threadgroup during migration
    threadgroup: extend threadgroup_lock() to cover exit and exec
    threadgroup: rename signal->threadgroup_fork_lock to ->group_rwsem
    ...

    Fix up conflict in kernel/cgroup.c due to commit e0197aae59e5: "cgroups:
    fix a css_set not found bug in cgroup_attach_proc" that already
    mentioned that the bug is fixed (differently) in Tejun's cgroup
    patchset. This one, in other words.

    Linus Torvalds
     

07 Jan, 2012

1 commit


06 Jan, 2012

1 commit

  • If we mount a hierarchy with a specified name, the name is unique,
    and we can use it to mount the hierarchy without specifying its
    set of subsystem names. This feature is documented is
    Documentation/cgroups/cgroups.txt section 2.3

    Here's an example:

    # mount -t cgroup -o cpuset,name=myhier xxx /cgroup1
    # mount -t cgroup -o name=myhier xxx /cgroup2

    But it was broken by commit 32a8cf235e2f192eb002755076994525cdbaa35a
    (cgroup: make the mount options parsing more accurate)

    This fixes the regression.

    Signed-off-by: Li Zefan
    Signed-off-by: Tejun Heo
    Cc: stable@vger.kernel.org

    Li Zefan
     

04 Jan, 2012

3 commits


28 Dec, 2011

3 commits


22 Dec, 2011

5 commits

  • In cgroup_attach_proc it is now sufficient to only check that
    oldcgrp==newcgrp once. Now that we are using threadgroup_lock()
    during the migrations, oldcgrp will not change.

    Signed-off-by: Mandeep Singh Baines
    Acked-by: Li Zefan
    Signed-off-by: Tejun Heo
    Cc: containers@lists.linux-foundation.org
    Cc: cgroups@vger.kernel.org
    Cc: KAMEZAWA Hiroyuki
    Cc: Frederic Weisbecker
    Cc: Oleg Nesterov
    Cc: Andrew Morton
    Cc: Paul Menage

    Mandeep Singh Baines
     
  • threadgroup_lock() guarantees that the target threadgroup will
    remain stable - no new task will be added, no new PF_EXITING
    will be set and exec won't happen.

    Changes in V2:
    * https://lkml.org/lkml/2011/12/20/369 (Tejun Heo)
    * Undo incorrect removal of get/put from attach_task_by_pid()
    * Author
    * Remove a comment which is made stale by this change

    Signed-off-by: Mandeep Singh Baines
    Acked-by: Li Zefan
    Signed-off-by: Tejun Heo
    Cc: containers@lists.linux-foundation.org
    Cc: cgroups@vger.kernel.org
    Cc: KAMEZAWA Hiroyuki
    Cc: Frederic Weisbecker
    Cc: Oleg Nesterov
    Cc: Andrew Morton
    Cc: Paul Menage

    Mandeep Singh Baines
     
  • We can now assume that the css_set reference held by the task
    will not go away for an exiting task. PF_EXITING state can be
    trusted throughout migration by checking it after locking
    threadgroup.

    Changes in V4:
    * https://lkml.org/lkml/2011/12/20/368 (Tejun Heo)
    * Fix typo in commit message
    * Undid the rename of css_set_check_fetched
    * https://lkml.org/lkml/2011/12/20/427 (Li Zefan)
    * Fix comment in cgroup_task_migrate()
    Changes in V3:
    * https://lkml.org/lkml/2011/12/20/255 (Frederic Weisbecker)
    * Fixed to put error in retval
    Changes in V2:
    * https://lkml.org/lkml/2011/12/19/289 (Tejun Heo)
    * Updated commit message

    -tj: removed stale patch description about dropped function rename.

    Signed-off-by: Mandeep Singh Baines
    Acked-by: Li Zefan
    Signed-off-by: Tejun Heo
    Cc: containers@lists.linux-foundation.org
    Cc: cgroups@vger.kernel.org
    Cc: KAMEZAWA Hiroyuki
    Cc: Frederic Weisbecker
    Cc: Oleg Nesterov
    Cc: Andrew Morton
    Cc: Paul Menage

    Mandeep Singh Baines
     
  • When we fetch the css_set of the tasks on cgroup migration, we don't need
    anymore to synchronize against cgroup_exit() that could swap the old one
    with init_css_set. Now that we are using threadgroup_lock() during
    the migrations, we don't need to worry about it anymore.

    Signed-off-by: Frederic Weisbecker
    Reviewed-by: Mandeep Singh Baines
    Reviewed-by: Li Zefan
    Signed-off-by: Tejun Heo
    Cc: Containers
    Cc: Cgroups
    Cc: KAMEZAWA Hiroyuki
    Cc: Oleg Nesterov
    Cc: Andrew Morton
    Cc: Paul Menage

    Frederic Weisbecker
     
  • We don't need to hold the parent task_lock() on the
    parent in cgroup_fork() because we are already synchronized
    against the two places that may change the parent css_set
    concurrently:

    - cgroup_exit(), but the parent obviously can't exit concurrently
    - cgroup migration: we are synchronized against threadgroup_lock()

    So we can safely remove the task_lock() there.

    Signed-off-by: Frederic Weisbecker
    Reviewed-by: Li Zefan
    Signed-off-by: Tejun Heo
    Cc: Containers
    Cc: Cgroups
    Cc: KAMEZAWA Hiroyuki
    Cc: Oleg Nesterov
    Cc: Andrew Morton
    Cc: Paul Menage
    Cc: Mandeep Singh Baines

    Frederic Weisbecker
     

20 Dec, 2011

2 commits

  • We already have a reference to all elements in newcg_list.

    Signed-off-by: Mandeep Singh Baines
    Reviewed-by: Li Zefan
    Signed-off-by: Tejun Heo
    Cc: containers@lists.linux-foundation.org
    Cc: cgroups@vger.kernel.org
    Cc: Paul Menage

    Mandeep Singh Baines
     
  • There is a BUG when migrating a PF_EXITING proc. Since css_set_prefetch()
    is not called for the PF_EXITING case, find_existing_css_set() will return
    NULL inside cgroup_task_migrate() causing a BUG.

    This bug is easy to reproduce. Create a zombie and echo its pid to
    cgroup.procs.

    $ cat zombie.c
    \#include

    int main()
    {
    if (fork())
    pause();
    return 0;
    }
    $

    We are hitting this bug pretty regularly on ChromeOS.

    This bug is already fixed by Tejun Heo's cgroup patchset which is
    targetted for the next merge window:

    https://lkml.org/lkml/2011/11/1/356

    I've create a smaller patch here which just fixes this bug so that a
    fix can be merged into the current release and stable.

    Signed-off-by: Mandeep Singh Baines
    Downstream-Bug-Report: http://crosbug.com/23953
    Reviewed-by: Li Zefan
    Signed-off-by: Tejun Heo
    Cc: containers@lists.linux-foundation.org
    Cc: cgroups@vger.kernel.org
    Cc: stable@kernel.org
    Cc: KAMEZAWA Hiroyuki
    Cc: Frederic Weisbecker
    Cc: Oleg Nesterov
    Cc: Andrew Morton
    Cc: Paul Menage
    Cc: Olof Johansson

    Mandeep Singh Baines
     

13 Dec, 2011

6 commits

  • These three methods are no longer used. Kill them.

    Signed-off-by: Tejun Heo
    Reviewed-by: KAMEZAWA Hiroyuki
    Reviewed-by: Frederic Weisbecker
    Acked-by: Paul Menage
    Cc: Li Zefan

    Tejun Heo
     
  • Currently, there's no way to pass multiple tasks to cgroup_subsys
    methods necessitating the need for separate per-process and per-task
    methods. This patch introduces cgroup_taskset which can be used to
    pass multiple tasks and their associated cgroups to cgroup_subsys
    methods.

    Three methods - can_attach(), cancel_attach() and attach() - are
    converted to use cgroup_taskset. This unifies passed parameters so
    that all methods have access to all information. Conversions in this
    patchset are identical and don't introduce any behavior change.

    -v2: documentation updated as per Paul Menage's suggestion.

    Signed-off-by: Tejun Heo
    Reviewed-by: KAMEZAWA Hiroyuki
    Reviewed-by: Frederic Weisbecker
    Acked-by: Paul Menage
    Acked-by: Li Zefan
    Cc: Balbir Singh
    Cc: Daisuke Nishimura
    Cc: KAMEZAWA Hiroyuki
    Cc: James Morris

    Tejun Heo
     
  • cgroup_attach_proc() behaves differently from cgroup_attach_task() in
    the following aspects.

    * All hooks are invoked even if no task is actually being moved.

    * ->can_attach_task() is called for all tasks in the group whether the
    new cgrp is different from the current cgrp or not; however,
    ->attach_task() is skipped if new equals new. This makes the calls
    asymmetric.

    This patch improves old cgroup handling in cgroup_attach_proc() by
    looking up the current cgroup at the head, recording it in the flex
    array along with the task itself, and using it to remove the above two
    differences. This will also ease further changes.

    -v2: nr_todo renamed to nr_migrating_tasks as per Paul Menage's
    suggestion.

    Signed-off-by: Tejun Heo
    Reviewed-by: KAMEZAWA Hiroyuki
    Reviewed-by: Frederic Weisbecker
    Acked-by: Paul Menage
    Acked-by: Li Zefan

    Tejun Heo
     
  • Update cgroup to take advantage of the fack that threadgroup_lock()
    guarantees stable threadgroup.

    * Lock threadgroup even if the target is a single task. This
    guarantees that when the target tasks stay stable during migration
    regardless of the target type.

    * Remove PF_EXITING early exit optimization from attach_task_by_pid()
    and check it in cgroup_task_migrate() instead. The optimization was
    for rather cold path to begin with and PF_EXITING state can be
    trusted throughout migration by checking it after locking
    threadgroup.

    * Don't add PF_EXITING tasks to target task array in
    cgroup_attach_proc(). This ensures that task migration is performed
    only for live tasks.

    * Remove -ESRCH failure path from cgroup_task_migrate(). With the
    above changes, it's guaranteed to be called only for live tasks.

    After the changes, only live tasks are migrated and they're guaranteed
    to stay alive until migration is complete. This removes problems
    caused by exec and exit racing against cgroup migration including
    symmetry among cgroup attach methods and different cgroup methods
    racing each other.

    v2: Oleg pointed out that one more PF_EXITING check can be removed
    from cgroup_attach_proc(). Removed.

    Signed-off-by: Tejun Heo
    Reviewed-by: KAMEZAWA Hiroyuki
    Reviewed-by: Frederic Weisbecker
    Acked-by: Li Zefan
    Cc: Oleg Nesterov
    Cc: Andrew Morton
    Cc: Paul Menage

    Tejun Heo
     
  • Make the following renames to prepare for extension of threadgroup
    locking.

    * s/signal->threadgroup_fork_lock/signal->group_rwsem/
    * s/threadgroup_fork_read_lock()/threadgroup_change_begin()/
    * s/threadgroup_fork_read_unlock()/threadgroup_change_end()/
    * s/threadgroup_fork_write_lock()/threadgroup_lock()/
    * s/threadgroup_fork_write_unlock()/threadgroup_unlock()/

    This patch doesn't cause any behavior change.

    -v2: Rename threadgroup_change_done() to threadgroup_change_end() per
    KAMEZAWA's suggestion.

    Signed-off-by: Tejun Heo
    Reviewed-by: KAMEZAWA Hiroyuki
    Acked-by: Li Zefan
    Cc: Oleg Nesterov
    Cc: Andrew Morton
    Cc: Paul Menage

    Tejun Heo
     
  • cgroup wants to make threadgroup stable while modifying cgroup
    hierarchies which will introduce locking dependency on
    cred_guard_mutex from cgroup_mutex. This unfortunately completes
    circular dependency.

    A. cgroup_mutex -> cred_guard_mutex -> s_type->i_mutex_key -> namespace_sem
    B. namespace_sem -> cgroup_mutex

    B is from cgroup_show_options() and this patch breaks it by
    introducing another mutex cgroup_root_mutex which nests inside
    cgroup_mutex and protects cgroupfs_root.

    Signed-off-by: Tejun Heo
    Reviewed-by: KAMEZAWA Hiroyuki
    Acked-by: Li Zefan
    Cc: Oleg Nesterov

    Tejun Heo
     

03 Nov, 2011

3 commits

  • While back-porting Johannes Weiner's patch "mm: memcg-aware global
    reclaim" for an internal effort, we noticed a significant performance
    regression during page-reclaim heavy workloads due to high contention of
    the ss->id_lock. This lock protects idr map, and serializes calls to
    idr_get_next() in css_get_next() (which is used during the memcg hierarchy
    walk).

    Since idr_get_next() is just doing a look up, we need only serialize it
    with respect to idr_remove()/idr_get_new(). By making the ss->id_lock a
    rwlock, contention is greatly reduced and performance improves.

    Tested: cat a 256m file from a ramdisk in a 128m container 50 times on
    each core (one file + container per core) in parallel on a NUMA machine.
    Result is the time for the test to complete in 1 of the containers.
    Both kernels included Johannes' memcg-aware global reclaim patches.

    Before rwlock patch: 1710.778s
    After rwlock patch: 152.227s

    Signed-off-by: Andrew Bresticker
    Cc: Paul Menage
    Cc: Li Zefan
    Acked-by: KAMEZAWA Hiroyuki
    Cc: Ying Han
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Bresticker
     
  • If a task has exited to the point it has called cgroup_exit() already,
    then we can't migrate it to another cgroup anymore.

    This can happen when we are attaching a task to a new cgroup between the
    call to ->can_attach_task() on subsystems and the migration that is
    eventually tried in cgroup_task_migrate().

    In this case cgroup_task_migrate() returns -ESRCH and we don't want to
    attach the task to the subsystems because the attachment to the new cgroup
    itself failed.

    Fix this by only calling ->attach_task() on the subsystems if the cgroup
    migration succeeded.

    Reported-by: Oleg Nesterov
    Signed-off-by: Ben Blum
    Acked-by: Paul Menage
    Cc: Li Zefan
    Cc: Tejun Heo
    Signed-off-by: Frederic Weisbecker
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ben Blum
     
  • Fix unstable tasklist locking in cgroup_attach_proc.

    According to this thread - https://lkml.org/lkml/2011/7/27/243 - RCU is
    not sufficient to guarantee the tasklist is stable w.r.t. de_thread and
    exit. Taking tasklist_lock for reading, instead of rcu_read_lock, ensures
    proper exclusion.

    Signed-off-by: Ben Blum
    Acked-by: Paul Menage
    Cc: Oleg Nesterov
    Cc: Frederic Weisbecker
    Cc: "Paul E. McKenney"
    Cc: Neil Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ben Blum
     

13 Sep, 2011

1 commit

  • The release_list_lock can be taken in atomic context and therefore
    cannot be preempted on -rt - annotate it.

    In mainline this change documents the low level nature of
    the lock - otherwise there's no functional difference. Lockdep
    and Sparse checking will work as usual.

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar

    Thomas Gleixner
     

28 Jul, 2011

1 commit

  • …s/security-testing-2.6

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6: (54 commits)
    tpm_nsc: Fix bug when loading multiple TPM drivers
    tpm: Move tpm_tis_reenable_interrupts out of CONFIG_PNP block
    tpm: Fix compilation warning when CONFIG_PNP is not defined
    TOMOYO: Update kernel-doc.
    tpm: Fix a typo
    tpm_tis: Probing function for Intel iTPM bug
    tpm_tis: Fix the probing for interrupts
    tpm_tis: Delay ACPI S3 suspend while the TPM is busy
    tpm_tis: Re-enable interrupts upon (S3) resume
    tpm: Fix display of data in pubek sysfs entry
    tpm_tis: Add timeouts sysfs entry
    tpm: Adjust interface timeouts if they are too small
    tpm: Use interface timeouts returned from the TPM
    tpm_tis: Introduce durations sysfs entry
    tpm: Adjust the durations if they are too small
    tpm: Use durations returned from TPM
    TOMOYO: Enable conditional ACL.
    TOMOYO: Allow using argv[]/envp[] of execve() as conditions.
    TOMOYO: Allow using executable's realpath and symlink's target as conditions.
    TOMOYO: Allow using owner/group etc. of file objects as conditions.
    ...

    Fix up trivial conflict in security/tomoyo/realpath.c

    Linus Torvalds
     

27 Jul, 2011

1 commit

  • This allows us to move duplicated code in
    (atomic_inc_not_zero() for now) to

    Signed-off-by: Arun Sharma
    Reviewed-by: Eric Dumazet
    Cc: Ingo Molnar
    Cc: David Miller
    Cc: Eric Dumazet
    Acked-by: Mike Frysinger
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arun Sharma
     

26 Jul, 2011

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (43 commits)
    fs: Merge split strings
    treewide: fix potentially dangerous trailing ';' in #defined values/expressions
    uwb: Fix misspelling of neighbourhood in comment
    net, netfilter: Remove redundant goto in ebt_ulog_packet
    trivial: don't touch files that are removed in the staging tree
    lib/vsprintf: replace link to Draft by final RFC number
    doc: Kconfig: `to be' -> `be'
    doc: Kconfig: Typo: square -> squared
    doc: Konfig: Documentation/power/{pm => apm-acpi}.txt
    drivers/net: static should be at beginning of declaration
    drivers/media: static should be at beginning of declaration
    drivers/i2c: static should be at beginning of declaration
    XTENSA: static should be at beginning of declaration
    SH: static should be at beginning of declaration
    MIPS: static should be at beginning of declaration
    ARM: static should be at beginning of declaration
    rcu: treewide: Do not use rcu_read_lock_held when calling rcu_dereference_check
    Update my e-mail address
    PCIe ASPM: forcedly -> forcibly
    gma500: push through device driver tree
    ...

    Fix up trivial conflicts:
    - arch/arm/mach-ep93xx/dma-m2p.c (deleted)
    - drivers/gpio/gpio-ep93xx.c (renamed and context nearby)
    - drivers/net/r8169.c (just context changes)

    Linus Torvalds
     

20 Jul, 2011

1 commit


09 Jul, 2011

1 commit


09 Jun, 2011

1 commit

  • We recently found that in some configurations SELinux was blocking the ability
    for cgroupfs to be mounted. The reason for this is because cgroupfs creates
    files and directories during the get_sb() call and also uses lookup_one_len()
    during that same get_sb() call. This is a problem since the security
    subsystem cannot initialize the superblock and the inodes in that filesystem
    until after the get_sb() call returns. Thus we leave the inodes in
    an unitialized state during get_sb(). For the vast majority of filesystems
    this is not an issue, but since cgroupfs uses lookup_on_len() it does
    search permission checks on the directories in the path it walks. Since the
    inode security state is not set up SELinux does these checks as if the inodes
    were 'unlabeled.'

    Many 'normal' userspace process do not have permission to interact with
    unlabeled inodes. The solution presented here is to do the permission checks
    of path walk and inode creation as the kernel rather than as the task that
    called mount. Since the kernel has permission to read/write/create
    unlabeled inodes the get_sb() call will complete successfully and the SELinux
    code will be able to initialize the superblock and those inodes created during
    the get_sb() call.

    This appears to be the same solution used by other filesystems such as devtmpfs
    to solve the same issue and should thus have no negative impact on other LSMs
    which currently work.

    Signed-off-by: Eric Paris
    Acked-by: Paul Menage
    Signed-off-by: James Morris

    eparis@redhat
     

27 May, 2011

4 commits

  • The ns_cgroup is an annoying cgroup at the namespace / cgroup frontier and
    leads to some problems:

    * cgroup creation is out-of-control
    * cgroup name can conflict when pids are looping
    * it is not possible to have a single process handling a lot of
    namespaces without falling in a exponential creation time
    * we may want to create a namespace without creating a cgroup

    The ns_cgroup was replaced by a compatibility flag 'clone_children',
    where a newly created cgroup will copy the parent cgroup values.
    The userspace has to manually create a cgroup and add a task to
    the 'tasks' file.

    This patch removes the ns_cgroup as suggested in the following thread:

    https://lists.linux-foundation.org/pipermail/containers/2009-June/018616.html

    The 'cgroup_clone' function is removed because it is no longer used.

    This is a userspace-visible change. Commit 45531757b45c ("cgroup: notify
    ns_cgroup deprecated") (merged into 2.6.27) caused the kernel to emit a
    printk warning users that the feature is planned for removal. Since that
    time we have heard from XXX users who were affected by this.

    Signed-off-by: Daniel Lezcano
    Signed-off-by: Serge E. Hallyn
    Cc: Eric W. Biederman
    Cc: Jamal Hadi Salim
    Reviewed-by: Li Zefan
    Acked-by: Paul Menage
    Acked-by: Matt Helsley
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daniel Lezcano
     
  • Convert cgroup_attach_proc to use flex_array.

    The cgroup_attach_proc implementation requires a pre-allocated array to
    store task pointers to atomically move a thread-group, but asking for a
    monolithic array with kmalloc() may be unreliable for very large groups.
    Using flex_array provides the same functionality with less risk of
    failure.

    This is a post-patch for cgroup-procs-write.patch.

    Signed-off-by: Ben Blum
    Cc: "Eric W. Biederman"
    Cc: Li Zefan
    Cc: Matt Helsley
    Reviewed-by: Paul Menage
    Cc: Oleg Nesterov
    Cc: David Rientjes
    Cc: Miao Xie
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ben Blum
     
  • Make procs file writable to move all threads by tgid at once.

    Add functionality that enables users to move all threads in a threadgroup
    at once to a cgroup by writing the tgid to the 'cgroup.procs' file. This
    current implementation makes use of a per-threadgroup rwsem that's taken
    for reading in the fork() path to prevent newly forking threads within the
    threadgroup from "escaping" while the move is in progress.

    Signed-off-by: Ben Blum
    Cc: "Eric W. Biederman"
    Cc: Li Zefan
    Cc: Matt Helsley
    Reviewed-by: Paul Menage
    Cc: Oleg Nesterov
    Cc: David Rientjes
    Cc: Miao Xie
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ben Blum
     
  • Add cgroup subsystem callbacks for per-thread attachment in atomic contexts

    Add can_attach_task(), pre_attach(), and attach_task() as new callbacks
    for cgroups's subsystem interface. Unlike can_attach and attach, these
    are for per-thread operations, to be called potentially many times when
    attaching an entire threadgroup.

    Also, the old "bool threadgroup" interface is removed, as replaced by
    this. All subsystems are modified for the new interface - of note is
    cpuset, which requires from/to nodemasks for attach to be globally scoped
    (though per-cpuset would work too) to persist from its pre_attach to
    attach_task and attach.

    This is a pre-patch for cgroup-procs-writable.patch.

    Signed-off-by: Ben Blum
    Cc: "Eric W. Biederman"
    Cc: Li Zefan
    Cc: Matt Helsley
    Reviewed-by: Paul Menage
    Cc: Oleg Nesterov
    Cc: David Rientjes
    Cc: Miao Xie
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ben Blum
     

08 May, 2011

3 commits


31 Mar, 2011

1 commit