diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2006-02-01 17:18:25 (GMT) |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2006-02-01 17:52:23 (GMT) |
commit | aaaa99423b4b1f9cfd33ea5643d9274c25f62491 (patch) | |
tree | dba6fb715156d9bc8fdf0ff57d9151e67fc1322c /include/linux | |
parent | 16fb24252a8170799e7adf14d8fc31b817fcaf53 (diff) | |
download | linux-fsl-qoriq-aaaa99423b4b1f9cfd33ea5643d9274c25f62491.tar.xz |
NLM: Ensure that nlmclnt_cancel_callback() doesn't loop forever
If the server returns NLM_LCK_DENIED_NOLOCKS, we currently retry the
entire NLM_CANCEL request. This may end up looping forever unless the
server changes its mind (why would it do that, though?).
Ensure that we limit the number of retries (to 3).
See bug# 5957 in bugzilla.kernel.org.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/lockd/lockd.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/lockd/lockd.h b/include/linux/lockd/lockd.h index afe9a8f..920766c 100644 --- a/include/linux/lockd/lockd.h +++ b/include/linux/lockd/lockd.h @@ -84,6 +84,7 @@ struct nlm_rqst { struct nlm_args a_args; /* arguments */ struct nlm_res a_res; /* result */ struct nlm_wait * a_block; + unsigned int a_retries; /* Retry count */ char a_owner[NLMCLNT_OHSIZE]; }; |