nfs: Remove processed options from QDict
PATCH 1/1 nfs: Remove processed options from QDict
Commit c22a03454 QAPIfied option parsing in the NFS block driver, but forgot to remove all the options we processed. Therefore, we get an error in bdrv_open_inherit(), which thinks the remaining options are invalid. Trying to open an NFS image will result in an error like this:
Block protocol 'nfs' doesn't support the option 'server.host'
Remove all options from the QDict to make the NFS driver work again.
--- block/nfs.c | 7 +++++++ 1 file changed, 7 insertions(+)
block/nfs.c +7 -0
@@ -557,6 +557,7 @@ static BlockdevOptionsNfs *nfs_options_qdict_to_qapi(QDict *options,BlockdevOptionsNfs *opts =NULL ;QObject *crumpled =NULL ;Visitor *v; +const QDictEntry *e;Error *local_err =NULL ; crumpled =qdict_crumple (options, errp);
@@ -573,6 +574,12 @@ static BlockdevOptionsNfs *nfs_options_qdict_to_qapi(QDict *options,return NULL ; } +/* Remove the processed options from the QDict (the visitor processes +* _all_ options in the QDict) */ +while ((e =qdict_first (options))) { +qdict_del (options, e->key); + } +return opts; }
Signature · 1 line
2.13.6
Quoted 7 lines · Kevin Wolf
Commit
c22a03454QAPIfied option parsing in the NFS block driver, but forgot to remove all the options we processed. Therefore, we get an error inbdrv_open_inherit(), which thinks the remaining options are invalid. Trying to open an NFS image will result in an error like this:Block protocol 'nfs' doesn't support the option 'server.host'
Quoted 8 lines
Remove all options from the QDict to make the NFS driver work again.
Signed-off-by Kevin Wolf <[email protected]>--- block/nfs.c | 7 +++++++ 1 file changed, 7 insertions(+)
Signature · 3 lines
Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3266 Virtualization: qemu.org | libvirt.org
Jeff Cody
AppliedQuoted 43 lines · Kevin Wolf
Commit
c22a03454QAPIfied option parsing in the NFS block driver, but forgot to remove all the options we processed. Therefore, we get an error inbdrv_open_inherit(), which thinks the remaining options are invalid. Trying to open an NFS image will result in an error like this:Block protocol 'nfs' doesn't support the option 'server.host'
Remove all options from the QDict to make the NFS driver work again.
Signed-off-by Kevin Wolf <[email protected]>--- block/nfs.c | 7 +++++++ 1 file changed, 7 insertions(+)block/nfs.c +7
-0@@ -557,6 +557,7 @@ static BlockdevOptionsNfs *nfs_options_qdict_to_qapi(QDict *options,BlockdevOptionsNfs *opts =NULL ;QObject *crumpled =NULL ;Visitor *v; +const QDictEntry *e;Error *local_err =NULL ; crumpled =qdict_crumple (options, errp);@@ -573,6 +574,12 @@ static BlockdevOptionsNfs *nfs_options_qdict_to_qapi(QDict *options,return NULL ; } +/* Remove the processed options from the QDict (the visitor processes +* _all_ options in the QDict) */ +while ((e =qdict_first (options))) { +qdict_del (options, e->key); + } +return opts; }Signature · 1 line
2.13.6
Thanks,
Applied to my block branch:
git://github.com/codyprime/qemu-kvm-jtc block
-Jeff