diff options
Diffstat (limited to 'include/linux/nfs_xdr.h')
| -rw-r--r-- | include/linux/nfs_xdr.h | 89 | 
1 files changed, 47 insertions, 42 deletions
| diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h index 40718669b9c8..6d6f69ec5675 100644 --- a/include/linux/nfs_xdr.h +++ b/include/linux/nfs_xdr.h | |||
| @@ -4,6 +4,16 @@ | |||
| 4 | #include <linux/sunrpc/xprt.h> | 4 | #include <linux/sunrpc/xprt.h> | 
| 5 | #include <linux/nfsacl.h> | 5 | #include <linux/nfsacl.h> | 
| 6 | 6 | ||
| 7 | /* | ||
| 8 | * To change the maximum rsize and wsize supported by the NFS client, adjust | ||
| 9 | * NFS_MAX_FILE_IO_SIZE. 64KB is a typical maximum, but some servers can | ||
| 10 | * support a megabyte or more. The default is left at 4096 bytes, which is | ||
| 11 | * reasonable for NFS over UDP. | ||
| 12 | */ | ||
| 13 | #define NFS_MAX_FILE_IO_SIZE (1048576U) | ||
| 14 | #define NFS_DEF_FILE_IO_SIZE (4096U) | ||
| 15 | #define NFS_MIN_FILE_IO_SIZE (1024U) | ||
| 16 | |||
| 7 | struct nfs4_fsid { | 17 | struct nfs4_fsid { | 
| 8 | __u64 major; | 18 | __u64 major; | 
| 9 | __u64 minor; | 19 | __u64 minor; | 
| @@ -137,7 +147,7 @@ struct nfs_openres { | |||
| 137 | */ | 147 | */ | 
| 138 | struct nfs_open_confirmargs { | 148 | struct nfs_open_confirmargs { | 
| 139 | const struct nfs_fh * fh; | 149 | const struct nfs_fh * fh; | 
| 140 | nfs4_stateid stateid; | 150 | nfs4_stateid * stateid; | 
| 141 | struct nfs_seqid * seqid; | 151 | struct nfs_seqid * seqid; | 
| 142 | }; | 152 | }; | 
| 143 | 153 | ||
| @@ -165,66 +175,62 @@ struct nfs_closeres { | |||
| 165 | * * Arguments to the lock,lockt, and locku call. | 175 | * * Arguments to the lock,lockt, and locku call. | 
| 166 | * */ | 176 | * */ | 
| 167 | struct nfs_lowner { | 177 | struct nfs_lowner { | 
| 168 | __u64 clientid; | 178 | __u64 clientid; | 
| 169 | u32 id; | 179 | u32 id; | 
| 170 | }; | 180 | }; | 
| 171 | 181 | ||
| 172 | struct nfs_lock_opargs { | 182 | struct nfs_lock_args { | 
| 183 | struct nfs_fh * fh; | ||
| 184 | struct file_lock * fl; | ||
| 173 | struct nfs_seqid * lock_seqid; | 185 | struct nfs_seqid * lock_seqid; | 
| 174 | nfs4_stateid * lock_stateid; | 186 | nfs4_stateid * lock_stateid; | 
| 175 | struct nfs_seqid * open_seqid; | 187 | struct nfs_seqid * open_seqid; | 
| 176 | nfs4_stateid * open_stateid; | 188 | nfs4_stateid * open_stateid; | 
| 177 | struct nfs_lowner lock_owner; | 189 | struct nfs_lowner lock_owner; | 
| 178 | __u32 reclaim; | 190 | unsigned char block : 1; | 
| 179 | __u32 new_lock_owner; | 191 | unsigned char reclaim : 1; | 
| 192 | unsigned char new_lock_owner : 1; | ||
| 180 | }; | 193 | }; | 
| 181 | 194 | ||
| 182 | struct nfs_locku_opargs { | 195 | struct nfs_lock_res { | 
| 196 | nfs4_stateid stateid; | ||
| 197 | }; | ||
| 198 | |||
| 199 | struct nfs_locku_args { | ||
| 200 | struct nfs_fh * fh; | ||
| 201 | struct file_lock * fl; | ||
| 183 | struct nfs_seqid * seqid; | 202 | struct nfs_seqid * seqid; | 
| 184 | nfs4_stateid * stateid; | 203 | nfs4_stateid * stateid; | 
| 185 | }; | 204 | }; | 
| 186 | 205 | ||
| 187 | struct nfs_lockargs { | 206 | struct nfs_locku_res { | 
| 188 | struct nfs_fh * fh; | 207 | nfs4_stateid stateid; | 
| 189 | __u32 type; | ||
| 190 | __u64 offset; | ||
| 191 | __u64 length; | ||
| 192 | union { | ||
| 193 | struct nfs_lock_opargs *lock; /* LOCK */ | ||
| 194 | struct nfs_lowner *lockt; /* LOCKT */ | ||
| 195 | struct nfs_locku_opargs *locku; /* LOCKU */ | ||
| 196 | } u; | ||
| 197 | }; | 208 | }; | 
| 198 | 209 | ||
| 199 | struct nfs_lock_denied { | 210 | struct nfs_lockt_args { | 
| 200 | __u64 offset; | 211 | struct nfs_fh * fh; | 
| 201 | __u64 length; | 212 | struct file_lock * fl; | 
| 202 | __u32 type; | 213 | struct nfs_lowner lock_owner; | 
| 203 | struct nfs_lowner owner; | ||
| 204 | }; | 214 | }; | 
| 205 | 215 | ||
| 206 | struct nfs_lockres { | 216 | struct nfs_lockt_res { | 
| 207 | union { | 217 | struct file_lock * denied; /* LOCK, LOCKT failed */ | 
| 208 | nfs4_stateid stateid;/* LOCK success, LOCKU */ | ||
| 209 | struct nfs_lock_denied denied; /* LOCK failed, LOCKT success */ | ||
| 210 | } u; | ||
| 211 | const struct nfs_server * server; | ||
| 212 | }; | 218 | }; | 
| 213 | 219 | ||
| 214 | struct nfs4_delegreturnargs { | 220 | struct nfs4_delegreturnargs { | 
| 215 | const struct nfs_fh *fhandle; | 221 | const struct nfs_fh *fhandle; | 
| 216 | const nfs4_stateid *stateid; | 222 | const nfs4_stateid *stateid; | 
| 223 | const u32 * bitmask; | ||
| 224 | }; | ||
| 225 | |||
| 226 | struct nfs4_delegreturnres { | ||
| 227 | struct nfs_fattr * fattr; | ||
| 228 | const struct nfs_server *server; | ||
| 217 | }; | 229 | }; | 
| 218 | 230 | ||
| 219 | /* | 231 | /* | 
| 220 | * Arguments to the read call. | 232 | * Arguments to the read call. | 
| 221 | */ | 233 | */ | 
| 222 | |||
| 223 | #define NFS_READ_MAXIOV (9U) | ||
| 224 | #if (NFS_READ_MAXIOV > (MAX_IOVEC -2)) | ||
| 225 | #error "NFS_READ_MAXIOV is too large" | ||
| 226 | #endif | ||
| 227 | |||
| 228 | struct nfs_readargs { | 234 | struct nfs_readargs { | 
| 229 | struct nfs_fh * fh; | 235 | struct nfs_fh * fh; | 
| 230 | struct nfs_open_context *context; | 236 | struct nfs_open_context *context; | 
| @@ -243,11 +249,6 @@ struct nfs_readres { | |||
| 243 | /* | 249 | /* | 
| 244 | * Arguments to the write call. | 250 | * Arguments to the write call. | 
| 245 | */ | 251 | */ | 
| 246 | #define NFS_WRITE_MAXIOV (9U) | ||
| 247 | #if (NFS_WRITE_MAXIOV > (MAX_IOVEC -2)) | ||
| 248 | #error "NFS_WRITE_MAXIOV is too large" | ||
| 249 | #endif | ||
| 250 | |||
| 251 | struct nfs_writeargs { | 252 | struct nfs_writeargs { | 
| 252 | struct nfs_fh * fh; | 253 | struct nfs_fh * fh; | 
| 253 | struct nfs_open_context *context; | 254 | struct nfs_open_context *context; | 
| @@ -678,6 +679,8 @@ struct nfs4_server_caps_res { | |||
| 678 | 679 | ||
| 679 | struct nfs_page; | 680 | struct nfs_page; | 
| 680 | 681 | ||
| 682 | #define NFS_PAGEVEC_SIZE (8U) | ||
| 683 | |||
| 681 | struct nfs_read_data { | 684 | struct nfs_read_data { | 
| 682 | int flags; | 685 | int flags; | 
| 683 | struct rpc_task task; | 686 | struct rpc_task task; | 
| @@ -686,13 +689,14 @@ struct nfs_read_data { | |||
| 686 | struct nfs_fattr fattr; /* fattr storage */ | 689 | struct nfs_fattr fattr; /* fattr storage */ | 
| 687 | struct list_head pages; /* Coalesced read requests */ | 690 | struct list_head pages; /* Coalesced read requests */ | 
| 688 | struct nfs_page *req; /* multi ops per nfs_page */ | 691 | struct nfs_page *req; /* multi ops per nfs_page */ | 
| 689 | struct page *pagevec[NFS_READ_MAXIOV]; | 692 | struct page **pagevec; | 
| 690 | struct nfs_readargs args; | 693 | struct nfs_readargs args; | 
| 691 | struct nfs_readres res; | 694 | struct nfs_readres res; | 
| 692 | #ifdef CONFIG_NFS_V4 | 695 | #ifdef CONFIG_NFS_V4 | 
| 693 | unsigned long timestamp; /* For lease renewal */ | 696 | unsigned long timestamp; /* For lease renewal */ | 
| 694 | #endif | 697 | #endif | 
| 695 | void (*complete) (struct nfs_read_data *, int); | 698 | void (*complete) (struct nfs_read_data *, int); | 
| 699 | struct page *page_array[NFS_PAGEVEC_SIZE + 1]; | ||
| 696 | }; | 700 | }; | 
| 697 | 701 | ||
| 698 | struct nfs_write_data { | 702 | struct nfs_write_data { | 
| @@ -704,13 +708,14 @@ struct nfs_write_data { | |||
| 704 | struct nfs_writeverf verf; | 708 | struct nfs_writeverf verf; | 
| 705 | struct list_head pages; /* Coalesced requests we wish to flush */ | 709 | struct list_head pages; /* Coalesced requests we wish to flush */ | 
| 706 | struct nfs_page *req; /* multi ops per nfs_page */ | 710 | struct nfs_page *req; /* multi ops per nfs_page */ | 
| 707 | struct page *pagevec[NFS_WRITE_MAXIOV]; | 711 | struct page **pagevec; | 
| 708 | struct nfs_writeargs args; /* argument struct */ | 712 | struct nfs_writeargs args; /* argument struct */ | 
| 709 | struct nfs_writeres res; /* result struct */ | 713 | struct nfs_writeres res; /* result struct */ | 
| 710 | #ifdef CONFIG_NFS_V4 | 714 | #ifdef CONFIG_NFS_V4 | 
| 711 | unsigned long timestamp; /* For lease renewal */ | 715 | unsigned long timestamp; /* For lease renewal */ | 
| 712 | #endif | 716 | #endif | 
| 713 | void (*complete) (struct nfs_write_data *, int); | 717 | void (*complete) (struct nfs_write_data *, int); | 
| 718 | struct page *page_array[NFS_PAGEVEC_SIZE + 1]; | ||
| 714 | }; | 719 | }; | 
| 715 | 720 | ||
| 716 | struct nfs_access_entry; | 721 | struct nfs_access_entry; | 
