From 940907907bd8597fdc52d1c434a1273bf757e8ba Mon Sep 17 00:00:00 2001 From: Matt Jacob Date: Tue, 23 Feb 2010 14:35:44 +0000 Subject: [PATCH] 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 --- sys/dev/isp/isp_freebsd.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/sys/dev/isp/isp_freebsd.c b/sys/dev/isp/isp_freebsd.c index 7e1fa8547f70..515e6373f9f5 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;