[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 08/55] block: Make BlockDriver method bdrv_eject() r
From: |
Markus Armbruster |
Subject: |
[Qemu-devel] [PATCH 08/55] block: Make BlockDriver method bdrv_eject() return void |
Date: |
Wed, 20 Jul 2011 18:23:42 +0200 |
Callees always return 0, except for FreeBSD's cdrom_eject(), which
returns -ENOTSUP when the device is in a terminally wedged state.
The only caller is bdrv_eject(), and it maps -ENOTSUP to 0 since
commit 4be9762a.
Signed-off-by: Markus Armbruster <address@hidden>
---
block.c | 17 ++++-------------
block/raw-posix.c | 16 +++++-----------
block/raw.c | 4 ++--
block_int.h | 2 +-
4 files changed, 12 insertions(+), 27 deletions(-)
diff --git a/block.c b/block.c
index fab766a..594bcab 100644
--- a/block.c
+++ b/block.c
@@ -2768,25 +2768,16 @@ int bdrv_media_changed(BlockDriverState *bs)
int bdrv_eject(BlockDriverState *bs, int eject_flag)
{
BlockDriver *drv = bs->drv;
- int ret;
if (bs->locked) {
return -EBUSY;
}
- if (!drv || !drv->bdrv_eject) {
- ret = -ENOTSUP;
- } else {
- ret = drv->bdrv_eject(bs, eject_flag);
- }
- if (ret == -ENOTSUP) {
- ret = 0;
+ if (drv && drv->bdrv_eject) {
+ drv->bdrv_eject(bs, eject_flag);
}
- if (ret >= 0) {
- bs->tray_open = eject_flag;
- }
-
- return ret;
+ bs->tray_open = eject_flag;
+ return 0;
}
int bdrv_is_locked(BlockDriverState *bs)
diff --git a/block/raw-posix.c b/block/raw-posix.c
index 14f8f62..e8a2fc2 100644
--- a/block/raw-posix.c
+++ b/block/raw-posix.c
@@ -1239,7 +1239,7 @@ static int floppy_media_changed(BlockDriverState *bs)
return ret;
}
-static int floppy_eject(BlockDriverState *bs, int eject_flag)
+static void floppy_eject(BlockDriverState *bs, int eject_flag)
{
BDRVRawState *s = bs->opaque;
int fd;
@@ -1254,8 +1254,6 @@ static int floppy_eject(BlockDriverState *bs, int
eject_flag)
perror("FDEJECT");
close(fd);
}
-
- return 0;
}
static BlockDriver bdrv_host_floppy = {
@@ -1331,7 +1329,7 @@ static int cdrom_is_inserted(BlockDriverState *bs)
return 0;
}
-static int cdrom_eject(BlockDriverState *bs, int eject_flag)
+static void cdrom_eject(BlockDriverState *bs, int eject_flag)
{
BDRVRawState *s = bs->opaque;
@@ -1342,8 +1340,6 @@ static int cdrom_eject(BlockDriverState *bs, int
eject_flag)
if (ioctl(s->fd, CDROMCLOSETRAY, NULL) < 0)
perror("CDROMEJECT");
}
-
- return 0;
}
static void cdrom_set_locked(BlockDriverState *bs, int locked)
@@ -1443,12 +1439,12 @@ static int cdrom_is_inserted(BlockDriverState *bs)
return raw_getlength(bs) > 0;
}
-static int cdrom_eject(BlockDriverState *bs, int eject_flag)
+static void cdrom_eject(BlockDriverState *bs, int eject_flag)
{
BDRVRawState *s = bs->opaque;
if (s->fd < 0)
- return -ENOTSUP;
+ return;
(void) ioctl(s->fd, CDIOCALLOW);
@@ -1460,9 +1456,7 @@ static int cdrom_eject(BlockDriverState *bs, int
eject_flag)
perror("CDIOCCLOSE");
}
- if (cdrom_reopen(bs) < 0)
- return -ENOTSUP;
- return 0;
+ cdrom_reopen(bs);
}
static void cdrom_set_locked(BlockDriverState *bs, int locked)
diff --git a/block/raw.c b/block/raw.c
index 1398a9c..cb6203e 100644
--- a/block/raw.c
+++ b/block/raw.c
@@ -75,9 +75,9 @@ static int raw_is_inserted(BlockDriverState *bs)
return bdrv_is_inserted(bs->file);
}
-static int raw_eject(BlockDriverState *bs, int eject_flag)
+static void raw_eject(BlockDriverState *bs, int eject_flag)
{
- return bdrv_eject(bs->file, eject_flag);
+ bdrv_eject(bs->file, eject_flag);
}
static void raw_set_locked(BlockDriverState *bs, int locked)
diff --git a/block_int.h b/block_int.h
index 69cf222..2d9edcf 100644
--- a/block_int.h
+++ b/block_int.h
@@ -110,7 +110,7 @@ struct BlockDriver {
/* removable device specific */
int (*bdrv_is_inserted)(BlockDriverState *bs);
int (*bdrv_media_changed)(BlockDriverState *bs);
- int (*bdrv_eject)(BlockDriverState *bs, int eject_flag);
+ void (*bdrv_eject)(BlockDriverState *bs, int eject_flag);
void (*bdrv_set_locked)(BlockDriverState *bs, int locked);
/* to control generic scsi devices */
--
1.7.2.3
- [Qemu-devel] [PATCH 00/55] Block layer cleanup & fixes, Markus Armbruster, 2011/07/20
- [Qemu-devel] [PATCH 01/55] blockdev: Make eject fail for non-removable drives even with -f, Markus Armbruster, 2011/07/20
- [Qemu-devel] [PATCH 06/55] block/raw-win32: Drop disabled code for removable host devices, Markus Armbruster, 2011/07/20
- [Qemu-devel] [PATCH 16/55] ide/atapi: Track tray open/close state, Markus Armbruster, 2011/07/20
- [Qemu-devel] [PATCH 08/55] block: Make BlockDriver method bdrv_eject() return void,
Markus Armbruster <=
- [Qemu-devel] [PATCH 09/55] block: Don't let locked flag prevent medium load, Markus Armbruster, 2011/07/20
- [Qemu-devel] [PATCH 21/55] block: Revert entanglement of bdrv_is_inserted() with tray status, Markus Armbruster, 2011/07/20
- [Qemu-devel] [PATCH 27/55] scsi-disk: Switch from BlockDriverState's locked to own tray_locked, Markus Armbruster, 2011/07/20