From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48567) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a1gdS-0002v8-Ft for qemu-devel@nongnu.org; Wed, 25 Nov 2015 15:25:51 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1a1gdP-0000W7-Lb for qemu-devel@nongnu.org; Wed, 25 Nov 2015 15:25:50 -0500 Received: from mx1.redhat.com ([209.132.183.28]:35161) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a1gdP-0000Vm-GC for qemu-devel@nongnu.org; Wed, 25 Nov 2015 15:25:47 -0500 From: John Snow Date: Wed, 25 Nov 2015 15:25:40 -0500 Message-Id: <1448483142-32658-3-git-send-email-jsnow@redhat.com> In-Reply-To: <1448483142-32658-1-git-send-email-jsnow@redhat.com> References: <1448483142-32658-1-git-send-email-jsnow@redhat.com> Subject: [Qemu-devel] [PULL 2/4] atapi: Account for failed and invalid operations in cd_read_sector() List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: peter.maydell@linaro.org, jsnow@redhat.com, Alberto Garcia From: Alberto Garcia Commit 5f81724d made PIO read requests async but didn't add the relevant block_acct_failed() and block_acct_invalid() calls. Signed-off-by: Alberto Garcia Reviewed-by: John Snow Message-id: 9b87e09d61019c128139b6c999ed0c07f0674170.1448367341.git.berto@igalia.com Signed-off-by: John Snow --- hw/ide/atapi.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/hw/ide/atapi.c b/hw/ide/atapi.c index 7b9f74c..5e3791c 100644 --- a/hw/ide/atapi.c +++ b/hw/ide/atapi.c @@ -148,17 +148,18 @@ static void cd_read_sector_cb(void *opaque, int ret) { IDEState *s = opaque; - block_acct_done(blk_get_stats(s->blk), &s->acct); - #ifdef DEBUG_IDE_ATAPI printf("cd_read_sector_cb: lba=%d ret=%d\n", s->lba, ret); #endif if (ret < 0) { + block_acct_failed(blk_get_stats(s->blk), &s->acct); ide_atapi_io_error(s, ret); return; } + block_acct_done(blk_get_stats(s->blk), &s->acct); + if (s->cd_sector_size == 2352) { cd_data_to_raw(s->io_buffer, s->lba); } @@ -173,6 +174,7 @@ static void cd_read_sector_cb(void *opaque, int ret) static int cd_read_sector(IDEState *s) { if (s->cd_sector_size != 2048 && s->cd_sector_size != 2352) { + block_acct_invalid(blk_get_stats(s->blk), BLOCK_ACCT_READ); return -EINVAL; } -- 2.4.3