summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--support/include/nfs/nfs.h15
2 files changed, 20 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 5ea42f9..6287766 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
2003-07-03 NeilBrown <neilb@cse.unsw.edu.au>
+ * support/include/nfs/nfs.h: Make sure correct __kernel_dev_t is
+ used as the size was changed somewhere in 2.5.60-2.5.70. Without
+ this nfs-utils compiles against 2.6 headers will not work on a
+ 2.4 kernel.
+
+2003-07-03 NeilBrown <neilb@cse.unsw.edu.au>
+
* support/nfs/nfssvc.c(nfssvc): If /proc/fs/nfs/threads exists,
set number of threads by writing to there. This means it will
still work when the syscall interface goes away in 2.7.
diff --git a/support/include/nfs/nfs.h b/support/include/nfs/nfs.h
index 937c1be..c7fc42c 100644
--- a/support/include/nfs/nfs.h
+++ b/support/include/nfs/nfs.h
@@ -58,11 +58,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 <linux/version.h>
+#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 +94,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;
};