Forum | Documentation | Website | Blog

Skip to content
Snippets Groups Projects
  1. Dec 20, 2021
  2. Dec 16, 2021
  3. Dec 14, 2021
  4. Dec 13, 2021
  5. Dec 12, 2021
  6. Dec 06, 2021
  7. Dec 03, 2021
  8. Dec 02, 2021
  9. Nov 29, 2021
    • Ye Bin's avatar
      block: Fix fsync always failed if once failed · 8a751893
      Ye Bin authored
      We do test with inject error fault base on v4.19, after test some time we found
      sync /dev/sda always failed.
      [root@localhost] sync /dev/sda
      sync: error syncing '/dev/sda': Input/output error
      
      scsi log as follows:
      [19069.812296] sd 0:0:0:0: [sda] tag#64 Send: scmd 0x00000000d03a0b6b
      [19069.812302] sd 0:0:0:0: [sda] tag#64 CDB: Synchronize Cache(10) 35 00 00 00 00 00 00 00 00 00
      [19069.812533] sd 0:0:0:0: [sda] tag#64 Done: SUCCESS Result: hostbyte=DID_OK driverbyte=DRIVER_OK
      [19069.812536] sd 0:0:0:0: [sda] tag#64 CDB: Synchronize Cache(10) 35 00 00 00 00 00 00 00 00 00
      [19069.812539] sd 0:0:0:0: [sda] tag#64 scsi host busy 1 failed 0
      [19069.812542] sd 0:0:0:0: Notifying upper driver of completion (result 0)
      [19069.812546] sd 0:0:0:0: [sda] tag#64 sd_done: completed 0 of 0 bytes
      [19069.812549] sd 0:0:0:0: [sda] tag#64 0 sectors total, 0 bytes done.
      [19069.812564] print_req_error: I/O error, dev sda, sector 0
      
      ftrace log as follows:
       rep-306069 [007] .... 19654.923315: block_bio_queue: 8,0 FWS 0 + 0 [rep]
       rep-306069 [007] .... 19654.923333: block_getrq: 8,0 FWS 0 + 0 [rep]
       kworker/7:1H-250   [007] .... 19654.923352: block_rq_issue: 8,0 FF 0 () 0 + 0 [kworker/7:1H]
       <idle>-0     [007] ..s. 19654.923562: block_rq_complete: 8,0 FF () 18446744073709551615 + 0 [0]
       <idle>-0     [007] d.s. 19654.923576: block_rq_complete: 8,0 WS () 0 + 0 [-5]
      
      As 8d699663 introduce 'fq->rq_status', this data only update when 'flush_rq'
      reference count isn't zero. If flush request once failed and record error code
      in 'fq->rq_status'. If there is no chance to update 'fq->rq_status',then do fsync
      will always failed.
      To address this issue reset 'fq->rq_status' after return error code to upper layer.
      
      Fixes: 8d699663
      
      ("block: fix null pointer dereference in blk_mq_rq_timed_out()")
      Signed-off-by: default avatarYe Bin <yebin10@huawei.com>
      Reviewed-by: default avatarMing Lei <ming.lei@redhat.com>
      Link: https://lore.kernel.org/r/20211129012659.1553733-1-yebin10@huawei.com
      
      
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      8a751893
    • Christoph Hellwig's avatar
      scsi: remove the gendisk argument to scsi_ioctl · a30e3441
      Christoph Hellwig authored
      
      Now that blk_execute_rq does not take a gendisk argument there is no need
      to pass it through the scsi_ioctl callchain either.
      
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Reviewed-by: default avatarChaitanya Kulkarni <kch@nvidia.com>
      Reviewed-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      Link: https://lore.kernel.org/r/20211126121802.2090656-6-hch@lst.de
      
      
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      a30e3441