summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormjacob <mjacob@FreeBSD.org>2010-02-23 14:35:44 +0000
committermjacob <mjacob@FreeBSD.org>2010-02-23 14:35:44 +0000
commit44c8f3e4cb82bdb92e65a5fffcae8406e574a49c (patch)
tree7046370f7981abf060610b6e37dfec1bc9c97430
parentd1674995a5d7551a3598070d0dfeabada9d498f9 (diff)
downloadFreeBSD-src-44c8f3e4cb82bdb92e65a5fffcae8406e574a49c.zip
FreeBSD-src-44c8f3e4cb82bdb92e65a5fffcae8406e574a49c.tar.gz
xpt_rescan only honors a wildcard in the target field. Revert the previous
change and have isp_make_here scan the whole bus which will then scan all luns. I think xpt_rescan needs to be fixed, but that's a separable issue. Suggested by: Alexander
-rw-r--r--sys/dev/isp/isp_freebsd.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/sys/dev/isp/isp_freebsd.c b/sys/dev/isp/isp_freebsd.c
index 7e1fa85..515e637 100644
--- a/sys/dev/isp/isp_freebsd.c
+++ b/sys/dev/isp/isp_freebsd.c
@@ -3892,7 +3892,12 @@ isp_make_here(ispsoftc_t *isp, int chan, int tgt)
isp_prt(isp, ISP_LOGWARN, "Chan %d unable to alloc CCB for rescan", chan);
return;
}
- if (xpt_create_path(&ccb->ccb_h.path, xpt_periph, cam_sim_path(fc->sim), tgt, 0) != CAM_REQ_CMP) {
+ /*
+ * xpt_rescan only honors wildcard in the target field.
+ * Scan the whole bus instead of target, which will then
+ * force a scan of all luns.
+ */
+ if (xpt_create_path(&ccb->ccb_h.path, xpt_periph, cam_sim_path(fc->sim), CAM_TARGET_WILDCARD, CAM_LUN_WILDCARD) != CAM_REQ_CMP) {
isp_prt(isp, ISP_LOGWARN, "unable to create path for rescan");
xpt_free_ccb(ccb);
return;
OpenPOWER on IntegriCloud