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);
 }
 
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to