1#ifndef _LINUX_NFS4_MOUNT_H 2#define _LINUX_NFS4_MOUNT_H 3 4/* 5 * linux/include/linux/nfs4_mount.h 6 * 7 * Copyright (C) 2002 Trond Myklebust 8 * 9 * structure passed from user-space to kernel-space during an nfsv4 mount 10 */ 11 12/* 13 * WARNING! Do not delete or change the order of these fields. If 14 * a new field is required then add it to the end. The version field 15 * tracks which fields are present. This will ensure some measure of 16 * mount-to-kernel version compatibility. Some of these aren't used yet 17 * but here they are anyway. 18 */ 19#define NFS4_MOUNT_VERSION 1 20 21struct nfs_string { 22 unsigned int len; 23 const char __user * data; 24}; 25 26struct nfs4_mount_data { 27 int version; /* 1 */ 28 int flags; /* 1 */ 29 int rsize; /* 1 */ 30 int wsize; /* 1 */ 31 int timeo; /* 1 */ 32 int retrans; /* 1 */ 33 int acregmin; /* 1 */ 34 int acregmax; /* 1 */ 35 int acdirmin; /* 1 */ 36 int acdirmax; /* 1 */ 37 38 /* see the definition of 'struct clientaddr4' in RFC3010 */ 39 struct nfs_string client_addr; /* 1 */ 40 41 /* Mount path */ 42 struct nfs_string mnt_path; /* 1 */ 43 44 /* Server details */ 45 struct nfs_string hostname; /* 1 */ 46 /* Server IP address */ 47 unsigned int host_addrlen; /* 1 */ 48 struct sockaddr __user * host_addr; /* 1 */ 49 50 /* Transport protocol to use */ 51 int proto; /* 1 */ 52 53 /* Pseudo-flavours to use for authentication. See RFC2623 */ 54 int auth_flavourlen; /* 1 */ 55 int __user *auth_flavours; /* 1 */ 56}; 57 58/* bits in the flags field */ 59/* Note: the fields that correspond to existing NFSv2/v3 mount options 60 * should mirror the values from include/linux/nfs_mount.h 61 */ 62 63#define NFS4_MOUNT_SOFT 0x0001 /* 1 */ 64#define NFS4_MOUNT_INTR 0x0002 /* 1 */ 65#define NFS4_MOUNT_NOCTO 0x0010 /* 1 */ 66#define NFS4_MOUNT_NOAC 0x0020 /* 1 */ 67#define NFS4_MOUNT_STRICTLOCK 0x1000 /* 1 */ 68#define NFS4_MOUNT_UNSHARED 0x8000 /* 1 */ 69#define NFS4_MOUNT_FLAGMASK 0x9033 70 71#endif 72