block: Add bdrv_runtime_opts to query-command-line-options
Recently we moved a few options from QemuOptsLists in blockdev.c to bdrv_runtime_opts in block.c in order to make them accissble using blockdev-add. However, this has the side effect that these options are missing from query-command-line-options now, and libvirt consequently disables the corresponding feature. This problem was reported as a regression for the 'discard' option, introduced in commit 818584a4. However, it is more general than that. Fix it by adding bdrv_runtime_opts to the list of QemuOptsLists that are returned in query-command-line-options. For the future, libvirt is advised to use QMP schema introspection for block device options. Reported-by: Michal Privoznik <mprivozn@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com> Tested-by: Michal Privoznik <mprivozn@redhat.com> Tested-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
		
							parent
							
								
									fffb6e1223
								
							
						
					
					
						commit
						c5f3014b82
					
				
							
								
								
									
										2
									
								
								block.c
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								block.c
									
									
									
									
									
								
							@ -926,7 +926,7 @@ out:
 | 
				
			|||||||
    g_free(gen_node_name);
 | 
					    g_free(gen_node_name);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static QemuOptsList bdrv_runtime_opts = {
 | 
					QemuOptsList bdrv_runtime_opts = {
 | 
				
			||||||
    .name = "bdrv_common",
 | 
					    .name = "bdrv_common",
 | 
				
			||||||
    .head = QTAILQ_HEAD_INITIALIZER(bdrv_runtime_opts.head),
 | 
					    .head = QTAILQ_HEAD_INITIALIZER(bdrv_runtime_opts.head),
 | 
				
			||||||
    .desc = {
 | 
					    .desc = {
 | 
				
			||||||
 | 
				
			|||||||
@ -235,6 +235,7 @@ bool defaults_enabled(void);
 | 
				
			|||||||
extern QemuOptsList qemu_legacy_drive_opts;
 | 
					extern QemuOptsList qemu_legacy_drive_opts;
 | 
				
			||||||
extern QemuOptsList qemu_common_drive_opts;
 | 
					extern QemuOptsList qemu_common_drive_opts;
 | 
				
			||||||
extern QemuOptsList qemu_drive_opts;
 | 
					extern QemuOptsList qemu_drive_opts;
 | 
				
			||||||
 | 
					extern QemuOptsList bdrv_runtime_opts;
 | 
				
			||||||
extern QemuOptsList qemu_chardev_opts;
 | 
					extern QemuOptsList qemu_chardev_opts;
 | 
				
			||||||
extern QemuOptsList qemu_device_opts;
 | 
					extern QemuOptsList qemu_device_opts;
 | 
				
			||||||
extern QemuOptsList qemu_netdev_opts;
 | 
					extern QemuOptsList qemu_netdev_opts;
 | 
				
			||||||
 | 
				
			|||||||
@ -6,7 +6,7 @@
 | 
				
			|||||||
#include "qmp-commands.h"
 | 
					#include "qmp-commands.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static QemuOptsList *vm_config_groups[48];
 | 
					static QemuOptsList *vm_config_groups[48];
 | 
				
			||||||
static QemuOptsList *drive_config_groups[4];
 | 
					static QemuOptsList *drive_config_groups[5];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static QemuOptsList *find_list(QemuOptsList **lists, const char *group,
 | 
					static QemuOptsList *find_list(QemuOptsList **lists, const char *group,
 | 
				
			||||||
                               Error **errp)
 | 
					                               Error **errp)
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										1
									
								
								vl.c
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								vl.c
									
									
									
									
									
								
							@ -3035,6 +3035,7 @@ int main(int argc, char **argv, char **envp)
 | 
				
			|||||||
    qemu_add_drive_opts(&qemu_legacy_drive_opts);
 | 
					    qemu_add_drive_opts(&qemu_legacy_drive_opts);
 | 
				
			||||||
    qemu_add_drive_opts(&qemu_common_drive_opts);
 | 
					    qemu_add_drive_opts(&qemu_common_drive_opts);
 | 
				
			||||||
    qemu_add_drive_opts(&qemu_drive_opts);
 | 
					    qemu_add_drive_opts(&qemu_drive_opts);
 | 
				
			||||||
 | 
					    qemu_add_drive_opts(&bdrv_runtime_opts);
 | 
				
			||||||
    qemu_add_opts(&qemu_chardev_opts);
 | 
					    qemu_add_opts(&qemu_chardev_opts);
 | 
				
			||||||
    qemu_add_opts(&qemu_device_opts);
 | 
					    qemu_add_opts(&qemu_device_opts);
 | 
				
			||||||
    qemu_add_opts(&qemu_netdev_opts);
 | 
					    qemu_add_opts(&qemu_netdev_opts);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user