mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-01 00:58:39 +02:00 
			
		
		
		
	userns: use union in {g,u}idmap struct
- 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>
			
			
This commit is contained in:
		
							parent
							
								
									e19b205be4
								
							
						
					
					
						commit
						aa4bf44dc8
					
				
					 2 changed files with 31 additions and 17 deletions
				
			
		|  | @ -12,13 +12,21 @@ | |||
| 
 | ||||
| #define UID_GID_MAP_MAX_EXTENTS 5 | ||||
| 
 | ||||
| struct uid_gid_map {	/* 64 bytes -- 1 cache line */ | ||||
| 	u32 nr_extents; | ||||
| 	struct uid_gid_extent { | ||||
| struct uid_gid_extent { | ||||
| 	u32 first; | ||||
| 	u32 lower_first; | ||||
| 	u32 count; | ||||
| 	} extent[UID_GID_MAP_MAX_EXTENTS]; | ||||
| }; | ||||
| 
 | ||||
| struct uid_gid_map {	/* 64 bytes -- 1 cache line */ | ||||
| 	u32 nr_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 | ||||
|  |  | |||
|  | @ -26,28 +26,34 @@ | |||
| struct user_namespace init_user_ns = { | ||||
| 	.uid_map = { | ||||
| 		.nr_extents = 1, | ||||
| 		{ | ||||
| 			.extent[0] = { | ||||
| 				.first = 0, | ||||
| 				.lower_first = 0, | ||||
| 				.count = 4294967295U, | ||||
| 			}, | ||||
| 		}, | ||||
| 	}, | ||||
| 	.gid_map = { | ||||
| 		.nr_extents = 1, | ||||
| 		{ | ||||
| 			.extent[0] = { | ||||
| 				.first = 0, | ||||
| 				.lower_first = 0, | ||||
| 				.count = 4294967295U, | ||||
| 			}, | ||||
| 		}, | ||||
| 	}, | ||||
| 	.projid_map = { | ||||
| 		.nr_extents = 1, | ||||
| 		{ | ||||
| 			.extent[0] = { | ||||
| 				.first = 0, | ||||
| 				.lower_first = 0, | ||||
| 				.count = 4294967295U, | ||||
| 			}, | ||||
| 		}, | ||||
| 	}, | ||||
| 	.count = ATOMIC_INIT(3), | ||||
| 	.owner = GLOBAL_ROOT_UID, | ||||
| 	.group = GLOBAL_ROOT_GID, | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Christian Brauner
						Christian Brauner