diff options
author | scottl <scottl@FreeBSD.org> | 2000-10-30 23:30:28 +0000 |
---|---|---|
committer | scottl <scottl@FreeBSD.org> | 2000-10-30 23:30:28 +0000 |
commit | b7e3f40cd51dedaaeff09a208038e3b718792763 (patch) | |
tree | 16d4474b2900f22c41501a7a420c15ee74745a8a /sys/cam/cam_xpt.c | |
parent | 96e124af5fed8718581487aa75a79f58773ff9bb (diff) | |
download | FreeBSD-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
Diffstat (limited to 'sys/cam/cam_xpt.c')
-rw-r--r-- | sys/cam/cam_xpt.c | 8 |
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; |