diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/jiffies.h | 10 | ||||
| -rw-r--r-- | include/linux/lockd/bind.h | 1 | ||||
| -rw-r--r-- | include/linux/lockd/lockd.h | 4 | ||||
| -rw-r--r-- | include/linux/nfs_fs.h | 17 | ||||
| -rw-r--r-- | include/linux/nfs_fs_sb.h | 6 | ||||
| -rw-r--r-- | include/linux/nfs_mount.h | 3 | ||||
| -rw-r--r-- | include/linux/nfs_xdr.h | 7 | ||||
| -rw-r--r-- | include/linux/nfsd/state.h | 2 | ||||
| -rw-r--r-- | include/linux/sunrpc/clnt.h | 2 | ||||
| -rw-r--r-- | include/linux/sunrpc/rpc_pipe_fs.h | 1 | ||||
| -rw-r--r-- | include/linux/sunrpc/svcauth_gss.h | 1 | ||||
| -rw-r--r-- | include/linux/sunrpc/xdr.h | 15 | ||||
| -rw-r--r-- | include/linux/sunrpc/xprt.h | 3 |
13 files changed, 34 insertions, 38 deletions
diff --git a/include/linux/jiffies.h b/include/linux/jiffies.h index abb6ac639e8e..1a9cf78bfce5 100644 --- a/include/linux/jiffies.h +++ b/include/linux/jiffies.h | |||
| @@ -115,10 +115,20 @@ static inline u64 get_jiffies_64(void) | |||
| 115 | ((long)(a) - (long)(b) >= 0)) | 115 | ((long)(a) - (long)(b) >= 0)) |
| 116 | #define time_before_eq(a,b) time_after_eq(b,a) | 116 | #define time_before_eq(a,b) time_after_eq(b,a) |
| 117 | 117 | ||
| 118 | /* | ||
| 119 | * Calculate whether a is in the range of [b, c]. | ||
| 120 | */ | ||
| 118 | #define time_in_range(a,b,c) \ | 121 | #define time_in_range(a,b,c) \ |
| 119 | (time_after_eq(a,b) && \ | 122 | (time_after_eq(a,b) && \ |
| 120 | time_before_eq(a,c)) | 123 | time_before_eq(a,c)) |
| 121 | 124 | ||
| 125 | /* | ||
| 126 | * Calculate whether a is in the range of [b, c). | ||
| 127 | */ | ||
| 128 | #define time_in_range_open(a,b,c) \ | ||
| 129 | (time_after_eq(a,b) && \ | ||
| 130 | time_before(a,c)) | ||
| 131 | |||
| 122 | /* Same as above, but does so with platform independent 64bit types. | 132 | /* Same as above, but does so with platform independent 64bit types. |
| 123 | * These must be used when utilizing jiffies_64 (i.e. return value of | 133 | * These must be used when utilizing jiffies_64 (i.e. return value of |
| 124 | * get_jiffies_64() */ | 134 | * get_jiffies_64() */ |
diff --git a/include/linux/lockd/bind.h b/include/linux/lockd/bind.h index e5872dc994c0..fbc48f898521 100644 --- a/include/linux/lockd/bind.h +++ b/include/linux/lockd/bind.h | |||
| @@ -41,6 +41,7 @@ struct nlmclnt_initdata { | |||
| 41 | size_t addrlen; | 41 | size_t addrlen; |
| 42 | unsigned short protocol; | 42 | unsigned short protocol; |
| 43 | u32 nfs_version; | 43 | u32 nfs_version; |
| 44 | int noresvport; | ||
| 44 | }; | 45 | }; |
| 45 | 46 | ||
| 46 | /* | 47 | /* |
diff --git a/include/linux/lockd/lockd.h b/include/linux/lockd/lockd.h index b56d5aa9b194..23da3fa69efa 100644 --- a/include/linux/lockd/lockd.h +++ b/include/linux/lockd/lockd.h | |||
| @@ -49,6 +49,7 @@ struct nlm_host { | |||
| 49 | unsigned short h_proto; /* transport proto */ | 49 | unsigned short h_proto; /* transport proto */ |
| 50 | unsigned short h_reclaiming : 1, | 50 | unsigned short h_reclaiming : 1, |
| 51 | h_server : 1, /* server side, not client side */ | 51 | h_server : 1, /* server side, not client side */ |
| 52 | h_noresvport : 1, | ||
| 52 | h_inuse : 1; | 53 | h_inuse : 1; |
| 53 | wait_queue_head_t h_gracewait; /* wait while reclaiming */ | 54 | wait_queue_head_t h_gracewait; /* wait while reclaiming */ |
| 54 | struct rw_semaphore h_rwsem; /* Reboot recovery lock */ | 55 | struct rw_semaphore h_rwsem; /* Reboot recovery lock */ |
| @@ -220,7 +221,8 @@ struct nlm_host *nlmclnt_lookup_host(const struct sockaddr *sap, | |||
| 220 | const size_t salen, | 221 | const size_t salen, |
| 221 | const unsigned short protocol, | 222 | const unsigned short protocol, |
| 222 | const u32 version, | 223 | const u32 version, |
| 223 | const char *hostname); | 224 | const char *hostname, |
| 225 | int noresvport); | ||
| 224 | struct nlm_host *nlmsvc_lookup_host(const struct svc_rqst *rqstp, | 226 | struct nlm_host *nlmsvc_lookup_host(const struct svc_rqst *rqstp, |
| 225 | const char *hostname, | 227 | const char *hostname, |
| 226 | const size_t hostname_len); | 228 | const size_t hostname_len); |
diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h index 4eaa8347a0d9..db867b04ac3c 100644 --- a/include/linux/nfs_fs.h +++ b/include/linux/nfs_fs.h | |||
| @@ -83,7 +83,7 @@ struct nfs_open_context { | |||
| 83 | struct rpc_cred *cred; | 83 | struct rpc_cred *cred; |
| 84 | struct nfs4_state *state; | 84 | struct nfs4_state *state; |
| 85 | fl_owner_t lockowner; | 85 | fl_owner_t lockowner; |
| 86 | int mode; | 86 | fmode_t mode; |
| 87 | 87 | ||
| 88 | unsigned long flags; | 88 | unsigned long flags; |
| 89 | #define NFS_CONTEXT_ERROR_WRITE (0) | 89 | #define NFS_CONTEXT_ERROR_WRITE (0) |
| @@ -130,7 +130,10 @@ struct nfs_inode { | |||
| 130 | * | 130 | * |
| 131 | * We need to revalidate the cached attrs for this inode if | 131 | * We need to revalidate the cached attrs for this inode if |
| 132 | * | 132 | * |
| 133 | * jiffies - read_cache_jiffies > attrtimeo | 133 | * jiffies - read_cache_jiffies >= attrtimeo |
| 134 | * | ||
| 135 | * Please note the comparison is greater than or equal | ||
| 136 | * so that zero timeout values can be specified. | ||
| 134 | */ | 137 | */ |
| 135 | unsigned long read_cache_jiffies; | 138 | unsigned long read_cache_jiffies; |
| 136 | unsigned long attrtimeo; | 139 | unsigned long attrtimeo; |
| @@ -180,7 +183,7 @@ struct nfs_inode { | |||
| 180 | /* NFSv4 state */ | 183 | /* NFSv4 state */ |
| 181 | struct list_head open_states; | 184 | struct list_head open_states; |
| 182 | struct nfs_delegation *delegation; | 185 | struct nfs_delegation *delegation; |
| 183 | int delegation_state; | 186 | fmode_t delegation_state; |
| 184 | struct rw_semaphore rwsem; | 187 | struct rw_semaphore rwsem; |
| 185 | #endif /* CONFIG_NFS_V4*/ | 188 | #endif /* CONFIG_NFS_V4*/ |
| 186 | struct inode vfs_inode; | 189 | struct inode vfs_inode; |
| @@ -342,7 +345,7 @@ extern int nfs_setattr(struct dentry *, struct iattr *); | |||
| 342 | extern void nfs_setattr_update_inode(struct inode *inode, struct iattr *attr); | 345 | extern void nfs_setattr_update_inode(struct inode *inode, struct iattr *attr); |
| 343 | extern struct nfs_open_context *get_nfs_open_context(struct nfs_open_context *ctx); | 346 | extern struct nfs_open_context *get_nfs_open_context(struct nfs_open_context *ctx); |
| 344 | extern void put_nfs_open_context(struct nfs_open_context *ctx); | 347 | extern void put_nfs_open_context(struct nfs_open_context *ctx); |
| 345 | extern struct nfs_open_context *nfs_find_open_context(struct inode *inode, struct rpc_cred *cred, int mode); | 348 | extern struct nfs_open_context *nfs_find_open_context(struct inode *inode, struct rpc_cred *cred, fmode_t mode); |
| 346 | extern u64 nfs_compat_user_ino64(u64 fileid); | 349 | extern u64 nfs_compat_user_ino64(u64 fileid); |
| 347 | extern void nfs_fattr_init(struct nfs_fattr *fattr); | 350 | extern void nfs_fattr_init(struct nfs_fattr *fattr); |
| 348 | 351 | ||
| @@ -533,12 +536,6 @@ static inline void nfs3_forget_cached_acls(struct inode *inode) | |||
| 533 | #endif /* CONFIG_NFS_V3_ACL */ | 536 | #endif /* CONFIG_NFS_V3_ACL */ |
| 534 | 537 | ||
| 535 | /* | 538 | /* |
| 536 | * linux/fs/mount_clnt.c | ||
| 537 | */ | ||
| 538 | extern int nfs_mount(struct sockaddr *, size_t, char *, char *, | ||
| 539 | int, int, struct nfs_fh *); | ||
| 540 | |||
| 541 | /* | ||
| 542 | * inline functions | 539 | * inline functions |
| 543 | */ | 540 | */ |
| 544 | 541 | ||
diff --git a/include/linux/nfs_fs_sb.h b/include/linux/nfs_fs_sb.h index 4e477ae58699..9bb81aec91cf 100644 --- a/include/linux/nfs_fs_sb.h +++ b/include/linux/nfs_fs_sb.h | |||
| @@ -42,12 +42,6 @@ struct nfs_client { | |||
| 42 | struct rb_root cl_openowner_id; | 42 | struct rb_root cl_openowner_id; |
| 43 | struct rb_root cl_lockowner_id; | 43 | struct rb_root cl_lockowner_id; |
| 44 | 44 | ||
| 45 | /* | ||
| 46 | * The following rwsem ensures exclusive access to the server | ||
| 47 | * while we recover the state following a lease expiration. | ||
| 48 | */ | ||
| 49 | struct rw_semaphore cl_sem; | ||
| 50 | |||
| 51 | struct list_head cl_delegations; | 45 | struct list_head cl_delegations; |
| 52 | struct rb_root cl_state_owners; | 46 | struct rb_root cl_state_owners; |
| 53 | spinlock_t cl_lock; | 47 | spinlock_t cl_lock; |
diff --git a/include/linux/nfs_mount.h b/include/linux/nfs_mount.h index 6549a06ac16e..4499016e6d0d 100644 --- a/include/linux/nfs_mount.h +++ b/include/linux/nfs_mount.h | |||
| @@ -45,7 +45,7 @@ struct nfs_mount_data { | |||
| 45 | char context[NFS_MAX_CONTEXT_LEN + 1]; /* 6 */ | 45 | char context[NFS_MAX_CONTEXT_LEN + 1]; /* 6 */ |
| 46 | }; | 46 | }; |
| 47 | 47 | ||
| 48 | /* bits in the flags field */ | 48 | /* bits in the flags field visible to user space */ |
| 49 | 49 | ||
| 50 | #define NFS_MOUNT_SOFT 0x0001 /* 1 */ | 50 | #define NFS_MOUNT_SOFT 0x0001 /* 1 */ |
| 51 | #define NFS_MOUNT_INTR 0x0002 /* 1 */ /* now unused, but ABI */ | 51 | #define NFS_MOUNT_INTR 0x0002 /* 1 */ /* now unused, but ABI */ |
| @@ -68,5 +68,6 @@ struct nfs_mount_data { | |||
| 68 | /* The following are for internal use only */ | 68 | /* The following are for internal use only */ |
| 69 | #define NFS_MOUNT_LOOKUP_CACHE_NONEG 0x10000 | 69 | #define NFS_MOUNT_LOOKUP_CACHE_NONEG 0x10000 |
| 70 | #define NFS_MOUNT_LOOKUP_CACHE_NONE 0x20000 | 70 | #define NFS_MOUNT_LOOKUP_CACHE_NONE 0x20000 |
| 71 | #define NFS_MOUNT_NORESVPORT 0x40000 | ||
| 71 | 72 | ||
| 72 | #endif | 73 | #endif |
diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h index c1c31acb8a2b..a550b528319f 100644 --- a/include/linux/nfs_xdr.h +++ b/include/linux/nfs_xdr.h | |||
| @@ -120,13 +120,14 @@ struct nfs_openargs { | |||
| 120 | const struct nfs_fh * fh; | 120 | const struct nfs_fh * fh; |
| 121 | struct nfs_seqid * seqid; | 121 | struct nfs_seqid * seqid; |
| 122 | int open_flags; | 122 | int open_flags; |
| 123 | fmode_t fmode; | ||
| 123 | __u64 clientid; | 124 | __u64 clientid; |
| 124 | __u64 id; | 125 | __u64 id; |
| 125 | union { | 126 | union { |
| 126 | struct iattr * attrs; /* UNCHECKED, GUARDED */ | 127 | struct iattr * attrs; /* UNCHECKED, GUARDED */ |
| 127 | nfs4_verifier verifier; /* EXCLUSIVE */ | 128 | nfs4_verifier verifier; /* EXCLUSIVE */ |
| 128 | nfs4_stateid delegation; /* CLAIM_DELEGATE_CUR */ | 129 | nfs4_stateid delegation; /* CLAIM_DELEGATE_CUR */ |
| 129 | int delegation_type; /* CLAIM_PREVIOUS */ | 130 | fmode_t delegation_type; /* CLAIM_PREVIOUS */ |
| 130 | } u; | 131 | } u; |
| 131 | const struct qstr * name; | 132 | const struct qstr * name; |
| 132 | const struct nfs_server *server; /* Needed for ID mapping */ | 133 | const struct nfs_server *server; /* Needed for ID mapping */ |
| @@ -143,7 +144,7 @@ struct nfs_openres { | |||
| 143 | struct nfs_fattr * dir_attr; | 144 | struct nfs_fattr * dir_attr; |
| 144 | struct nfs_seqid * seqid; | 145 | struct nfs_seqid * seqid; |
| 145 | const struct nfs_server *server; | 146 | const struct nfs_server *server; |
| 146 | int delegation_type; | 147 | fmode_t delegation_type; |
| 147 | nfs4_stateid delegation; | 148 | nfs4_stateid delegation; |
| 148 | __u32 do_recall; | 149 | __u32 do_recall; |
| 149 | __u64 maxsize; | 150 | __u64 maxsize; |
| @@ -171,7 +172,7 @@ struct nfs_closeargs { | |||
| 171 | struct nfs_fh * fh; | 172 | struct nfs_fh * fh; |
| 172 | nfs4_stateid * stateid; | 173 | nfs4_stateid * stateid; |
| 173 | struct nfs_seqid * seqid; | 174 | struct nfs_seqid * seqid; |
| 174 | int open_flags; | 175 | fmode_t fmode; |
| 175 | const u32 * bitmask; | 176 | const u32 * bitmask; |
| 176 | }; | 177 | }; |
| 177 | 178 | ||
diff --git a/include/linux/nfsd/state.h b/include/linux/nfsd/state.h index d0fe2e378452..128298c0362d 100644 --- a/include/linux/nfsd/state.h +++ b/include/linux/nfsd/state.h | |||
| @@ -124,6 +124,8 @@ struct nfs4_client { | |||
| 124 | nfs4_verifier cl_verifier; /* generated by client */ | 124 | nfs4_verifier cl_verifier; /* generated by client */ |
| 125 | time_t cl_time; /* time of last lease renewal */ | 125 | time_t cl_time; /* time of last lease renewal */ |
| 126 | __be32 cl_addr; /* client ipaddress */ | 126 | __be32 cl_addr; /* client ipaddress */ |
| 127 | u32 cl_flavor; /* setclientid pseudoflavor */ | ||
| 128 | char *cl_principal; /* setclientid principal name */ | ||
| 127 | struct svc_cred cl_cred; /* setclientid principal */ | 129 | struct svc_cred cl_cred; /* setclientid principal */ |
| 128 | clientid_t cl_clientid; /* generated by server */ | 130 | clientid_t cl_clientid; /* generated by server */ |
| 129 | nfs4_verifier cl_confirm; /* generated by server */ | 131 | nfs4_verifier cl_confirm; /* generated by server */ |
diff --git a/include/linux/sunrpc/clnt.h b/include/linux/sunrpc/clnt.h index 6f0ee1b84a4f..c39a21040dcb 100644 --- a/include/linux/sunrpc/clnt.h +++ b/include/linux/sunrpc/clnt.h | |||
| @@ -58,6 +58,7 @@ struct rpc_clnt { | |||
| 58 | struct rpc_timeout cl_timeout_default; | 58 | struct rpc_timeout cl_timeout_default; |
| 59 | struct rpc_program * cl_program; | 59 | struct rpc_program * cl_program; |
| 60 | char cl_inline_name[32]; | 60 | char cl_inline_name[32]; |
| 61 | char *cl_principal; /* target to authenticate to */ | ||
| 61 | }; | 62 | }; |
| 62 | 63 | ||
| 63 | /* | 64 | /* |
| @@ -108,6 +109,7 @@ struct rpc_create_args { | |||
| 108 | u32 version; | 109 | u32 version; |
| 109 | rpc_authflavor_t authflavor; | 110 | rpc_authflavor_t authflavor; |
| 110 | unsigned long flags; | 111 | unsigned long flags; |
| 112 | char *client_name; | ||
| 111 | }; | 113 | }; |
| 112 | 114 | ||
| 113 | /* Values for "flags" field */ | 115 | /* Values for "flags" field */ |
diff --git a/include/linux/sunrpc/rpc_pipe_fs.h b/include/linux/sunrpc/rpc_pipe_fs.h index 51b977a4ca20..cea764c2359f 100644 --- a/include/linux/sunrpc/rpc_pipe_fs.h +++ b/include/linux/sunrpc/rpc_pipe_fs.h | |||
| @@ -15,6 +15,7 @@ struct rpc_pipe_ops { | |||
| 15 | ssize_t (*upcall)(struct file *, struct rpc_pipe_msg *, char __user *, size_t); | 15 | ssize_t (*upcall)(struct file *, struct rpc_pipe_msg *, char __user *, size_t); |
| 16 | ssize_t (*downcall)(struct file *, const char __user *, size_t); | 16 | ssize_t (*downcall)(struct file *, const char __user *, size_t); |
| 17 | void (*release_pipe)(struct inode *); | 17 | void (*release_pipe)(struct inode *); |
| 18 | int (*open_pipe)(struct inode *); | ||
| 18 | void (*destroy_msg)(struct rpc_pipe_msg *); | 19 | void (*destroy_msg)(struct rpc_pipe_msg *); |
| 19 | }; | 20 | }; |
| 20 | 21 | ||
diff --git a/include/linux/sunrpc/svcauth_gss.h b/include/linux/sunrpc/svcauth_gss.h index c9165d9771a8..ca7d725861fc 100644 --- a/include/linux/sunrpc/svcauth_gss.h +++ b/include/linux/sunrpc/svcauth_gss.h | |||
| @@ -20,6 +20,7 @@ int gss_svc_init(void); | |||
| 20 | void gss_svc_shutdown(void); | 20 | void gss_svc_shutdown(void); |
| 21 | int svcauth_gss_register_pseudoflavor(u32 pseudoflavor, char * name); | 21 | int svcauth_gss_register_pseudoflavor(u32 pseudoflavor, char * name); |
| 22 | u32 svcauth_gss_flavor(struct auth_domain *dom); | 22 | u32 svcauth_gss_flavor(struct auth_domain *dom); |
| 23 | char *svc_gss_principal(struct svc_rqst *); | ||
| 23 | 24 | ||
| 24 | #endif /* __KERNEL__ */ | 25 | #endif /* __KERNEL__ */ |
| 25 | #endif /* _LINUX_SUNRPC_SVCAUTH_GSS_H */ | 26 | #endif /* _LINUX_SUNRPC_SVCAUTH_GSS_H */ |
diff --git a/include/linux/sunrpc/xdr.h b/include/linux/sunrpc/xdr.h index e4057d729f03..49e1eb454465 100644 --- a/include/linux/sunrpc/xdr.h +++ b/include/linux/sunrpc/xdr.h | |||
| @@ -37,21 +37,6 @@ struct xdr_netobj { | |||
| 37 | typedef int (*kxdrproc_t)(void *rqstp, __be32 *data, void *obj); | 37 | typedef int (*kxdrproc_t)(void *rqstp, __be32 *data, void *obj); |
| 38 | 38 | ||
| 39 | /* | 39 | /* |
| 40 | * We're still requiring the BKL in the xdr code until it's been | ||
| 41 | * more carefully audited, at which point this wrapper will become | ||
| 42 | * unnecessary. | ||
| 43 | */ | ||
| 44 | static inline int rpc_call_xdrproc(kxdrproc_t xdrproc, void *rqstp, __be32 *data, void *obj) | ||
| 45 | { | ||
| 46 | int ret; | ||
| 47 | |||
| 48 | lock_kernel(); | ||
| 49 | ret = xdrproc(rqstp, data, obj); | ||
| 50 | unlock_kernel(); | ||
| 51 | return ret; | ||
| 52 | } | ||
| 53 | |||
| 54 | /* | ||
| 55 | * Basic structure for transmission/reception of a client XDR message. | 40 | * Basic structure for transmission/reception of a client XDR message. |
| 56 | * Features a header (for a linear buffer containing RPC headers | 41 | * Features a header (for a linear buffer containing RPC headers |
| 57 | * and the data payload for short messages), and then an array of | 42 | * and the data payload for short messages), and then an array of |
diff --git a/include/linux/sunrpc/xprt.h b/include/linux/sunrpc/xprt.h index 4d80a118d538..11fc71d50c1e 100644 --- a/include/linux/sunrpc/xprt.h +++ b/include/linux/sunrpc/xprt.h | |||
| @@ -76,8 +76,7 @@ struct rpc_rqst { | |||
| 76 | struct list_head rq_list; | 76 | struct list_head rq_list; |
| 77 | 77 | ||
| 78 | __u32 * rq_buffer; /* XDR encode buffer */ | 78 | __u32 * rq_buffer; /* XDR encode buffer */ |
| 79 | size_t rq_bufsize, | 79 | size_t rq_callsize, |
| 80 | rq_callsize, | ||
| 81 | rq_rcvsize; | 80 | rq_rcvsize; |
| 82 | 81 | ||
| 83 | struct xdr_buf rq_private_buf; /* The receive buffer | 82 | struct xdr_buf rq_private_buf; /* The receive buffer |
