Date: Thu, 12 Jul 2001 16:39:52 -0700 (PDT) From: Matthew Jacob <mjacob@feral.com> To: Jim Bryant <kc5vdj@yahoo.com> Cc: scsi@FreeBSD.ORG Subject: Re: oddity with dump(8) or sa(4) in -current Message-ID: <Pine.BSF.4.21.0107121636340.61694-200000@beppo> In-Reply-To: <3B4E339D.E37DAD13@yahoo.com>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
On Thu, 12 Jul 2001, Jim Bryant wrote:
> Well, honestly, the last working version I had was late feb/early-march,
> at which point i lost my connectivity. Then I had a cmos battery go bad
> without the settings being written, this caused an IRQ conflict which I
> only resolved a few days ago. They say "shit happens", well, I had a
> whole manure truck dump on me over the past few months, and I'm only now
> getting my shit together.
>
> All I can say is that it worked late-feb/early-march.
Try the attached patch, which backs Joerg's fix in rev 1.68.
-matt
[-- Attachment #2 --]
Index: scsi_sa.c
===================================================================
RCS file: /home/ncvs/src/sys/cam/scsi/scsi_sa.c,v
retrieving revision 1.68
retrieving revision 1.67
diff -u -r1.68 -r1.67
--- scsi_sa.c 2001/04/22 20:13:28 1.68
+++ scsi_sa.c 2001/03/27 05:45:12 1.67
@@ -2286,7 +2286,7 @@
u_int32_t resid = 0;
int32_t info = 0;
int error_code, sense_key, asc, ascq;
- int error, defer_action, no_actual_error = FALSE;
+ int error, defer_action;
periph = xpt_path_periph(ccb->ccb_h.path);
softc = (struct sa_softc *)periph->softc;
@@ -2396,8 +2396,6 @@
if (defer_action) {
error = -1;
softc->flags |= SA_FLAG_EOF_PENDING;
- } else {
- no_actual_error = TRUE;
}
/*
* Unconditionally, if we detected a filemark on a read,
@@ -2426,8 +2424,6 @@
softc->flags |= SA_FLAG_EIO_PENDING;
else
error = EIO;
- } else {
- no_actual_error = TRUE;
}
/*
* Bump the block number if we hadn't seen a filemark.
@@ -2442,17 +2438,8 @@
}
}
}
- if (error == 0 && !no_actual_error)
+ if (error == 0)
return (cam_periph_error(ccb, cflgs, sflgs, &softc->saved_ccb));
- if (no_actual_error) {
- if ((ccb->ccb_h.status & CAM_DEV_QFRZN) != 0)
- cam_release_devq(ccb->ccb_h.path,
- /* relsim_flags */0,
- /* openings */0,
- /* timeout */0,
- /* getcount_only */ FALSE);
- return (0);
- }
if (error == -1)
return (0);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0107121636340.61694-200000>
