diff options
Diffstat (limited to 'block/nfs.c')
-rw-r--r-- | block/nfs.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/block/nfs.c b/block/nfs.c index 66fddf12d4..3349b67a76 100644 --- a/block/nfs.c +++ b/block/nfs.c @@ -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); @@ -570,9 +571,16 @@ static BlockdevOptionsNfs *nfs_options_qdict_to_qapi(QDict *options, qobject_unref(crumpled); if (local_err) { + error_propagate(errp, local_err); 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; } |