From 12c09b8ce22d74f78ff50f95676cbe4f501752ae Mon Sep 17 00:00:00 2001 From: Kevin Wolf Date: Mon, 30 Nov 2009 16:54:15 +0100 Subject: qemu-img: There is more than one host device driver I haven't heard yet of anyone using qemu-img to copy an image to a real floppy, but it's a valid use case. Signed-off-by: Kevin Wolf Signed-off-by: Anthony Liguori --- block/raw-posix.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'block/raw-posix.c') diff --git a/block/raw-posix.c b/block/raw-posix.c index 266d8415d..706799fa3 100644 --- a/block/raw-posix.c +++ b/block/raw-posix.c @@ -1014,6 +1014,7 @@ static BlockDriver bdrv_host_device = { .bdrv_close = raw_close, .bdrv_create = hdev_create, .create_options = raw_create_options, + .no_zero_init = 1, .bdrv_flush = raw_flush, .bdrv_aio_readv = raw_aio_readv, @@ -1110,6 +1111,7 @@ static BlockDriver bdrv_host_floppy = { .bdrv_close = raw_close, .bdrv_create = hdev_create, .create_options = raw_create_options, + .no_zero_init = 1, .bdrv_flush = raw_flush, .bdrv_aio_readv = raw_aio_readv, @@ -1192,6 +1194,7 @@ static BlockDriver bdrv_host_cdrom = { .bdrv_close = raw_close, .bdrv_create = hdev_create, .create_options = raw_create_options, + .no_zero_init = 1, .bdrv_flush = raw_flush, .bdrv_aio_readv = raw_aio_readv, @@ -1313,6 +1316,7 @@ static BlockDriver bdrv_host_cdrom = { .bdrv_close = raw_close, .bdrv_create = hdev_create, .create_options = raw_create_options, + .no_zero_init = 1, .bdrv_flush = raw_flush, .bdrv_aio_readv = raw_aio_readv, -- cgit v1.2.3-18-g5258 From 40ff6d7e8dceca227e7f8a3e8e0d58b2c66d19b4 Mon Sep 17 00:00:00 2001 From: Kevin Wolf Date: Wed, 2 Dec 2009 12:24:42 +0100 Subject: Don't leak file descriptors We're leaking file descriptors to child processes. Set FD_CLOEXEC on file descriptors that don't need to be passed to children to stop this misbehaviour. Signed-off-by: Kevin Wolf Signed-off-by: Anthony Liguori --- block/raw-posix.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'block/raw-posix.c') diff --git a/block/raw-posix.c b/block/raw-posix.c index 706799fa3..5a6a22bee 100644 --- a/block/raw-posix.c +++ b/block/raw-posix.c @@ -153,7 +153,7 @@ static int raw_open_common(BlockDriverState *bs, const char *filename, s->open_flags |= O_DSYNC; s->fd = -1; - fd = open(filename, s->open_flags, 0644); + fd = qemu_open(filename, s->open_flags, 0644); if (fd < 0) { ret = -errno; if (ret == -EROFS) -- cgit v1.2.3-18-g5258