|
Revision tags: v6.15, v6.15-rc7, v6.15-rc6, v6.15-rc5, v6.15-rc4, v6.15-rc3, v6.15-rc2, v6.15-rc1, v6.14, v6.14-rc7, v6.14-rc6, v6.14-rc5, v6.14-rc4, v6.14-rc3, v6.14-rc2, v6.14-rc1, v6.13, v6.13-rc7, v6.13-rc6, v6.13-rc5, v6.13-rc4, v6.13-rc3, v6.13-rc2, v6.13-rc1, v6.12, v6.12-rc7, v6.12-rc6, v6.12-rc5, v6.12-rc4, v6.12-rc3, v6.12-rc2, v6.12-rc1, v6.11, v6.11-rc7, v6.11-rc6, v6.11-rc5, v6.11-rc4, v6.11-rc3, v6.11-rc2, v6.11-rc1, v6.10, v6.10-rc7, v6.10-rc6, v6.10-rc5, v6.10-rc4, v6.10-rc3, v6.10-rc2, v6.10-rc1, v6.9, v6.9-rc7, v6.9-rc6, v6.9-rc5, v6.9-rc4, v6.9-rc3, v6.9-rc2, v6.9-rc1, v6.8, v6.8-rc7, v6.8-rc6, v6.8-rc5, v6.8-rc4, v6.8-rc3, v6.8-rc2, v6.8-rc1, v6.7, v6.7-rc8, v6.7-rc7, v6.7-rc6 |
|
| #
3f7edeac |
| 12-Dec-2023 |
Trond Myklebust <[email protected]> |
SUNRPC: Add a transport callback to handle dequeuing of an RPC request
Add a transport level callback to allow it to handle the consequences of dequeuing the request that was in the process of being
SUNRPC: Add a transport callback to handle dequeuing of an RPC request
Add a transport level callback to allow it to handle the consequences of dequeuing the request that was in the process of being transmitted. For something like a TCP connection, we may need to disconnect if the request was partially transmitted.
Signed-off-by: Trond Myklebust <[email protected]>
show more ...
|
| #
57331a59 |
| 04-Jan-2024 |
Benjamin Coddington <[email protected]> |
NFSv4.1: Use the nfs_client's rpc timeouts for backchannel
For backchannel requests that lookup the appropriate nfs_client, use the state-management rpc_clnt's rpc_timeout parameters for the backcha
NFSv4.1: Use the nfs_client's rpc timeouts for backchannel
For backchannel requests that lookup the appropriate nfs_client, use the state-management rpc_clnt's rpc_timeout parameters for the backchannel's response. When the nfs_client cannot be found, fall back to using the xprt's default timeout parameters.
Signed-off-by: Benjamin Coddington <[email protected]> Tested-by: Chuck Lever <[email protected]> Tested-by: Jeff Layton <[email protected]> Signed-off-by: Anna Schumaker <[email protected]>
show more ...
|
|
Revision tags: v6.7-rc5, v6.7-rc4, v6.7-rc3, v6.7-rc2, v6.7-rc1, v6.6, v6.6-rc7, v6.6-rc6, v6.6-rc5, v6.6-rc4, v6.6-rc3, v6.6-rc2 |
|
| #
15d39883 |
| 11-Sep-2023 |
NeilBrown <[email protected]> |
SUNRPC: change the back-channel queue to lwq
This removes the need to store and update back-links in the list. It also remove the need for the _bh version of spin_lock().
Signed-off-by: NeilBrown <
SUNRPC: change the back-channel queue to lwq
This removes the need to store and update back-links in the list. It also remove the need for the _bh version of spin_lock().
Signed-off-by: NeilBrown <[email protected]> Cc: Trond Myklebust <[email protected]> Cc: Anna Schumaker <[email protected]> Signed-off-by: Chuck Lever <[email protected]>
show more ...
|
|
Revision tags: v6.6-rc1, v6.5, v6.5-rc7 |
|
| #
d2ee4138 |
| 19-Aug-2023 |
Trond Myklebust <[email protected]> |
SUNRPC: Allow specification of TCP client connect timeout at setup
When we create a TCP transport, the connect timeout parameters are currently fixed to be 90s. This is problematic in the pNFS flexf
SUNRPC: Allow specification of TCP client connect timeout at setup
When we create a TCP transport, the connect timeout parameters are currently fixed to be 90s. This is problematic in the pNFS flexfiles case, where we may have multiple mirrors, and we would like to fail over quickly to the next mirror if a data server is down.
This patch adds the ability to specify the connection parameters at RPC client creation time.
Signed-off-by: Trond Myklebust <[email protected]> Signed-off-by: Anna Schumaker <[email protected]>
show more ...
|
|
Revision tags: v6.5-rc6, v6.5-rc5, v6.5-rc4, v6.5-rc3, v6.5-rc2, v6.5-rc1, v6.4, v6.4-rc7, v6.4-rc6 |
|
| #
75eb6af7 |
| 07-Jun-2023 |
Chuck Lever <[email protected]> |
SUNRPC: Add a TCP-with-TLS RPC transport class
Use the new TLS handshake API to enable the SunRPC client code to request a TLS handshake. This implements support for RFC 9289, only on TCP sockets.
SUNRPC: Add a TCP-with-TLS RPC transport class
Use the new TLS handshake API to enable the SunRPC client code to request a TLS handshake. This implements support for RFC 9289, only on TCP sockets.
Upper layers such as NFS use RPC-with-TLS to protect in-transit traffic.
Signed-off-by: Chuck Lever <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
show more ...
|
| #
50005319 |
| 07-Jun-2023 |
Chuck Lever <[email protected]> |
SUNRPC: Plumb an API for setting transport layer security
Add an initial set of policies along with fields for upper layers to pass the requested policy down to the transport layer.
Signed-off-by:
SUNRPC: Plumb an API for setting transport layer security
Add an initial set of policies along with fields for upper layers to pass the requested policy down to the transport layer.
Signed-off-by: Chuck Lever <[email protected]> Reviewed-by: Jeff Layton <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
show more ...
|
|
Revision tags: v6.4-rc5, v6.4-rc4, v6.4-rc3, v6.4-rc2, v6.4-rc1, v6.3, v6.3-rc7, v6.3-rc6, v6.3-rc5, v6.3-rc4, v6.3-rc3, v6.3-rc2, v6.3-rc1, v6.2, v6.2-rc8, v6.2-rc7, v6.2-rc6, v6.2-rc5, v6.2-rc4, v6.2-rc3, v6.2-rc2, v6.2-rc1, v6.1, v6.1-rc8, v6.1-rc7, v6.1-rc6, v6.1-rc5, v6.1-rc4, v6.1-rc3, v6.1-rc2, v6.1-rc1, v6.0, v6.0-rc7, v6.0-rc6, v6.0-rc5, v6.0-rc4, v6.0-rc3, v6.0-rc2, v6.0-rc1, v5.19 |
|
| #
72691a26 |
| 27-Jul-2022 |
Trond Myklebust <[email protected]> |
SUNRPC: Don't reuse bvec on retransmission of the request
If a request is re-encoded and then retransmitted, we need to make sure that we also re-encode the bvec, in case the page lists have changed
SUNRPC: Don't reuse bvec on retransmission of the request
If a request is re-encoded and then retransmitted, we need to make sure that we also re-encode the bvec, in case the page lists have changed.
Fixes: ff053dbbaffe ("SUNRPC: Move the call to xprt_send_pagedata() out of xprt_sock_sendmsg()") Signed-off-by: Trond Myklebust <[email protected]>
show more ...
|
| #
7ffcdaa6 |
| 25-Jul-2022 |
Olga Kornievskaia <[email protected]> |
SUNRPC expose functions for offline remote xprt functionality
Re-arrange the code that make offline transport and delete transport callable functions.
Signed-off-by: Olga Kornievskaia <kolga@netapp
SUNRPC expose functions for offline remote xprt functionality
Re-arrange the code that make offline transport and delete transport callable functions.
Signed-off-by: Olga Kornievskaia <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
show more ...
|
|
Revision tags: v5.19-rc8, v5.19-rc7, v5.19-rc6, v5.19-rc5, v5.19-rc4, v5.19-rc3, v5.19-rc2, v5.19-rc1, v5.18, v5.18-rc7, v5.18-rc6, v5.18-rc5, v5.18-rc4, v5.18-rc3, v5.18-rc2, v5.18-rc1 |
|
| #
eb07d5a4 |
| 30-Mar-2022 |
NeilBrown <[email protected]> |
SUNRPC: handle malloc failure in ->request_prepare
If ->request_prepare() detects an error, it sets ->rq_task->tk_status. This is easy for callers to ignore. The only caller is xprt_request_enqueue_
SUNRPC: handle malloc failure in ->request_prepare
If ->request_prepare() detects an error, it sets ->rq_task->tk_status. This is easy for callers to ignore. The only caller is xprt_request_enqueue_receive() and it does ignore the error, as does call_encode() which calls it. This can result in a request being queued to receive a reply without an allocated receive buffer.
So instead of setting rq_task->tk_status, return an error, and store in ->tk_status only in call_encode();
The call to xprt_request_enqueue_receive() is now earlier in call_encode(), where the error can still be handled.
Signed-off-by: NeilBrown <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
show more ...
|
| #
421ab1be |
| 25-Mar-2022 |
Trond Myklebust <[email protected]> |
SUNRPC: Do not dereference non-socket transports in sysfs
Do not cast the struct xprt to a sock_xprt unless we know it is a UDP or TCP transport. Otherwise the call to lock the mutex will scribble o
SUNRPC: Do not dereference non-socket transports in sysfs
Do not cast the struct xprt to a sock_xprt unless we know it is a UDP or TCP transport. Otherwise the call to lock the mutex will scribble over whatever structure is actually there. This has been seen to cause hard system lockups when the underlying transport was RDMA.
Fixes: b49ea673e119 ("SUNRPC: lock against ->sock changing during sysfs read") Cc: [email protected] Signed-off-by: Trond Myklebust <[email protected]>
show more ...
|
|
Revision tags: v5.17, v5.17-rc8, v5.17-rc7, v5.17-rc6, v5.17-rc5, v5.17-rc4, v5.17-rc3, v5.17-rc2 |
|
| #
b9a0d6d1 |
| 27-Jan-2022 |
Eric Dumazet <[email protected]> |
SUNRPC: add netns refcount tracker to struct rpc_xprt
Signed-off-by: Eric Dumazet <[email protected]> Signed-off-by: David S. Miller <[email protected]>
|
|
Revision tags: v5.17-rc1, v5.16, v5.16-rc8, v5.16-rc7, v5.16-rc6, v5.16-rc5, v5.16-rc4, v5.16-rc3, v5.16-rc2, v5.16-rc1, v5.15, v5.15-rc7, v5.15-rc6, v5.15-rc5, v5.15-rc4, v5.15-rc3, v5.15-rc2, v5.15-rc1, v5.14, v5.14-rc7, v5.14-rc6, v5.14-rc5 |
|
| #
a4ae3081 |
| 05-Aug-2021 |
Chuck Lever <[email protected]> |
SUNRPC: Move client-side disconnect injection
Disconnect injection stress-tests the ability for both client and server implementations to behave resiliently in the face of network instability.
Conv
SUNRPC: Move client-side disconnect injection
Disconnect injection stress-tests the ability for both client and server implementations to behave resiliently in the face of network instability.
Convert the existing client-side disconnect injection infrastructure to use the kernel's generic error injection facility. The generic facility has a richer set of injection criteria.
Signed-off-by: Chuck Lever <[email protected]>
show more ...
|
|
Revision tags: v5.14-rc4 |
|
| #
c2dc3e5f |
| 26-Jul-2021 |
Trond Myklebust <[email protected]> |
SUNRPC: Fix potential memory corruption
We really should not call rpc_wake_up_queued_task_set_status() with xprt->snd_task as an argument unless we are certain that is actually an rpc_task.
Fixes:
SUNRPC: Fix potential memory corruption
We really should not call rpc_wake_up_queued_task_set_status() with xprt->snd_task as an argument unless we are certain that is actually an rpc_task.
Fixes: 0445f92c5d53 ("SUNRPC: Fix disconnection races") Signed-off-by: Trond Myklebust <[email protected]> Signed-off-by: Anna Schumaker <[email protected]>
show more ...
|
|
Revision tags: v5.14-rc3, v5.14-rc2, v5.14-rc1, v5.13 |
|
| #
6f081693 |
| 24-Jun-2021 |
Olga Kornievskaia <[email protected]> |
sunrpc: remove an offlined xprt using sysfs
Once a transport has been put offline, this transport can be also removed from the list of transports. Any tasks that have been stuck on this transport wo
sunrpc: remove an offlined xprt using sysfs
Once a transport has been put offline, this transport can be also removed from the list of transports. Any tasks that have been stuck on this transport would find the next available active transport and be re-tried. This transport would be removed from the xprt_switch list and freed.
Signed-off-by: Olga Kornievskaia <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
show more ...
|
| #
5b7eb784 |
| 24-Jun-2021 |
Olga Kornievskaia <[email protected]> |
SUNRPC: take a xprt offline using sysfs
Using sysfs's xprt_state attribute, mark a particular transport offline. It will not be picked during the round-robin selection. It's not allowed to take the
SUNRPC: take a xprt offline using sysfs
Using sysfs's xprt_state attribute, mark a particular transport offline. It will not be picked during the round-robin selection. It's not allowed to take the main (1st created transport associated with the rpc_client) offline. Also bring a transport back online via sysfs by writing "online" and that would allow for this transport to be picked during the round- robin selection.
Signed-off-by: Olga Kornievskaia <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
show more ...
|
|
Revision tags: v5.13-rc7, v5.13-rc6 |
|
| #
587bc725 |
| 08-Jun-2021 |
Olga Kornievskaia <[email protected]> |
sunrpc: add dst_attr attributes to the sysfs xprt directory
Allow to query and set the destination's address of a transport. Setting of the destination address is allowed only for TCP or RDMA based
sunrpc: add dst_attr attributes to the sysfs xprt directory
Allow to query and set the destination's address of a transport. Setting of the destination address is allowed only for TCP or RDMA based connections.
Signed-off-by: Olga Kornievskaia <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
show more ...
|
| #
e091853e |
| 24-Jun-2021 |
Olga Kornievskaia <[email protected]> |
SUNRPC mark the first transport
When an RPC client gets created it's first transport is special and should be marked a main transport.
Signed-off-by: Olga Kornievskaia <[email protected]> Signed-off
SUNRPC mark the first transport
When an RPC client gets created it's first transport is special and should be marked a main transport.
Signed-off-by: Olga Kornievskaia <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
show more ...
|
| #
d408ebe0 |
| 08-Jun-2021 |
Olga Kornievskaia <[email protected]> |
sunrpc: add add sysfs directory per xprt under each xprt_switch
Add individual transport directories under each transport switch group. For instance, for each nconnect=X connections there will be a
sunrpc: add add sysfs directory per xprt under each xprt_switch
Add individual transport directories under each transport switch group. For instance, for each nconnect=X connections there will be a transport directory. Naming conventions also identifies transport type -- xprt-<id>-<type> where type is udp, tcp, rdma, local, bc.
Signed-off-by: Olga Kornievskaia <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
show more ...
|
| #
d3abc739 |
| 08-Jun-2021 |
Olga Kornievskaia <[email protected]> |
sunrpc: keep track of the xprt_class in rpc_xprt structure
We need to keep track of the type for a given transport.
Signed-off-by: Olga Kornievskaia <[email protected]> Signed-off-by: Trond Myklebus
sunrpc: keep track of the xprt_class in rpc_xprt structure
We need to keep track of the type for a given transport.
Signed-off-by: Olga Kornievskaia <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
show more ...
|
| #
572caba4 |
| 08-Jun-2021 |
Olga Kornievskaia <[email protected]> |
sunrpc: add xprt id
This adds a unique identifier for a sunrpc transport in sysfs, which is similarly managed to the unique IDs of clients.
Signed-off-by: Dan Aloni <[email protected]> Signed-off-by
sunrpc: add xprt id
This adds a unique identifier for a sunrpc transport in sysfs, which is similarly managed to the unique IDs of clients.
Signed-off-by: Dan Aloni <[email protected]> Signed-off-by: Olga Kornievskaia <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
show more ...
|
|
Revision tags: v5.13-rc5, v5.13-rc4 |
|
| #
e86be3a0 |
| 25-May-2021 |
Trond Myklebust <[email protected]> |
SUNRPC: More fixes for backlog congestion
Ensure that we fix the XPRT_CONGESTED starvation issue for RDMA as well as socket based transports. Ensure we always initialise the request after waking up
SUNRPC: More fixes for backlog congestion
Ensure that we fix the XPRT_CONGESTED starvation issue for RDMA as well as socket based transports. Ensure we always initialise the request after waking up from the backlog list.
Fixes: e877a88d1f06 ("SUNRPC in case of backlog, hand free slots directly to waiting task") Signed-off-by: Trond Myklebust <[email protected]>
show more ...
|
|
Revision tags: v5.13-rc3, v5.13-rc2, v5.13-rc1, v5.12, v5.12-rc8, v5.12-rc7, v5.12-rc6, v5.12-rc5, v5.12-rc4, v5.12-rc3, v5.12-rc2, v5.12-rc1, v5.12-rc1-dontuse, v5.11 |
|
| #
d737e5d4 |
| 09-Feb-2021 |
Trond Myklebust <[email protected]> |
SUNRPC: Set TCP_CORK until the transmit queue is empty
When we have multiple RPC requests queued up, it makes sense to set the TCP_CORK option while the transmit queue is non-empty.
Signed-off-by:
SUNRPC: Set TCP_CORK until the transmit queue is empty
When we have multiple RPC requests queued up, it makes sense to set the TCP_CORK option while the transmit queue is non-empty.
Signed-off-by: Trond Myklebust <[email protected]>
show more ...
|
|
Revision tags: v5.11-rc7, v5.11-rc6, v5.11-rc5, v5.11-rc4, v5.11-rc3, v5.11-rc2, v5.11-rc1, v5.10, v5.10-rc7, v5.10-rc6, v5.10-rc5, v5.10-rc4 |
|
| #
c87b056e |
| 10-Nov-2020 |
Trond Myklebust <[email protected]> |
SUNRPC: Remove unused function xprt_load_transport()
Signed-off-by: Trond Myklebust <[email protected]>
|
| #
1fc5f131 |
| 10-Nov-2020 |
Trond Myklebust <[email protected]> |
SUNRPC: Add a helper to return the transport identifier given a netid
Signed-off-by: Trond Myklebust <[email protected]>
|
|
Revision tags: v5.10-rc3 |
|
| #
d5aa6b22 |
| 06-Nov-2020 |
Trond Myklebust <[email protected]> |
SUNRPC: xprt_load_transport() needs to support the netid "rdma6"
According to RFC5666, the correct netid for an IPv6 addressed RDMA transport is "rdma6", which we've supported as a mount option sinc
SUNRPC: xprt_load_transport() needs to support the netid "rdma6"
According to RFC5666, the correct netid for an IPv6 addressed RDMA transport is "rdma6", which we've supported as a mount option since Linux-4.7. The problem is when we try to load the module "xprtrdma6", that will fail, since there is no modulealias of that name.
Fixes: 181342c5ebe8 ("xprtrdma: Add rdma6 option to support NFS/RDMA IPv6") Signed-off-by: Trond Myklebust <[email protected]>
show more ...
|