• Mike Christie's avatar
    SCSI: add 1024 max sectors black list flag · 35e9a9f9
    Mike Christie authored
    This works around a issue with qnap iscsi targets not handling large IOs
    very well.
    
    The target returns:
    
    VPD INQUIRY: Block limits page (SBC)
      Maximum compare and write length: 1 blocks
      Optimal transfer length granularity: 1 blocks
      Maximum transfer length: 4294967295 blocks
      Optimal transfer length: 4294967295 blocks
      Maximum prefetch, xdread, xdwrite transfer length: 0 blocks
      Maximum unmap LBA count: 8388607
      Maximum unmap block descriptor count: 1
      Optimal unmap granularity: 16383
      Unmap granularity alignment valid: 0
      Unmap granularity alignment: 0
      Maximum write same length: 0xffffffff blocks
      Maximum atomic transfer length: 0
      Atomic alignment: 0
      Atomic transfer length granularity: 0
    
    and it is *sometimes* able to handle at least one IO of size up to 8 MB. We
    have seen in traces where it will sometimes work, but other times it
    looks like it fails and it looks like it returns failures if we send
    multiple large IOs sometimes. Also it looks like it can return 2 different
    errors. It will sometimes send iscsi reject errors indicating out of
    resources or it will send invalid cdb illegal requests check conditions.
    And then when it sends iscsi rejects it does not seem to handle retries
    when there are command sequence holes, so I could not just add code to
    try and gracefully handle that error code.
    
    The problem is that we do not have a good contact for the company,
    so we are not able to determine under what conditions it returns
    which error and why it sometimes works.
    
    So, this patch just adds a new black list flag to set targets like this to
    the old max safe sectors of 1024. The max_hw_sectors changes added in 3.19
    caused this regression, so I also ccing stable.
    Reported-by: 's avatarChristian Hesse <list@eworm.de>
    Signed-off-by: 's avatarMike Christie <michaelc@cs.wisc.edu>
    Cc: stable@vger.kernel.org
    Reviewed-by: 's avatarChristoph Hellwig <hch@lst.de>
    Signed-off-by: 's avatarJames Bottomley <JBottomley@Odin.com>
    35e9a9f9
scsi_devinfo.h 2.28 KB