Date: Sun, 10 Oct 2004 10:20:51 GMT From: Daisuke Takahashi <takaha@mue.biglobe.ne.jp> To: freebsd-gnats-submit@FreeBSD.org Subject: kern/72478: ata: dd destroy FreeBSD raid header Message-ID: <200410101020.i9AAKpRm025406@www.freebsd.org> Resent-Message-ID: <200410101030.i9AAULLi013339@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 72478 >Category: kern >Synopsis: ata: dd destroy FreeBSD raid header >Confidential: no >Severity: critical >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sun Oct 10 10:30:20 GMT 2004 >Closed-Date: >Last-Modified: >Originator: Daisuke Takahashi >Release: FreeBSD 5.3-BETA7 >Organization: personal >Environment: FreeBSD mika-l.lodaldomain 5.3-BETA7 FreeBSD 5.3-BETA7 #1: Sun Oct 10 17:42:06 JST 2004 root@mika-l.lodaldomain:/usr/src/sys/i386/compile/GENERIC i386 - - - Oct 10 16:33:58 mika-l kernel: ad1: 102MB <VMware Virtual IDE Hard Drive/00000001> [208/16/63] at ata0-slave UDMA33 Oct 10 16:33:58 mika-l kernel: ad3: 204MB <VMware Virtual IDE Hard Drive/00000001> [416/16/63] at ata1-slave UDMA33 >Description: I created ar0 as follow. # atacontrol create SPAN ad1 ad3 syslog as follow Oct 10 16:36:31 mika-l kernel: ar0: 204MB <ATA SPAN array> [26/255/63] status: READY subdisks: Oct 10 16:36:31 mika-l kernel: disk0 READY on ad1 at ata0-slave Oct 10 16:36:31 mika-l kernel: disk1 READY on ad3 at ata1-slave But when I use entire space of ar0, ar0 reports "ar0: ERROR - array broken" at next boot time. Oct 10 16:39:41 mika-l kernel: ar0: ERROR - array broken Oct 10 16:39:41 mika-l kernel: ar0: 204MB <ATA SPAN array> [26/255/63] status: BROKEN subdisks: Oct 10 16:39:41 mika-l kernel: disk0 DOWN no device found for this disk Oct 10 16:39:41 mika-l kernel: disk1 READY on ad3 at ata1-slave >How-To-Repeat: 1. create ar0 as SPAN disk # atacontrol create SPAN ad1 ad3 2. write '0' to entire ar0 # dd if=/dev/zero of=/dev/ar0 bs=64k 3. reboot >Fix: --- ata-raid.c.orig Tue Jan 27 14:53:19 2004 +++ ata-raid.c Thu Sep 30 15:55:23 2004 @@ -556,9 +560,9 @@ switch (rdp->flags & (AR_F_RAID0 | AR_F_RAID1 | AR_F_SPAN)) { case AR_F_SPAN: lba = blkno; - while (lba >= AD_SOFTC(rdp->disks[drv])->total_secs-rdp->reserved) - lba -= AD_SOFTC(rdp->disks[drv++])->total_secs-rdp->reserved; - chunk = min(AD_SOFTC(rdp->disks[drv])->total_secs-rdp->reserved-lba, + while (lba >= rdp->disks[drv].disk_sectors) + lba -= rdp->disks[drv++].disk_sectors; + chunk = min(rdp->disks[drv].disk_sectors-lba, count); break; @@ -670,9 +674,9 @@ switch (rdp->flags & (AR_F_RAID0 | AR_F_RAID1 | AR_F_SPAN)) { case AR_F_SPAN: lba = blkno; - while (lba >= AD_SOFTC(rdp->disks[drv])->total_secs-rdp->reserved) - lba -= AD_SOFTC(rdp->disks[drv++])->total_secs-rdp->reserved; - chunk = min(AD_SOFTC(rdp->disks[drv])->total_secs-rdp->reserved-lba, + while (lba >= rdp->disks[drv].disk_sectors) + lba -= rdp->disks[drv++].disk_sectors; + chunk = min(rdp->disks[drv].disk_sectors-lba, count); break; >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200410101020.i9AAKpRm025406>