mirror of
https://github.com/torvalds/linux.git
synced 2026-07-28 01:55:51 +02:00
The new get-reqs dump operations added to sunrpc_cache.yaml and
nfsd.yaml place the "requests" nested attribute under dump.request.
A netlink dump carries an empty request; its payload travels back
in the reply. Because the spec names no reply attributes, the YNL
C code generator synthesizes a forward reference to a
<op>_rsp struct that is never defined, breaking any consumer of
these specs.
This first surfaced when Thorsten Leemhuis built tools/net/ynl
against -next:
nfsd-user.h:746: error: field 'obj' has incomplete type
struct nfsd_svc_export_get_reqs_rsp obj ...
nfsd-user.h:826: error: field 'obj' has incomplete type
struct nfsd_expkey_get_reqs_rsp obj ...
nfsd-user.c:1211: error: 'nfsd_svc_export_get_reqs_rsp_parse'
undeclared
sunrpc_cache.yaml has the same defect in ip-map-get-reqs and
unix-gid-get-reqs, but nfsd.yaml errors out first in the Makefile's
alphabetical build order and hides the sunrpc failures.
These bugs were introduced by incorrect merge conflict resolution.
Reported-by: Thorsten Leemhuis <linux@leemhuis.info>
Closes: https://lore.kernel.org/linux-nfs/f6a3ca6d-e5cb-4a5c-9af2-8d2b1ce33ef0@leemhuis.info/
Fixes: 1045ccf519ce30 ("sunrpc: add netlink upcall for the auth.unix.ip cache")
Tested-by: Thorsten Leemhuis <linux@leemhuis.info>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
150 lines
2.8 KiB
YAML
150 lines
2.8 KiB
YAML
# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
|
|
---
|
|
name: sunrpc
|
|
protocol: genetlink
|
|
uapi-header: linux/sunrpc_netlink.h
|
|
|
|
doc: SUNRPC cache upcall support over generic netlink.
|
|
|
|
definitions:
|
|
-
|
|
type: flags
|
|
name: cache-type
|
|
entries: [ip_map, unix_gid]
|
|
|
|
attribute-sets:
|
|
-
|
|
name: cache-notify
|
|
attributes:
|
|
-
|
|
name: cache-type
|
|
type: u32
|
|
enum: cache-type
|
|
-
|
|
name: ip-map
|
|
attributes:
|
|
-
|
|
name: seqno
|
|
type: u64
|
|
-
|
|
name: class
|
|
type: string
|
|
-
|
|
name: addr
|
|
type: string
|
|
-
|
|
name: domain
|
|
type: string
|
|
-
|
|
name: negative
|
|
type: flag
|
|
-
|
|
name: expiry
|
|
type: u64
|
|
-
|
|
name: ip-map-reqs
|
|
attributes:
|
|
-
|
|
name: requests
|
|
type: nest
|
|
nested-attributes: ip-map
|
|
multi-attr: true
|
|
-
|
|
name: unix-gid
|
|
attributes:
|
|
-
|
|
name: seqno
|
|
type: u64
|
|
-
|
|
name: uid
|
|
type: u32
|
|
-
|
|
name: gids
|
|
type: u32
|
|
multi-attr: true
|
|
-
|
|
name: negative
|
|
type: flag
|
|
-
|
|
name: expiry
|
|
type: u64
|
|
-
|
|
name: unix-gid-reqs
|
|
attributes:
|
|
-
|
|
name: requests
|
|
type: nest
|
|
nested-attributes: unix-gid
|
|
multi-attr: true
|
|
-
|
|
name: cache-flush
|
|
attributes:
|
|
-
|
|
name: mask
|
|
type: u32
|
|
enum: cache-type
|
|
enum-as-flags: true
|
|
|
|
operations:
|
|
list:
|
|
-
|
|
name: cache-notify
|
|
doc: Notification that there are cache requests that need servicing
|
|
attribute-set: cache-notify
|
|
mcgrp: exportd
|
|
event:
|
|
attributes:
|
|
- cache-type
|
|
-
|
|
name: ip-map-get-reqs
|
|
doc: Dump all pending ip_map requests
|
|
attribute-set: ip-map-reqs
|
|
flags: [admin-perm]
|
|
dump:
|
|
reply:
|
|
attributes:
|
|
- requests
|
|
-
|
|
name: ip-map-set-reqs
|
|
doc: Respond to one or more ip_map requests
|
|
attribute-set: ip-map-reqs
|
|
flags: [admin-perm]
|
|
do:
|
|
request:
|
|
attributes:
|
|
- requests
|
|
-
|
|
name: unix-gid-get-reqs
|
|
doc: Dump all pending unix_gid requests
|
|
attribute-set: unix-gid-reqs
|
|
flags: [admin-perm]
|
|
dump:
|
|
reply:
|
|
attributes:
|
|
- requests
|
|
-
|
|
name: unix-gid-set-reqs
|
|
doc: Respond to one or more unix_gid requests
|
|
attribute-set: unix-gid-reqs
|
|
flags: [admin-perm]
|
|
do:
|
|
request:
|
|
attributes:
|
|
- requests
|
|
-
|
|
name: cache-flush
|
|
doc: Flush sunrpc caches (ip_map and/or unix_gid)
|
|
attribute-set: cache-flush
|
|
flags: [admin-perm]
|
|
do:
|
|
request:
|
|
attributes:
|
|
- mask
|
|
|
|
mcast-groups:
|
|
list:
|
|
-
|
|
name: none
|
|
-
|
|
name: exportd
|