diff options
| author | J. Bruce Fields <bfields@redhat.com> | 2013-04-26 11:37:29 -0400 |
|---|---|---|
| committer | J. Bruce Fields <bfields@redhat.com> | 2013-04-26 11:37:43 -0400 |
| commit | c85b03ab200f6d2c2f80588d96d03c1f8fcaedc3 (patch) | |
| tree | 34f4f3200ef5db6ca93360879fffda050c04e1ca /include/linux | |
| parent | bf8d909705e9d9bac31d9b8eac6734d2b51332a7 (diff) | |
| parent | fd068b200fb86e8fa52368e6f6088d2ab297a5d7 (diff) | |
Merge Trond's nfs-for-next
Merging Trond's nfs-for-next branch, mainly to get
b7993cebb841b0da7a33e9d5ce301a9fd3209165 "SUNRPC: Allow rpc_create() to
request that TCP slots be unlimited", which a small piece of the
gss-proxy work depends on.
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/nfs_fs.h | 8 | ||||
| -rw-r--r-- | include/linux/nfs_fs_sb.h | 3 | ||||
| -rw-r--r-- | include/linux/nfs_xdr.h | 3 | ||||
| -rw-r--r-- | include/linux/sunrpc/clnt.h | 1 | ||||
| -rw-r--r-- | include/linux/sunrpc/xprt.h | 5 |
5 files changed, 20 insertions, 0 deletions
diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h index 1cc25682b20b..fc01d5cb4cf1 100644 --- a/include/linux/nfs_fs.h +++ b/include/linux/nfs_fs.h | |||
| @@ -59,11 +59,18 @@ struct nfs_lockowner { | |||
| 59 | pid_t l_pid; | 59 | pid_t l_pid; |
| 60 | }; | 60 | }; |
| 61 | 61 | ||
| 62 | #define NFS_IO_INPROGRESS 0 | ||
| 63 | struct nfs_io_counter { | ||
| 64 | unsigned long flags; | ||
| 65 | atomic_t io_count; | ||
| 66 | }; | ||
| 67 | |||
| 62 | struct nfs_lock_context { | 68 | struct nfs_lock_context { |
| 63 | atomic_t count; | 69 | atomic_t count; |
| 64 | struct list_head list; | 70 | struct list_head list; |
| 65 | struct nfs_open_context *open_context; | 71 | struct nfs_open_context *open_context; |
| 66 | struct nfs_lockowner lockowner; | 72 | struct nfs_lockowner lockowner; |
| 73 | struct nfs_io_counter io_count; | ||
| 67 | }; | 74 | }; |
| 68 | 75 | ||
| 69 | struct nfs4_state; | 76 | struct nfs4_state; |
| @@ -77,6 +84,7 @@ struct nfs_open_context { | |||
| 77 | unsigned long flags; | 84 | unsigned long flags; |
| 78 | #define NFS_CONTEXT_ERROR_WRITE (0) | 85 | #define NFS_CONTEXT_ERROR_WRITE (0) |
| 79 | #define NFS_CONTEXT_RESEND_WRITES (1) | 86 | #define NFS_CONTEXT_RESEND_WRITES (1) |
| 87 | #define NFS_CONTEXT_BAD (2) | ||
| 80 | int error; | 88 | int error; |
| 81 | 89 | ||
| 82 | struct list_head list; | 90 | struct list_head list; |
diff --git a/include/linux/nfs_fs_sb.h b/include/linux/nfs_fs_sb.h index 6c6ed153a9b4..3b7fa2abecca 100644 --- a/include/linux/nfs_fs_sb.h +++ b/include/linux/nfs_fs_sb.h | |||
| @@ -40,6 +40,7 @@ struct nfs_client { | |||
| 40 | #define NFS_CS_NORESVPORT 0 /* - use ephemeral src port */ | 40 | #define NFS_CS_NORESVPORT 0 /* - use ephemeral src port */ |
| 41 | #define NFS_CS_DISCRTRY 1 /* - disconnect on RPC retry */ | 41 | #define NFS_CS_DISCRTRY 1 /* - disconnect on RPC retry */ |
| 42 | #define NFS_CS_MIGRATION 2 /* - transparent state migr */ | 42 | #define NFS_CS_MIGRATION 2 /* - transparent state migr */ |
| 43 | #define NFS_CS_INFINITE_SLOTS 3 /* - don't limit TCP slots */ | ||
| 43 | struct sockaddr_storage cl_addr; /* server identifier */ | 44 | struct sockaddr_storage cl_addr; /* server identifier */ |
| 44 | size_t cl_addrlen; | 45 | size_t cl_addrlen; |
| 45 | char * cl_hostname; /* hostname of server */ | 46 | char * cl_hostname; /* hostname of server */ |
| @@ -197,5 +198,7 @@ struct nfs_server { | |||
| 197 | #define NFS_CAP_MTIME (1U << 13) | 198 | #define NFS_CAP_MTIME (1U << 13) |
| 198 | #define NFS_CAP_POSIX_LOCK (1U << 14) | 199 | #define NFS_CAP_POSIX_LOCK (1U << 14) |
| 199 | #define NFS_CAP_UIDGID_NOMAP (1U << 15) | 200 | #define NFS_CAP_UIDGID_NOMAP (1U << 15) |
| 201 | #define NFS_CAP_STATEID_NFSV41 (1U << 16) | ||
| 202 | #define NFS_CAP_ATOMIC_OPEN_V1 (1U << 17) | ||
| 200 | 203 | ||
| 201 | #endif | 204 | #endif |
diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h index 4b993d358dad..bdc100f66dfb 100644 --- a/include/linux/nfs_xdr.h +++ b/include/linux/nfs_xdr.h | |||
| @@ -349,6 +349,7 @@ struct nfs_openargs { | |||
| 349 | const u32 * bitmask; | 349 | const u32 * bitmask; |
| 350 | const u32 * open_bitmap; | 350 | const u32 * open_bitmap; |
| 351 | __u32 claim; | 351 | __u32 claim; |
| 352 | enum createmode4 createmode; | ||
| 352 | }; | 353 | }; |
| 353 | 354 | ||
| 354 | struct nfs_openres { | 355 | struct nfs_openres { |
| @@ -486,6 +487,7 @@ struct nfs_readargs { | |||
| 486 | struct nfs_fh * fh; | 487 | struct nfs_fh * fh; |
| 487 | struct nfs_open_context *context; | 488 | struct nfs_open_context *context; |
| 488 | struct nfs_lock_context *lock_context; | 489 | struct nfs_lock_context *lock_context; |
| 490 | nfs4_stateid stateid; | ||
| 489 | __u64 offset; | 491 | __u64 offset; |
| 490 | __u32 count; | 492 | __u32 count; |
| 491 | unsigned int pgbase; | 493 | unsigned int pgbase; |
| @@ -507,6 +509,7 @@ struct nfs_writeargs { | |||
| 507 | struct nfs_fh * fh; | 509 | struct nfs_fh * fh; |
| 508 | struct nfs_open_context *context; | 510 | struct nfs_open_context *context; |
| 509 | struct nfs_lock_context *lock_context; | 511 | struct nfs_lock_context *lock_context; |
| 512 | nfs4_stateid stateid; | ||
| 510 | __u64 offset; | 513 | __u64 offset; |
| 511 | __u32 count; | 514 | __u32 count; |
| 512 | enum nfs3_stable_how stable; | 515 | enum nfs3_stable_how stable; |
diff --git a/include/linux/sunrpc/clnt.h b/include/linux/sunrpc/clnt.h index 2cf4ffaa3cd4..e7d492ce7c18 100644 --- a/include/linux/sunrpc/clnt.h +++ b/include/linux/sunrpc/clnt.h | |||
| @@ -124,6 +124,7 @@ struct rpc_create_args { | |||
| 124 | #define RPC_CLNT_CREATE_NOPING (1UL << 4) | 124 | #define RPC_CLNT_CREATE_NOPING (1UL << 4) |
| 125 | #define RPC_CLNT_CREATE_DISCRTRY (1UL << 5) | 125 | #define RPC_CLNT_CREATE_DISCRTRY (1UL << 5) |
| 126 | #define RPC_CLNT_CREATE_QUIET (1UL << 6) | 126 | #define RPC_CLNT_CREATE_QUIET (1UL << 6) |
| 127 | #define RPC_CLNT_CREATE_INFINITE_SLOTS (1UL << 7) | ||
| 127 | 128 | ||
| 128 | struct rpc_clnt *rpc_create(struct rpc_create_args *args); | 129 | struct rpc_clnt *rpc_create(struct rpc_create_args *args); |
| 129 | struct rpc_clnt *rpc_bind_new_program(struct rpc_clnt *, | 130 | struct rpc_clnt *rpc_bind_new_program(struct rpc_clnt *, |
diff --git a/include/linux/sunrpc/xprt.h b/include/linux/sunrpc/xprt.h index 30834be03011..ff5392421cb2 100644 --- a/include/linux/sunrpc/xprt.h +++ b/include/linux/sunrpc/xprt.h | |||
| @@ -255,6 +255,8 @@ static inline int bc_prealloc(struct rpc_rqst *req) | |||
| 255 | } | 255 | } |
| 256 | #endif /* CONFIG_SUNRPC_BACKCHANNEL */ | 256 | #endif /* CONFIG_SUNRPC_BACKCHANNEL */ |
| 257 | 257 | ||
| 258 | #define XPRT_CREATE_INFINITE_SLOTS (1U) | ||
| 259 | |||
| 258 | struct xprt_create { | 260 | struct xprt_create { |
| 259 | int ident; /* XPRT_TRANSPORT identifier */ | 261 | int ident; /* XPRT_TRANSPORT identifier */ |
| 260 | struct net * net; | 262 | struct net * net; |
| @@ -263,6 +265,7 @@ struct xprt_create { | |||
| 263 | size_t addrlen; | 265 | size_t addrlen; |
| 264 | const char *servername; | 266 | const char *servername; |
| 265 | struct svc_xprt *bc_xprt; /* NFSv4.1 backchannel */ | 267 | struct svc_xprt *bc_xprt; /* NFSv4.1 backchannel */ |
| 268 | unsigned int flags; | ||
| 266 | }; | 269 | }; |
| 267 | 270 | ||
| 268 | struct xprt_class { | 271 | struct xprt_class { |
| @@ -279,6 +282,7 @@ struct xprt_class { | |||
| 279 | struct rpc_xprt *xprt_create_transport(struct xprt_create *args); | 282 | struct rpc_xprt *xprt_create_transport(struct xprt_create *args); |
| 280 | void xprt_connect(struct rpc_task *task); | 283 | void xprt_connect(struct rpc_task *task); |
| 281 | void xprt_reserve(struct rpc_task *task); | 284 | void xprt_reserve(struct rpc_task *task); |
| 285 | void xprt_retry_reserve(struct rpc_task *task); | ||
| 282 | int xprt_reserve_xprt(struct rpc_xprt *xprt, struct rpc_task *task); | 286 | int xprt_reserve_xprt(struct rpc_xprt *xprt, struct rpc_task *task); |
| 283 | int xprt_reserve_xprt_cong(struct rpc_xprt *xprt, struct rpc_task *task); | 287 | int xprt_reserve_xprt_cong(struct rpc_xprt *xprt, struct rpc_task *task); |
| 284 | void xprt_alloc_slot(struct rpc_xprt *xprt, struct rpc_task *task); | 288 | void xprt_alloc_slot(struct rpc_xprt *xprt, struct rpc_task *task); |
| @@ -334,6 +338,7 @@ int xs_swapper(struct rpc_xprt *xprt, int enable); | |||
| 334 | #define XPRT_CLOSING (6) | 338 | #define XPRT_CLOSING (6) |
| 335 | #define XPRT_CONNECTION_ABORT (7) | 339 | #define XPRT_CONNECTION_ABORT (7) |
| 336 | #define XPRT_CONNECTION_CLOSE (8) | 340 | #define XPRT_CONNECTION_CLOSE (8) |
| 341 | #define XPRT_CONGESTED (9) | ||
| 337 | 342 | ||
| 338 | static inline void xprt_set_connected(struct rpc_xprt *xprt) | 343 | static inline void xprt_set_connected(struct rpc_xprt *xprt) |
| 339 | { | 344 | { |
