mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-03 04:42:13 +00:00
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace
Pull user namespace update from Eric Biederman: "The only change that is production ready this round is the work to increase the number of uid and gid mappings a user namespace can support from 5 to 340. This code was carefully benchmarked and it was confirmed that in the existing cases the performance remains the same. In the worst case with 340 mappings an cache cold stat times go from 158ns to 248ns. That is noticable but still quite small, and only the people who are doing crazy things pay the cost. This work uncovered some documentation and cleanup opportunities in the mapping code, and patches to make those cleanups and improve the documentation will be coming in the next merge window" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace: userns: Simplify insert_extent userns: Make map_id_down a wrapper for map_id_range_down userns: Don't read extents twice in m_start userns: Simplify the user and group mapping functions userns: Don't special case a count of 0 userns: bump idmap limits to 340 userns: use union in {g,u}idmap struct
This commit is contained in:
commit
758f875848
3 changed files with 327 additions and 79 deletions
|
@ -11,15 +11,24 @@
|
|||
#include <linux/sysctl.h>
|
||||
#include <linux/err.h>
|
||||
|
||||
#define UID_GID_MAP_MAX_EXTENTS 5
|
||||
#define UID_GID_MAP_MAX_BASE_EXTENTS 5
|
||||
#define UID_GID_MAP_MAX_EXTENTS 340
|
||||
|
||||
struct uid_gid_map { /* 64 bytes -- 1 cache line */
|
||||
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_BASE_EXTENTS];
|
||||
struct {
|
||||
struct uid_gid_extent *forward;
|
||||
struct uid_gid_extent *reverse;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
#define USERNS_SETGROUPS_ALLOWED 1UL
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue