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