<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/net/sunrpc/svc.c, branch linux-rolling-stable</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-rolling-stable</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-rolling-stable'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2025-10-06T20:22:21Z</updated>
<entry>
<title>Merge tag 'nfsd-6.18' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux</title>
<updated>2025-10-06T20:22:21Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2025-10-06T20:22:21Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=81538c8e42806eed71ce125723877a7c2307370c'/>
<id>urn:sha1:81538c8e42806eed71ce125723877a7c2307370c</id>
<content type='text'>
Pull nfsd updates from Chuck Lever:
 "Mike Snitzer has prototyped a mechanism for disabling I/O caching in
  NFSD. This is introduced in v6.18 as an experimental feature. This
  enables scaling NFSD in /both/ directions:

   - NFS service can be supported on systems with small memory
     footprints, such as low-cost cloud instances

   - Large NFS workloads will be less likely to force the eviction of
     server-local activity, helping it avoid thrashing

  Jeff Layton contributed a number of fixes to the new attribute
  delegation implementation (based on a pending Internet RFC) that we
  hope will make attribute delegation reliable enough to enable by
  default, as it is on the Linux NFS client.

  The remaining patches in this pull request are clean-ups and minor
  optimizations. Many thanks to the contributors, reviewers, testers,
  and bug reporters who participated during the v6.18 NFSD development
  cycle"

* tag 'nfsd-6.18' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux: (42 commits)
  nfsd: discard nfserr_dropit
  SUNRPC: Make RPCSEC_GSS_KRB5 select CRYPTO instead of depending on it
  NFSD: Add io_cache_{read,write} controls to debugfs
  NFSD: Do the grace period check in -&gt;proc_layoutget
  nfsd: delete unnecessary NULL check in __fh_verify()
  NFSD: Allow layoutcommit during grace period
  NFSD: Disallow layoutget during grace period
  sunrpc: fix "occurence"-&gt;"occurrence"
  nfsd: Don't force CRYPTO_LIB_SHA256 to be built-in
  nfsd: nfserr_jukebox in nlm_fopen should lead to a retry
  NFSD: Reduce DRC bucket size
  NFSD: Delay adding new entries to LRU
  SUNRPC: Move the svc_rpcb_cleanup() call sites
  NFS: Remove rpcbind cleanup for NFSv4.0 callback
  nfsd: unregister with rpcbind when deleting a transport
  NFSD: Drop redundant conversion to bool
  sunrpc: eliminate return pointer in svc_tcp_sendmsg()
  sunrpc: fix pr_notice in svc_tcp_sendto() to show correct length
  nfsd: decouple the xprtsec policy check from check_nfsd_access()
  NFSD: Fix destination buffer size in nfsd4_ssc_setup_dul()
  ...
</content>
</entry>
<entry>
<title>SUNRPC: Update svcxdr_init_decode() to call xdr_set_scratch_folio()</title>
<updated>2025-09-23T17:29:50Z</updated>
<author>
<name>Anna Schumaker</name>
</author>
<published>2025-06-30T18:53:09Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d57e43b72bf2071caac90da323849c3983a695f0'/>
<id>urn:sha1:d57e43b72bf2071caac90da323849c3983a695f0</id>
<content type='text'>
The only snag here is that __folio_alloc_node() doesn't handle
NUMA_NO_NODE, so I also need to update svc_pool_map_get_node() to return
numa_mem_id() instead. I arrived at this approach by  looking at what
other users of __folio_alloc_node() do for this case.

Signed-off-by: Anna Schumaker &lt;anna.schumaker@oracle.com&gt;
</content>
</entry>
<entry>
<title>SUNRPC: Move the svc_rpcb_cleanup() call sites</title>
<updated>2025-09-23T17:28:19Z</updated>
<author>
<name>Chuck Lever</name>
</author>
<published>2025-08-20T14:27:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=62c0c0e7491211969d8d1c2a9ab0e112b34664cf'/>
<id>urn:sha1:62c0c0e7491211969d8d1c2a9ab0e112b34664cf</id>
<content type='text'>
Clean up: because svc_rpcb_cleanup() and svc_xprt_destroy_all()
are always invoked in pairs, we can deduplicate code by moving
the svc_rpcb_cleanup() call sites into svc_xprt_destroy_all().

Signed-off-by: Chuck Lever &lt;chuck.lever@oracle.com&gt;
Tested-by: Olga Kornievskaia &lt;okorniev@redhat.com&gt;
Signed-off-by: Anna Schumaker &lt;anna.schumaker@oracle.com&gt;
</content>
</entry>
<entry>
<title>SUNRPC: Move the svc_rpcb_cleanup() call sites</title>
<updated>2025-09-21T23:24:50Z</updated>
<author>
<name>Chuck Lever</name>
</author>
<published>2025-08-20T14:27:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d73d06dac604043b94a5f18ebb6a69da1b867702'/>
<id>urn:sha1:d73d06dac604043b94a5f18ebb6a69da1b867702</id>
<content type='text'>
Clean up: because svc_rpcb_cleanup() and svc_xprt_destroy_all()
are always invoked in pairs, we can deduplicate code by moving
the svc_rpcb_cleanup() call sites into svc_xprt_destroy_all().

Tested-by: Olga Kornievskaia &lt;okorniev@redhat.com&gt;
Signed-off-by: Chuck Lever &lt;chuck.lever@oracle.com&gt;
</content>
</entry>
<entry>
<title>sunrpc: delay pc_release callback until after the reply is sent</title>
<updated>2025-09-21T23:24:50Z</updated>
<author>
<name>Jeff Layton</name>
</author>
<published>2025-07-08T18:14:53Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d9adbb6e10bf7d4223d3d521ede1b2052903bc5e'/>
<id>urn:sha1:d9adbb6e10bf7d4223d3d521ede1b2052903bc5e</id>
<content type='text'>
The server-side sunrpc code currently calls pc_release before sending
the reply. Change svc_process and svc_process_bc to call pc_release
after sending the reply instead.

Reviewed-by: NeilBrown &lt;neil@brown.name&gt;
Signed-off-by: Jeff Layton &lt;jlayton@kernel.org&gt;
Signed-off-by: Chuck Lever &lt;chuck.lever@oracle.com&gt;
</content>
</entry>
<entry>
<title>sunrpc: reset rq_accept_statp when starting a new RPC</title>
<updated>2025-07-14T16:46:48Z</updated>
<author>
<name>Jeff Layton</name>
</author>
<published>2025-06-20T12:16:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c8af9d3d4be25dd25845c6d67b32f30d01bf921a'/>
<id>urn:sha1:c8af9d3d4be25dd25845c6d67b32f30d01bf921a</id>
<content type='text'>
rq_accept_statp should point to the location of the accept_status in the
reply. This field is not reset between RPCs so if svc_authenticate or
pg_authenticate return SVC_DENIED without setting the pointer, it could
result in the status being written to the wrong place.

This pointer starts its lifetime as NULL. Reset it on every iteration
so we get consistent behavior if this happens.

Signed-off-by: Jeff Layton &lt;jlayton@kernel.org&gt;
Signed-off-by: Chuck Lever &lt;chuck.lever@oracle.com&gt;
</content>
</entry>
<entry>
<title>sunrpc: remove SVC_SYSERR</title>
<updated>2025-07-14T16:46:48Z</updated>
<author>
<name>Jeff Layton</name>
</author>
<published>2025-06-20T12:16:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6f0e26243b02f440938ab7a3782eb730f2247fb1'/>
<id>urn:sha1:6f0e26243b02f440938ab7a3782eb730f2247fb1</id>
<content type='text'>
Nothing returns this error code.

Signed-off-by: Jeff Layton &lt;jlayton@kernel.org&gt;
Signed-off-by: Chuck Lever &lt;chuck.lever@oracle.com&gt;
</content>
</entry>
<entry>
<title>sunrpc: fix handling of unknown auth status codes</title>
<updated>2025-07-14T16:46:47Z</updated>
<author>
<name>Jeff Layton</name>
</author>
<published>2025-06-20T12:16:01Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d49afc90a3ba3af4507049fb43cb128d9a9c66d5'/>
<id>urn:sha1:d49afc90a3ba3af4507049fb43cb128d9a9c66d5</id>
<content type='text'>
In the case of an unknown error code from svc_authenticate or
pg_authenticate, return AUTH_ERROR with a status of AUTH_FAILED. Also
add the other auth_stat value from RFC 5531, and document all the status
codes.

Signed-off-by: Jeff Layton &lt;jlayton@kernel.org&gt;
Signed-off-by: Chuck Lever &lt;chuck.lever@oracle.com&gt;
</content>
</entry>
<entry>
<title>sunrpc: new tracepoints around svc thread wakeups</title>
<updated>2025-07-14T16:46:38Z</updated>
<author>
<name>Jeff Layton</name>
</author>
<published>2025-05-28T00:12:48Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f26c93053074bba9342b74632c195a043a825ac5'/>
<id>urn:sha1:f26c93053074bba9342b74632c195a043a825ac5</id>
<content type='text'>
Convert the svc_wake_up tracepoint into svc_pool_thread_event class.
Have it also record the pool id, and add new tracepoints for when the
thread is already running and for when there are no idle threads.

Signed-off-by: Jeff Layton &lt;jlayton@kernel.org&gt;
Signed-off-by: Chuck Lever &lt;chuck.lever@oracle.com&gt;
</content>
</entry>
<entry>
<title>sunrpc: handle SVC_GARBAGE during svc auth processing as auth error</title>
<updated>2025-06-19T13:35:45Z</updated>
<author>
<name>Jeff Layton</name>
</author>
<published>2025-06-19T10:01:55Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=94d10a4dba0bc482f2b01e39f06d5513d0f75742'/>
<id>urn:sha1:94d10a4dba0bc482f2b01e39f06d5513d0f75742</id>
<content type='text'>
tianshuo han reported a remotely-triggerable crash if the client sends a
kernel RPC server a specially crafted packet. If decoding the RPC reply
fails in such a way that SVC_GARBAGE is returned without setting the
rq_accept_statp pointer, then that pointer can be dereferenced and a
value stored there.

If it's the first time the thread has processed an RPC, then that
pointer will be set to NULL and the kernel will crash. In other cases,
it could create a memory scribble.

The server sunrpc code treats a SVC_GARBAGE return from svc_authenticate
or pg_authenticate as if it should send a GARBAGE_ARGS reply. RFC 5531
says that if authentication fails that the RPC should be rejected
instead with a status of AUTH_ERR.

Handle a SVC_GARBAGE return as an AUTH_ERROR, with a reason of
AUTH_BADCRED instead of returning GARBAGE_ARGS in that case. This
sidesteps the whole problem of touching the rpc_accept_statp pointer in
this situation and avoids the crash.

Cc: stable@kernel.org
Fixes: 29cd2927fb91 ("SUNRPC: Fix encoding of accepted but unsuccessful RPC replies")
Reported-by: tianshuo han &lt;hantianshuo233@gmail.com&gt;
Reviewed-by: Chuck Lever &lt;chuck.lever@oracle.com&gt;
Signed-off-by: Jeff Layton &lt;jlayton@kernel.org&gt;
Signed-off-by: Chuck Lever &lt;chuck.lever@oracle.com&gt;
</content>
</entry>
</feed>
