]> git.baikalelectronics.ru Git - kernel.git/commitdiff
NFS: restore module put when manager exits.
authorNeilBrown <neilb@suse.de>
Thu, 23 Jun 2022 04:47:34 +0000 (14:47 +1000)
committerAnna Schumaker <Anna.Schumaker@Netapp.com>
Thu, 30 Jun 2022 20:13:00 +0000 (16:13 -0400)
Commit f0f8648589e6 ("NFSD: Remove svc_serv_ops::svo_module") removed
calls to module_put_and_kthread_exit() from threads that acted as SUNRPC
servers and had a related svc_serv_ops structure.  This was correct.

It ALSO removed the module_put_and_kthread_exit() call from
nfs4_run_state_manager() which is NOT a SUNRPC service.

Consequently every time the NFSv4 state manager runs the module count
increments and won't be decremented.  So the nfsv4 module cannot be
unloaded.

So restore the module_put_and_kthread_exit() call.

Fixes: f0f8648589e6 ("NFSD: Remove svc_serv_ops::svo_module")
Signed-off-by: NeilBrown <neilb@suse.de>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
fs/nfs/nfs4state.c

index 2540b35ec1870793d067dd915f4d37c834c0b7a9..9bab3e9c702a47153703c7f7ae62176fed75fe6f 100644 (file)
@@ -2753,5 +2753,6 @@ again:
                goto again;
 
        nfs_put_client(clp);
+       module_put_and_kthread_exit(0);
        return 0;
 }