summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/lockd/clntproc.c8
-rw-r--r--fs/lockd/svcproc.c2
-rw-r--r--include/linux/lockd/lockd.h2
3 files changed, 6 insertions, 6 deletions
diff --git a/fs/lockd/clntproc.c b/fs/lockd/clntproc.c
index 112173dbea76..a2c0dfc6fdc0 100644
--- a/fs/lockd/clntproc.c
+++ b/fs/lockd/clntproc.c
@@ -204,7 +204,7 @@ struct nlm_rqst *nlm_alloc_call(struct nlm_host *host)
204 for(;;) { 204 for(;;) {
205 call = kzalloc(sizeof(*call), GFP_KERNEL); 205 call = kzalloc(sizeof(*call), GFP_KERNEL);
206 if (call != NULL) { 206 if (call != NULL) {
207 atomic_set(&call->a_count, 1); 207 refcount_set(&call->a_count, 1);
208 locks_init_lock(&call->a_args.lock.fl); 208 locks_init_lock(&call->a_args.lock.fl);
209 locks_init_lock(&call->a_res.lock.fl); 209 locks_init_lock(&call->a_res.lock.fl);
210 call->a_host = nlm_get_host(host); 210 call->a_host = nlm_get_host(host);
@@ -222,7 +222,7 @@ void nlmclnt_release_call(struct nlm_rqst *call)
222{ 222{
223 const struct nlmclnt_operations *nlmclnt_ops = call->a_host->h_nlmclnt_ops; 223 const struct nlmclnt_operations *nlmclnt_ops = call->a_host->h_nlmclnt_ops;
224 224
225 if (!atomic_dec_and_test(&call->a_count)) 225 if (!refcount_dec_and_test(&call->a_count))
226 return; 226 return;
227 if (nlmclnt_ops && nlmclnt_ops->nlmclnt_release_call) 227 if (nlmclnt_ops && nlmclnt_ops->nlmclnt_release_call)
228 nlmclnt_ops->nlmclnt_release_call(call->a_callback_data); 228 nlmclnt_ops->nlmclnt_release_call(call->a_callback_data);
@@ -678,7 +678,7 @@ nlmclnt_unlock(struct nlm_rqst *req, struct file_lock *fl)
678 goto out; 678 goto out;
679 } 679 }
680 680
681 atomic_inc(&req->a_count); 681 refcount_inc(&req->a_count);
682 status = nlmclnt_async_call(nfs_file_cred(fl->fl_file), req, 682 status = nlmclnt_async_call(nfs_file_cred(fl->fl_file), req,
683 NLMPROC_UNLOCK, &nlmclnt_unlock_ops); 683 NLMPROC_UNLOCK, &nlmclnt_unlock_ops);
684 if (status < 0) 684 if (status < 0)
@@ -769,7 +769,7 @@ static int nlmclnt_cancel(struct nlm_host *host, int block, struct file_lock *fl
769 nlmclnt_setlockargs(req, fl); 769 nlmclnt_setlockargs(req, fl);
770 req->a_args.block = block; 770 req->a_args.block = block;
771 771
772 atomic_inc(&req->a_count); 772 refcount_inc(&req->a_count);
773 status = nlmclnt_async_call(nfs_file_cred(fl->fl_file), req, 773 status = nlmclnt_async_call(nfs_file_cred(fl->fl_file), req,
774 NLMPROC_CANCEL, &nlmclnt_cancel_ops); 774 NLMPROC_CANCEL, &nlmclnt_cancel_ops);
775 if (status == 0 && req->a_res.status == nlm_lck_denied) 775 if (status == 0 && req->a_res.status == nlm_lck_denied)
diff --git a/fs/lockd/svcproc.c b/fs/lockd/svcproc.c
index 0d670c5c378f..ea77c66d3cc3 100644
--- a/fs/lockd/svcproc.c
+++ b/fs/lockd/svcproc.c
@@ -295,7 +295,7 @@ static void nlmsvc_callback_exit(struct rpc_task *task, void *data)
295 295
296void nlmsvc_release_call(struct nlm_rqst *call) 296void nlmsvc_release_call(struct nlm_rqst *call)
297{ 297{
298 if (!atomic_dec_and_test(&call->a_count)) 298 if (!refcount_dec_and_test(&call->a_count))
299 return; 299 return;
300 nlmsvc_release_host(call->a_host); 300 nlmsvc_release_host(call->a_host);
301 kfree(call); 301 kfree(call);
diff --git a/include/linux/lockd/lockd.h b/include/linux/lockd/lockd.h
index 86d012a76862..4fd95dbeb52f 100644
--- a/include/linux/lockd/lockd.h
+++ b/include/linux/lockd/lockd.h
@@ -137,7 +137,7 @@ struct nlm_wait;
137 */ 137 */
138#define NLMCLNT_OHSIZE ((__NEW_UTS_LEN) + 10u) 138#define NLMCLNT_OHSIZE ((__NEW_UTS_LEN) + 10u)
139struct nlm_rqst { 139struct nlm_rqst {
140 atomic_t a_count; 140 refcount_t a_count;
141 unsigned int a_flags; /* initial RPC task flags */ 141 unsigned int a_flags; /* initial RPC task flags */
142 struct nlm_host * a_host; /* host handle */ 142 struct nlm_host * a_host; /* host handle */
143 struct nlm_args a_args; /* arguments */ 143 struct nlm_args a_args; /* arguments */