X-Git-Url: https://git.decadent.org.uk/gitweb/?p=nfs-utils.git;a=blobdiff_plain;f=support%2Finclude%2Fnfs%2Fnfs.h;h=2cf6857ba5ef8729a9da5486ebd588e8051bb0c3;hp=937c1be633eeabb65555dd86b5d12ce039a782e1;hb=fde2ae7794047a698feeaf17963d690a1e660a80;hpb=93a8e35ff8def529f41b82a13440f2e9b46d0dbd diff --git a/support/include/nfs/nfs.h b/support/include/nfs/nfs.h index 937c1be..2cf6857 100644 --- a/support/include/nfs/nfs.h +++ b/support/include/nfs/nfs.h @@ -10,6 +10,9 @@ #define NFS3_FHSIZE 64 #define NFS_FHSIZE 32 +#define NFSD_MINVERS 2 +#define NFSD_MAXVERS 4 + struct nfs_fh_len { int fh_size; u_int8_t fh_handle[NFS3_FHSIZE]; @@ -40,7 +43,11 @@ struct nfs_fh_old { #define NFSCTL_LOCKD 0x10000 #define LOCKDCTL_SVC NFSCTL_LOCKD +#define NFSCTL_VERUNSET(_cltbits, _v) ((_cltbits) &= ~(1 << ((_v) - 1))) + +#define NFSCTL_VERISSET(_cltbits, _v) ((_cltbits) & (1 << ((_v) - 1))) +#define NFSCTL_ALLBITS (~0) /* SVC */ struct nfsctl_svc { @@ -58,11 +65,22 @@ struct nfsctl_client { unsigned char cl_fhkey[NFSCLNT_KEYMAX]; }; +/* IN 2.5.6? __kernel_dev_t changed size, and __kernel_old_dev_t was left + * with the old value. We need to make sure we use the right one. + * + */ +#include +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,70) +# define __nfsd_dev_t __kernel_old_dev_t +#else +# define __nfsd_dev_t __kernel_dev_t +#endif + /* EXPORT/UNEXPORT */ struct nfsctl_export { char ex_client[NFSCLNT_IDMAX+1]; char ex_path[NFS_MAXPATHLEN+1]; - __kernel_dev_t ex_dev; + __nfsd_dev_t ex_dev; __kernel_ino_t ex_ino; int ex_flags; __kernel_uid_t ex_anon_uid; @@ -83,7 +101,7 @@ struct nfsctl_uidmap { /* GETFH */ struct nfsctl_fhparm { struct sockaddr gf_addr; - __kernel_dev_t gf_dev; + __nfsd_dev_t gf_dev; __kernel_ino_t gf_ino; int gf_version; };