rpc: fix dispatch for node device APIs for virt drivers

Despite their names, the following APIs:

    virNodeDeviceDettach
    virNodeDeviceDetachFlags
    virNodeDeviceReAttach
    virNodeDeviceReset

are all handled by the virt drivers, not the node device driver.
A bug in the RPC generator meant that these APIs were sent to
the nodedev driver for handling. This caused breakage with the
split daemons, since nothing was available to process them.

Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
Daniel P. Berrangé 2020-03-09 11:59:35 +00:00
parent 0137bf0dab
commit 744208e7db

View File

@ -171,7 +171,13 @@ sub get_conn_method {
if ($proc =~ /Connect.*Network/) {
return "remoteGetNetworkConn";
}
if ($proc =~ /Node.*Device/) {
# Carefully whitelist a few APIs with NodeDevice name
# prefix which actually get handled by the virt drivers
if ($proc =~ /Node.*Device/ &&
!($proc =~ /NodeDeviceReset/ ||
$proc =~ /NodeDeviceReAttach/ ||
$proc =~ /NodeDeviceDettach/ ||
$proc =~ /NodeDeviceDetachFlags/)) {
return "remoteGetNodeDevConn";
}
if ($proc =~ /Connect.*NWFilter/) {