]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - include/linux/lockd/bind.h
Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm
[linux-2.6-omap-h63xx.git] / include / linux / lockd / bind.h
index aa50d89eacd77abb748ad7a892f20575b7c4b1bb..3d25bcd139d166b1173e4691ffa5670c2950cdb1 100644 (file)
@@ -23,19 +23,45 @@ struct svc_rqst;
  * This is the set of functions for lockd->nfsd communication
  */
 struct nlmsvc_binding {
-       u32                     (*fopen)(struct svc_rqst *,
+       __be32                  (*fopen)(struct svc_rqst *,
                                                struct nfs_fh *,
                                                struct file **);
        void                    (*fclose)(struct file *);
+       unsigned long           (*get_grace_period)(void);
 };
 
 extern struct nlmsvc_binding * nlmsvc_ops;
 
+/*
+ * Similar to nfs_client_initdata, but without the NFS-specific
+ * rpc_ops field.
+ */
+struct nlmclnt_initdata {
+       const char              *hostname;
+       const struct sockaddr   *address;
+       size_t                  addrlen;
+       unsigned short          protocol;
+       u32                     nfs_version;
+};
+
 /*
  * Functions exported by the lockd module
  */
-extern int     nlmclnt_proc(struct inode *, int, struct file_lock *);
+
+extern struct nlm_host *nlmclnt_init(const struct nlmclnt_initdata *nlm_init);
+extern void    nlmclnt_done(struct nlm_host *host);
+
+extern int     nlmclnt_proc(struct nlm_host *host, int cmd,
+                                       struct file_lock *fl);
 extern int     lockd_up(int proto);
 extern void    lockd_down(void);
 
+unsigned long get_nfs_grace_period(void);
+
+#ifdef CONFIG_NFSD_V4
+unsigned long get_nfs4_grace_period(void);
+#else
+static inline unsigned long get_nfs4_grace_period(void) {return 0;}
+#endif
+
 #endif /* LINUX_LOCKD_BIND_H */