blob: adbddf007898d697b4789626d336d8b733a8788f [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/*
2 * include/linux/nfsd/const.h
3 *
4 * Various constants related to NFS.
5 *
6 * Copyright (C) 1995-1997 Olaf Kirch <okir@monad.swb.de>
7 */
8
9#ifndef _LINUX_NFSD_CONST_H
10#define _LINUX_NFSD_CONST_H
11
12#include <linux/nfs.h>
13#include <linux/nfs2.h>
14#include <linux/nfs3.h>
15#include <linux/nfs4.h>
Greg Banks7adae482006-10-04 02:15:47 -070016#include <linux/sunrpc/msg_prot.h>
Linus Torvalds1da177e2005-04-16 15:20:36 -070017
18/*
19 * Maximum protocol version supported by knfsd
20 */
21#define NFSSVC_MAXVERS 3
22
23/*
24 * Maximum blocksize supported by daemon currently at 32K
25 */
26#define NFSSVC_MAXBLKSIZE (32*1024)
Greg Banks7adae482006-10-04 02:15:47 -070027/* NFSv2 is limited by the protocol specification, see RFC 1094 */
28#define NFSSVC_MAXBLKSIZE_V2 (8*1024)
Linus Torvalds1da177e2005-04-16 15:20:36 -070029
30#ifdef __KERNEL__
31
32#ifndef NFS_SUPER_MAGIC
33# define NFS_SUPER_MAGIC 0x6969
34#endif
35
Greg Banks7adae482006-10-04 02:15:47 -070036/*
37 * Largest number of bytes we need to allocate for an NFS
38 * call or reply. Used to control buffer sizes. We use
39 * the length of v3 WRITE, READDIR and READDIR replies
40 * which are an RPC header, up to 26 XDR units of reply
41 * data, and some page data.
42 *
43 * Note that accuracy here doesn't matter too much as the
44 * size is rounded up to a page size when allocating space.
45 */
46#define NFSD_BUFSIZE ((RPC_MAX_HEADER_WITH_AUTH+26)*XDR_UNIT + NFSSVC_MAXBLKSIZE)
Linus Torvalds1da177e2005-04-16 15:20:36 -070047
48#ifdef CONFIG_NFSD_V4
49# define NFSSVC_XDRSIZE NFS4_SVC_XDRSIZE
50#elif defined(CONFIG_NFSD_V3)
51# define NFSSVC_XDRSIZE NFS3_SVC_XDRSIZE
52#else
53# define NFSSVC_XDRSIZE NFS2_SVC_XDRSIZE
54#endif
55
56#endif /* __KERNEL__ */
57
58#endif /* _LINUX_NFSD_CONST_H */