From patchwork Wed Oct 5 07:12:06 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Bonzini X-Patchwork-Id: 117753 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [140.186.70.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 6DAF9B6F94 for ; Wed, 5 Oct 2011 18:23:14 +1100 (EST) Received: from localhost ([::1]:45064 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RBLeq-0006aJ-OH for incoming@patchwork.ozlabs.org; Wed, 05 Oct 2011 03:12:48 -0400 Received: from eggs.gnu.org ([140.186.70.92]:56109) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RBLeM-0005Ua-0Y for qemu-devel@nongnu.org; Wed, 05 Oct 2011 03:12:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RBLeK-0005Mv-QH for qemu-devel@nongnu.org; Wed, 05 Oct 2011 03:12:17 -0400 Received: from mail-wy0-f173.google.com ([74.125.82.173]:40277) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RBLeK-0005Je-CP for qemu-devel@nongnu.org; Wed, 05 Oct 2011 03:12:16 -0400 Received: by mail-wy0-f173.google.com with SMTP id 22so1502868wyh.4 for ; Wed, 05 Oct 2011 00:12:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=sender:from:to:subject:date:message-id:x-mailer:in-reply-to :references; bh=GFT69ehUasXP1H8l1EyF35kqGrzVtyiNZYp+hZbxa/A=; b=YC+FMgblyL+xnIqrAqfwY/hwWhr2Gq9z5rwffAbJy6kV431FR1EVAp8UCwYWGNRpc2 AGRpLv/2tLjEZN43g2+5aReofhK0gVvOffKmsaHlKnya8zcuWMMx030K4WriGiwMWaaU tXouIhiId6zQhR+NmBc4+zys16KVkU12B6CwE= Received: by 10.216.80.36 with SMTP id j36mr2489854wee.89.1317798735997; Wed, 05 Oct 2011 00:12:15 -0700 (PDT) Received: from localhost.localdomain (93-34-218-143.ip51.fastwebnet.it. [93.34.218.143]) by mx.google.com with ESMTPS id s30sm1186914wbm.12.2011.10.05.00.12.15 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 05 Oct 2011 00:12:15 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Wed, 5 Oct 2011 09:12:06 +0200 Message-Id: <1317798728-28938-5-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.7.6 In-Reply-To: <1317798728-28938-1-git-send-email-pbonzini@redhat.com> References: <1317798728-28938-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-Received-From: 74.125.82.173 Subject: [Qemu-devel] [PATCH 4/6] vvfat: unify and correct computation of sector count X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org The sector count is stored in the partition and hence must not include the sectors before its start. At the same time, remove the useless special casing for 1.44 MB floppies. This fixes fsck on VVFAT hard disks, which otherwise tries to seek past the end of the disk. Signed-off-by: Paolo Bonzini --- block/vvfat.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/block/vvfat.c b/block/vvfat.c index eb91642..a682eae 100644 --- a/block/vvfat.c +++ b/block/vvfat.c @@ -1040,8 +1040,6 @@ DLOG(if (stderr == NULL) { bs->cyls = 80; bs->heads = 2; bs->secs = 36; } - s->sector_count=bs->cyls*bs->heads*bs->secs; - if (strstr(dirname, ":32:")) { fprintf(stderr, "Big fat greek warning: FAT32 has not been tested. You are welcome to do so!\n"); s->fat_type = 32; @@ -1049,9 +1047,11 @@ DLOG(if (stderr == NULL) { s->fat_type = 16; } else if (strstr(dirname, ":12:")) { s->fat_type = 12; - s->sector_count=2880; + bs->secs = 18; } + s->sector_count=bs->cyls*bs->heads*bs->secs-(s->first_sectors_number-1); + if (strstr(dirname, ":rw:")) { if (enable_write_target(s)) return -1;