1. 23 9月, 2014 2 次提交
  2. 29 8月, 2014 1 次提交
    • J
      block,scsi: fixup blk_get_request dead queue scenarios · a492f075
      Joe Lawrence 提交于
      The blk_get_request function may fail in low-memory conditions or during
      device removal (even if __GFP_WAIT is set). To distinguish between these
      errors, modify the blk_get_request call stack to return the appropriate
      ERR_PTR. Verify that all callers check the return status and consider
      IS_ERR instead of a simple NULL pointer check.
      
      For consistency, make a similar change to the blk_mq_alloc_request leg
      of blk_get_request.  It may fail if the queue is dead, or the caller was
      unwilling to wait.
      Signed-off-by: NJoe Lawrence <joe.lawrence@stratus.com>
      Acked-by: Jiri Kosina <jkosina@suse.cz> [for pktdvd]
      Acked-by: Boaz Harrosh <bharrosh@panasas.com> [for osd]
      Reviewed-by: NJeff Moyer <jmoyer@redhat.com>
      Signed-off-by: NJens Axboe <axboe@fb.com>
      a492f075
  3. 27 8月, 2014 1 次提交
  4. 23 8月, 2014 1 次提交
  5. 20 8月, 2014 1 次提交
    • G
      scsi: Fix qemu boot hang problem · 480cadc2
      Guenter Roeck 提交于
      The latest kernel fails to boot qemu arm images when using scsi
      for disk access. Boot gets stuck after the following messages.
      
      brd: module loaded
      sym53c8xx 0000:00:0c.0: enabling device (0100 -> 0103)
      sym0: <895a> rev 0x0 at pci 0000:00:0c.0 irq 93
      sym0: No NVRAM, ID 7, Fast-40, LVD, parity checking
      sym0: SCSI BUS has been reset.
      scsi host0: sym-2.2.3
      
      Bisect points to commit 71e75c97 ("scsi: convert device_busy to
      atomic_t"). Code inspection shows the following suspicious change
      in scsi_request_fn.
      
      out_delay:
      -       if (sdev->device_busy == 0 && !scsi_device_blocked(sdev))
      +       if (atomic_read(&sdev->device_busy) && !scsi_device_blocked(sdev))
      		blk_delay_queue(q, SCSI_QUEUE_DELAY);
      	}
      
      'sdev->device_busy == 0' was replaced with 'atomic_read(&sdev->device_busy)',
      meaning the logic was reversed. Changing this expression to
      '!atomic_read(&sdev->device_busy)' fixes the problem.
      Signed-off-by: NGuenter Roeck <linux@roeck-us.net>
      Reviewed-by: NHannes Reinecke <hare@suse.de>
      Acked-by: NJens Axboe <axboe@fb.com>
      Reviewed-by: NVenkatesh Srinivas <venkateshs@google.com>
      Reviewed-by: NWebb Scales <webbnh@hp.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      480cadc2
  6. 16 8月, 2014 2 次提交
  7. 14 8月, 2014 1 次提交
  8. 13 8月, 2014 1 次提交
  9. 09 8月, 2014 2 次提交
  10. 06 8月, 2014 1 次提交
  11. 04 8月, 2014 1 次提交
  12. 03 8月, 2014 1 次提交
  13. 02 8月, 2014 1 次提交
  14. 01 8月, 2014 7 次提交
  15. 30 7月, 2014 6 次提交
  16. 29 7月, 2014 9 次提交
  17. 26 7月, 2014 2 次提交
    • D
      scsi_debug: support scsi-mq, queues and locks · cbf67842
      Douglas Gilbert 提交于
       - add host_lock option whose default value is 0 which removes the
         host_lock around all queued commands
       - accept delay=-1 (_hi_) or -2 which use a tasklet to invoke
         the scsi_done callback into the mid-layer. The default
         is still delay=1 which uses a timer to delay 1 jiffy
       - wire .change_queue_depth and .change_queue_type
         functions to better simulate queueing in a modern LLD
       - add SCSI_DEBUG_OPT_Q_NOISE (0x200) mask to only produce
         debug output associated with queue full, plus from
         .change_queue_depth and .change_queue_type functions
       - add SCSI_DEBUG_OPT_ALL_TSF (0x400) mask which reports
         all queued_arr fulls at TASK_SET_FULL, otherwise
         SCSI_MLQUEUE_HOST_BUSY is returned
       - add SCSI_DEBUG_OPT_RARE_TSF (0x800) mask which works
         together with the every_nth option (> 0) to count
         occurrences of num_in_q==queue_depth. When every_nth
         is reached the victim (a command) yields TASK SET FULL
       - clean up many debug messages.
       - add ndelay=<nanosecs> option that uses high resolution
         timers; active if > 0 and then overrides delay= option
       - expand Unit Attention handling: POR, BUS_RESET and
         MODE PARAMETERS CHANGED
       - support .eh_target_reset_handler and drop .bios_param
       - add OPT_N_WCE mask so caching page yields WCE=0
       - add OPT_RESET_NOISE mask to log aborts and resets
       - add OPT_NO_CDB_NOISE mask to not log each cdb
       - MODE SELECT support for changing caching page's WCE
       - name common ioctls in log
       - when fake_rw=1, do not vmalloc fake store; make
         UNMAP and WRITE SAME obey fake_rw
       - more logging and code improvements including better
         sense buffer handling
      
      With fio and four (pseudo) devices I have observed 1.2 M IOPS
      on my equipment. Rob Elliott who has done much testing and made
      numerous suggestions, has better IOPS results than mine.
      Signed-off-by: NDouglas Gilbert <dgilbert@interlog.com>
      Reviewed-by: NRobert Elliott <elliott@hp.com>
      Tested-by: NRobert Elliott <elliott@hp.com>
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      cbf67842
    • K
      Drivers: add blist flags · f3cfabce
      K. Y. Srinivasan 提交于
      Add blist flags to permit the reading of the VPD pages even when
      the target may claim SPC-2 compliance. MSFT targets currently
      claim SPC-2 compliance while they implement post SPC-2 features.
      With this patch we can correctly handle WRITE_SAME_16 issues.
      Signed-off-by: NK. Y. Srinivasan <kys@microsoft.com>
      Reviewed-by: NHannes Reinecke <hare@suse.de>
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      f3cfabce