Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 9 Nov 2014 22:43:30 +0000 (UTC)
From:      Alexander Motin <mav@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r274333 - head/sys/cam/ctl
Message-ID:  <201411092243.sA9MhU5h054565@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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 |



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201411092243.sA9MhU5h054565>