From: Olga Kornievskaia <kolga@xxxxxxxxxx> When a transport gets stuck, it is desired to be able to move the tasks that have been stuck/queued on that transport to another. This patch series attempts to do so. First patch, takes a transport and marks it offline so that no more tasks are queued on it. Second, we identify which tasks are able to be re-tried on a different transport (only 4.1+). Lastly, once the transport is deemed bad and in need of a removal, it's marked to be removed. Any tasks that are stuck there will now release the transport and try picking a different one. This transport will be removed from the list of xprts. First transport with which the RPC client was created is considered the main transport and can't be taken offline or removed. Olga Kornievskaia (3): sunrpc: take a xprt offline using sysfs NFSv4.1 identify and mark RPC tasks that can move between transports sunrpc: remove an offlined xprt using sysfs fs/nfs/nfs4proc.c | 38 ++++++++++++++++++++++---- fs/nfs/pagelist.c | 8 ++++-- fs/nfs/write.c | 6 ++++- include/linux/sunrpc/sched.h | 2 ++ include/linux/sunrpc/xprt.h | 3 +++ net/sunrpc/clnt.c | 21 +++++++++++++++ net/sunrpc/sysfs.c | 52 +++++++++++++++++++++++++++++++++--- net/sunrpc/xprtmultipath.c | 3 ++- 8 files changed, 120 insertions(+), 13 deletions(-) -- 2.27.0