From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: kwolf@redhat.com, kraxel@redhat.com, hch@lst.de
Subject: [Qemu-devel] [PATCH 03/11] raw-posix: Don't "try harder" for BDRV_TYPE_CDROM
Date: Wed, 30 Jun 2010 13:55:34 +0200 [thread overview]
Message-ID: <1277898942-6501-4-git-send-email-armbru@redhat.com> (raw)
In-Reply-To: <1277898942-6501-1-git-send-email-armbru@redhat.com>
raw_pread_aligned() retries up to two times if the block device backs
a virtual CD-ROM. This makes no sense. Whether retrying reads can
correct read errors may depend on what we're reading, not on how the
result gets used.
Also clean up gratuitous use of goto.
This reverts what's left of commit 8c05dbf9.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
block/raw-posix.c | 26 +++-----------------------
1 files changed, 3 insertions(+), 23 deletions(-)
diff --git a/block/raw-posix.c b/block/raw-posix.c
index 3f0701b..2a847aa 100644
--- a/block/raw-posix.c
+++ b/block/raw-posix.c
@@ -242,15 +242,14 @@ static int raw_pread_aligned(BlockDriverState *bs, int64_t offset,
ret = pread(s->fd, buf, count, offset);
if (ret == count)
- goto label__raw_read__success;
+ return ret;
/* Allow reads beyond the end (needed for pwrite) */
if ((ret == 0) && bs->growable) {
int64_t size = raw_getlength(bs);
if (offset >= size) {
memset(buf, 0, count);
- ret = count;
- goto label__raw_read__success;
+ return count;
}
}
@@ -259,23 +258,6 @@ static int raw_pread_aligned(BlockDriverState *bs, int64_t offset,
s->fd, bs->filename, offset, buf, count,
bs->total_sectors, ret, errno, strerror(errno));
- /* Try harder for CDrom. */
- if (bs->type == BDRV_TYPE_CDROM) {
- ret = pread(s->fd, buf, count, offset);
- if (ret == count)
- goto label__raw_read__success;
- ret = pread(s->fd, buf, count, offset);
- if (ret == count)
- goto label__raw_read__success;
-
- DEBUG_BLOCK_PRINT("raw_pread(%d:%s, %" PRId64 ", %p, %d) [%" PRId64
- "] retry read failed %d : %d = %s\n",
- s->fd, bs->filename, offset, buf, count,
- bs->total_sectors, ret, errno, strerror(errno));
- }
-
-label__raw_read__success:
-
return (ret < 0) ? -errno : ret;
}
@@ -298,15 +280,13 @@ static int raw_pwrite_aligned(BlockDriverState *bs, int64_t offset,
ret = pwrite(s->fd, buf, count, offset);
if (ret == count)
- goto label__raw_write__success;
+ return ret;
DEBUG_BLOCK_PRINT("raw_pwrite(%d:%s, %" PRId64 ", %p, %d) [%" PRId64
"] write failed %d : %d = %s\n",
s->fd, bs->filename, offset, buf, count,
bs->total_sectors, ret, errno, strerror(errno));
-label__raw_write__success:
-
return (ret < 0) ? -errno : ret;
}
--
1.6.6.1
next prev parent reply other threads:[~2010-06-30 11:55 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-06-30 11:55 [Qemu-devel] [PATCH 00/11] Still more block related fixes and cleanups Markus Armbruster
2010-06-30 11:55 ` [Qemu-devel] [PATCH 01/11] blockdev: Clean up how readonly persists across virtual media change Markus Armbruster
2010-06-30 11:55 ` [Qemu-devel] [PATCH 02/11] block migration: Fix test for read-only drive Markus Armbruster
2010-06-30 11:55 ` Markus Armbruster [this message]
2010-07-05 15:31 ` [Qemu-devel] Re: [PATCH 03/11] raw-posix: Don't "try harder" for BDRV_TYPE_CDROM Kevin Wolf
2010-07-05 16:15 ` Markus Armbruster
2010-07-05 16:35 ` Kevin Wolf
2010-06-30 11:55 ` [Qemu-devel] [PATCH 04/11] scsi: Reject unimplemented error actions Markus Armbruster
2010-07-05 15:39 ` [Qemu-devel] " Kevin Wolf
2010-07-05 16:26 ` Markus Armbruster
2010-06-30 11:55 ` [Qemu-devel] [PATCH 05/11] fdc: " Markus Armbruster
2010-06-30 11:55 ` [Qemu-devel] [PATCH 06/11] qdev: Don't hw_error() in qdev_init_nofail() Markus Armbruster
2010-06-30 11:55 ` [Qemu-devel] [PATCH 07/11] ide: Improve error messages Markus Armbruster
2010-06-30 11:55 ` [Qemu-devel] [PATCH 08/11] ide: Replace IDEState members is_cdrom, is_cf by drive_kind Markus Armbruster
2010-07-05 16:00 ` [Qemu-devel] " Kevin Wolf
2010-07-06 12:38 ` Markus Armbruster
2010-07-06 12:50 ` Kevin Wolf
2010-06-30 11:55 ` [Qemu-devel] [PATCH 09/11] ide: Make ide_init_drive() return success Markus Armbruster
2010-06-30 11:55 ` [Qemu-devel] [PATCH 10/11] ide: Reject readonly drives unless CD-ROM Markus Armbruster
2010-06-30 11:55 ` [Qemu-devel] [PATCH 11/11] ide: Reject invalid CHS geometry Markus Armbruster
2010-07-05 16:08 ` [Qemu-devel] Re: [PATCH 00/11] Still more block related fixes and cleanups Kevin Wolf
2010-07-05 16:28 ` Markus Armbruster
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1277898942-6501-4-git-send-email-armbru@redhat.com \
--to=armbru@redhat.com \
--cc=hch@lst.de \
--cc=kraxel@redhat.com \
--cc=kwolf@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).