diff options
Diffstat (limited to 'fs/nfs/nfs4_fs.h')
-rw-r--r-- | fs/nfs/nfs4_fs.h | 59 |
1 files changed, 44 insertions, 15 deletions
diff --git a/fs/nfs/nfs4_fs.h b/fs/nfs/nfs4_fs.h index 311e15cc8af0..c4a69833dd0d 100644 --- a/fs/nfs/nfs4_fs.h +++ b/fs/nfs/nfs4_fs.h | |||
@@ -44,8 +44,10 @@ enum nfs4_client_state { | |||
44 | NFS4CLNT_RECLAIM_REBOOT, | 44 | NFS4CLNT_RECLAIM_REBOOT, |
45 | NFS4CLNT_RECLAIM_NOGRACE, | 45 | NFS4CLNT_RECLAIM_NOGRACE, |
46 | NFS4CLNT_DELEGRETURN, | 46 | NFS4CLNT_DELEGRETURN, |
47 | NFS4CLNT_LAYOUTRECALL, | ||
47 | NFS4CLNT_SESSION_RESET, | 48 | NFS4CLNT_SESSION_RESET, |
48 | NFS4CLNT_RECALL_SLOT, | 49 | NFS4CLNT_RECALL_SLOT, |
50 | NFS4CLNT_LEASE_CONFIRM, | ||
49 | }; | 51 | }; |
50 | 52 | ||
51 | enum nfs4_session_state { | 53 | enum nfs4_session_state { |
@@ -56,7 +58,8 @@ enum nfs4_session_state { | |||
56 | struct nfs4_minor_version_ops { | 58 | struct nfs4_minor_version_ops { |
57 | u32 minor_version; | 59 | u32 minor_version; |
58 | 60 | ||
59 | int (*call_sync)(struct nfs_server *server, | 61 | int (*call_sync)(struct rpc_clnt *clnt, |
62 | struct nfs_server *server, | ||
60 | struct rpc_message *msg, | 63 | struct rpc_message *msg, |
61 | struct nfs4_sequence_args *args, | 64 | struct nfs4_sequence_args *args, |
62 | struct nfs4_sequence_res *res, | 65 | struct nfs4_sequence_res *res, |
@@ -109,7 +112,7 @@ struct nfs_unique_id { | |||
109 | struct nfs4_state_owner { | 112 | struct nfs4_state_owner { |
110 | struct nfs_unique_id so_owner_id; | 113 | struct nfs_unique_id so_owner_id; |
111 | struct nfs_server *so_server; | 114 | struct nfs_server *so_server; |
112 | struct rb_node so_client_node; | 115 | struct rb_node so_server_node; |
113 | 116 | ||
114 | struct rpc_cred *so_cred; /* Associated cred */ | 117 | struct rpc_cred *so_cred; /* Associated cred */ |
115 | 118 | ||
@@ -227,12 +230,6 @@ struct nfs4_state_maintenance_ops { | |||
227 | extern const struct dentry_operations nfs4_dentry_operations; | 230 | extern const struct dentry_operations nfs4_dentry_operations; |
228 | extern const struct inode_operations nfs4_dir_inode_operations; | 231 | extern const struct inode_operations nfs4_dir_inode_operations; |
229 | 232 | ||
230 | /* inode.c */ | ||
231 | extern ssize_t nfs4_getxattr(struct dentry *, const char *, void *, size_t); | ||
232 | extern int nfs4_setxattr(struct dentry *, const char *, const void *, size_t, int); | ||
233 | extern ssize_t nfs4_listxattr(struct dentry *, char *, size_t); | ||
234 | |||
235 | |||
236 | /* nfs4proc.c */ | 233 | /* nfs4proc.c */ |
237 | extern int nfs4_proc_setclientid(struct nfs_client *, u32, unsigned short, struct rpc_cred *, struct nfs4_setclientid_res *); | 234 | extern int nfs4_proc_setclientid(struct nfs_client *, u32, unsigned short, struct rpc_cred *, struct nfs4_setclientid_res *); |
238 | extern int nfs4_proc_setclientid_confirm(struct nfs_client *, struct nfs4_setclientid_res *arg, struct rpc_cred *); | 235 | extern int nfs4_proc_setclientid_confirm(struct nfs_client *, struct nfs4_setclientid_res *arg, struct rpc_cred *); |
@@ -241,13 +238,12 @@ extern int nfs4_proc_async_renew(struct nfs_client *, struct rpc_cred *); | |||
241 | extern int nfs4_proc_renew(struct nfs_client *, struct rpc_cred *); | 238 | extern int nfs4_proc_renew(struct nfs_client *, struct rpc_cred *); |
242 | extern int nfs4_init_clientid(struct nfs_client *, struct rpc_cred *); | 239 | extern int nfs4_init_clientid(struct nfs_client *, struct rpc_cred *); |
243 | extern int nfs41_init_clientid(struct nfs_client *, struct rpc_cred *); | 240 | extern int nfs41_init_clientid(struct nfs_client *, struct rpc_cred *); |
244 | extern int nfs4_do_close(struct path *path, struct nfs4_state *state, gfp_t gfp_mask, int wait); | 241 | extern int nfs4_do_close(struct path *path, struct nfs4_state *state, gfp_t gfp_mask, int wait, bool roc); |
245 | extern struct dentry *nfs4_atomic_open(struct inode *, struct dentry *, struct nameidata *); | ||
246 | extern int nfs4_open_revalidate(struct inode *, struct dentry *, int, struct nameidata *); | ||
247 | extern int nfs4_server_capabilities(struct nfs_server *server, struct nfs_fh *fhandle); | 242 | extern int nfs4_server_capabilities(struct nfs_server *server, struct nfs_fh *fhandle); |
248 | extern int nfs4_proc_fs_locations(struct inode *dir, const struct qstr *name, | 243 | extern int nfs4_proc_fs_locations(struct inode *dir, const struct qstr *name, |
249 | struct nfs4_fs_locations *fs_locations, struct page *page); | 244 | struct nfs4_fs_locations *fs_locations, struct page *page); |
250 | extern void nfs4_release_lockowner(const struct nfs4_lock_state *); | 245 | extern void nfs4_release_lockowner(const struct nfs4_lock_state *); |
246 | extern const struct xattr_handler *nfs4_xattr_handlers[]; | ||
251 | 247 | ||
252 | #if defined(CONFIG_NFS_V4_1) | 248 | #if defined(CONFIG_NFS_V4_1) |
253 | static inline struct nfs4_session *nfs4_get_session(const struct nfs_server *server) | 249 | static inline struct nfs4_session *nfs4_get_session(const struct nfs_server *server) |
@@ -258,6 +254,9 @@ static inline struct nfs4_session *nfs4_get_session(const struct nfs_server *ser | |||
258 | extern int nfs4_setup_sequence(const struct nfs_server *server, | 254 | extern int nfs4_setup_sequence(const struct nfs_server *server, |
259 | struct nfs4_sequence_args *args, struct nfs4_sequence_res *res, | 255 | struct nfs4_sequence_args *args, struct nfs4_sequence_res *res, |
260 | int cache_reply, struct rpc_task *task); | 256 | int cache_reply, struct rpc_task *task); |
257 | extern int nfs41_setup_sequence(struct nfs4_session *session, | ||
258 | struct nfs4_sequence_args *args, struct nfs4_sequence_res *res, | ||
259 | int cache_reply, struct rpc_task *task); | ||
261 | extern void nfs4_destroy_session(struct nfs4_session *session); | 260 | extern void nfs4_destroy_session(struct nfs4_session *session); |
262 | extern struct nfs4_session *nfs4_alloc_session(struct nfs_client *clp); | 261 | extern struct nfs4_session *nfs4_alloc_session(struct nfs_client *clp); |
263 | extern int nfs4_proc_create_session(struct nfs_client *); | 262 | extern int nfs4_proc_create_session(struct nfs_client *); |
@@ -265,6 +264,21 @@ extern int nfs4_proc_destroy_session(struct nfs4_session *); | |||
265 | extern int nfs4_init_session(struct nfs_server *server); | 264 | extern int nfs4_init_session(struct nfs_server *server); |
266 | extern int nfs4_proc_get_lease_time(struct nfs_client *clp, | 265 | extern int nfs4_proc_get_lease_time(struct nfs_client *clp, |
267 | struct nfs_fsinfo *fsinfo); | 266 | struct nfs_fsinfo *fsinfo); |
267 | extern int nfs4_proc_layoutcommit(struct nfs4_layoutcommit_data *data, | ||
268 | bool sync); | ||
269 | |||
270 | static inline bool | ||
271 | is_ds_only_client(struct nfs_client *clp) | ||
272 | { | ||
273 | return (clp->cl_exchange_flags & EXCHGID4_FLAG_MASK_PNFS) == | ||
274 | EXCHGID4_FLAG_USE_PNFS_DS; | ||
275 | } | ||
276 | |||
277 | static inline bool | ||
278 | is_ds_client(struct nfs_client *clp) | ||
279 | { | ||
280 | return clp->cl_exchange_flags & EXCHGID4_FLAG_USE_PNFS_DS; | ||
281 | } | ||
268 | #else /* CONFIG_NFS_v4_1 */ | 282 | #else /* CONFIG_NFS_v4_1 */ |
269 | static inline struct nfs4_session *nfs4_get_session(const struct nfs_server *server) | 283 | static inline struct nfs4_session *nfs4_get_session(const struct nfs_server *server) |
270 | { | 284 | { |
@@ -282,6 +296,18 @@ static inline int nfs4_init_session(struct nfs_server *server) | |||
282 | { | 296 | { |
283 | return 0; | 297 | return 0; |
284 | } | 298 | } |
299 | |||
300 | static inline bool | ||
301 | is_ds_only_client(struct nfs_client *clp) | ||
302 | { | ||
303 | return false; | ||
304 | } | ||
305 | |||
306 | static inline bool | ||
307 | is_ds_client(struct nfs_client *clp) | ||
308 | { | ||
309 | return false; | ||
310 | } | ||
285 | #endif /* CONFIG_NFS_V4_1 */ | 311 | #endif /* CONFIG_NFS_V4_1 */ |
286 | 312 | ||
287 | extern const struct nfs4_minor_version_ops *nfs_v4_minor_ops[]; | 313 | extern const struct nfs4_minor_version_ops *nfs_v4_minor_ops[]; |
@@ -304,6 +330,11 @@ struct rpc_cred *nfs4_get_renew_cred_locked(struct nfs_client *clp); | |||
304 | #if defined(CONFIG_NFS_V4_1) | 330 | #if defined(CONFIG_NFS_V4_1) |
305 | struct rpc_cred *nfs4_get_machine_cred_locked(struct nfs_client *clp); | 331 | struct rpc_cred *nfs4_get_machine_cred_locked(struct nfs_client *clp); |
306 | struct rpc_cred *nfs4_get_exchange_id_cred(struct nfs_client *clp); | 332 | struct rpc_cred *nfs4_get_exchange_id_cred(struct nfs_client *clp); |
333 | extern void nfs4_schedule_session_recovery(struct nfs4_session *); | ||
334 | #else | ||
335 | static inline void nfs4_schedule_session_recovery(struct nfs4_session *session) | ||
336 | { | ||
337 | } | ||
307 | #endif /* CONFIG_NFS_V4_1 */ | 338 | #endif /* CONFIG_NFS_V4_1 */ |
308 | 339 | ||
309 | extern struct nfs4_state_owner * nfs4_get_state_owner(struct nfs_server *, struct rpc_cred *); | 340 | extern struct nfs4_state_owner * nfs4_get_state_owner(struct nfs_server *, struct rpc_cred *); |
@@ -313,10 +344,9 @@ extern void nfs4_put_open_state(struct nfs4_state *); | |||
313 | extern void nfs4_close_state(struct path *, struct nfs4_state *, fmode_t); | 344 | extern void nfs4_close_state(struct path *, struct nfs4_state *, fmode_t); |
314 | extern void nfs4_close_sync(struct path *, struct nfs4_state *, fmode_t); | 345 | extern void nfs4_close_sync(struct path *, struct nfs4_state *, fmode_t); |
315 | extern void nfs4_state_set_mode_locked(struct nfs4_state *, fmode_t); | 346 | extern void nfs4_state_set_mode_locked(struct nfs4_state *, fmode_t); |
316 | extern void nfs4_schedule_state_recovery(struct nfs_client *); | 347 | extern void nfs4_schedule_lease_recovery(struct nfs_client *); |
317 | extern void nfs4_schedule_state_manager(struct nfs_client *); | 348 | extern void nfs4_schedule_state_manager(struct nfs_client *); |
318 | extern int nfs4_state_mark_reclaim_nograce(struct nfs_client *clp, struct nfs4_state *state); | 349 | extern void nfs4_schedule_stateid_recovery(const struct nfs_server *, struct nfs4_state *); |
319 | extern int nfs4_state_mark_reclaim_reboot(struct nfs_client *clp, struct nfs4_state *state); | ||
320 | extern void nfs41_handle_sequence_flag_errors(struct nfs_client *clp, u32 flags); | 350 | extern void nfs41_handle_sequence_flag_errors(struct nfs_client *clp, u32 flags); |
321 | extern void nfs41_handle_recall_slot(struct nfs_client *clp); | 351 | extern void nfs41_handle_recall_slot(struct nfs_client *clp); |
322 | extern void nfs4_put_lock_state(struct nfs4_lock_state *lsp); | 352 | extern void nfs4_put_lock_state(struct nfs4_lock_state *lsp); |
@@ -333,7 +363,6 @@ extern void nfs_free_seqid(struct nfs_seqid *seqid); | |||
333 | extern const nfs4_stateid zero_stateid; | 363 | extern const nfs4_stateid zero_stateid; |
334 | 364 | ||
335 | /* nfs4xdr.c */ | 365 | /* nfs4xdr.c */ |
336 | extern __be32 *nfs4_decode_dirent(__be32 *p, struct nfs_entry *entry, int plus); | ||
337 | extern struct rpc_procinfo nfs4_procedures[]; | 366 | extern struct rpc_procinfo nfs4_procedures[]; |
338 | 367 | ||
339 | struct nfs4_mount_data; | 368 | struct nfs4_mount_data; |