1. 06 5月, 2010 2 次提交
    • J
      [SCSI] Retry commands with UNIT_ATTENTION sense codes to fix ext3/ext4 I/O error · 77a42297
      James Bottomley 提交于
      There's nastyness in the way we currently handle barriers (and
      discards): They're effectively filesystem commands, but they get
      processed as BLOCK_PC commands.  Unfortunately BLOCK_PC commands are
      taken by SCSI to be SG_IO commands and the issuer expects to see and
      handle any returned errors, however trivial.  This leads to a huge
      problem, because the block layer doesn't expect this to happen and any
      trivially retryable error on a barrier causes an immediate I/O error
      to the filesystem.
      
      The only real way to hack around this is to take the usual class of
      offending errors (unit attentions) and make them all retryable in the
      case of a REQ_HARDBARRIER.  A correct fix would involve a rework of
      the entire block and SCSI submit system, and so is out of scope for a
      quick fix.
      
      Cc: Hannes Reinecke <hare@suse.de>
      Cc: Stable Tree <stable@kernel.org>
      Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
      77a42297
    • H
      [SCSI] Enable retries for SYNCRONIZE_CACHE commands to fix I/O error · c213e140
      Hannes Reinecke 提交于
      Some arrays are giving I/O errors with ext3 filesystems when
      SYNCHRONIZE_CACHE gets a UNIT_ATTENTION.  What is happening is that
      these commands have no retries, so the UNIT_ATTENTION causes the
      barrier to fail.  We should be enable retries here to clear any
      transient error and allow the barrier to succeed.
      Signed-off-by: NHannes Reinecke <hare@suse.de>
      Cc: Stable Tree <stable@kernel.org>
      Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
      c213e140
  2. 02 5月, 2010 3 次提交
  3. 01 5月, 2010 35 次提交