make nlmclnt_next_cookie SMP safe
Subsystems (2)
PATCH 16/22 make nlmclnt_next_cookie SMP safe
From: Olaf Kirch <[email protected]>
Subject: [lockd] make nlmclnt_next_cookie SMP safe
The way we incremented the NLM cookie in nlmclnt_next_cookie was not thread safe. This patch changes the counter to an atomic_t
Signed-off-by Olaf Kirch <[email protected]>
fs/lockd/clntproc.c | 10 +++++----- include/linux/lockd/lockd.h | 3 ++- 2 files changed, 7 insertions(+), 6 deletions(-)
fs/lockd/clntproc.c +5 -5
@@ -36,14 +36,14 @@ static const struct rpc_call_ops nlmclnt/* * Cookie counter for NLM requests */ -static u32 nlm_cookie =0x1234 ; +static atomic_t nlm_cookie =ATOMIC_INIT (0x1234 ); -static inline void nlmclnt_next_cookie (struct nlm_cookie *c) +void nlmclnt_next_cookie (struct nlm_cookie *c) { -memcpy (c->data, &nlm_cookie,4 ); -memset (c->data+4 ,0 ,4 ); +u32 cookie =atomic_inc_return (&nlm_cookie); + +memcpy (c->data, &cookie,4 ); c->len=4 ; - nlm_cookie++; }static struct nlm_lockowner *nlm_get_lockowner (struct nlm_lockowner *lockowner)
include/linux/lockd/lockd.h +1 -0
@@ -159,6 +159,7 @@ int nlmclnt_block(struct nlm_wait *blu32 nlmclnt_grant (const struct sockaddr_in *addr,const struct nlm_lock *);void nlmclnt_recovery (struct nlm_host *);int nlmclnt_reclaim (struct nlm_host *,struct file_lock *); +void nlmclnt_next_cookie (struct nlm_cookie *);/* * Host cache
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
NFS maillist - [email protected]
https://lists.sourceforge.net/lists/listinfo/nfs