summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChuck Lever <chuck.lever@oracle.com>2026-05-12 21:14:01 +0300
committerChuck Lever <cel@kernel.org>2026-06-09 23:32:59 +0300
commit9783a82b75feb3cf1d2c6f31194e756fb0c13fca (patch)
tree67570206632a2287de5c45952522a7fe9b2f0baf
parent386bed664e0d20e60908bc51d33994bf6c1a05a0 (diff)
downloadlinux-9783a82b75feb3cf1d2c6f31194e756fb0c13fca.tar.xz
lockd: Use xdrgen XDR functions for the NLMv3 LOCK_RES procedure
Continue the xdrgen migration by converting NLMv3 LOCK_RES, the callback that a remote NLM uses to return async LOCK results to this lockd. The procedure now uses nlm_svc_decode_nlm_res and nlm_svc_encode_void, generated from the NLM version 3 protocol specification. Setting pc_argzero to zero is safe because the generated decoder fills the argp->xdrgen subfields before the procedure runs, so the zeroing memset performed by the dispatch layer is no longer needed. Setting pc_xdrressize to XDR_void reflects that LOCK_RES, as a callback, returns no data; the previous value of St over-reserved a status word in the reply buffer. Reviewed-by: Jeff Layton <jlayton@kernel.org> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
-rw-r--r--fs/lockd/svcproc.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/fs/lockd/svcproc.c b/fs/lockd/svcproc.c
index ed1164ff431a..c86ba0b94793 100644
--- a/fs/lockd/svcproc.c
+++ b/fs/lockd/svcproc.c
@@ -1280,15 +1280,15 @@ static const struct svc_procedure nlmsvc_procedures[24] = {
.pc_xdrressize = XDR_void,
.pc_name = "TEST_RES",
},
- [NLMPROC_LOCK_RES] = {
- .pc_func = nlmsvc_proc_null,
- .pc_decode = nlmsvc_decode_void,
- .pc_encode = nlmsvc_encode_void,
- .pc_argsize = sizeof(struct lockd_res),
- .pc_argzero = sizeof(struct lockd_res),
- .pc_ressize = sizeof(struct nlm_void),
- .pc_xdrressize = St,
- .pc_name = "LOCK_RES",
+ [NLM_LOCK_RES] = {
+ .pc_func = nlmsvc_proc_null,
+ .pc_decode = nlm_svc_decode_nlm_res,
+ .pc_encode = nlm_svc_encode_void,
+ .pc_argsize = sizeof(struct nlm_res),
+ .pc_argzero = 0,
+ .pc_ressize = 0,
+ .pc_xdrressize = XDR_void,
+ .pc_name = "LOCK_RES",
},
[NLMPROC_CANCEL_RES] = {
.pc_func = nlmsvc_proc_null,