Skip to content

Commit

Permalink
userns: use union in {g,u}idmap struct
Browse files Browse the repository at this point in the history
- Add a struct containing two pointer to extents and wrap both the static extent
  array and the struct into a union. This is done in preparation for bumping the
  {g,u}idmap limits for user namespaces.
- Add brackets around anonymous union when using designated initializers to
  initialize members in order to please gcc <= 4.4.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
  • Loading branch information
Christian Brauner authored and Eric W. Biederman committed Oct 31, 2017
1 parent e19b205 commit aa4bf44
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 17 deletions.
18 changes: 13 additions & 5 deletions include/linux/user_namespace.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
30 changes: 18 additions & 12 deletions kernel/user.c
Original file line number Diff line number Diff line change
Expand Up @@ -26,26 +26,32 @@
struct user_namespace init_user_ns = {
.uid_map = {
.nr_extents = 1,
.extent[0] = {
.first = 0,
.lower_first = 0,
.count = 4294967295U,
{
.extent[0] = {
.first = 0,
.lower_first = 0,
.count = 4294967295U,
},
},
},
.gid_map = {
.nr_extents = 1,
.extent[0] = {
.first = 0,
.lower_first = 0,
.count = 4294967295U,
{
.extent[0] = {
.first = 0,
.lower_first = 0,
.count = 4294967295U,
},
},
},
.projid_map = {
.nr_extents = 1,
.extent[0] = {
.first = 0,
.lower_first = 0,
.count = 4294967295U,
{
.extent[0] = {
.first = 0,
.lower_first = 0,
.count = 4294967295U,
},
},
},
.count = ATOMIC_INIT(3),
Expand Down

0 comments on commit aa4bf44

Please sign in to comment.