Skip to content

Commit 691d0b7

Browse files
daimngoamschuma-ntap
authored andcommitted
SUNRPC: remove the maximum number of retries in call_bind_status
Currently call_bind_status places a hard limit of 3 to the number of retries on EACCES error. This limit was done to prevent NLM unlock requests from being hang forever when the server keeps returning garbage. However this change causes problem for cases when NLM service takes longer than 9 seconds to register with the port mapper after a restart. This patch removes this hard coded limit and let the RPC handles the retry based on the standard hard/soft task semantics. Fixes: 0b76011 ("NLM: Don't hang forever on NLM unlock requests") Reported-by: Helen Chao <helen.chao@oracle.com> Tested-by: Helen Chao <helen.chao@oracle.com> Signed-off-by: Dai Ngo <dai.ngo@oracle.com> Reviewed-by: Jeff Layton <jlayton@kernel.org> Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
1 parent ec108d3 commit 691d0b7

3 files changed

Lines changed: 1 addition & 6 deletions

File tree

include/linux/sunrpc/sched.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,7 @@ struct rpc_task {
9090
#endif
9191
unsigned char tk_priority : 2,/* Task priority */
9292
tk_garb_retry : 2,
93-
tk_cred_retry : 2,
94-
tk_rebind_retry : 2;
93+
tk_cred_retry : 2;
9594
};
9695

9796
typedef void (*rpc_action)(struct rpc_task *);

net/sunrpc/clnt.c

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2050,9 +2050,6 @@ call_bind_status(struct rpc_task *task)
20502050
status = -EOPNOTSUPP;
20512051
break;
20522052
}
2053-
if (task->tk_rebind_retry == 0)
2054-
break;
2055-
task->tk_rebind_retry--;
20562053
rpc_delay(task, 3*HZ);
20572054
goto retry_timeout;
20582055
case -ENOBUFS:

net/sunrpc/sched.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -817,7 +817,6 @@ rpc_init_task_statistics(struct rpc_task *task)
817817
/* Initialize retry counters */
818818
task->tk_garb_retry = 2;
819819
task->tk_cred_retry = 2;
820-
task->tk_rebind_retry = 2;
821820

822821
/* starting timestamp */
823822
task->tk_start = ktime_get();

0 commit comments

Comments
 (0)