diff options
author | Paul Gortmaker <paul.gortmaker@windriver.com> | 2018-07-23 09:41:41 -0400 |
---|---|---|
committer | Paul Gortmaker <paul.gortmaker@windriver.com> | 2018-07-23 09:41:41 -0400 |
commit | 4282eafe675b00afc976b973724e449956fd7e33 (patch) | |
tree | 9064e8f5e6599e7ae2f29749d8b093fa8e23f1c3 | |
parent | d85c96669023a993813e2af557ad4c14ed6d3539 (diff) | |
download | longterm-queue-4.12-4282eafe675b00afc976b973724e449956fd7e33.tar.gz |
cgroup: context refresh
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
-rw-r--r-- | queue/kernel-make-groups_sort-calling-a-responsibility-gro.patch | 40 |
1 files changed, 22 insertions, 18 deletions
diff --git a/queue/kernel-make-groups_sort-calling-a-responsibility-gro.patch b/queue/kernel-make-groups_sort-calling-a-responsibility-gro.patch index 0a49795..7c568b6 100644 --- a/queue/kernel-make-groups_sort-calling-a-responsibility-gro.patch +++ b/queue/kernel-make-groups_sort-calling-a-responsibility-gro.patch @@ -1,4 +1,4 @@ -From bdcf0a423ea1c40bbb40e7ee483b50fc8aa3d758 Mon Sep 17 00:00:00 2001 +From 7e7e3191808c62996962413029d8f4a6a0f7d718 Mon Sep 17 00:00:00 2001 From: Thiago Rafael Becker <thiago.becker@gmail.com> Date: Thu, 14 Dec 2017 15:33:12 -0800 Subject: [PATCH] kernel: make groups_sort calling a responsibility group_info @@ -26,12 +26,13 @@ Cc: Martin Schwidefsky <schwidefsky@de.ibm.com> Cc: <stable@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> +Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> diff --git a/arch/s390/kernel/compat_linux.c b/arch/s390/kernel/compat_linux.c -index f04db3779b34..59eea9c65d3e 100644 +index a3d14161abcb..df27905f88d4 100644 --- a/arch/s390/kernel/compat_linux.c +++ b/arch/s390/kernel/compat_linux.c -@@ -263,6 +263,7 @@ COMPAT_SYSCALL_DEFINE2(s390_setgroups16, int, gidsetsize, u16 __user *, grouplis +@@ -262,6 +262,7 @@ COMPAT_SYSCALL_DEFINE2(s390_setgroups16, int, gidsetsize, u16 __user *, grouplis return retval; } @@ -40,10 +41,10 @@ index f04db3779b34..59eea9c65d3e 100644 put_group_info(group_info); diff --git a/fs/nfsd/auth.c b/fs/nfsd/auth.c -index 697f8ae7792d..f650e475d8f0 100644 +index 62469c60be23..75f942ae5176 100644 --- a/fs/nfsd/auth.c +++ b/fs/nfsd/auth.c -@@ -60,6 +60,9 @@ int nfsd_setuser(struct svc_rqst *rqstp, struct svc_export *exp) +@@ -59,6 +59,9 @@ int nfsd_setuser(struct svc_rqst *rqstp, struct svc_export *exp) gi->gid[i] = exp->ex_anon_gid; else gi->gid[i] = rqgi->gid[i]; @@ -54,7 +55,7 @@ index 697f8ae7792d..f650e475d8f0 100644 } else { gi = get_group_info(rqgi); diff --git a/include/linux/cred.h b/include/linux/cred.h -index 099058e1178b..631286535d0f 100644 +index b03e7d049a64..935686dfb191 100644 --- a/include/linux/cred.h +++ b/include/linux/cred.h @@ -83,6 +83,7 @@ extern int set_current_groups(struct group_info *); @@ -66,24 +67,27 @@ index 099058e1178b..631286535d0f 100644 /* * The security context of a task diff --git a/kernel/groups.c b/kernel/groups.c -index e357bc800111..daae2f2dc6d4 100644 +index d09727692a2a..73040c252b96 100644 --- a/kernel/groups.c +++ b/kernel/groups.c -@@ -86,11 +86,12 @@ static int gid_cmp(const void *_a, const void *_b) - return gid_gt(a, b) - gid_lt(a, b); +@@ -77,7 +77,7 @@ static int groups_from_user(struct group_info *group_info, } + /* a simple Shell sort */ -static void groups_sort(struct group_info *group_info) +void groups_sort(struct group_info *group_info) { - sort(group_info->gid, group_info->ngroups, sizeof(*group_info->gid), - gid_cmp, NULL); + int base, max, stride; + int gidsetsize = group_info->ngroups; +@@ -103,6 +103,7 @@ static void groups_sort(struct group_info *group_info) + stride /= 3; + } } +EXPORT_SYMBOL(groups_sort); /* a simple bsearch */ int groups_search(const struct group_info *group_info, kgid_t grp) -@@ -122,7 +123,6 @@ int groups_search(const struct group_info *group_info, kgid_t grp) +@@ -134,7 +135,6 @@ int groups_search(const struct group_info *group_info, kgid_t grp) void set_groups(struct cred *new, struct group_info *group_info) { put_group_info(new->group_info); @@ -91,7 +95,7 @@ index e357bc800111..daae2f2dc6d4 100644 get_group_info(group_info); new->group_info = group_info; } -@@ -206,6 +206,7 @@ SYSCALL_DEFINE2(setgroups, int, gidsetsize, gid_t __user *, grouplist) +@@ -218,6 +218,7 @@ SYSCALL_DEFINE2(setgroups, int, gidsetsize, gid_t __user *, grouplist) return retval; } @@ -100,10 +104,10 @@ index e357bc800111..daae2f2dc6d4 100644 put_group_info(group_info); diff --git a/kernel/uid16.c b/kernel/uid16.c -index ce74a4901d2b..ef1da2a5f9bd 100644 +index 5c2dc5b2bf4f..fcf2442a4410 100644 --- a/kernel/uid16.c +++ b/kernel/uid16.c -@@ -192,6 +192,7 @@ SYSCALL_DEFINE2(setgroups16, int, gidsetsize, old_gid_t __user *, grouplist) +@@ -191,6 +191,7 @@ SYSCALL_DEFINE2(setgroups16, int, gidsetsize, old_gid_t __user *, grouplist) return retval; } @@ -112,7 +116,7 @@ index ce74a4901d2b..ef1da2a5f9bd 100644 put_group_info(group_info); diff --git a/net/sunrpc/auth_gss/gss_rpc_xdr.c b/net/sunrpc/auth_gss/gss_rpc_xdr.c -index c4778cae58ef..444380f968f1 100644 +index 25d9a9cf7b66..624c322af3ab 100644 --- a/net/sunrpc/auth_gss/gss_rpc_xdr.c +++ b/net/sunrpc/auth_gss/gss_rpc_xdr.c @@ -231,6 +231,7 @@ static int gssx_dec_linux_creds(struct xdr_stream *xdr, @@ -124,7 +128,7 @@ index c4778cae58ef..444380f968f1 100644 return 0; out_free_groups: diff --git a/net/sunrpc/auth_gss/svcauth_gss.c b/net/sunrpc/auth_gss/svcauth_gss.c -index 5dd4e6c9fef2..26531193fce4 100644 +index a54a7a3d28f5..cddbba1cfe22 100644 --- a/net/sunrpc/auth_gss/svcauth_gss.c +++ b/net/sunrpc/auth_gss/svcauth_gss.c @@ -481,6 +481,7 @@ static int rsc_parse(struct cache_detail *cd, @@ -136,7 +140,7 @@ index 5dd4e6c9fef2..26531193fce4 100644 /* mech name */ len = qword_get(&mesg, buf, mlen); diff --git a/net/sunrpc/svcauth_unix.c b/net/sunrpc/svcauth_unix.c -index 740b67d5a733..af7f28fb8102 100644 +index f81eaa8e0888..acb70d235e47 100644 --- a/net/sunrpc/svcauth_unix.c +++ b/net/sunrpc/svcauth_unix.c @@ -520,6 +520,7 @@ static int unix_gid_parse(struct cache_detail *cd, |