standards/148748: ATA Raid Metadata Read Write Inconsistency

Tatsuya Hagino hagino at
Mon Jul 19 05:20:09 UTC 2010

>Number:         148748
>Category:       standards
>Synopsis:       ATA Raid Metadata Read Write Inconsistency
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    freebsd-standards
>State:          open
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Jul 19 05:20:08 UTC 2010
>Originator:     Tatsuya Hagino
>Release:        8.1-PRERELEASE
Keio University
FreeBSD hagino2 8.1-PRERELEASE FreeBSD 8.1-PRERELEASE #0: Sun Jul 18 23:53:05 JST 2010     root@:/usr/src/sys/amd64/compile/GENERIC  amd64
I have reported this problem before, but it has not yet fixed.  This is just a simple mistake in the source code.

When using ATI (now AMD) SB700 SATA Controler and using atacontrol to create RAID1 mirroring, the metadata written on the disk by atacontrol command is VIA metadata format (since ATA metadata format in unknown), but when the metadata is read, it is read as SILICON_IMAGE metadata and it fails because it is VIA metadata format.
1. Use ATI SB700 SATA Controler AHCI mode
2. use atacontrol command to create RAID1
3. it fails to read the metadata created by 2

Change /usr/src/sys/dev/ata/ata-raid.c to use the same metadata format bor both read an write.  For example, I have changed ata_raid_read_metadata so that ATA_ATI_ID is not with ATA_SILICON_IMAGE_ID but with ATA_VIA_ID.


More information about the freebsd-standards mailing list