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-head mailing list