|
@@ -11,13 +11,39 @@
|
|
#include <linux/types.h>
|
|
#include <linux/types.h>
|
|
#include <linux/mount.h>
|
|
#include <linux/mount.h>
|
|
|
|
|
|
|
|
+#include <linux/nfs.h>
|
|
|
|
+#include <linux/nfs2.h>
|
|
|
|
+#include <linux/nfs3.h>
|
|
|
|
+#include <linux/nfs4.h>
|
|
|
|
+#include <linux/sunrpc/msg_prot.h>
|
|
|
|
+
|
|
#include <linux/nfsd/debug.h>
|
|
#include <linux/nfsd/debug.h>
|
|
#include <linux/nfsd/export.h>
|
|
#include <linux/nfsd/export.h>
|
|
#include <linux/nfsd/stats.h>
|
|
#include <linux/nfsd/stats.h>
|
|
|
|
+
|
|
/*
|
|
/*
|
|
* nfsd version
|
|
* nfsd version
|
|
*/
|
|
*/
|
|
#define NFSD_SUPPORTED_MINOR_VERSION 1
|
|
#define NFSD_SUPPORTED_MINOR_VERSION 1
|
|
|
|
+/*
|
|
|
|
+ * Maximum blocksizes supported by daemon under various circumstances.
|
|
|
|
+ */
|
|
|
|
+#define NFSSVC_MAXBLKSIZE RPCSVC_MAXPAYLOAD
|
|
|
|
+/* NFSv2 is limited by the protocol specification, see RFC 1094 */
|
|
|
|
+#define NFSSVC_MAXBLKSIZE_V2 (8*1024)
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+/*
|
|
|
|
+ * Largest number of bytes we need to allocate for an NFS
|
|
|
|
+ * call or reply. Used to control buffer sizes. We use
|
|
|
|
+ * the length of v3 WRITE, READDIR and READDIR replies
|
|
|
|
+ * which are an RPC header, up to 26 XDR units of reply
|
|
|
|
+ * data, and some page data.
|
|
|
|
+ *
|
|
|
|
+ * Note that accuracy here doesn't matter too much as the
|
|
|
|
+ * size is rounded up to a page size when allocating space.
|
|
|
|
+ */
|
|
|
|
+#define NFSD_BUFSIZE ((RPC_MAX_HEADER_WITH_AUTH+26)*XDR_UNIT + NFSSVC_MAXBLKSIZE)
|
|
|
|
|
|
struct readdir_cd {
|
|
struct readdir_cd {
|
|
__be32 err; /* 0, nfserr, or nfserr_eof */
|
|
__be32 err; /* 0, nfserr, or nfserr_eof */
|