]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
rpc: fix dispatch for node device APIs for virt drivers
authorDaniel P. Berrangé <berrange@redhat.com>
Mon, 9 Mar 2020 11:59:35 +0000 (11:59 +0000)
committerDaniel P. Berrangé <berrange@redhat.com>
Tue, 17 Mar 2020 13:58:20 +0000 (13:58 +0000)
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>
src/rpc/gendispatch.pl

index 987a136566c7f1c36ed3de90886a5917b9197d0e..c140ed712cff2106658f0981e7ad608756109ac2 100755 (executable)
@@ -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/) {