]> Gentwo Git Trees - linux/.git/commit
xdrgen: handle _XdrString in union encoder/decoder
authorKhushal Chitturi <kc9282016@gmail.com>
Wed, 29 Oct 2025 06:12:36 +0000 (11:42 +0530)
committerChuck Lever <chuck.lever@oracle.com>
Tue, 25 Nov 2025 14:09:42 +0000 (09:09 -0500)
commitb0f8e1f1f5e8427ea1d955c48bddb6408f354421
tree90dbb48740ef5cc57dd806a9683e56ea8092fc46
parent42ba5bd2e28b1f9e86303e4d176ae0809a53f0b6
xdrgen: handle _XdrString in union encoder/decoder

Running xdrgen on xdrgen/tests/test.x fails when
generating encoder or decoder functions for union
members of type _XdrString. It was because _XdrString
does not have a spec attribute like _XdrBasic,
leading to AttributeError.

This patch updates emit_union_case_spec_definition
and emit_union_case_spec_decoder/encoder to handle
_XdrString by assigning type_name = "char *" and
avoiding referencing to spec.

Testing: Fixed xdrgen tool was run on originally failing
test file (tools/net/sunrpc/xdrgen/tests/test.x) and now
completes without AttributeError. Modified xdrgen tool was
also run against nfs4_1.x (Documentation/sunrpc/xdr/nfs4_1.x).
The output header file matches with nfs4_1.h
(include/linux/sunrpc/xdrgen/nfs4_1.h).
This validates the patch for all XDR input files currently
within the kernel.

Changes since v2:
- Moved the shebang to the first line
- Removed SPDX header to match style of current xdrgen files

Changes since v1:
- Corrected email address in Signed-off-by.
- Wrapped patch description lines to 72 characters.

Signed-off-by: Khushal Chitturi <kc9282016@gmail.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
tools/net/sunrpc/xdrgen/generators/union.py
tools/net/sunrpc/xdrgen/templates/C/union/encoder/string.j2 [new file with mode: 0644]