From: Neil Brown (32 bit dev_t changes the size of data structures which are passed to/from userspace and breaks knfsd exports) I think it is completely safe to change __kernel_dev_t ex_dev; to u16 ex_dev; in nfsd/syscall.h. That field is not actually used to hold a device number any more (ex_path contains all the needed info). The other __kernel_dev_t in syscall.h, in nfsctl_fhparm can be discarded along with the who structure. It is an interface that has not been used for ages and is not implemented in 2.5. include/linux/nfsd/syscall.h | 14 ++------------ 1 files changed, 2 insertions(+), 12 deletions(-) diff -puN include/linux/nfsd/syscall.h~nfsd-32-bit-dev_t-fixes include/linux/nfsd/syscall.h --- 25/include/linux/nfsd/syscall.h~nfsd-32-bit-dev_t-fixes 2003-03-23 01:14:54.000000000 -0800 +++ 25-akpm/include/linux/nfsd/syscall.h 2003-03-23 01:14:54.000000000 -0800 @@ -35,7 +35,7 @@ #define NFSCTL_EXPORT 3 /* export a file system. */ #define NFSCTL_UNEXPORT 4 /* unexport a file system. */ #define NFSCTL_UGIDUPDATE 5 /* update a client's uid/gid map. */ -#define NFSCTL_GETFH 6 /* get an fh by ino (used by mountd) */ +#define NFSCTL_GETFH 6 /* get an fh by ino DISCARDED */ #define NFSCTL_GETFD 7 /* get an fh by path (used by mountd) */ #define NFSCTL_GETFS 8 /* get an fh by path with max FH len */ @@ -59,7 +59,7 @@ struct nfsctl_client { struct nfsctl_export { char ex_client[NFSCLNT_IDMAX+1]; char ex_path[NFS_MAXPATHLEN+1]; - __kernel_dev_t ex_dev; + u16 ex_dev; __kernel_ino_t ex_ino; int ex_flags; __kernel_uid_t ex_anon_uid; @@ -77,14 +77,6 @@ struct nfsctl_uidmap { __kernel_gid_t * ug_gdimap; }; -/* GETFH */ -struct nfsctl_fhparm { - struct sockaddr gf_addr; - __kernel_dev_t gf_dev; - __kernel_ino_t gf_ino; - int gf_version; -}; - /* GETFD */ struct nfsctl_fdparm { struct sockaddr gd_addr; @@ -109,7 +101,6 @@ struct nfsctl_arg { struct nfsctl_client u_client; struct nfsctl_export u_export; struct nfsctl_uidmap u_umap; - struct nfsctl_fhparm u_getfh; struct nfsctl_fdparm u_getfd; struct nfsctl_fsparm u_getfs; } u; @@ -117,7 +108,6 @@ struct nfsctl_arg { #define ca_client u.u_client #define ca_export u.u_export #define ca_umap u.u_umap -#define ca_getfh u.u_getfh #define ca_getfd u.u_getfd #define ca_getfs u.u_getfs #define ca_authd u.u_authd _