diff options
author | Olaf Kirch <okir@suse.de> | 2006-10-04 05:16:03 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-04 10:55:18 -0400 |
commit | 460f5cac1e24e947509b6112c99c5bc9ff687b45 (patch) | |
tree | 135d63c8401c79513dd43efdd2faeae51b87c5dc | |
parent | 39be4502cb75dc26007fe1659735b26c8e63fcc6 (diff) |
[PATCH] knfsd: export nsm_local_state to user space via sysctl
Every NLM call includes the client's NSM state. Currently, the Linux client
always reports 0 - which seems not to cause any problems, but is not what the
protocol says.
This patch exposes the kernel's internal variable to user space via a sysctl,
which can be set at system boot time by statd.
Signed-off-by: Olaf Kirch <okir@suse.de>
Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r-- | fs/lockd/mon.c | 2 | ||||
-rw-r--r-- | fs/lockd/svc.c | 9 | ||||
-rw-r--r-- | include/linux/lockd/sm_inter.h | 2 |
3 files changed, 11 insertions, 2 deletions
diff --git a/fs/lockd/mon.c b/fs/lockd/mon.c index 709cf7c80545..e0179f8c327f 100644 --- a/fs/lockd/mon.c +++ b/fs/lockd/mon.c | |||
@@ -24,7 +24,7 @@ static struct rpc_program nsm_program; | |||
24 | /* | 24 | /* |
25 | * Local NSM state | 25 | * Local NSM state |
26 | */ | 26 | */ |
27 | u32 nsm_local_state; | 27 | int nsm_local_state; |
28 | 28 | ||
29 | /* | 29 | /* |
30 | * Common procedure for SM_MON/SM_UNMON calls | 30 | * Common procedure for SM_MON/SM_UNMON calls |
diff --git a/fs/lockd/svc.c b/fs/lockd/svc.c index a3b7602cd383..634139232aaf 100644 --- a/fs/lockd/svc.c +++ b/fs/lockd/svc.c | |||
@@ -33,6 +33,7 @@ | |||
33 | #include <linux/sunrpc/svcsock.h> | 33 | #include <linux/sunrpc/svcsock.h> |
34 | #include <net/ip.h> | 34 | #include <net/ip.h> |
35 | #include <linux/lockd/lockd.h> | 35 | #include <linux/lockd/lockd.h> |
36 | #include <linux/lockd/sm_inter.h> | ||
36 | #include <linux/nfs.h> | 37 | #include <linux/nfs.h> |
37 | 38 | ||
38 | #define NLMDBG_FACILITY NLMDBG_SVC | 39 | #define NLMDBG_FACILITY NLMDBG_SVC |
@@ -404,6 +405,14 @@ static ctl_table nlm_sysctls[] = { | |||
404 | .mode = 0644, | 405 | .mode = 0644, |
405 | .proc_handler = &proc_dointvec, | 406 | .proc_handler = &proc_dointvec, |
406 | }, | 407 | }, |
408 | { | ||
409 | .ctl_name = CTL_UNNUMBERED, | ||
410 | .procname = "nsm_local_state", | ||
411 | .data = &nsm_local_state, | ||
412 | .maxlen = sizeof(int), | ||
413 | .mode = 0644, | ||
414 | .proc_handler = &proc_dointvec, | ||
415 | }, | ||
407 | { .ctl_name = 0 } | 416 | { .ctl_name = 0 } |
408 | }; | 417 | }; |
409 | 418 | ||
diff --git a/include/linux/lockd/sm_inter.h b/include/linux/lockd/sm_inter.h index daef509bb9b3..fc61d40964da 100644 --- a/include/linux/lockd/sm_inter.h +++ b/include/linux/lockd/sm_inter.h | |||
@@ -42,6 +42,6 @@ struct nsm_res { | |||
42 | 42 | ||
43 | int nsm_monitor(struct nlm_host *); | 43 | int nsm_monitor(struct nlm_host *); |
44 | int nsm_unmonitor(struct nlm_host *); | 44 | int nsm_unmonitor(struct nlm_host *); |
45 | extern u32 nsm_local_state; | 45 | extern int nsm_local_state; |
46 | 46 | ||
47 | #endif /* LINUX_LOCKD_SM_INTER_H */ | 47 | #endif /* LINUX_LOCKD_SM_INTER_H */ |