Do not try to execute FLUSHCACHE on close and print extra messages for

invalidated (considered lost) ada device. Exactly same already done for
the da devices.

Approved by:	re (kib)
MFC after:	1 week
This commit is contained in:
Alexander Motin 2011-07-23 22:11:40 +00:00
parent ab1779e30e
commit c36bb43ca6
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=224283

View File

@ -425,7 +425,8 @@ adaclose(struct disk *dp)
softc = (struct ada_softc *)periph->softc;
/* We only sync the cache if the drive is capable of it. */
if (softc->flags & ADA_FLAG_CAN_FLUSHCACHE) {
if ((softc->flags & ADA_FLAG_CAN_FLUSHCACHE) != 0 &&
(softc->flags & ADA_FLAG_PACK_INVALID) == 0) {
ccb = cam_periph_getccb(periph, CAM_PRIORITY_NORMAL);
cam_fill_ataio(&ccb->ataio,
@ -1361,7 +1362,8 @@ adadone(struct cam_periph *periph, union ccb *done_ccb)
return;
}
if (error != 0) {
if (error == ENXIO) {
if (error == ENXIO &&
(softc->flags & ADA_FLAG_PACK_INVALID) == 0) {
/*
* Catastrophic error. Mark our pack as
* invalid.