Skip to content

Commit

Permalink
[PATCH] knfsd: export nsm_local_state to user space via sysctl
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Olaf Kirch authored and Linus Torvalds committed Oct 4, 2006
1 parent 39be450 commit 460f5ca
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 2 deletions.
2 changes: 1 addition & 1 deletion fs/lockd/mon.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
9 changes: 9 additions & 0 deletions fs/lockd/svc.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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 }
};

Expand Down
2 changes: 1 addition & 1 deletion include/linux/lockd/sm_inter.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 */

0 comments on commit 460f5ca

Please sign in to comment.