Re: [PATCH v2] 9p: document missing enum values in kernel-doc comments

From: Christian Schoenebeck

Date: Sun Mar 15 2026 - 14:50:49 EST


On Sunday, 15 March 2026 18:07:02 CET Kit Dallege wrote:
> Add kernel-doc entries for all undocumented enum values:
> - p9_debug_flags: P9_DEBUG_CACHE, P9_DEBUG_MMAP
> - p9_msg_t: all 9P2000.L message types (TLOPEN/RLOPEN through
> TUNLINKAT/RUNLINKAT)
> - p9_open_mode_t: P9L_MODE_MASK, P9L_DIRECT, P9L_NOWRITECACHE,
> P9L_LOOSE
>
> Assisted-by: Claude:claude-opus-4-6

Of course. :)

> Signed-off-by: Kit Dallege <xaum.io@xxxxxxxxx>
> ---
> include/net/9p/9p.h | 32 ++++++++++++++++++++++++++++++++
> 1 file changed, 32 insertions(+)
>
> diff --git a/include/net/9p/9p.h b/include/net/9p/9p.h
> index 60cad0d200a4..6b645a0d3487 100644
> --- a/include/net/9p/9p.h
> +++ b/include/net/9p/9p.h
> @@ -24,6 +24,8 @@
> * @P9_DEBUG_PKT: packet marshalling/unmarshalling
> * @P9_DEBUG_FSC: FS-cache tracing
> * @P9_DEBUG_VPKT: Verbose packet debugging (full packet dump)
> + * @P9_DEBUG_CACHE: cache operations tracing
> + * @P9_DEBUG_MMAP: memory-mapped I/O tracing
> *
> * These flags are passed at mount time to turn on various levels of
> * verbosity and tracing which will be output to the system logs.
> @@ -68,10 +70,36 @@ void _p9_debug(enum p9_debug_flags level, const char
> *func, * @P9_RSYMLINK: make symlink response
> * @P9_TMKNOD: create a special file object request
> * @P9_RMKNOD: create a special file object response
> + * @P9_TLOPEN: open a file for I/O (9P2000.L)
> + * @P9_RLOPEN: response with file access information (9P2000.L)

not really, it returns the QID and the iounit, that's it

> * @P9_TLCREATE: prepare a handle for I/O on an new file for 9P2000.L
> * @P9_RLCREATE: response with file access information for 9P2000.L
> * @P9_TRENAME: rename request
> * @P9_RRENAME: rename response
> + * @P9_TREADLINK: read symbolic link request
> + * @P9_RREADLINK: read symbolic link response

9P2000.L

link *target* ?

> + * @P9_TGETATTR: get file attributes request (9P2000.L)
> + * @P9_RGETATTR: get file attributes response (9P2000.L)
> + * @P9_TSETATTR: set file attributes request (9P2000.L)
> + * @P9_RSETATTR: set file attributes response (9P2000.L)
> + * @P9_TXATTRWALK: walk to an extended attribute
> + * @P9_RXATTRWALK: response with extended attribute handle

9P2000.L

prepare to read/list extended attributes

> + * @P9_TXATTRCREATE: create an extended attribute
> + * @P9_RXATTRCREATE: response for extended attribute creation

*prepare* to set extended attribute.

9P2000.L

> + * @P9_TREADDIR: read directory entries request
> + * @P9_RREADDIR: read directory entries response

9P2000.L

> + * @P9_TFSYNC: flush file data to storage request
> + * @P9_RFSYNC: flush file data to storage response

flush *cached* file data ...

9P2000.L

> + * @P9_TLOCK: acquire or test a POSIX lock
> + * @P9_RLOCK: lock acquisition response

acquire or *release* ...

9P2000.L

> + * @P9_TGETLOCK: get lock information
> + * @P9_RGETLOCK: lock information response

test for existence of POSIX record lock

9P2000.L

> + * @P9_TLINK: create a hard link
> + * @P9_RLINK: hard link response

9P2000.L

> + * @P9_TRENAMEAT: rename using directory fids
> + * @P9_RRENAMEAT: rename response

9P2000.L

legacy TRENAME does also use fids. This is a safer variant of TRENAME.

> + * @P9_TUNLINKAT: unlink using directory fid
> + * @P9_RUNLINKAT: unlink response

9P2000.L

unlink a file or directory

> * @P9_TMKDIR: create a directory request
> * @P9_RMKDIR: create a directory response

9P2000.L

> * @P9_TVERSION: version handshake request

negotiate 9p protocol version

9p2000.L: https://github.com/chaos/diod/blob/master/protocol.md
9p2000.u: http://ericvh.github.io/9p-rfc/rfc9p2000.u.html
9p2000: http://ericvh.github.io/9p-rfc/rfc9p2000.html

Claude, RTFM!

> @@ -194,6 +222,10 @@ enum p9_msg_t {
> * @P9_ORCLOSE: remove the file when the file is closed
> * @P9_OAPPEND: open the file and seek to the end
> * @P9_OEXCL: only create a file, do not open it
> + * @P9L_MODE_MASK: mask for protocol mode bits (client-side only)
> + * @P9L_DIRECT: disable client-side caching for this file
> + * @P9L_NOWRITECACHE: disable write caching for this file
> + * @P9L_LOOSE: enable loose cache consistency
> *
> * 9P open modes differ slightly from Posix standard modes.
> * In particular, there are extra modes which specify different