[RFC PATCH 0/4 v2] Inotify limits per usernamespace

Eric W. Biederman ebiederm at xmission.com
Wed Jul 6 16:47:33 UTC 2016


Nikolay Borisov <kernel at kyup.com> writes:

> So this is the 2nd incarnation of the inotify-limits per namespace, 
> following the lenghty discussions with Eric Biederman. The core of 
> the series lies in patch 3, as this contains most of the code to 
> implement the new semantics. The major difference is now that 
> inotify limits are going to be accounted per-user/per-namespace. 
>
> Patch 1 adds a __HASHTABLE_INITIALIZER, much in the same way as 
> other kernel constructs have, so that one can use them directly 
> into structure definitions. It's a self-contained patch 
>
> Patch 2 is unchanged from the previous submissions and just 
> renames some defines in various networking files, implementing
> their own hashtable as this creates certain warnings due to 
> hashtable.h inclusion in linux/user_namespace.h. This has already
> been acked-by David Miller. 
>
> Patch 3 is the core, it implements all the necessary changes
> to allow. More information about the implementation in the patch
> changelog. This has been completely changed than in the first
> submission to cope with the requirements that emerged in 
> discussion with Eric Biederman.
>
> Patch 4 is plain conversion, to the new interface inotify code
> structure.
>
> The series has received moderate testing in a KVM guest, using
> the stress-ng to create multiple inotify instances and test
> whether the locking is correct which seems to be the case. I've
> tested with 2/3 level hierarchies of namespaces.

Thanks for getting this out.  I am just starting to look at these
changes. I have been deep in another set of changes and haven't had the
brain cells to start reviewing this before now.

Eric


> Nikolay Borisov (4):
>   hashtable: Add __HASHTABLE_INITIALIZER
>   misc: Rename the HASH_SIZE macro
>   userns/inotify: Initial implementation of inotify per-userns
>   inotify: Convert to using new userns infrastructure
>
>  fs/logfs/dir.c                           |   6 +-
>  fs/notify/inotify/inotify.h              |  25 ++++
>  fs/notify/inotify/inotify_fsnotify.c     |  16 ++-
>  fs/notify/inotify/inotify_user.c         | 240 +++++++++++++++++++++++++++++--
>  include/linux/fsnotify_backend.h         |   3 +
>  include/linux/hashtable.h                |   3 +
>  include/linux/sched.h                    |   4 -
>  include/linux/user_namespace.h           |  10 ++
>  kernel/user.c                            |   5 +
>  kernel/user_namespace.c                  |  22 ++-
>  net/ipv6/ip6_gre.c                       |   8 +-
>  net/ipv6/ip6_tunnel.c                    |  10 +-
>  net/ipv6/ip6_vti.c                       |  10 +-
>  net/ipv6/sit.c                           |  10 +-
>  security/keys/encrypted-keys/encrypted.c |  32 ++---
>  15 files changed, 345 insertions(+), 59 deletions(-)


More information about the Containers mailing list