Blame view
fs/nfs/delegation.h
2.51 KB
1da177e4c Linux-2.6.12-rc2 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
/* * linux/fs/nfs/delegation.h * * Copyright (c) Trond Myklebust * * Definitions pertaining to NFS delegated files */ #ifndef FS_NFS_DELEGATION_H #define FS_NFS_DELEGATION_H #if defined(CONFIG_NFS_V4) /* * NFSv4 delegation */ struct nfs_delegation { struct list_head super_list; struct rpc_cred *cred; struct inode *inode; nfs4_stateid stateid; |
bd7bf9d54 NFSv4: Convert de... |
20 |
fmode_t type; |
1da177e4c Linux-2.6.12-rc2 |
21 |
loff_t maxsize; |
beb2a5ec3 NFSv4: Ensure cha... |
22 |
__u64 change_attr; |
15c831bf1 NFS: Use atomic b... |
23 |
unsigned long flags; |
343104308 NFSv4: Fix up ano... |
24 |
spinlock_t lock; |
8383e4602 NFSv4: Use RCU to... |
25 |
struct rcu_head rcu; |
1da177e4c Linux-2.6.12-rc2 |
26 |
}; |
515d86117 NFSv4: Clean up t... |
27 28 29 |
enum { NFS_DELEGATION_NEED_RECLAIM = 0, NFS_DELEGATION_RETURN, |
b7391f44f NFSv4: Return unr... |
30 |
NFS_DELEGATION_REFERENCED, |
515d86117 NFSv4: Clean up t... |
31 |
}; |
1da177e4c Linux-2.6.12-rc2 |
32 33 |
int nfs_inode_set_delegation(struct inode *inode, struct rpc_cred *cred, struct nfs_openres *res); void nfs_inode_reclaim_delegation(struct inode *inode, struct rpc_cred *cred, struct nfs_openres *res); |
901630278 NFSv4: Support re... |
34 |
int nfs_inode_return_delegation(struct inode *inode); |
e047a10c1 NFSv41: Fix nfs_a... |
35 |
int nfs_async_inode_return_delegation(struct inode *inode, const nfs4_stateid *stateid); |
e6f810759 NFS: Add an async... |
36 |
void nfs_inode_return_delegation_noreclaim(struct inode *inode); |
1da177e4c Linux-2.6.12-rc2 |
37 |
|
adfa6f980 NFS: Rename struc... |
38 |
struct inode *nfs_delegation_find_inode(struct nfs_client *clp, const struct nfs_fh *fhandle); |
515d86117 NFSv4: Clean up t... |
39 |
void nfs_super_return_all_delegations(struct super_block *sb); |
adfa6f980 NFS: Rename struc... |
40 |
void nfs_expire_all_delegations(struct nfs_client *clp); |
31f096077 nfs41: V2 initial... |
41 |
void nfs_expire_all_delegation_types(struct nfs_client *clp, fmode_t flags); |
b7391f44f NFSv4: Return unr... |
42 |
void nfs_expire_unreferenced_delegations(struct nfs_client *clp); |
adfa6f980 NFS: Rename struc... |
43 |
void nfs_handle_cb_pathdown(struct nfs_client *clp); |
d18cc1fda NFSv4: Fix a pote... |
44 |
int nfs_client_return_marked_delegations(struct nfs_client *clp); |
d3978bb32 NFS: Move cl_dele... |
45 |
int nfs_delegations_present(struct nfs_client *clp); |
1da177e4c Linux-2.6.12-rc2 |
46 |
|
adfa6f980 NFS: Rename struc... |
47 48 |
void nfs_delegation_mark_reclaim(struct nfs_client *clp); void nfs_delegation_reap_unclaimed(struct nfs_client *clp); |
1da177e4c Linux-2.6.12-rc2 |
49 50 |
/* NFSv4 delegation-related procedures */ |
e6f810759 NFS: Add an async... |
51 |
int nfs4_proc_delegreturn(struct inode *inode, struct rpc_cred *cred, const nfs4_stateid *stateid, int issync); |
13437e12f NFSv4: Support re... |
52 |
int nfs4_open_delegation_recall(struct nfs_open_context *ctx, struct nfs4_state *state, const nfs4_stateid *stateid); |
888e694c1 NFSv4: Recover lo... |
53 |
int nfs4_lock_delegation_recall(struct nfs4_state *state, struct file_lock *fl); |
3e4f6290c NFSv4: Send the d... |
54 |
int nfs4_copy_delegation_stateid(nfs4_stateid *dst, struct inode *inode); |
1da177e4c Linux-2.6.12-rc2 |
55 |
|
b7391f44f NFSv4: Return unr... |
56 |
void nfs_mark_delegation_referenced(struct nfs_delegation *delegation); |
bd7bf9d54 NFSv4: Convert de... |
57 |
int nfs_have_delegation(struct inode *inode, fmode_t flags); |
cae7a073a NFSv4: Return del... |
58 |
|
1da177e4c Linux-2.6.12-rc2 |
59 |
#else |
bd7bf9d54 NFSv4: Convert de... |
60 |
static inline int nfs_have_delegation(struct inode *inode, fmode_t flags) |
1da177e4c Linux-2.6.12-rc2 |
61 62 63 |
{ return 0; } |
cae7a073a NFSv4: Return del... |
64 65 66 67 68 |
static inline int nfs_inode_return_delegation(struct inode *inode) { return 0; } |
1da177e4c Linux-2.6.12-rc2 |
69 |
#endif |
b4d2314bb NFSv4: Don't igno... |
70 71 72 73 74 |
static inline int nfs_have_delegated_attributes(struct inode *inode) { return nfs_have_delegation(inode, FMODE_READ) && !(NFS_I(inode)->cache_validity & NFS_INO_REVAL_FORCED); } |
1da177e4c Linux-2.6.12-rc2 |
75 |
#endif |