parallels.c (92adf9dbcd3cf9cedddae995b04a99f5c42ae08c) | parallels.c (af91062ee1408f7f5bb58389d355d29a5040c648) |
---|---|
1/* 2 * Block driver for Parallels disk image format 3 * 4 * Copyright (c) 2007 Alex Beregszaszi 5 * Copyright (c) 2015 Denis V. Lunev <den@openvz.org> 6 * 7 * This code was originally based on comparing different disk images created 8 * by Parallels. Currently it is based on opened OpenVZ sources --- 603 unchanged lines hidden (view full) --- 612static int coroutine_fn parallels_co_create_opts(const char *filename, 613 QemuOpts *opts, 614 Error **errp) 615{ 616 BlockdevCreateOptions *create_options = NULL; 617 Error *local_err = NULL; 618 BlockDriverState *bs = NULL; 619 QDict *qdict; | 1/* 2 * Block driver for Parallels disk image format 3 * 4 * Copyright (c) 2007 Alex Beregszaszi 5 * Copyright (c) 2015 Denis V. Lunev <den@openvz.org> 6 * 7 * This code was originally based on comparing different disk images created 8 * by Parallels. Currently it is based on opened OpenVZ sources --- 603 unchanged lines hidden (view full) --- 612static int coroutine_fn parallels_co_create_opts(const char *filename, 613 QemuOpts *opts, 614 Error **errp) 615{ 616 BlockdevCreateOptions *create_options = NULL; 617 Error *local_err = NULL; 618 BlockDriverState *bs = NULL; 619 QDict *qdict; |
620 QObject *qobj; | |
621 Visitor *v; 622 int ret; 623 624 static const QDictRenames opt_renames[] = { 625 { BLOCK_OPT_CLUSTER_SIZE, "cluster-size" }, 626 { NULL, NULL }, 627 }; 628 --- 19 unchanged lines hidden (view full) --- 648 ret = -EIO; 649 goto done; 650 } 651 652 /* Now get the QAPI type BlockdevCreateOptions */ 653 qdict_put_str(qdict, "driver", "parallels"); 654 qdict_put_str(qdict, "file", bs->node_name); 655 | 620 Visitor *v; 621 int ret; 622 623 static const QDictRenames opt_renames[] = { 624 { BLOCK_OPT_CLUSTER_SIZE, "cluster-size" }, 625 { NULL, NULL }, 626 }; 627 --- 19 unchanged lines hidden (view full) --- 647 ret = -EIO; 648 goto done; 649 } 650 651 /* Now get the QAPI type BlockdevCreateOptions */ 652 qdict_put_str(qdict, "driver", "parallels"); 653 qdict_put_str(qdict, "file", bs->node_name); 654 |
656 qobj = qdict_crumple_for_keyval_qiv(qdict, errp); 657 if (!qobj) { | 655 v = qobject_input_visitor_new_flat_confused(qdict, errp); 656 if (!v) { |
658 ret = -EINVAL; 659 goto done; 660 } 661 | 657 ret = -EINVAL; 658 goto done; 659 } 660 |
662 v = qobject_input_visitor_new_keyval(qobj); 663 qobject_unref(qobj); | |
664 visit_type_BlockdevCreateOptions(v, NULL, &create_options, &local_err); 665 visit_free(v); 666 667 if (local_err) { 668 error_propagate(errp, local_err); 669 ret = -EINVAL; 670 goto done; 671 } --- 255 unchanged lines hidden --- | 661 visit_type_BlockdevCreateOptions(v, NULL, &create_options, &local_err); 662 visit_free(v); 663 664 if (local_err) { 665 error_propagate(errp, local_err); 666 ret = -EINVAL; 667 goto done; 668 } --- 255 unchanged lines hidden --- |