sunrpc: raise kernel RPC channel buffer size
authorRoberto Bergantinos Corpas <rbergant@redhat.com>
Mon, 19 Oct 2020 09:33:56 +0000 (11:33 +0200)
committerJ. Bruce Fields <bfields@redhat.com>
Tue, 20 Oct 2020 17:21:30 +0000 (13:21 -0400)
Its possible that using AUTH_SYS and mountd manage-gids option a
user may hit the 8k RPC channel buffer limit. This have been observed
on field, causing unanswered RPCs on clients after mountd fails to
write on channel :

rpc.mountd[11231]: auth_unix_gid: error writing reply

Userland nfs-utils uses a buffer size of 32k (RPC_CHAN_BUF_SIZE), so
lets match those two.

Signed-off-by: Roberto Bergantinos Corpas <rbergant@redhat.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
net/sunrpc/cache.c

index 2990a7a..20c93b6 100644 (file)
@@ -909,7 +909,7 @@ static ssize_t cache_do_downcall(char *kaddr, const char __user *buf,
 static ssize_t cache_slow_downcall(const char __user *buf,
                                   size_t count, struct cache_detail *cd)
 {
-       static char write_buf[8192]; /* protected by queue_io_mutex */
+       static char write_buf[32768]; /* protected by queue_io_mutex */
        ssize_t ret = -EINVAL;
 
        if (count >= sizeof(write_buf))