diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-02-21 17:02:59 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-02-21 17:02:59 -0500 |
commit | 24a52e412ef22989b63c35428652598dc995812c (patch) | |
tree | d8174bc4dfb2b7913896ef46f4366087da8ca42c /include | |
parent | cd50b70ccd5c87794ec28bfb87b7fba9961eb0ae (diff) | |
parent | 71a097c6de9a49afd0f96b3ecef70c4eb04efde7 (diff) |
Merge tag 'nfs-for-3.20-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs
Pull more NFS client updates from Trond Myklebust:
"Highlights include:
- Fix a use-after-free in decode_cb_sequence_args()
- Fix a compile error when #undef CONFIG_PROC_FS
- NFSv4.1 backchannel spinlocking issue
- Cleanups in the NFS unstable write code requested by Linus
- NFSv4.1 fix issues when the server denies our backchannel request
- Cleanups in create_session and bind_conn_to_session"
* tag 'nfs-for-3.20-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs:
NFSv4.1: Clean up bind_conn_to_session
NFSv4.1: Always set up a forward channel when binding the session
NFSv4.1: Don't set up a backchannel if the server didn't agree to do so
NFSv4.1: Clean up create_session
pnfs: Refactor the *_layout_mark_request_commit to use pnfs_layout_mark_request_commit
NFSv4: Kill unused nfs_inode->delegation_state field
NFS: struct nfs_commit_info.lock must always point to inode->i_lock
nfs: Can call nfs_clear_page_commit() instead
nfs: Provide and use helper functions for marking a page as unstable
SUNRPC: Always manipulate rpc_rqst::rq_bc_pa_list under xprt->bc_pa_lock
SUNRPC: Fix a compile error when #undef CONFIG_PROC_FS
NFSv4.1: Convert open-coded array allocation calls to kmalloc_array()
NFSv4.1: Fix a kfree() of uninitialised pointers in decode_cb_sequence_args
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/nfs_fs.h | 1 | ||||
-rw-r--r-- | include/linux/nfs_xdr.h | 19 | ||||
-rw-r--r-- | include/linux/sunrpc/metrics.h | 7 |
3 files changed, 21 insertions, 6 deletions
diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h index 6d627b92df53..2f77e0c651c8 100644 --- a/include/linux/nfs_fs.h +++ b/include/linux/nfs_fs.h | |||
@@ -180,7 +180,6 @@ struct nfs_inode { | |||
180 | /* NFSv4 state */ | 180 | /* NFSv4 state */ |
181 | struct list_head open_states; | 181 | struct list_head open_states; |
182 | struct nfs_delegation __rcu *delegation; | 182 | struct nfs_delegation __rcu *delegation; |
183 | fmode_t delegation_state; | ||
184 | struct rw_semaphore rwsem; | 183 | struct rw_semaphore rwsem; |
185 | 184 | ||
186 | /* pNFS layout information */ | 185 | /* pNFS layout information */ |
diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h index 38d96ba935c2..4cb3eaa89cf7 100644 --- a/include/linux/nfs_xdr.h +++ b/include/linux/nfs_xdr.h | |||
@@ -1167,8 +1167,15 @@ struct nfs41_impl_id { | |||
1167 | struct nfstime4 date; | 1167 | struct nfstime4 date; |
1168 | }; | 1168 | }; |
1169 | 1169 | ||
1170 | struct nfs41_bind_conn_to_session_args { | ||
1171 | struct nfs_client *client; | ||
1172 | struct nfs4_sessionid sessionid; | ||
1173 | u32 dir; | ||
1174 | bool use_conn_in_rdma_mode; | ||
1175 | }; | ||
1176 | |||
1170 | struct nfs41_bind_conn_to_session_res { | 1177 | struct nfs41_bind_conn_to_session_res { |
1171 | struct nfs4_session *session; | 1178 | struct nfs4_sessionid sessionid; |
1172 | u32 dir; | 1179 | u32 dir; |
1173 | bool use_conn_in_rdma_mode; | 1180 | bool use_conn_in_rdma_mode; |
1174 | }; | 1181 | }; |
@@ -1185,6 +1192,8 @@ struct nfs41_exchange_id_res { | |||
1185 | 1192 | ||
1186 | struct nfs41_create_session_args { | 1193 | struct nfs41_create_session_args { |
1187 | struct nfs_client *client; | 1194 | struct nfs_client *client; |
1195 | u64 clientid; | ||
1196 | uint32_t seqid; | ||
1188 | uint32_t flags; | 1197 | uint32_t flags; |
1189 | uint32_t cb_program; | 1198 | uint32_t cb_program; |
1190 | struct nfs4_channel_attrs fc_attrs; /* Fore Channel */ | 1199 | struct nfs4_channel_attrs fc_attrs; /* Fore Channel */ |
@@ -1192,7 +1201,11 @@ struct nfs41_create_session_args { | |||
1192 | }; | 1201 | }; |
1193 | 1202 | ||
1194 | struct nfs41_create_session_res { | 1203 | struct nfs41_create_session_res { |
1195 | struct nfs_client *client; | 1204 | struct nfs4_sessionid sessionid; |
1205 | uint32_t seqid; | ||
1206 | uint32_t flags; | ||
1207 | struct nfs4_channel_attrs fc_attrs; /* Fore Channel */ | ||
1208 | struct nfs4_channel_attrs bc_attrs; /* Back Channel */ | ||
1196 | }; | 1209 | }; |
1197 | 1210 | ||
1198 | struct nfs41_reclaim_complete_args { | 1211 | struct nfs41_reclaim_complete_args { |
@@ -1351,7 +1364,7 @@ struct nfs_commit_completion_ops { | |||
1351 | }; | 1364 | }; |
1352 | 1365 | ||
1353 | struct nfs_commit_info { | 1366 | struct nfs_commit_info { |
1354 | spinlock_t *lock; | 1367 | spinlock_t *lock; /* inode->i_lock */ |
1355 | struct nfs_mds_commit_info *mds; | 1368 | struct nfs_mds_commit_info *mds; |
1356 | struct pnfs_ds_commit_info *ds; | 1369 | struct pnfs_ds_commit_info *ds; |
1357 | struct nfs_direct_req *dreq; /* O_DIRECT request */ | 1370 | struct nfs_direct_req *dreq; /* O_DIRECT request */ |
diff --git a/include/linux/sunrpc/metrics.h b/include/linux/sunrpc/metrics.h index 7e61a17030a4..694eecb2f1b5 100644 --- a/include/linux/sunrpc/metrics.h +++ b/include/linux/sunrpc/metrics.h | |||
@@ -89,8 +89,11 @@ void rpc_free_iostats(struct rpc_iostats *); | |||
89 | static inline struct rpc_iostats *rpc_alloc_iostats(struct rpc_clnt *clnt) { return NULL; } | 89 | static inline struct rpc_iostats *rpc_alloc_iostats(struct rpc_clnt *clnt) { return NULL; } |
90 | static inline void rpc_count_iostats(const struct rpc_task *task, | 90 | static inline void rpc_count_iostats(const struct rpc_task *task, |
91 | struct rpc_iostats *stats) {} | 91 | struct rpc_iostats *stats) {} |
92 | static inline void rpc_count_iostats_metrics(const struct rpc_task *, | 92 | static inline void rpc_count_iostats_metrics(const struct rpc_task *task, |
93 | struct rpc_iostats *) {} | 93 | struct rpc_iostats *stats) |
94 | { | ||
95 | } | ||
96 | |||
94 | static inline void rpc_print_iostats(struct seq_file *seq, struct rpc_clnt *clnt) {} | 97 | static inline void rpc_print_iostats(struct seq_file *seq, struct rpc_clnt *clnt) {} |
95 | static inline void rpc_free_iostats(struct rpc_iostats *stats) {} | 98 | static inline void rpc_free_iostats(struct rpc_iostats *stats) {} |
96 | 99 | ||