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>
This commit is contained in:
Kevin Wolf 2010-03-12 13:52:31 +01:00 committed by Aurelien Jarno
parent 8d533561f6
commit 57e69b7d4e

View File

@ -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;