mirror of
https://gitlab.com/qemu-project/qemu
synced 2024-09-06 18:05:37 +00:00
Block patches for 2.3.0-rc1
-----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) iQIcBAABAgAGBQJVCuU+AAoJEH8JsnLIjy/W1b0P/0RYYqkXvIvr5pymOTkA256q dPWOqkKB0LHcB1+iOdWDb7TsAfJftZ2MFvN+BQ+mBC3knheLzWlErQLZQsEJh2/b x525GKatRzc7LSQ4FPEVJ9MNDILKUQsuIza6/z3NsmmYSFSUNCzyQOS/LAO6ngjs cmQ0aLudKy41vGTE8mS6rZOjHf8uumdRPhG5clr5V80zPMg93jojYJ2ENCl6sPuh Y2OtVu6HLyX2ExKFmt4JNltxjXnUki+sEBUnCcj8tvJNMGy82IpOdO8w3W9cs2zZ cb7XUVKv6IPUycEs4IsGpHUfyIaD5sVY5ueKGGZv35kmFYdItJ9AukHc/5tlVspR kFYEGOjZRqRXboeH8VJDJWHBlIfKeoE6iwCBW62D0Bzbab8DMWbzif32b3K5dnve OleFjFS0mysUfuxoIqF12SUwZj+WzW1CaxOTAGALIrfYfOD5ZWOHiLeXbQ/fcaAW quz+/9B9CzIAbTL31RxcOXfvyuUWlWkZyz6GYxaLhzLF580Uz/qvBqbMrXDQWUzs x6udW7aylqBalSXpc29ORv5cIpA4p+IBzFpfVtwV9+Qa86nTfJJSq4u2oet/vtyb KiZ+AcKUiaChwheeQHSCcqjQ5dzhJvl/6UvwCLORLYuNExrE+1Umn/Cz33eDibxi kUW1xvRYe/pkSGdntlz0 =Hs5n -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/kevin/tags/for-upstream' into staging Block patches for 2.3.0-rc1 # gpg: Signature made Thu Mar 19 15:03:26 2015 GMT using RSA key ID C88F2FD6 # gpg: Good signature from "Kevin Wolf <kwolf@redhat.com>" * remotes/kevin/tags/for-upstream: block: Fix blockdev-backup not to use funky error class raw-posix: Deprecate aio=threads fallback without O_DIRECT raw-posix: Deprecate host floppy passthrough Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
3e5f6234b4
|
@ -503,6 +503,14 @@ static int raw_open_common(BlockDriverState *bs, QDict *options,
|
|||
error_setg_errno(errp, -ret, "Could not set AIO state");
|
||||
goto fail;
|
||||
}
|
||||
if (!s->use_aio && (bdrv_flags & BDRV_O_NATIVE_AIO)) {
|
||||
error_printf("WARNING: aio=native was specified for '%s', but "
|
||||
"it requires cache.direct=on, which was not "
|
||||
"specified. Falling back to aio=threads.\n"
|
||||
" This will become an error condition in "
|
||||
"future QEMU versions.\n",
|
||||
bs->filename);
|
||||
}
|
||||
#endif
|
||||
|
||||
s->has_discard = true;
|
||||
|
@ -2387,6 +2395,8 @@ static int floppy_open(BlockDriverState *bs, QDict *options, int flags,
|
|||
s->fd = -1;
|
||||
s->fd_media_changed = 1;
|
||||
|
||||
error_report("Host floppy pass-through is deprecated");
|
||||
error_printf("Support for it will be removed in a future release.\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -1574,14 +1574,14 @@ static void blockdev_backup_prepare(BlkTransactionState *common, Error **errp)
|
|||
|
||||
blk = blk_by_name(backup->device);
|
||||
if (!blk) {
|
||||
error_set(errp, QERR_DEVICE_NOT_FOUND, backup->device);
|
||||
error_setg(errp, "Device '%s' not found", backup->device);
|
||||
return;
|
||||
}
|
||||
bs = blk_bs(blk);
|
||||
|
||||
blk = blk_by_name(backup->target);
|
||||
if (!blk) {
|
||||
error_set(errp, QERR_DEVICE_NOT_FOUND, backup->target);
|
||||
error_setg(errp, "Device '%s' not found", backup->target);
|
||||
return;
|
||||
}
|
||||
target = blk_bs(blk);
|
||||
|
@ -2421,7 +2421,7 @@ void qmp_blockdev_backup(const char *device, const char *target,
|
|||
|
||||
blk = blk_by_name(device);
|
||||
if (!blk) {
|
||||
error_set(errp, QERR_DEVICE_NOT_FOUND, device);
|
||||
error_setg(errp, "Device '%s' not found", device);
|
||||
return;
|
||||
}
|
||||
bs = blk_bs(blk);
|
||||
|
@ -2431,7 +2431,7 @@ void qmp_blockdev_backup(const char *device, const char *target,
|
|||
|
||||
blk = blk_by_name(target);
|
||||
if (!blk) {
|
||||
error_set(errp, QERR_DEVICE_NOT_FOUND, target);
|
||||
error_setg(errp, "Device '%s' not found", target);
|
||||
goto out;
|
||||
}
|
||||
target_bs = blk_bs(blk);
|
||||
|
|
|
@ -218,6 +218,7 @@
|
|||
# 'host_floppy', 'http', 'https', 'nbd', 'parallels', 'qcow',
|
||||
# 'qcow2', 'raw', 'tftp', 'vdi', 'vmdk', 'vpc', 'vvfat'
|
||||
# 2.2: 'archipelago' added, 'cow' dropped
|
||||
# 2.3: 'host_floppy' deprecated
|
||||
#
|
||||
# @backing_file: #optional the name of the backing file (for copy-on-write)
|
||||
#
|
||||
|
@ -881,9 +882,6 @@
|
|||
#
|
||||
# For the arguments, see the documentation of BlockdevBackup.
|
||||
#
|
||||
# Returns: Nothing on success.
|
||||
# If @device or @target is not a valid block device, DeviceNotFound.
|
||||
#
|
||||
# Since 2.3
|
||||
##
|
||||
{ 'command': 'blockdev-backup', 'data': 'BlockdevBackup' }
|
||||
|
@ -1245,6 +1243,7 @@
|
|||
# Drivers that are supported in block device operations.
|
||||
#
|
||||
# @host_device, @host_cdrom, @host_floppy: Since 2.1
|
||||
# @host_floppy: deprecated since 2.3
|
||||
#
|
||||
# Since: 2.0
|
||||
##
|
||||
|
|
|
@ -736,8 +736,7 @@ devices. We describe here the usage for QEMU version >= 0.8.3.
|
|||
|
||||
On Linux, you can directly use the host device filename instead of a
|
||||
disk image filename provided you have enough privileges to access
|
||||
it. For example, use @file{/dev/cdrom} to access to the CDROM or
|
||||
@file{/dev/fd0} for the floppy.
|
||||
it. For example, use @file{/dev/cdrom} to access to the CDROM.
|
||||
|
||||
@table @code
|
||||
@item CD
|
||||
|
@ -749,6 +748,8 @@ You can specify a floppy device even if no floppy is loaded. Floppy
|
|||
removal is currently not detected accurately (if you change floppy
|
||||
without doing floppy access while the floppy is not loaded, the guest
|
||||
OS will think that the same floppy is loaded).
|
||||
Use of the host's floppy device is deprecated, and support for it will
|
||||
be removed in a future release.
|
||||
@item Hard disks
|
||||
Hard disks can be used. Normally you must specify the whole disk
|
||||
(@file{/dev/hdb} instead of @file{/dev/hdb1}) so that the guest OS can
|
||||
|
|
|
@ -419,8 +419,7 @@ STEXI
|
|||
@item -fdb @var{file}
|
||||
@findex -fda
|
||||
@findex -fdb
|
||||
Use @var{file} as floppy disk 0/1 image (@pxref{disk_images}). You can
|
||||
use the host floppy by using @file{/dev/fd0} as filename (@pxref{host_drives}).
|
||||
Use @var{file} as floppy disk 0/1 image (@pxref{disk_images}).
|
||||
ETEXI
|
||||
|
||||
DEF("hda", HAS_ARG, QEMU_OPTION_hda,
|
||||
|
|
|
@ -2150,7 +2150,7 @@ Each json-object contain the following:
|
|||
- "drv": driver format name (json-string)
|
||||
- Possible values: "blkdebug", "bochs", "cloop", "dmg",
|
||||
"file", "file", "ftp", "ftps", "host_cdrom",
|
||||
"host_device", "host_floppy", "http", "https",
|
||||
"host_device", "http", "https",
|
||||
"nbd", "parallels", "qcow", "qcow2", "raw",
|
||||
"tftp", "vdi", "vmdk", "vpc", "vvfat"
|
||||
- "backing_file": backing file name (json-string, optional)
|
||||
|
|
|
@ -126,7 +126,10 @@ class TestSingleDrive(iotests.QMPTestCase):
|
|||
|
||||
def do_test_device_not_found(self, cmd, **args):
|
||||
result = self.vm.qmp(cmd, **args)
|
||||
self.assert_qmp(result, 'error/class', 'DeviceNotFound')
|
||||
if cmd == 'drive-backup':
|
||||
self.assert_qmp(result, 'error/class', 'DeviceNotFound')
|
||||
else:
|
||||
self.assert_qmp(result, 'error/class', 'GenericError')
|
||||
|
||||
def test_device_not_found(self):
|
||||
self.do_test_device_not_found('drive-backup', device='nonexistent',
|
||||
|
@ -364,7 +367,7 @@ class TestSingleTransaction(iotests.QMPTestCase):
|
|||
'sync': 'full' },
|
||||
}
|
||||
])
|
||||
self.assert_qmp(result, 'error/class', 'DeviceNotFound')
|
||||
self.assert_qmp(result, 'error/class', 'GenericError')
|
||||
|
||||
result = self.vm.qmp('transaction', actions=[{
|
||||
'type': 'blockdev-backup',
|
||||
|
@ -373,7 +376,7 @@ class TestSingleTransaction(iotests.QMPTestCase):
|
|||
'sync': 'full' },
|
||||
}
|
||||
])
|
||||
self.assert_qmp(result, 'error/class', 'DeviceNotFound')
|
||||
self.assert_qmp(result, 'error/class', 'GenericError')
|
||||
|
||||
result = self.vm.qmp('transaction', actions=[{
|
||||
'type': 'blockdev-backup',
|
||||
|
@ -382,7 +385,7 @@ class TestSingleTransaction(iotests.QMPTestCase):
|
|||
'sync': 'full' },
|
||||
}
|
||||
])
|
||||
self.assert_qmp(result, 'error/class', 'DeviceNotFound')
|
||||
self.assert_qmp(result, 'error/class', 'GenericError')
|
||||
|
||||
def test_target_is_source(self):
|
||||
result = self.vm.qmp('transaction', actions=[{
|
||||
|
|
Loading…
Reference in a new issue