git: 1ee0746e1af0 - stable/12 - MFC uipc_shm: Fix kern.ipc.posix_shm_list for jails

From: Jamie Gritton <jamie_at_FreeBSD.org>
Date: Thu, 07 Oct 2021 16:40:25 UTC
The branch stable/12 has been updated by jamie:

URL: https://cgit.FreeBSD.org/src/commit/?id=1ee0746e1af042f5c02f4121652f4ea0ec3788d3

commit 1ee0746e1af042f5c02f4121652f4ea0ec3788d3
Author:     Jamie Gritton <jamie@FreeBSD.org>
AuthorDate: 2021-09-29 17:20:36 +0000
Commit:     Jamie Gritton <jamie@FreeBSD.org>
CommitDate: 2021-10-07 16:40:16 +0000

    MFC uipc_shm: Fix kern.ipc.posix_shm_list for jails
    
    Fix error return of kern.ipc.posix_shm_list, which caused it (and thus
    "posixshmcontrol ls") to fail for all jails that didn't happen to own
    the last shm object in the list.
    
    (cherry picked from commit 747a47261eee59b6e9c437cd2c1b3979df5c32ac)
---
 sys/kern/uipc_shm.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/sys/kern/uipc_shm.c b/sys/kern/uipc_shm.c
index 07925baa3390..ee13692d2f1c 100644
--- a/sys/kern/uipc_shm.c
+++ b/sys/kern/uipc_shm.c
@@ -1174,8 +1174,10 @@ sysctl_posix_shm_list(SYSCTL_HANDLER_ARGS)
 		LIST_FOREACH(shmm, &shm_dictionary[i], sm_link) {
 			error = shm_fill_kinfo_locked(shmm->sm_shmfd,
 			    &kif, true);
-			if (error == EPERM)
+			if (error == EPERM) {
+				error = 0;
 				continue;
+			}
 			if (error != 0)
 				break;
 			pack_kinfo(&kif);