Skip to content

Commit b4e4f66

Browse files
author
Trond Myklebust
committed
NFSv4.x: Fail client initialisation if state manager thread can't run
If the state manager thread fails to start, then we should just mark the client initialisation as failed so that other processes or threads don't get stuck in nfs_wait_client_init_complete(). Reported-by: ChenXiaoSong <chenxiaosong2@huawei.com> Fixes: 4697bd5 ("NFSv4: Fix a race in the net namespace mount notification") Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
1 parent 19cdc8f commit b4e4f66

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

fs/nfs/nfs4state.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1230,6 +1230,8 @@ void nfs4_schedule_state_manager(struct nfs_client *clp)
12301230
if (IS_ERR(task)) {
12311231
printk(KERN_ERR "%s: kthread_run: %ld\n",
12321232
__func__, PTR_ERR(task));
1233+
if (!nfs_client_init_is_complete(clp))
1234+
nfs_mark_client_ready(clp, PTR_ERR(task));
12331235
nfs4_clear_state_manager_bit(clp);
12341236
clear_bit(NFS4CLNT_MANAGER_AVAILABLE, &clp->cl_state);
12351237
nfs_put_client(clp);

0 commit comments

Comments
 (0)