1 /*
2  * linux/include/linux/lockd/bind.h
3  *
4  * This is the part of lockd visible to nfsd and the nfs client.
5  *
6  * Copyright (C) 1996, Olaf Kirch <okir@monad.swb.de>
7  */
8 
9 #ifndef LINUX_LOCKD_BIND_H
10 #define LINUX_LOCKD_BIND_H
11 
12 #include <linux/lockd/nlm.h>
13 
14 /* Dummy declarations */
15 struct svc_rqst;
16 struct svc_client;		/* opaque type */
17 
18 /*
19  * This is the set of functions for lockd->nfsd communication
20  */
21 struct nlmsvc_binding {
22 	void			(*exp_readlock)(void);
23 	void			(*exp_unlock)(void);
24 	struct svc_client *	(*exp_getclient)(struct sockaddr_in *);
25 	u32			(*fopen)(struct svc_rqst *,
26 						struct nfs_fh *,
27 						struct file *);
28 	void			(*fclose)(struct file *);
29 	void			(*detach)(void);
30 };
31 
32 extern struct nlmsvc_binding *	nlmsvc_ops;
33 
34 /*
35  * Functions exported by the lockd module
36  */
37 extern void	nlmsvc_invalidate_client(struct svc_client *clnt);
38 extern int	nlmclnt_proc(struct inode *, int, struct file_lock *);
39 extern int	lockd_up(void);
40 extern void	lockd_down(void);
41 
42 #endif /* LINUX_LOCKD_BIND_H */
43