The version of the ata driver we have tends to have problems when the drive returns errors. That is, the error paths just aren't tested very well (on FreeBSD or DragonFly). It's been a plague in FreeBSDland for over a decade, in fact. The most recent code on FreeBSD might work a little better but for all intents and purposes the ATA/IDE chipset ABI has too many quirks to be dependable.
The AHCI and SILI drivers are much better suited for error path handling. Of course, using AHCI requires a chipset that is AHCI-capable. Ultimately all new computers will have AHCI capable chipsets but it might be another year or two before the transition is complete. -Matt Matthew Dillon <dil...@backplane.com>