aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfsd
diff options
context:
space:
mode:
Diffstat (limited to 'fs/nfsd')
-rw-r--r--fs/nfsd/current_stateid.h2
-rw-r--r--fs/nfsd/nfs4proc.c2
-rw-r--r--fs/nfsd/nfs4state.c12
3 files changed, 16 insertions, 0 deletions
diff --git a/fs/nfsd/current_stateid.h b/fs/nfsd/current_stateid.h
index 21550b69dec6..6e54d19a88c3 100644
--- a/fs/nfsd/current_stateid.h
+++ b/fs/nfsd/current_stateid.h
@@ -16,5 +16,7 @@ extern void nfsd4_set_closestateid(struct nfsd4_compound_state *, struct nfsd4_c
16 */ 16 */
17extern void nfsd4_get_closestateid(struct nfsd4_compound_state *, struct nfsd4_close *); 17extern void nfsd4_get_closestateid(struct nfsd4_compound_state *, struct nfsd4_close *);
18extern void nfsd4_get_lockustateid(struct nfsd4_compound_state *, struct nfsd4_locku *); 18extern void nfsd4_get_lockustateid(struct nfsd4_compound_state *, struct nfsd4_locku *);
19extern void nfsd4_get_readstateid(struct nfsd4_compound_state *, struct nfsd4_read *);
20extern void nfsd4_get_writestateid(struct nfsd4_compound_state *, struct nfsd4_write *);
19 21
20#endif /* _NFSD4_CURRENT_STATE_H */ 22#endif /* _NFSD4_CURRENT_STATE_H */
diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c
index a985e19288b1..d788d754ccde 100644
--- a/fs/nfsd/nfs4proc.c
+++ b/fs/nfsd/nfs4proc.c
@@ -1546,6 +1546,7 @@ static struct nfsd4_operation nfsd4_ops[] = {
1546 .op_flags = OP_MODIFIES_SOMETHING, 1546 .op_flags = OP_MODIFIES_SOMETHING,
1547 .op_name = "OP_READ", 1547 .op_name = "OP_READ",
1548 .op_rsize_bop = (nfsd4op_rsize)nfsd4_read_rsize, 1548 .op_rsize_bop = (nfsd4op_rsize)nfsd4_read_rsize,
1549 .op_get_currentstateid = (stateid_getter)nfsd4_get_readstateid,
1549 }, 1550 },
1550 [OP_READDIR] = { 1551 [OP_READDIR] = {
1551 .op_func = (nfsd4op_func)nfsd4_readdir, 1552 .op_func = (nfsd4op_func)nfsd4_readdir,
@@ -1624,6 +1625,7 @@ static struct nfsd4_operation nfsd4_ops[] = {
1624 .op_flags = OP_MODIFIES_SOMETHING | OP_CACHEME, 1625 .op_flags = OP_MODIFIES_SOMETHING | OP_CACHEME,
1625 .op_name = "OP_WRITE", 1626 .op_name = "OP_WRITE",
1626 .op_rsize_bop = (nfsd4op_rsize)nfsd4_write_rsize, 1627 .op_rsize_bop = (nfsd4op_rsize)nfsd4_write_rsize,
1628 .op_get_currentstateid = (stateid_getter)nfsd4_get_writestateid,
1627 }, 1629 },
1628 [OP_RELEASE_LOCKOWNER] = { 1630 [OP_RELEASE_LOCKOWNER] = {
1629 .op_func = (nfsd4op_func)nfsd4_release_lockowner, 1631 .op_func = (nfsd4op_func)nfsd4_release_lockowner,
diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
index 24eae5c11820..e97036f32b9b 100644
--- a/fs/nfsd/nfs4state.c
+++ b/fs/nfsd/nfs4state.c
@@ -4745,3 +4745,15 @@ nfsd4_get_lockustateid(struct nfsd4_compound_state *cstate, struct nfsd4_locku *
4745{ 4745{
4746 get_stateid(cstate, &locku->lu_stateid); 4746 get_stateid(cstate, &locku->lu_stateid);
4747} 4747}
4748
4749void
4750nfsd4_get_readstateid(struct nfsd4_compound_state *cstate, struct nfsd4_read *read)
4751{
4752 get_stateid(cstate, &read->rd_stateid);
4753}
4754
4755void
4756nfsd4_get_writestateid(struct nfsd4_compound_state *cstate, struct nfsd4_write *write)
4757{
4758 get_stateid(cstate, &write->wr_stateid);
4759}