Author: mav
Date: Sun Jun 15 17:14:52 2014
New Revision: 267514
URL: http://svnweb.freebsd.org/changeset/base/267514

Log:
  Move kern_total_len setting from backend to core code.

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

Modified: head/sys/cam/ctl/ctl.c
==============================================================================
--- head/sys/cam/ctl/ctl.c      Sun Jun 15 16:54:26 2014        (r267513)
+++ head/sys/cam/ctl/ctl.c      Sun Jun 15 17:14:52 2014        (r267514)
@@ -8800,6 +8800,9 @@ ctl_read_write(struct ctl_scsiio *ctsio)
        memcpy(ctsio->io_hdr.ctl_private[CTL_PRIV_LBA_LEN].bytes, &lbalen,
               sizeof(lbalen));
 
+       ctsio->kern_total_len = num_blocks * lun->be_lun->blocksize;
+       ctsio->kern_rel_offset = 0;
+
        CTL_DEBUG_PRINT(("ctl_read_write: calling data_submit()\n"));
 
        retval = lun->backend->data_submit((union ctl_io *)ctsio);

Modified: head/sys/cam/ctl/ctl_backend_block.c
==============================================================================
--- head/sys/cam/ctl/ctl_backend_block.c        Sun Jun 15 16:54:26 2014        
(r267513)
+++ head/sys/cam/ctl/ctl_backend_block.c        Sun Jun 15 17:14:52 2014        
(r267514)
@@ -1383,15 +1383,11 @@ ctl_be_block_worker(void *context, int p
 static int
 ctl_be_block_submit(union ctl_io *io)
 {
-       struct ctl_lba_len lbalen;
        struct ctl_be_block_lun *be_lun;
        struct ctl_be_lun *ctl_be_lun;
-       int retval;
 
        DPRINTF("entered\n");
 
-       retval = CTL_RETVAL_COMPLETE;
-
        ctl_be_lun = (struct ctl_be_lun *)io->io_hdr.ctl_private[
                CTL_PRIV_BACKEND_LUN].ptr;
        be_lun = (struct ctl_be_block_lun *)ctl_be_lun->be_lun;
@@ -1402,11 +1398,6 @@ ctl_be_block_submit(union ctl_io *io)
        KASSERT(io->io_hdr.io_type == CTL_IO_SCSI, ("Non-SCSI I/O (type "
                "%#x) encountered", io->io_hdr.io_type));
 
-       memcpy(&lbalen, io->io_hdr.ctl_private[CTL_PRIV_LBA_LEN].bytes,
-              sizeof(lbalen));
-       io->scsiio.kern_total_len = lbalen.len * be_lun->blocksize;
-       io->scsiio.kern_rel_offset = 0;
-
        mtx_lock(&be_lun->lock);
        /*
         * XXX KDM make sure that links is okay to use at this point.
@@ -1415,10 +1406,9 @@ ctl_be_block_submit(union ctl_io *io)
         */
        STAILQ_INSERT_TAIL(&be_lun->input_queue, &io->io_hdr, links);
        mtx_unlock(&be_lun->lock);
-
        taskqueue_enqueue(be_lun->io_taskqueue, &be_lun->io_task);
 
-       return (retval);
+       return (CTL_RETVAL_COMPLETE);
 }
 
 static int

Modified: head/sys/cam/ctl/ctl_backend_ramdisk.c
==============================================================================
--- head/sys/cam/ctl/ctl_backend_ramdisk.c      Sun Jun 15 16:54:26 2014        
(r267513)
+++ head/sys/cam/ctl/ctl_backend_ramdisk.c      Sun Jun 15 17:14:52 2014        
(r267514)
@@ -274,20 +274,8 @@ ctl_backend_ramdisk_move_done(union ctl_
 static int
 ctl_backend_ramdisk_submit(union ctl_io *io)
 {
-       struct ctl_lba_len lbalen;
-       struct ctl_be_lun *ctl_be_lun;
 
-       ctl_be_lun = (struct ctl_be_lun *)io->io_hdr.ctl_private[
-               CTL_PRIV_BACKEND_LUN].ptr;
-
-       memcpy(&lbalen, io->io_hdr.ctl_private[CTL_PRIV_LBA_LEN].bytes,
-              sizeof(lbalen));
-       io->scsiio.be_move_done = ctl_backend_ramdisk_move_done;
-       io->scsiio.kern_total_len = lbalen.len * ctl_be_lun->blocksize;
-       io->scsiio.kern_rel_offset = 0;
-       io->scsiio.kern_data_resid = 0;
        ctl_backend_ramdisk_continue(io);
-
        return (CTL_RETVAL_COMPLETE);
 }
 
@@ -328,6 +316,8 @@ ctl_backend_ramdisk_continue(union ctl_i
        io->scsiio.kern_data_ptr = softc->ramdisk_buffer;
 #endif /* CTL_RAMDISK_PAGES */
 
+       io->scsiio.be_move_done = ctl_backend_ramdisk_move_done;
+       io->scsiio.kern_data_resid = 0;
        io->scsiio.kern_data_len = len_filled;
        io->scsiio.kern_sg_entries = sg_filled;
        io->io_hdr.flags |= CTL_FLAG_ALLOCATED;
_______________________________________________
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