mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-22 06:32:08 +00:00
[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
|
* Local NSM state
|
||||||
*/
|
*/
|
||||||
u32 nsm_local_state;
|
int nsm_local_state;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Common procedure for SM_MON/SM_UNMON calls
|
* Common procedure for SM_MON/SM_UNMON calls
|
||||||
|
|
|
@ -33,6 +33,7 @@
|
||||||
#include <linux/sunrpc/svcsock.h>
|
#include <linux/sunrpc/svcsock.h>
|
||||||
#include <net/ip.h>
|
#include <net/ip.h>
|
||||||
#include <linux/lockd/lockd.h>
|
#include <linux/lockd/lockd.h>
|
||||||
|
#include <linux/lockd/sm_inter.h>
|
||||||
#include <linux/nfs.h>
|
#include <linux/nfs.h>
|
||||||
|
|
||||||
#define NLMDBG_FACILITY NLMDBG_SVC
|
#define NLMDBG_FACILITY NLMDBG_SVC
|
||||||
|
@ -404,6 +405,14 @@ static ctl_table nlm_sysctls[] = {
|
||||||
.mode = 0644,
|
.mode = 0644,
|
||||||
.proc_handler = &proc_dointvec,
|
.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 }
|
{ .ctl_name = 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -42,6 +42,6 @@ struct nsm_res {
|
||||||
|
|
||||||
int nsm_monitor(struct nlm_host *);
|
int nsm_monitor(struct nlm_host *);
|
||||||
int nsm_unmonitor(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 */
|
#endif /* LINUX_LOCKD_SM_INTER_H */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue