svn commit: r268387 - head/sys/cam/ctl

Alexander Motin mav at FreeBSD.org
Tue Jul 8 08:34:35 UTC 2014


Author: mav
Date: Tue Jul  8 08:34:34 2014
New Revision: 268387
URL: http://svnweb.freebsd.org/changeset/base/268387

Log:
  Fix task management functions status: task not found is not an error,
  while not implemented function is.

Modified:
  head/sys/cam/ctl/ctl.c

Modified: head/sys/cam/ctl/ctl.c
==============================================================================
--- head/sys/cam/ctl/ctl.c	Tue Jul  8 08:18:44 2014	(r268386)
+++ head/sys/cam/ctl/ctl.c	Tue Jul  8 08:34:34 2014	(r268387)
@@ -11944,7 +11944,7 @@ ctl_abort_task(union ctl_io *io)
 		lun = ctl_softc->ctl_luns[targ_lun];
 	else {
 		mtx_unlock(&ctl_softc->ctl_lock);
-		goto bailout;
+		return (1);
 	}
 
 #if 0
@@ -12047,8 +12047,6 @@ ctl_abort_task(union ctl_io *io)
 	}
 	mtx_unlock(&lun->lun_lock);
 
-bailout:
-
 	if (found == 0) {
 		/*
 		 * This isn't really an error.  It's entirely possible for
@@ -12064,9 +12062,8 @@ bailout:
 		       io->io_hdr.nexus.targ_lun, io->taskio.tag_num,
 		       io->taskio.tag_type);
 #endif
-		return (1);
-	} else
-		return (0);
+	}
+	return (0);
 }
 
 /*
@@ -12076,15 +12073,12 @@ bailout:
 static void
 ctl_run_task(union ctl_io *io)
 {
-	struct ctl_softc *ctl_softc;
-	int retval;
+	struct ctl_softc *ctl_softc = control_softc;
+	int retval = 1;
 	const char *task_desc;
 
 	CTL_DEBUG_PRINT(("ctl_run_task\n"));
 
-	ctl_softc = control_softc;
-	retval = 0;
-
 	KASSERT(io->io_hdr.io_type == CTL_IO_TASK,
 	    ("ctl_run_task: Unextected io_type %d\n",
 	     io->io_hdr.io_type));
@@ -12133,7 +12127,6 @@ ctl_run_task(union ctl_io *io)
 	case CTL_TASK_LUN_RESET: {
 		struct ctl_lun *lun;
 		uint32_t targ_lun;
-		int retval;
 
 		targ_lun = io->io_hdr.nexus.targ_mapped_lun;
 		mtx_lock(&ctl_softc->ctl_lock);
@@ -12190,12 +12183,6 @@ ctl_run_task(union ctl_io *io)
 		io->io_hdr.status = CTL_SUCCESS;
 	else
 		io->io_hdr.status = CTL_ERROR;
-
-	/*
-	 * This will queue this I/O to the done queue, but the
-	 * work thread won't be able to process it until we
-	 * return and the lock is released.
-	 */
 	ctl_done(io);
 }
 


More information about the svn-src-head mailing list