summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorscottl <scottl@FreeBSD.org>2000-10-30 23:30:28 +0000
committerscottl <scottl@FreeBSD.org>2000-10-30 23:30:28 +0000
commitb7e3f40cd51dedaaeff09a208038e3b718792763 (patch)
tree16d4474b2900f22c41501a7a420c15ee74745a8a
parent96e124af5fed8718581487aa75a79f58773ff9bb (diff)
downloadFreeBSD-src-b7e3f40cd51dedaaeff09a208038e3b718792763.zip
FreeBSD-src-b7e3f40cd51dedaaeff09a208038e3b718792763.tar.gz
Allow XPT_PATH_INQ to be performed on the XPT device, as per the CAM spec.
Return ENOTSUP for XPT_ENG_INQ and XPT_ENG_EXEC when performed on the XPT device. Reviewed by: gibbs
-rw-r--r--sys/cam/cam_xpt.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/sys/cam/cam_xpt.c b/sys/cam/cam_xpt.c
index 018ee5a..ad65b71 100644
--- a/sys/cam/cam_xpt.c
+++ b/sys/cam/cam_xpt.c
@@ -956,7 +956,8 @@ xptioctl(dev_t dev, u_long cmd, caddr_t addr, int flag, struct proc *p)
/*
* For the transport layer CAMIOCOMMAND ioctl, we really only want
* to accept CCB types that don't quite make sense to send through a
- * passthrough driver.
+ * passthrough driver. XPT_PATH_INQ is an exception to this, as stated
+ * in the CAM spec.
*/
case CAMIOCOMMAND: {
union ccb *ccb;
@@ -973,6 +974,7 @@ xptioctl(dev_t dev, u_long cmd, caddr_t addr, int flag, struct proc *p)
break;
}
/* FALLTHROUGH */
+ case XPT_PATH_INQ:
case XPT_SCAN_LUN:
ccb = xpt_alloc_ccb();
@@ -1087,6 +1089,10 @@ xptioctl(dev_t dev, u_long cmd, caddr_t addr, int flag, struct proc *p)
error = 0;
break;
}
+ case XPT_ENG_INQ:
+ case XPT_ENG_EXEC:
+ error = ENOTSUP;
+ break;
default:
error = EINVAL;
break;
OpenPOWER on IntegriCloud