diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-08-13 20:13:19 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-08-13 20:13:19 -0400 |
| commit | 06b8ab55289345ab191bf4bf0e4acc6d4bdf293d (patch) | |
| tree | 9af9215097e26c026f30a58c6ca3092ec15d1e1e /include/linux/sunrpc | |
| parent | dc1cc85133120e49c223f36aa77d398b8abac727 (diff) | |
| parent | 71a6ec8ac587418ceb6b420def1ca44b334c1ff7 (diff) | |
Merge tag 'nfs-for-3.17-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs
Pull NFS client updates from Trond Myklebust:
"Highlights include:
- stable fix for a bug in nfs3_list_one_acl()
- speed up NFS path walks by supporting LOOKUP_RCU
- more read/write code cleanups
- pNFS fixes for layout return on close
- fixes for the RCU handling in the rpcsec_gss code
- more NFS/RDMA fixes"
* tag 'nfs-for-3.17-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (79 commits)
nfs: reject changes to resvport and sharecache during remount
NFS: Avoid infinite loop when RELEASE_LOCKOWNER getting expired error
SUNRPC: remove all refcounting of groupinfo from rpcauth_lookupcred
NFS: fix two problems in lookup_revalidate in RCU-walk
NFS: allow lockless access to access_cache
NFS: teach nfs_lookup_verify_inode to handle LOOKUP_RCU
NFS: teach nfs_neg_need_reval to understand LOOKUP_RCU
NFS: support RCU_WALK in nfs_permission()
sunrpc/auth: allow lockless (rcu) lookup of credential cache.
NFS: prepare for RCU-walk support but pushing tests later in code.
NFS: nfs4_lookup_revalidate: only evaluate parent if it will be used.
NFS: add checks for returned value of try_module_get()
nfs: clear_request_commit while holding i_lock
pnfs: add pnfs_put_lseg_async
pnfs: find swapped pages on pnfs commit lists too
nfs: fix comment and add warn_on for PG_INODE_REF
nfs: check wait_on_bit_lock err in page_group_lock
sunrpc: remove "ec" argument from encrypt_v2 operation
sunrpc: clean up sparse endianness warnings in gss_krb5_wrap.c
sunrpc: clean up sparse endianness warnings in gss_krb5_seal.c
...
Diffstat (limited to 'include/linux/sunrpc')
| -rw-r--r-- | include/linux/sunrpc/auth.h | 4 | ||||
| -rw-r--r-- | include/linux/sunrpc/auth_gss.h | 3 | ||||
| -rw-r--r-- | include/linux/sunrpc/gss_krb5.h | 4 | ||||
| -rw-r--r-- | include/linux/sunrpc/xprtrdma.h | 2 |
4 files changed, 8 insertions, 5 deletions
diff --git a/include/linux/sunrpc/auth.h b/include/linux/sunrpc/auth.h index 790be1472792..8e030075fe79 100644 --- a/include/linux/sunrpc/auth.h +++ b/include/linux/sunrpc/auth.h | |||
| @@ -103,6 +103,7 @@ struct rpc_auth_create_args { | |||
| 103 | 103 | ||
| 104 | /* Flags for rpcauth_lookupcred() */ | 104 | /* Flags for rpcauth_lookupcred() */ |
| 105 | #define RPCAUTH_LOOKUP_NEW 0x01 /* Accept an uninitialised cred */ | 105 | #define RPCAUTH_LOOKUP_NEW 0x01 /* Accept an uninitialised cred */ |
| 106 | #define RPCAUTH_LOOKUP_RCU 0x02 /* lock-less lookup */ | ||
| 106 | 107 | ||
| 107 | /* | 108 | /* |
| 108 | * Client authentication ops | 109 | * Client authentication ops |
| @@ -140,6 +141,7 @@ struct rpc_credops { | |||
| 140 | void *, __be32 *, void *); | 141 | void *, __be32 *, void *); |
| 141 | int (*crkey_timeout)(struct rpc_cred *); | 142 | int (*crkey_timeout)(struct rpc_cred *); |
| 142 | bool (*crkey_to_expire)(struct rpc_cred *); | 143 | bool (*crkey_to_expire)(struct rpc_cred *); |
| 144 | char * (*crstringify_acceptor)(struct rpc_cred *); | ||
| 143 | }; | 145 | }; |
| 144 | 146 | ||
| 145 | extern const struct rpc_authops authunix_ops; | 147 | extern const struct rpc_authops authunix_ops; |
| @@ -153,6 +155,7 @@ void rpc_destroy_generic_auth(void); | |||
| 153 | void rpc_destroy_authunix(void); | 155 | void rpc_destroy_authunix(void); |
| 154 | 156 | ||
| 155 | struct rpc_cred * rpc_lookup_cred(void); | 157 | struct rpc_cred * rpc_lookup_cred(void); |
| 158 | struct rpc_cred * rpc_lookup_cred_nonblock(void); | ||
| 156 | struct rpc_cred * rpc_lookup_machine_cred(const char *service_name); | 159 | struct rpc_cred * rpc_lookup_machine_cred(const char *service_name); |
| 157 | int rpcauth_register(const struct rpc_authops *); | 160 | int rpcauth_register(const struct rpc_authops *); |
| 158 | int rpcauth_unregister(const struct rpc_authops *); | 161 | int rpcauth_unregister(const struct rpc_authops *); |
| @@ -182,6 +185,7 @@ void rpcauth_clear_credcache(struct rpc_cred_cache *); | |||
| 182 | int rpcauth_key_timeout_notify(struct rpc_auth *, | 185 | int rpcauth_key_timeout_notify(struct rpc_auth *, |
| 183 | struct rpc_cred *); | 186 | struct rpc_cred *); |
| 184 | bool rpcauth_cred_key_to_expire(struct rpc_cred *); | 187 | bool rpcauth_cred_key_to_expire(struct rpc_cred *); |
| 188 | char * rpcauth_stringify_acceptor(struct rpc_cred *); | ||
| 185 | 189 | ||
| 186 | static inline | 190 | static inline |
| 187 | struct rpc_cred * get_rpccred(struct rpc_cred *cred) | 191 | struct rpc_cred * get_rpccred(struct rpc_cred *cred) |
diff --git a/include/linux/sunrpc/auth_gss.h b/include/linux/sunrpc/auth_gss.h index f1cfd4c85cd0..36eebc451b41 100644 --- a/include/linux/sunrpc/auth_gss.h +++ b/include/linux/sunrpc/auth_gss.h | |||
| @@ -69,8 +69,9 @@ struct gss_cl_ctx { | |||
| 69 | enum rpc_gss_proc gc_proc; | 69 | enum rpc_gss_proc gc_proc; |
| 70 | u32 gc_seq; | 70 | u32 gc_seq; |
| 71 | spinlock_t gc_seq_lock; | 71 | spinlock_t gc_seq_lock; |
| 72 | struct gss_ctx __rcu *gc_gss_ctx; | 72 | struct gss_ctx *gc_gss_ctx; |
| 73 | struct xdr_netobj gc_wire_ctx; | 73 | struct xdr_netobj gc_wire_ctx; |
| 74 | struct xdr_netobj gc_acceptor; | ||
| 74 | u32 gc_win; | 75 | u32 gc_win; |
| 75 | unsigned long gc_expiry; | 76 | unsigned long gc_expiry; |
| 76 | struct rcu_head gc_rcu; | 77 | struct rcu_head gc_rcu; |
diff --git a/include/linux/sunrpc/gss_krb5.h b/include/linux/sunrpc/gss_krb5.h index 5af2931cf58d..df02a4188487 100644 --- a/include/linux/sunrpc/gss_krb5.h +++ b/include/linux/sunrpc/gss_krb5.h | |||
| @@ -81,7 +81,7 @@ struct gss_krb5_enctype { | |||
| 81 | struct xdr_netobj *in, | 81 | struct xdr_netobj *in, |
| 82 | struct xdr_netobj *out); /* complete key generation */ | 82 | struct xdr_netobj *out); /* complete key generation */ |
| 83 | u32 (*encrypt_v2) (struct krb5_ctx *kctx, u32 offset, | 83 | u32 (*encrypt_v2) (struct krb5_ctx *kctx, u32 offset, |
| 84 | struct xdr_buf *buf, int ec, | 84 | struct xdr_buf *buf, |
| 85 | struct page **pages); /* v2 encryption function */ | 85 | struct page **pages); /* v2 encryption function */ |
| 86 | u32 (*decrypt_v2) (struct krb5_ctx *kctx, u32 offset, | 86 | u32 (*decrypt_v2) (struct krb5_ctx *kctx, u32 offset, |
| 87 | struct xdr_buf *buf, u32 *headskip, | 87 | struct xdr_buf *buf, u32 *headskip, |
| @@ -310,7 +310,7 @@ gss_krb5_aes_make_key(const struct gss_krb5_enctype *gk5e, | |||
| 310 | 310 | ||
| 311 | u32 | 311 | u32 |
| 312 | gss_krb5_aes_encrypt(struct krb5_ctx *kctx, u32 offset, | 312 | gss_krb5_aes_encrypt(struct krb5_ctx *kctx, u32 offset, |
| 313 | struct xdr_buf *buf, int ec, | 313 | struct xdr_buf *buf, |
| 314 | struct page **pages); | 314 | struct page **pages); |
| 315 | 315 | ||
| 316 | u32 | 316 | u32 |
diff --git a/include/linux/sunrpc/xprtrdma.h b/include/linux/sunrpc/xprtrdma.h index c2f04e1ae159..64a0a0a97b23 100644 --- a/include/linux/sunrpc/xprtrdma.h +++ b/include/linux/sunrpc/xprtrdma.h | |||
| @@ -62,8 +62,6 @@ | |||
| 62 | #define RPCRDMA_INLINE_PAD_THRESH (512)/* payload threshold to pad (bytes) */ | 62 | #define RPCRDMA_INLINE_PAD_THRESH (512)/* payload threshold to pad (bytes) */ |
| 63 | 63 | ||
| 64 | /* memory registration strategies */ | 64 | /* memory registration strategies */ |
| 65 | #define RPCRDMA_PERSISTENT_REGISTRATION (1) | ||
| 66 | |||
| 67 | enum rpcrdma_memreg { | 65 | enum rpcrdma_memreg { |
| 68 | RPCRDMA_BOUNCEBUFFERS = 0, | 66 | RPCRDMA_BOUNCEBUFFERS = 0, |
| 69 | RPCRDMA_REGISTER, | 67 | RPCRDMA_REGISTER, |
