summaryrefslogtreecommitdiff
path: root/include/linux/timerqueue.h
diff options
context:
space:
mode:
authorChuck Lever <chuck.lever@oracle.com>2026-05-12 21:13:57 +0300
committerChuck Lever <cel@kernel.org>2026-06-09 23:32:59 +0300
commit02a47b6c5c85b28bf4dbf0c6c0ee29e0f735271f (patch)
treee619c62b507e1e8e4fdb1b19dfd60cb4e633cedf /include/linux/timerqueue.h
parent438c9af3b135b614b9ea771456f1d441b3291cb5 (diff)
downloadlinux-02a47b6c5c85b28bf4dbf0c6c0ee29e0f735271f.tar.xz
lockd: Use xdrgen XDR functions for the NLMv3 CANCEL_MSG procedure
The CANCEL_MSG procedure is part of NLM's asynchronous lock request flow, where clients send CANCEL_MSG to cancel pending lock requests. This patch continues the xdrgen migration by converting CANCEL_MSG to use generated XDR functions. This patch converts the CANCEL_MSG procedure to use xdrgen functions nlm_svc_decode_nlm_cancargs and nlm_svc_encode_void generated from the NLM version 3 protocol specification. The procedure handler uses xdrgen types through the nlm_cancargs_wrapper structure that bridges between generated code and the legacy lockd_lock representation. 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 not needed. The lock member of the wrapper is populated explicitly in nlm3svc_lookup_file() rather than relying on zero-initialization. The previous hand-written decoder in svcxdr_decode_cookie() rewrote a zero-length NLM cookie into a four-byte zero cookie, with a comment attributing the substitution to HP-UX clients. The xdrgen-generated netobj decoder performs no such rewrite, so a zero-length request cookie now round-trips unchanged into the CANCEL_RES reply. HP-UX has reached end of support, and CANCEL_MSG is fire-and-forget with no client-side reply matching on the NLM cookie, so the workaround is dropped intentionally here. The NLM async callback mechanism uses client-side functions which continue to take legacy results like struct lockd_res, preventing CANCEL and CANCEL_MSG from sharing code for now. Reviewed-by: Jeff Layton <jlayton@kernel.org> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Diffstat (limited to 'include/linux/timerqueue.h')
0 files changed, 0 insertions, 0 deletions