commit 58747d2f5854a9c2a8403b6d84d99145dc6782a0 Author: Trond Myklebust Date: Thu Jul 18 01:10:51 2019 -0400 SUNRPC: Fix initialisation of struct rpc_xprt_switch Ensure that we do initialise the fields xps_nactive, xps_queuelen and xps_net. Signed-off-by: Trond Myklebust (cherry picked from commit 9f98effc19bd490a375c4e764a56a2c015d27c3c) Bugzilla: 1683394 commit 766796244b0171e32d7ff724b82702acd2e9c246 Author: NeilBrown Date: Thu May 30 10:41:28 2019 +1000 SUNRPC: add links for all client xprts to debugfs Now that a client can have multiple xprts, we need to add them all to debugs. The first one is still "xprt" Subsequent xprts are "xprt1", "xprt2", etc. Signed-off-by: NeilBrown Signed-off-by: Trond Myklebust (cherry picked from commit 2f34b8bfae19a244993e2b6cd0a8514f3ffd3fa8) Bugzilla: 1683394 commit e134d353085cde6355f119c15cc0783305c75d9b Author: NeilBrown Date: Thu May 30 10:41:28 2019 +1000 SUNRPC: enhance rpc_clnt_show_stats() to report on all xprts. Now that a client can have multiple xprts, we need to report the statistics for all of them. Reported-by: Chuck Lever Signed-off-by: NeilBrown Signed-off-by: Trond Myklebust (cherry picked from commit 10db56917bcb80e70bbcd443d78bbfcb0b1e0652) Bugzilla: 1683394 commit 59ab1b93bec25fec7bd5cf044697f1729f037a35 Author: Trond Myklebust Date: Thu Jul 11 16:33:12 2019 -0400 SUNRPC: Fix transport accounting when caller specifies an rpc_xprt Ensure that we do the required accounting for the round robin queue when the caller to rpc_init_task() has passed in a transport to be used. Reported-by: Olga Kornievskaia Reported-by: Neil Brown Signed-off-by: Trond Myklebust (cherry picked from commit a101b043c44dfcb63bed7f29a675e9fa0259005e) Bugzilla: 1683394 commit 9a81f739860f9aad6d56a2085ed1a5f3b11cbbbc Author: NeilBrown Date: Thu May 30 10:41:28 2019 +1000 NFS: send state management on a single connection. With NFSv4.1, different network connections need to be explicitly bound to a session. During session startup, this is not possible so only a single connection must be used for session startup. So add a task flag to disable the default round-robin choice of connections (when nconnect > 1) and force the use of a single connection. Then use that flag on all requests for session management - for consistence, include NFSv4.0 management (SETCLIENTID) and session destruction Reported-by: Chuck Lever Signed-off-by: NeilBrown Signed-off-by: Trond Myklebust (cherry picked from commit 5a0c257f8e0f4c4b3c33dff545317c21a921303e) Bugzilla: 1683394 commit 258e7d39a63b14d88386f4976fc5d5f97cd7a383 Author: Trond Myklebust Date: Fri Apr 28 10:52:42 2017 -0400 SUNRPC: Add basic load balancing to the transport switch For now, just count the queue length. It is less accurate than counting number of bytes queued, but easier to implement. Signed-off-by: Trond Myklebust (cherry picked from commit 21f0ffaff510b0530bfdf77da7133c0b99dee2fe) Bugzilla: 1683394 commit 19ae23575bf2db7ffbcd04c6e8dc12b613aeccb3 Author: Trond Myklebust Date: Sun Apr 7 13:58:44 2019 -0400 SUNRPC: Fix up task signalling The RPC_TASK_KILLED flag should really not be set from another context because it can clobber data in the struct task when task->tk_flags is changed non-atomically. Let's therefore swap out RPC_TASK_KILLED with an atomic flag, and add a function to set that flag and safely wake up the task. Signed-off-by: Trond Myklebust Signed-off-by: Anna Schumaker (cherry picked from commit ae67bd3821bb0a54d97e7883d211196637d487a9) Bugzilla: 1683394 commit b15fca34009ddeeab708fe028cde29fc759197c7 Author: Trond Myklebust Date: Mon Sep 17 13:32:02 2018 -0400 NFS: Allow multiple connections to a NFSv2 or NFSv3 server Signed-off-by: Trond Myklebust (cherry picked from commit 53c326307156249253be36b33cd6c32f4a24f9b2) Bugzilla=1683394 commit 3412effd029aa795f492838b689bbe55bcdd9166 Author: Trond Myklebust Date: Thu Apr 27 11:40:04 2017 -0400 NFS: Display the "nconnect" mount option if it is set. Signed-off-by: Trond Myklebust (cherry picked from commit fd87c8b73a0c7689cf3112b35c8c173e8326a5fb) Bugzilla=1683394 commit a51fe9a11ddb5c8f9d46ab47bf1050223106d3fc Author: Trond Myklebust Date: Thu Apr 27 11:22:07 2017 -0400 pNFS: Allow multiple connections to the DS If the user specifies -onconnect= mount option, and the transport protocol is TCP, then set up connections to the pNFS data server as well. The connections will all go to the same IP address. Signed-off-by: Trond Myklebust (cherry picked from commit bb71e4a5d7eb151aa8d4e98c628b744f78af7c57) Bugzilla=1683394 commit 2a3c24a3ed5837b9cfd82a7b2541776816f87629 Author: Trond Myklebust Date: Thu Apr 27 11:13:40 2017 -0400 NFSv4: Allow multiple connections to NFSv4.x (x>0) servers If the user specifies the -onconn= mount option, and the transport protocol is TCP, then set up connections to the server. The connections will all go to the same IP address. Signed-off-by: Trond Myklebust (cherry picked from commit 6619079d05404cb32be29af329b87ac3b0ad4f96) Bugzilla=1683394 commit 197ab4ca845bbf455a91e1157235cc2c1e562d87 Author: Trond Myklebust Date: Wed Apr 26 23:30:48 2017 -0400 NFS: Add a mount option to specify number of TCP connections to use Allow the user to specify that the client should use multiple connections to the server. For the moment, this functionality will be limited to TCP and to NFSv4.x (x>0). Signed-off-by: Trond Myklebust (cherry picked from commit 28cc5cd8c68f1cd2146d88c7a54cc3234ed4dabe) Bugzilla=1683394 commit b87a86aabed2a4167d46386e2413171256e4f2a3 Author: Trond Myklebust Date: Thu Apr 27 08:50:51 2017 -0400 SUNRPC: Allow creation of RPC clients with multiple connections Add an argument to struct rpc_create_args that allows the specification of how many transport connections you want to set up to the server. Signed-off-by: Trond Myklebust (cherry picked from commit 612b41f808a98a124b23d72229693c3181733291) Bugzilla=1683394