[PATCH 1/2 v3] user namespace: use union in {g,u}idmap struct

From: Christian Brauner
Date: Mon Oct 16 2017 - 11:34:42 EST


This is preparation for bumping the {g,u}idmap limits for usernamespaces.

Signed-off-by: Christian Brauner <christian.brauner@xxxxxxxxxx>
---
Changelog 2017-10-16:
* Trivial: fix email addresses in CC: lines
---
include/linux/user_namespace.h | 18 +++++++++++++-----
1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/include/linux/user_namespace.h b/include/linux/user_namespace.h
index c18e01252346..7c83d7f6289b 100644
--- a/include/linux/user_namespace.h
+++ b/include/linux/user_namespace.h
@@ -12,13 +12,21 @@

#define UID_GID_MAP_MAX_EXTENTS 5

+struct uid_gid_extent {
+ u32 first;
+ u32 lower_first;
+ u32 count;
+};
+
struct uid_gid_map { /* 64 bytes -- 1 cache line */
u32 nr_extents;
- struct uid_gid_extent {
- u32 first;
- u32 lower_first;
- u32 count;
- } extent[UID_GID_MAP_MAX_EXTENTS];
+ union {
+ struct uid_gid_extent extent[UID_GID_MAP_MAX_EXTENTS];
+ struct {
+ struct uid_gid_extent *forward;
+ struct uid_gid_extent *reverse;
+ };
+ };
};

#define USERNS_SETGROUPS_ALLOWED 1UL
--
2.14.1