Skip to content

Commit dd9adfa

Browse files
committed
NFS: Remove rpcbind cleanup for NFSv4.0 callback
The NFS client's NFSv4.0 callback listeners are created with SVC_SOCK_ANONYMOUS, therefore svc_setup_socket() does not register them with the client's rpcbind service. And, note that nfs_callback_down_net() does not call svc_rpcb_cleanup() at all when shutting down the callback server. Even if svc_setup_socket() were to attempt to register or unregister these sockets, the callback service has vs_hidden set, which shunts the rpcbind upcalls. The svc_rpcb_cleanup() error flow was introduced by commit c946556 ("NFS: move per-net callback thread initialization to nfs_callback_up_net()"). It doesn't appear in the code that was relocated by that commit. Therefore, there is no need to call svc_rpcb_cleanup() when listener creation fails during callback server start-up. Signed-off-by: Chuck Lever <[email protected]>
1 parent 898374f commit dd9adfa

File tree

1 file changed

+3
-5
lines changed

1 file changed

+3
-5
lines changed

fs/nfs/callback.c

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ static int nfs_callback_up_net(int minorversion, struct svc_serv *serv,
153153
ret = svc_bind(serv, net);
154154
if (ret < 0) {
155155
printk(KERN_WARNING "NFS: bind callback service failed\n");
156-
goto err_bind;
156+
goto err;
157157
}
158158

159159
ret = 0;
@@ -166,13 +166,11 @@ static int nfs_callback_up_net(int minorversion, struct svc_serv *serv,
166166

167167
if (ret < 0) {
168168
printk(KERN_ERR "NFS: callback service start failed\n");
169-
goto err_socks;
169+
goto err;
170170
}
171171
return 0;
172172

173-
err_socks:
174-
svc_rpcb_cleanup(serv, net);
175-
err_bind:
173+
err:
176174
nn->cb_users[minorversion]--;
177175
dprintk("NFS: Couldn't create callback socket: err = %d; "
178176
"net = %x\n", ret, net->ns.inum);

0 commit comments

Comments
 (0)