summaryrefslogtreecommitdiffstats
path: root/sys/cam
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2013-04-27 12:46:04 +0000
committermav <mav@FreeBSD.org>2013-04-27 12:46:04 +0000
commitba8e6992c30d728a8b2f366027f189a6cafba364 (patch)
tree51c67d3e4b46120acecb21d8323232c9072f1db2 /sys/cam
parent61b0409c0519fbf1a42e0cba6b35104b3dd84d51 (diff)
downloadFreeBSD-src-ba8e6992c30d728a8b2f366027f189a6cafba364.zip
FreeBSD-src-ba8e6992c30d728a8b2f366027f189a6cafba364.tar.gz
MFprojects/camlock r249542:
Remove ADA_FLAG_PACK_INVALID flag. Since ATA disks have no concept of media change it only duplicates CAM_PERIPH_INVALID flag, so we can use last one. Slightly cleanup DA_FLAG_PACK_INVALID use.
Diffstat (limited to 'sys/cam')
-rw-r--r--sys/cam/ata/ata_da.c36
-rw-r--r--sys/cam/scsi/scsi_da.c17
2 files changed, 10 insertions, 43 deletions
diff --git a/sys/cam/ata/ata_da.c b/sys/cam/ata/ata_da.c
index 0039fd8..206a9d6 100644
--- a/sys/cam/ata/ata_da.c
+++ b/sys/cam/ata/ata_da.c
@@ -74,7 +74,6 @@ typedef enum {
} ada_state;
typedef enum {
- ADA_FLAG_PACK_INVALID = 0x0001,
ADA_FLAG_CAN_48BIT = 0x0002,
ADA_FLAG_CAN_FLUSHCACHE = 0x0004,
ADA_FLAG_CAN_NCQ = 0x0008,
@@ -538,16 +537,11 @@ adaopen(struct disk *dp)
return (error);
}
- softc = (struct ada_softc *)periph->softc;
- softc->flags |= ADA_FLAG_OPEN;
-
CAM_DEBUG(periph->path, CAM_DEBUG_TRACE | CAM_DEBUG_PERIPH,
("adaopen\n"));
- if ((softc->flags & ADA_FLAG_PACK_INVALID) != 0) {
- /* Invalidate our pack information. */
- softc->flags &= ~ADA_FLAG_PACK_INVALID;
- }
+ softc = (struct ada_softc *)periph->softc;
+ softc->flags |= ADA_FLAG_OPEN;
cam_periph_unhold(periph);
cam_periph_unlock(periph);
@@ -576,7 +570,7 @@ adaclose(struct disk *dp)
/* We only sync the cache if the drive is capable of it. */
if ((softc->flags & ADA_FLAG_CAN_FLUSHCACHE) != 0 &&
- (softc->flags & ADA_FLAG_PACK_INVALID) == 0) {
+ (periph->flags & CAM_PERIPH_INVALID) == 0) {
ccb = cam_periph_getccb(periph, CAM_PRIORITY_NORMAL);
cam_fill_ataio(&ccb->ataio,
@@ -651,7 +645,7 @@ adastrategy(struct bio *bp)
/*
* If the device has been made invalid, error out
*/
- if ((softc->flags & ADA_FLAG_PACK_INVALID)) {
+ if ((periph->flags & CAM_PERIPH_INVALID) != 0) {
cam_periph_unlock(periph);
biofinish(bp, NULL, ENXIO);
return;
@@ -702,7 +696,7 @@ adadump(void *arg, void *virtual, vm_offset_t physical, off_t offset, size_t len
lba = offset / secsize;
count = length / secsize;
- if ((softc->flags & ADA_FLAG_PACK_INVALID) != 0) {
+ if ((periph->flags & CAM_PERIPH_INVALID) != 0) {
cam_periph_unlock(periph);
return (ENXIO);
}
@@ -827,8 +821,6 @@ adaoninvalidate(struct cam_periph *periph)
*/
xpt_register_async(0, adaasync, periph, periph->path);
- softc->flags |= ADA_FLAG_PACK_INVALID;
-
/*
* Return all queued I/O with ENXIO.
* XXX Handle any transactions queued to the card
@@ -990,7 +982,7 @@ adasysctlinit(void *context, int pending)
periph = (struct cam_periph *)context;
/* periph was held for us when this task was enqueued */
- if (periph->flags & CAM_PERIPH_INVALID) {
+ if ((periph->flags & CAM_PERIPH_INVALID) != 0) {
cam_periph_release(periph);
return;
}
@@ -1597,10 +1589,9 @@ out:
case ADA_STATE_RAHEAD:
case ADA_STATE_WCACHE:
{
- if (softc->flags & ADA_FLAG_PACK_INVALID) {
+ if ((periph->flags & CAM_PERIPH_INVALID) != 0) {
softc->state = ADA_STATE_NORMAL;
xpt_release_ccb(start_ccb);
- adaschedule(periph);
cam_periph_release_locked(periph);
return;
}
@@ -1660,19 +1651,6 @@ adadone(struct cam_periph *periph, union ccb *done_ccb)
return;
}
if (error != 0) {
- if (error == ENXIO &&
- (softc->flags & ADA_FLAG_PACK_INVALID) == 0) {
- /*
- * Catastrophic error. Mark our pack as
- * invalid.
- */
- /*
- * XXX See if this is really a media
- * XXX change first?
- */
- xpt_print(path, "Invalidating pack\n");
- softc->flags |= ADA_FLAG_PACK_INVALID;
- }
bp->bio_error = error;
bp->bio_resid = bp->bio_bcount;
bp->bio_flags |= BIO_ERROR;
diff --git a/sys/cam/scsi/scsi_da.c b/sys/cam/scsi/scsi_da.c
index 02679ed..af4c8f5 100644
--- a/sys/cam/scsi/scsi_da.c
+++ b/sys/cam/scsi/scsi_da.c
@@ -1007,7 +1007,6 @@ daopen(struct disk *dp)
{
struct cam_periph *periph;
struct da_softc *softc;
- int unit;
int error;
periph = (struct cam_periph *)dp->d_drv1;
@@ -1022,17 +1021,12 @@ daopen(struct disk *dp)
return (error);
}
- unit = periph->unit_number;
- softc = (struct da_softc *)periph->softc;
- softc->flags |= DA_FLAG_OPEN;
-
CAM_DEBUG(periph->path, CAM_DEBUG_TRACE | CAM_DEBUG_PERIPH,
("daopen\n"));
- if ((softc->flags & DA_FLAG_PACK_INVALID) != 0) {
- /* Invalidate our pack information. */
- softc->flags &= ~DA_FLAG_PACK_INVALID;
- }
+ softc = (struct da_softc *)periph->softc;
+ softc->flags |= DA_FLAG_OPEN;
+ softc->flags &= ~DA_FLAG_PACK_INVALID;
dareprobe(periph);
@@ -2684,11 +2678,6 @@ dadone(struct cam_periph *periph, union ccb *done_ccb)
if (softc->outstanding_cmds == 0)
softc->flags |= DA_FLAG_WENT_IDLE;
- if ((softc->flags & DA_FLAG_PACK_INVALID) != 0) {
- xpt_print(periph->path, "oustanding %d\n",
- softc->outstanding_cmds);
- }
-
if (state == DA_CCB_DELETE) {
while ((bp1 = bioq_takefirst(&softc->delete_run_queue))
!= NULL) {
OpenPOWER on IntegriCloud