11da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef _LINUX_NFS_MOUNT_H
21da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define _LINUX_NFS_MOUNT_H
31da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
41da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/*
51da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *  linux/include/linux/nfs_mount.h
61da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *
71da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *  Copyright (C) 1992  Rick Sladkey
81da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *
91da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *  structure passed from user-space to kernel-space during an nfs mount
101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */
111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <linux/in.h>
121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <linux/nfs.h>
131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <linux/nfs2.h>
141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include <linux/nfs3.h>
151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/*
171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * WARNING!  Do not delete or change the order of these fields.  If
181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * a new field is required then add it to the end.  The version field
191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * tracks which fields are present.  This will ensure some measure of
201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * mount-to-kernel version compatibility.  Some of these aren't used yet
211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * but here they are anyway.
221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */
231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define NFS_MOUNT_VERSION	6
241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define NFS_MAX_CONTEXT_LEN	256
251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct nfs_mount_data {
271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	int		version;		/* 1 */
281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	int		fd;			/* 1 */
291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	struct nfs2_fh	old_root;		/* 1 */
301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	int		flags;			/* 1 */
311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	int		rsize;			/* 1 */
321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	int		wsize;			/* 1 */
331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	int		timeo;			/* 1 */
341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	int		retrans;		/* 1 */
351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	int		acregmin;		/* 1 */
361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	int		acregmax;		/* 1 */
371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	int		acdirmin;		/* 1 */
381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	int		acdirmax;		/* 1 */
391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	struct sockaddr_in addr;		/* 1 */
405680d48be88d12cd987e5579a6072a4ca34ca6eaChuck Lever	char		hostname[NFS_MAXNAMLEN + 1];		/* 1 */
411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	int		namlen;			/* 2 */
421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	unsigned int	bsize;			/* 3 */
431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	struct nfs3_fh	root;			/* 4 */
441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	int		pseudoflavor;		/* 5 */
451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds	char		context[NFS_MAX_CONTEXT_LEN + 1];	/* 6 */
461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds};
471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
48d740351bf0960e89ce1aef45cfe00167cb0f9e5bChuck Lever/* bits in the flags field visible to user space */
491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define NFS_MOUNT_SOFT		0x0001	/* 1 */
51150030b78a454ba50d5e267b0dcf01b162809192Matthew Wilcox#define NFS_MOUNT_INTR		0x0002	/* 1 */ /* now unused, but ABI */
521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define NFS_MOUNT_SECURE	0x0004	/* 1 */
531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define NFS_MOUNT_POSIX		0x0008	/* 1 */
541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define NFS_MOUNT_NOCTO		0x0010	/* 1 */
551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define NFS_MOUNT_NOAC		0x0020	/* 1 */
561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define NFS_MOUNT_TCP		0x0040	/* 2 */
571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define NFS_MOUNT_VER3		0x0080	/* 3 */
581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define NFS_MOUNT_KERBEROS	0x0100	/* 3 */
591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define NFS_MOUNT_NONLM		0x0200	/* 3 */
601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define NFS_MOUNT_BROKEN_SUID	0x0400	/* 4 */
61b7fa0554cf1ba6d6895cd0a5b02989a26e0bc704Andreas Gruenbacher#define NFS_MOUNT_NOACL		0x0800	/* 4 */
621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define NFS_MOUNT_STRICTLOCK	0x1000	/* reserved for NFSv4 */
631da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define NFS_MOUNT_SECFLAVOUR	0x2000	/* 5 */
6474dd34e6e8bb127ff4c182423154b294729b663bSteve Dickson#define NFS_MOUNT_NORDIRPLUS	0x4000	/* 5 */
6575180df2ed467866ada839fe73cf7cc7d75c0a22Trond Myklebust#define NFS_MOUNT_UNSHARED	0x8000	/* 5 */
661da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define NFS_MOUNT_FLAGMASK	0xFFFF
671da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
684eec952e42314b53e48fef1f54dd89cbf9789734Trond Myklebust/* The following are for internal use only */
694eec952e42314b53e48fef1f54dd89cbf9789734Trond Myklebust#define NFS_MOUNT_LOOKUP_CACHE_NONEG	0x10000
704eec952e42314b53e48fef1f54dd89cbf9789734Trond Myklebust#define NFS_MOUNT_LOOKUP_CACHE_NONE	0x20000
71d740351bf0960e89ce1aef45cfe00167cb0f9e5bChuck Lever#define NFS_MOUNT_NORESVPORT		0x40000
72d5eff1a3412f6d75bf28f423c5015ece8055407aBryan Schumaker#define NFS_MOUNT_LEGACY_INTERFACE	0x80000
734eec952e42314b53e48fef1f54dd89cbf9789734Trond Myklebust
745eebde23223aeb0ad2d9e3be6590ff8bbfab0fc2Suresh Jayaraman#define NFS_MOUNT_LOCAL_FLOCK	0x100000
755eebde23223aeb0ad2d9e3be6590ff8bbfab0fc2Suresh Jayaraman#define NFS_MOUNT_LOCAL_FCNTL	0x200000
765eebde23223aeb0ad2d9e3be6590ff8bbfab0fc2Suresh Jayaraman
771da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif
78