提交 bcf83158 编写于 作者: K Kevin Wolf 提交者: Stefan Hajnoczi

blockdev: Move 'serial' option to drive_init()

It is not available with blockdev-add.
Signed-off-by: NKevin Wolf <kwolf@redhat.com>
Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
上级 f7047c2d
...@@ -329,7 +329,6 @@ static DriveInfo *blockdev_init(const char *file, QDict *bs_opts, ...@@ -329,7 +329,6 @@ static DriveInfo *blockdev_init(const char *file, QDict *bs_opts,
Error **errp) Error **errp)
{ {
const char *buf; const char *buf;
const char *serial;
int ro = 0; int ro = 0;
int bdrv_flags = 0; int bdrv_flags = 0;
int on_read_error, on_write_error; int on_read_error, on_write_error;
...@@ -371,8 +370,6 @@ static DriveInfo *blockdev_init(const char *file, QDict *bs_opts, ...@@ -371,8 +370,6 @@ static DriveInfo *blockdev_init(const char *file, QDict *bs_opts,
ro = qemu_opt_get_bool(opts, "read-only", 0); ro = qemu_opt_get_bool(opts, "read-only", 0);
copy_on_read = qemu_opt_get_bool(opts, "copy-on-read", false); copy_on_read = qemu_opt_get_bool(opts, "copy-on-read", false);
serial = qemu_opt_get(opts, "serial");
if ((buf = qemu_opt_get(opts, "discard")) != NULL) { if ((buf = qemu_opt_get(opts, "discard")) != NULL) {
if (bdrv_parse_discard_flags(buf, &bdrv_flags) != 0) { if (bdrv_parse_discard_flags(buf, &bdrv_flags) != 0) {
error_setg(errp, "invalid discard option"); error_setg(errp, "invalid discard option");
...@@ -501,9 +498,6 @@ static DriveInfo *blockdev_init(const char *file, QDict *bs_opts, ...@@ -501,9 +498,6 @@ static DriveInfo *blockdev_init(const char *file, QDict *bs_opts,
dinfo->bdrv->read_only = ro; dinfo->bdrv->read_only = ro;
dinfo->bdrv->detect_zeroes = detect_zeroes; dinfo->bdrv->detect_zeroes = detect_zeroes;
dinfo->refcount = 1; dinfo->refcount = 1;
if (serial != NULL) {
dinfo->serial = g_strdup(serial);
}
QTAILQ_INSERT_TAIL(&drives, dinfo, next); QTAILQ_INSERT_TAIL(&drives, dinfo, next);
bdrv_set_on_error(dinfo->bdrv, on_read_error, on_write_error); bdrv_set_on_error(dinfo->bdrv, on_read_error, on_write_error);
...@@ -629,6 +623,10 @@ QemuOptsList qemu_legacy_drive_opts = { ...@@ -629,6 +623,10 @@ QemuOptsList qemu_legacy_drive_opts = {
.name = "addr", .name = "addr",
.type = QEMU_OPT_STRING, .type = QEMU_OPT_STRING,
.help = "pci address (virtio only)", .help = "pci address (virtio only)",
},{
.name = "serial",
.type = QEMU_OPT_STRING,
.help = "disk serial number",
},{ },{
.name = "file", .name = "file",
.type = QEMU_OPT_STRING, .type = QEMU_OPT_STRING,
...@@ -672,6 +670,7 @@ DriveInfo *drive_init(QemuOpts *all_opts, BlockInterfaceType block_default_type) ...@@ -672,6 +670,7 @@ DriveInfo *drive_init(QemuOpts *all_opts, BlockInterfaceType block_default_type)
const char *werror, *rerror; const char *werror, *rerror;
bool read_only = false; bool read_only = false;
bool copy_on_read; bool copy_on_read;
const char *serial;
const char *filename; const char *filename;
Error *local_err = NULL; Error *local_err = NULL;
...@@ -875,6 +874,9 @@ DriveInfo *drive_init(QemuOpts *all_opts, BlockInterfaceType block_default_type) ...@@ -875,6 +874,9 @@ DriveInfo *drive_init(QemuOpts *all_opts, BlockInterfaceType block_default_type)
goto fail; goto fail;
} }
/* Serial number */
serial = qemu_opt_get(legacy_opts, "serial");
/* no id supplied -> create one */ /* no id supplied -> create one */
if (qemu_opts_id(all_opts) == NULL) { if (qemu_opts_id(all_opts) == NULL) {
char *new_id; char *new_id;
...@@ -965,6 +967,8 @@ DriveInfo *drive_init(QemuOpts *all_opts, BlockInterfaceType block_default_type) ...@@ -965,6 +967,8 @@ DriveInfo *drive_init(QemuOpts *all_opts, BlockInterfaceType block_default_type)
dinfo->unit = unit_id; dinfo->unit = unit_id;
dinfo->devaddr = devaddr; dinfo->devaddr = devaddr;
dinfo->serial = g_strdup(serial);
switch(type) { switch(type) {
case IF_IDE: case IF_IDE:
case IF_SCSI: case IF_SCSI:
...@@ -2437,10 +2441,6 @@ QemuOptsList qemu_common_drive_opts = { ...@@ -2437,10 +2441,6 @@ QemuOptsList qemu_common_drive_opts = {
.name = "format", .name = "format",
.type = QEMU_OPT_STRING, .type = QEMU_OPT_STRING,
.help = "disk format (raw, qcow2, ...)", .help = "disk format (raw, qcow2, ...)",
},{
.name = "serial",
.type = QEMU_OPT_STRING,
.help = "disk serial number",
},{ },{
.name = "rerror", .name = "rerror",
.type = QEMU_OPT_STRING, .type = QEMU_OPT_STRING,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册