Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
0002 #ifndef _LINUX_NFS4_MOUNT_H
0003 #define _LINUX_NFS4_MOUNT_H
0004 
0005 /*
0006  *  linux/include/linux/nfs4_mount.h
0007  *
0008  *  Copyright (C) 2002  Trond Myklebust
0009  *
0010  *  structure passed from user-space to kernel-space during an nfsv4 mount
0011  */
0012 
0013 /*
0014  * WARNING!  Do not delete or change the order of these fields.  If
0015  * a new field is required then add it to the end.  The version field
0016  * tracks which fields are present.  This will ensure some measure of
0017  * mount-to-kernel version compatibility.  Some of these aren't used yet
0018  * but here they are anyway.
0019  */
0020 #define NFS4_MOUNT_VERSION  1
0021 
0022 struct nfs_string {
0023     unsigned int len;
0024     const char __user * data;
0025 };
0026 
0027 struct nfs4_mount_data {
0028     int version;                /* 1 */
0029     int flags;              /* 1 */
0030     int rsize;              /* 1 */
0031     int wsize;              /* 1 */
0032     int timeo;              /* 1 */
0033     int retrans;                /* 1 */
0034     int acregmin;               /* 1 */
0035     int acregmax;               /* 1 */
0036     int acdirmin;               /* 1 */
0037     int acdirmax;               /* 1 */
0038 
0039     /* see the definition of 'struct clientaddr4' in RFC3010 */
0040     struct nfs_string client_addr;      /* 1 */
0041 
0042     /* Mount path */
0043     struct nfs_string mnt_path;     /* 1 */
0044 
0045     /* Server details */
0046     struct nfs_string hostname;     /* 1 */
0047     /* Server IP address */
0048     unsigned int host_addrlen;      /* 1 */
0049     struct sockaddr __user * host_addr; /* 1 */
0050 
0051     /* Transport protocol to use */
0052     int proto;              /* 1 */
0053 
0054     /* Pseudo-flavours to use for authentication. See RFC2623 */
0055     int auth_flavourlen;            /* 1 */
0056     int __user *auth_flavours;      /* 1 */
0057 };
0058 
0059 /* bits in the flags field */
0060 /* Note: the fields that correspond to existing NFSv2/v3 mount options
0061  *   should mirror the values from include/linux/nfs_mount.h
0062  */
0063 
0064 #define NFS4_MOUNT_SOFT     0x0001  /* 1 */
0065 #define NFS4_MOUNT_INTR     0x0002  /* 1 */
0066 #define NFS4_MOUNT_NOCTO    0x0010  /* 1 */
0067 #define NFS4_MOUNT_NOAC     0x0020  /* 1 */
0068 #define NFS4_MOUNT_STRICTLOCK   0x1000  /* 1 */
0069 #define NFS4_MOUNT_UNSHARED 0x8000  /* 1 */
0070 #define NFS4_MOUNT_FLAGMASK 0x9033
0071 
0072 #endif