<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/nfs/callback_xdr.c, branch linux-6.7.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-6.7.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-6.7.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2023-02-20T14:20:32Z</updated>
<entry>
<title>SUNRPC: Use per-CPU counters to tally server RPC counts</title>
<updated>2023-02-20T14:20:32Z</updated>
<author>
<name>Chuck Lever</name>
</author>
<published>2023-01-10T15:31:54Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=65ba3d2425bf51165b6e88509c632bd15d12883d'/>
<id>urn:sha1:65ba3d2425bf51165b6e88509c632bd15d12883d</id>
<content type='text'>
 - Improves counting accuracy
 - Reduces cross-CPU memory traffic

Signed-off-by: Chuck Lever &lt;chuck.lever@oracle.com&gt;
</content>
</entry>
<entry>
<title>SUNRPC: Refactor RPC server dispatch method</title>
<updated>2023-02-20T14:20:31Z</updated>
<author>
<name>Chuck Lever</name>
</author>
<published>2023-01-08T16:30:59Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=cee4db19452467eef8ab93c6eb6a3a84d11d25d7'/>
<id>urn:sha1:cee4db19452467eef8ab93c6eb6a3a84d11d25d7</id>
<content type='text'>
Currently, svcauth_gss_accept() pre-reserves response buffer space
for the RPC payload length and GSS sequence number before returning
to the dispatcher, which then adds the header's accept_stat field.

The problem is the accept_stat field is supposed to go before the
length and seq_num fields. So svcauth_gss_release() has to relocate
the accept_stat value (see svcauth_gss_prepare_to_wrap()).

To enable these fields to be added to the response buffer in the
correct (final) order, the pointer to the accept_stat has to be made
available to svcauth_gss_accept() so that it can set it before
reserving space for the length and seq_num fields.

As a first step, move the pointer to the location of the accept_stat
field into struct svc_rqst.

Reviewed-by: Jeff Layton &lt;jlayton@kernel.org&gt;
Signed-off-by: Chuck Lever &lt;chuck.lever@oracle.com&gt;
</content>
</entry>
<entry>
<title>SUNRPC: Push svcxdr_init_encode() into svc_process_common()</title>
<updated>2023-02-20T14:20:27Z</updated>
<author>
<name>Chuck Lever</name>
</author>
<published>2023-01-08T16:29:44Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8dd41d70f331c342842e8d349d7a1f73b0ba7ccd'/>
<id>urn:sha1:8dd41d70f331c342842e8d349d7a1f73b0ba7ccd</id>
<content type='text'>
Now that all vs_dispatch functions invoke svcxdr_init_encode(), it
is common code and can be pushed down into the generic RPC server.

Reviewed-by: Jeff Layton &lt;jlayton@kernel.org&gt;
Signed-off-by: Chuck Lever &lt;chuck.lever@oracle.com&gt;
</content>
</entry>
<entry>
<title>SUNRPC: Push svcxdr_init_decode() into svc_process_common()</title>
<updated>2023-02-20T14:20:09Z</updated>
<author>
<name>Chuck Lever</name>
</author>
<published>2023-01-02T17:05:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=dba5eaa46b0282cb9607d362c8887dfcb44bfd2e'/>
<id>urn:sha1:dba5eaa46b0282cb9607d362c8887dfcb44bfd2e</id>
<content type='text'>
Now that all vs_dispatch functions invoke svcxdr_init_decode(), it
is common code and can be pushed down into the generic RPC server.

Reviewed-by: Jeff Layton &lt;jlayton@kernel.org&gt;
Signed-off-by: Chuck Lever &lt;chuck.lever@oracle.com&gt;
</content>
</entry>
<entry>
<title>SUNRPC: Parametrize how much of argsize should be zeroed</title>
<updated>2022-09-26T18:02:42Z</updated>
<author>
<name>Chuck Lever</name>
</author>
<published>2022-09-12T21:22:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=103cc1fafee48adb91fca0e19deb869fd23e46ab'/>
<id>urn:sha1:103cc1fafee48adb91fca0e19deb869fd23e46ab</id>
<content type='text'>
Currently, SUNRPC clears the whole of .pc_argsize before processing
each incoming RPC transaction. Add an extra parameter to struct
svc_procedure to enable upper layers to reduce the amount of each
operation's argument structure that is zeroed by SUNRPC.

The size of struct nfsd4_compoundargs, in particular, is a lot to
clear on each incoming RPC Call. A subsequent patch will cut this
down to something closer to what NFSv2 and NFSv3 uses.

This patch should cause no behavior changes.

Signed-off-by: Chuck Lever &lt;chuck.lever@oracle.com&gt;
</content>
</entry>
<entry>
<title>NFS: remove unneeded check in decode_devicenotify_args()</title>
<updated>2022-03-13T16:59:34Z</updated>
<author>
<name>Alexey Khoroshilov</name>
</author>
<published>2022-02-15T10:17:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=cb8fac6d2727f79f211e745b16c9abbf4d8be652'/>
<id>urn:sha1:cb8fac6d2727f79f211e745b16c9abbf4d8be652</id>
<content type='text'>
[You don't often get email from khoroshilov@ispras.ru. Learn why this is important at http://aka.ms/LearnAboutSenderIdentification.]

Overflow check in not needed anymore after we switch to kmalloc_array().

Signed-off-by: Alexey Khoroshilov &lt;khoroshilov@ispras.ru&gt;
Fixes: a4f743a6bb20 ("NFSv4.1: Convert open-coded array allocation calls to kmalloc_array()")
Signed-off-by: Trond Myklebust &lt;trond.myklebust@hammerspace.com&gt;
</content>
</entry>
<entry>
<title>NFSv4.1: Fix uninitialised variable in devicenotify</title>
<updated>2022-01-06T19:00:20Z</updated>
<author>
<name>Trond Myklebust</name>
</author>
<published>2022-01-03T19:50:16Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b05bf5c63b326ce1da84ef42498d8e0e292e694c'/>
<id>urn:sha1:b05bf5c63b326ce1da84ef42498d8e0e292e694c</id>
<content type='text'>
When decode_devicenotify_args() exits with no entries, we need to
ensure that the struct cb_devicenotifyargs is initialised to
{ 0, NULL } in order to avoid problems in
nfs4_callback_devicenotify().

Reported-by: &lt;rtm@csail.mit.edu&gt;
Signed-off-by: Trond Myklebust &lt;trond.myklebust@hammerspace.com&gt;
Signed-off-by: Anna Schumaker &lt;Anna.Schumaker@Netapp.com&gt;
</content>
</entry>
<entry>
<title>SUNRPC: Change return value type of .pc_encode</title>
<updated>2021-10-13T15:34:49Z</updated>
<author>
<name>Chuck Lever</name>
</author>
<published>2021-10-13T14:41:13Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=130e2054d4a652a2bd79fb1557ddcd19c053cb37'/>
<id>urn:sha1:130e2054d4a652a2bd79fb1557ddcd19c053cb37</id>
<content type='text'>
Returning an undecorated integer is an age-old trope, but it's
not clear (even to previous experts in this code) that the only
valid return values are 1 and 0. These functions do not return
a negative errno, rpc_stat value, or a positive length.

Document there are only two valid return values by having
.pc_encode return only true or false.

Signed-off-by: Chuck Lever &lt;chuck.lever@oracle.com&gt;
Signed-off-by: J. Bruce Fields &lt;bfields@redhat.com&gt;
</content>
</entry>
<entry>
<title>SUNRPC: Replace the "__be32 *p" parameter to .pc_encode</title>
<updated>2021-10-13T15:34:49Z</updated>
<author>
<name>Chuck Lever</name>
</author>
<published>2021-10-13T14:41:06Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fda494411485aff91768842c532f90fb8eb54943'/>
<id>urn:sha1:fda494411485aff91768842c532f90fb8eb54943</id>
<content type='text'>
The passed-in value of the "__be32 *p" parameter is now unused in
every server-side XDR encoder, and can be removed.

Note also that there is a line in each encoder that sets up a local
pointer to a struct xdr_stream. Passing that pointer from the
dispatcher instead saves one line per encoder function.

Signed-off-by: Chuck Lever &lt;chuck.lever@oracle.com&gt;
Signed-off-by: J. Bruce Fields &lt;bfields@redhat.com&gt;
</content>
</entry>
<entry>
<title>NFS: Clean up the synopsis of callback process_op()</title>
<updated>2021-08-10T18:18:35Z</updated>
<author>
<name>Chuck Lever</name>
</author>
<published>2021-07-15T19:52:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9eff97abef057c02a13bb3aa0e4821cd60fd80df'/>
<id>urn:sha1:9eff97abef057c02a13bb3aa0e4821cd60fd80df</id>
<content type='text'>
The xdr_stream and rq_arg and rq_res are already accessible via the
@rqstp parameter.

Signed-off-by: Chuck Lever &lt;chuck.lever@oracle.com&gt;
Signed-off-by: Anna Schumaker &lt;Anna.Schumaker@Netapp.com&gt;
</content>
</entry>
</feed>
