REPOST patch 36/38: SERVER: ensure XDR buffer is large enough for NFSv4

From: Kendrick M. Smith (kmsmith@umich.edu)
Date: Wed Aug 14 2002 - 15:54:04 EST


This patch changes the 'xdrsize' parameter to svc_create(), to be
     NFS4_SVC_XDRSIZE if v4 is defined
else NFS3_SVC_XDRSIZE if v3 is defined
else NFS2_SVC_XDRSIZE (formerly NFSSVC_XDRSIZE)

This always works, since
     NFS4_SVC_XDRSIZE >= NFS3_SVC_XDRSIZE >= NFS2_SVC_XDRSIZE.

The value of NFSD_BUFSIZE has also been moved to const.h, since we need
the definition available in nfs4proc.c
--- old/fs/nfsd/nfssvc.c Thu Aug 1 16:16:02 2002
+++ new/fs/nfsd/nfssvc.c Sun Aug 11 23:15:09 2002
@@ -31,10 +31,11 @@
 #include <linux/nfsd/stats.h>
 #include <linux/nfsd/cache.h>
 #include <linux/nfsd/xdr.h>
+#include <linux/nfsd/xdr3.h>
+#include <linux/nfsd/xdr4.h>
 #include <linux/lockd/bind.h>

 #define NFSDDBG_FACILITY NFSDDBG_SVC
-#define NFSD_BUFSIZE (1024 + NFSSVC_MAXBLKSIZE)

 /* these signals will be delivered to an nfsd thread
  * when handling a request
--- old/include/linux/nfsd/const.h Sun Aug 11 19:20:54 2002
+++ new/include/linux/nfsd/const.h Sun Aug 11 23:15:09 2002
@@ -30,6 +30,16 @@
 # define NFS_SUPER_MAGIC 0x6969
 #endif

+#define NFSD_BUFSIZE (1024 + NFSSVC_MAXBLKSIZE)
+
+#ifdef CONFIG_NFSD_V4
+# define NFSSVC_XDRSIZE NFS4_SVC_XDRSIZE
+#elif defined(CONFIG_NFSD_V3)
+# define NFSSVC_XDRSIZE NFS3_SVC_XDRSIZE
+#else
+# define NFSSVC_XDRSIZE NFS2_SVC_XDRSIZE
+#endif
+
 #endif /* __KERNEL__ */

 #endif /* _LINUX_NFSD_CONST_H */
--- old/include/linux/nfsd/xdr.h Thu Aug 1 16:16:33 2002
+++ new/include/linux/nfsd/xdr.h Sun Aug 11 23:15:09 2002
@@ -119,7 +119,7 @@ union nfsd_xdrstore {
         struct nfsd_readdirargs readdir;
 };

-#define NFSSVC_XDRSIZE sizeof(union nfsd_xdrstore)
+#define NFS2_SVC_XDRSIZE sizeof(union nfsd_xdrstore)

 int nfssvc_decode_void(struct svc_rqst *, u32 *, void *);

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Aug 15 2002 - 22:00:37 EST