git: 4f69c575996e - stable/13 - Allow kern.ipc.maxsockets to be set to current value without error

From: Mark Johnston <markj_at_FreeBSD.org>
Date: Thu, 24 Mar 2022 17:10:34 UTC
The branch stable/13 has been updated by markj:

URL: https://cgit.FreeBSD.org/src/commit/?id=4f69c575996e069bfee62af9db2faa3ffa65db71

commit 4f69c575996e069bfee62af9db2faa3ffa65db71
Author:     Allan Jude <allanjude@FreeBSD.org>
AuthorDate: 2021-11-04 12:55:33 +0000
Commit:     Mark Johnston <markj@FreeBSD.org>
CommitDate: 2022-03-24 17:09:29 +0000

    Allow kern.ipc.maxsockets to be set to current value without error
    
    Normally setting kern.ipc.maxsockets returns EINVAL if the new value
    is not greater than the previous value. This can cause spurious
    error messages when sysctl.conf is processed multiple times, or when
    automation systems try to ensure the sysctl is set to the correct
    value. If the value is unchanged, then just do nothing.
    
    PR:     243532
    Reviewed by:    markj
    Sponsored by:   Modirum MDPay
    Sponsored by:   Klara Inc.
    
    (cherry picked from commit c441592a0e1591591665cd037a8a5e9b54675f99)
---
 sys/kern/uipc_socket.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c
index 5a3748eb8cf5..bdd7756916d9 100644
--- a/sys/kern/uipc_socket.c
+++ b/sys/kern/uipc_socket.c
@@ -363,7 +363,7 @@ sysctl_maxsockets(SYSCTL_HANDLER_ARGS)
 
 	newmaxsockets = maxsockets;
 	error = sysctl_handle_int(oidp, &newmaxsockets, 0, req);
-	if (error == 0 && req->newptr) {
+	if (error == 0 && req->newptr && newmaxsockets != maxsockets) {
 		if (newmaxsockets > maxsockets &&
 		    newmaxsockets <= maxfiles) {
 			maxsockets = newmaxsockets;