aboutsummaryrefslogtreecommitdiff
path: root/block/raw-posix.c
diff options
context:
space:
mode:
authorKevin Wolf <kwolf@redhat.com>2010-03-12 13:52:31 +0100
committerAurelien Jarno <aurelien@aurel32.net>2010-03-27 12:00:35 +0100
commit57e69b7d4e270883c7b7adb9c5993bb42e13a5ea (patch)
tree60b540eed75cd84f9a567403991eb163ccf5e486 /block/raw-posix.c
parent8d533561f6a6f78b00caf138062f174ca6cd55a2 (diff)
raw-posix: Better error return values for hdev_create
Now that we output an error message according to the returned error code in qemu-img, let's return the real error codes. "Input/output error" for everything isn't helpful. Signed-off-by: Kevin Wolf <kwolf@redhat.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Diffstat (limited to 'block/raw-posix.c')
-rw-r--r--block/raw-posix.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/block/raw-posix.c b/block/raw-posix.c
index 7ce72e9e4e..ed8db5ed1a 100644
--- a/block/raw-posix.c
+++ b/block/raw-posix.c
@@ -993,12 +993,12 @@ static int hdev_create(const char *filename, QEMUOptionParameter *options)
fd = open(filename, O_WRONLY | O_BINARY);
if (fd < 0)
- return -EIO;
+ return -errno;
if (fstat(fd, &stat_buf) < 0)
- ret = -EIO;
+ ret = -errno;
else if (!S_ISBLK(stat_buf.st_mode) && !S_ISCHR(stat_buf.st_mode))
- ret = -EIO;
+ ret = -ENODEV;
else if (lseek(fd, 0, SEEK_END) < total_size * 512)
ret = -ENOSPC;