svn commit: r274333 - head/sys/cam/ctl
Alexander Motin
mav at FreeBSD.org
Sun Nov 9 22:43:31 UTC 2014
Author: mav
Date: Sun Nov 9 22:43:29 2014
New Revision: 274333
URL: https://svnweb.freebsd.org/changeset/base/274333
Log:
Handle PREEMPT AND ABORT service action equal to PREEMPT.
With command serialization used in CTL, there are no other commands to abort
when PREEMPT AND ABORT gets to run, so it is practically equal to PREEMPT.
MFC after: 1 week
Modified:
head/sys/cam/ctl/ctl.c
head/sys/cam/ctl/ctl_cmd_table.c
Modified: head/sys/cam/ctl/ctl.c
==============================================================================
--- head/sys/cam/ctl/ctl.c Sun Nov 9 22:16:50 2014 (r274332)
+++ head/sys/cam/ctl/ctl.c Sun Nov 9 22:43:29 2014 (r274333)
@@ -8914,7 +8914,8 @@ ctl_persistent_reserve_out(struct ctl_sc
}
break;
- case SPRO_PREEMPT: {
+ case SPRO_PREEMPT:
+ case SPRO_PRE_ABO: {
int nretval;
nretval = ctl_pro_preempt(softc, lun, res_key, sa_res_key, type,
Modified: head/sys/cam/ctl/ctl_cmd_table.c
==============================================================================
--- head/sys/cam/ctl/ctl_cmd_table.c Sun Nov 9 22:16:50 2014 (r274332)
+++ head/sys/cam/ctl/ctl_cmd_table.c Sun Nov 9 22:43:29 2014 (r274333)
@@ -180,7 +180,16 @@ const struct ctl_cmd_entry ctl_cmd_table
10, { 0x04, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}},
/* 05 PREEMPT AND ABORT */
-{NULL, CTL_SERIDX_INVLD, CTL_CMD_FLAG_NONE, CTL_LUN_PAT_NONE},
+{ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV |
+ CTL_CMD_FLAG_OK_ON_BOTH |
+ CTL_CMD_FLAG_OK_ON_STOPPED |
+ CTL_CMD_FLAG_OK_ON_INOPERABLE |
+ CTL_CMD_FLAG_OK_ON_OFFLINE |
+ CTL_CMD_FLAG_OK_ON_SECONDARY |
+ CTL_FLAG_DATA_OUT |
+ CTL_CMD_FLAG_ALLOW_ON_PR_RESV,
+ CTL_LUN_PAT_NONE,
+ 10, { 0x05, 0xff, 0, 0, 0xff, 0xff, 0xff, 0xff, 0x07}},
/* 06 REGISTER AND IGNORE EXISTING KEY */
{ctl_persistent_reserve_out, CTL_SERIDX_RES, CTL_CMD_FLAG_ALLOW_ON_RESV |
More information about the svn-src-all
mailing list