|
@@ -708,7 +708,13 @@ static void nlmclnt_unlock_callback(struct rpc_task *task, void *data)
|
|
|
|
|
|
if (task->tk_status < 0) {
|
|
if (task->tk_status < 0) {
|
|
dprintk("lockd: unlock failed (err = %d)\n", -task->tk_status);
|
|
dprintk("lockd: unlock failed (err = %d)\n", -task->tk_status);
|
|
- goto retry_rebind;
|
|
|
|
|
|
+ switch (task->tk_status) {
|
|
|
|
+ case -EACCES:
|
|
|
|
+ case -EIO:
|
|
|
|
+ goto die;
|
|
|
|
+ default:
|
|
|
|
+ goto retry_rebind;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
if (status == NLM_LCK_DENIED_GRACE_PERIOD) {
|
|
if (status == NLM_LCK_DENIED_GRACE_PERIOD) {
|
|
rpc_delay(task, NLMCLNT_GRACE_WAIT);
|
|
rpc_delay(task, NLMCLNT_GRACE_WAIT);
|