aboutsummaryrefslogtreecommitdiff
path: root/sys/cam/ctl/ctl_error.c
diff options
context:
space:
mode:
authorAlexander Motin <mav@FreeBSD.org>2014-10-29 03:14:29 +0000
committerAlexander Motin <mav@FreeBSD.org>2014-10-29 03:14:29 +0000
commit4fc18ff9bb50ce6675619acb03b94c809b91a2c8 (patch)
tree4c814533c44059208eecf5e6d6f8ea5b2645d9ac /sys/cam/ctl/ctl_error.c
parentd14c434667f2927d0c0477523d71e06a0713944d (diff)
downloadsrc-4fc18ff9bb50ce6675619acb03b94c809b91a2c8.tar.gz
src-4fc18ff9bb50ce6675619acb03b94c809b91a2c8.zip
Implement better handling for ENOSPC error for both CTL and CAM.
This makes VMWare VAAI Thin Provisioning Stun primitive activate, pausing the virtual machine, when backing storage (ZFS pool) is getting overflowed. MFC after: 1 week Sponsored by: iXsystems, Inc.
Notes
Notes: svn path=/head/; revision=273809
Diffstat (limited to 'sys/cam/ctl/ctl_error.c')
-rw-r--r--sys/cam/ctl/ctl_error.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/sys/cam/ctl/ctl_error.c b/sys/cam/ctl/ctl_error.c
index d2edb2a95712..b6a8b89d1332 100644
--- a/sys/cam/ctl/ctl_error.c
+++ b/sys/cam/ctl/ctl_error.c
@@ -806,6 +806,18 @@ ctl_set_task_aborted(struct ctl_scsiio *ctsio)
}
void
+ctl_set_space_alloc_fail(struct ctl_scsiio *ctsio)
+{
+ /* "Space allocation failed write protect" */
+ ctl_set_sense(ctsio,
+ /*current_error*/ 1,
+ /*sense_key*/ SSD_KEY_DATA_PROTECT,
+ /*asc*/ 0x27,
+ /*ascq*/ 0x07,
+ SSD_ELEM_NONE);
+}
+
+void
ctl_set_success(struct ctl_scsiio *ctsio)
{
struct scsi_sense_data *sense;