]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/blobdiff - net/sunrpc/xprt.c
SUNRPC: Prevent immediate close+reconnect
[mirror_ubuntu-jammy-kernel.git] / net / sunrpc / xprt.c
index f5dff09154da78de75cda890fa7cb5c2f755e7a9..e4adb780b69e86fa1dceb87ad8562e6d55384ba7 100644 (file)
@@ -767,7 +767,8 @@ EXPORT_SYMBOL_GPL(xprt_disconnect_done);
  */
 static void xprt_schedule_autoclose_locked(struct rpc_xprt *xprt)
 {
-       set_bit(XPRT_CLOSE_WAIT, &xprt->state);
+       if (test_and_set_bit(XPRT_CLOSE_WAIT, &xprt->state))
+               return;
        if (test_and_set_bit(XPRT_LOCKED, &xprt->state) == 0)
                queue_work(xprtiod_workqueue, &xprt->task_cleanup);
        else if (xprt->snd_task && !test_bit(XPRT_SND_IS_COOKIE, &xprt->state))