[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>
This commit is contained in:
parent
39be4502cb
commit
460f5cac1e
3 changed files with 11 additions and 2 deletions
|
@ -24,7 +24,7 @@ static struct rpc_program nsm_program;
|
|||
/*
|
||||
* Local NSM state
|
||||
*/
|
||||
u32 nsm_local_state;
|
||||
int nsm_local_state;
|
||||
|
||||
/*
|
||||
* Common procedure for SM_MON/SM_UNMON calls
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
#include <linux/sunrpc/svcsock.h>
|
||||
#include <net/ip.h>
|
||||
#include <linux/lockd/lockd.h>
|
||||
#include <linux/lockd/sm_inter.h>
|
||||
#include <linux/nfs.h>
|
||||
|
||||
#define NLMDBG_FACILITY NLMDBG_SVC
|
||||
|
@ -404,6 +405,14 @@ static ctl_table nlm_sysctls[] = {
|
|||
.mode = 0644,
|
||||
.proc_handler = &proc_dointvec,
|
||||
},
|
||||
{
|
||||
.ctl_name = CTL_UNNUMBERED,
|
||||
.procname = "nsm_local_state",
|
||||
.data = &nsm_local_state,
|
||||
.maxlen = sizeof(int),
|
||||
.mode = 0644,
|
||||
.proc_handler = &proc_dointvec,
|
||||
},
|
||||
{ .ctl_name = 0 }
|
||||
};
|
||||
|
||||
|
|
|
@ -42,6 +42,6 @@ struct nsm_res {
|
|||
|
||||
int nsm_monitor(struct nlm_host *);
|
||||
int nsm_unmonitor(struct nlm_host *);
|
||||
extern u32 nsm_local_state;
|
||||
extern int nsm_local_state;
|
||||
|
||||
#endif /* LINUX_LOCKD_SM_INTER_H */
|
||||
|
|
Loading…
Reference in a new issue