-
- Downloads
block,scsi: fixup blk_get_request dead queue scenarios
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:Joe 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:
Jeff Moyer <jmoyer@redhat.com> Signed-off-by:
Jens Axboe <axboe@fb.com>
Showing
- block/blk-core.c 17 additions, 17 deletionsblock/blk-core.c
- block/blk-mq.c 6 additions, 2 deletionsblock/blk-mq.c
- block/bsg.c 4 additions, 4 deletionsblock/bsg.c
- block/scsi_ioctl.c 6 additions, 6 deletionsblock/scsi_ioctl.c
- drivers/block/paride/pd.c 2 additions, 2 deletionsdrivers/block/paride/pd.c
- drivers/block/pktcdvd.c 2 additions, 2 deletionsdrivers/block/pktcdvd.c
- drivers/block/sx8.c 1 addition, 1 deletiondrivers/block/sx8.c
- drivers/cdrom/cdrom.c 2 additions, 2 deletionsdrivers/cdrom/cdrom.c
- drivers/ide/ide-park.c 1 addition, 1 deletiondrivers/ide/ide-park.c
- drivers/scsi/device_handler/scsi_dh_alua.c 1 addition, 1 deletiondrivers/scsi/device_handler/scsi_dh_alua.c
- drivers/scsi/device_handler/scsi_dh_emc.c 1 addition, 1 deletiondrivers/scsi/device_handler/scsi_dh_emc.c
- drivers/scsi/device_handler/scsi_dh_hp_sw.c 2 additions, 2 deletionsdrivers/scsi/device_handler/scsi_dh_hp_sw.c
- drivers/scsi/device_handler/scsi_dh_rdac.c 1 addition, 1 deletiondrivers/scsi/device_handler/scsi_dh_rdac.c
- drivers/scsi/osd/osd_initiator.c 2 additions, 2 deletionsdrivers/scsi/osd/osd_initiator.c
- drivers/scsi/osst.c 1 addition, 1 deletiondrivers/scsi/osst.c
- drivers/scsi/scsi_error.c 1 addition, 1 deletiondrivers/scsi/scsi_error.c
- drivers/scsi/scsi_lib.c 1 addition, 1 deletiondrivers/scsi/scsi_lib.c
- drivers/scsi/sg.c 2 additions, 2 deletionsdrivers/scsi/sg.c
- drivers/scsi/st.c 1 addition, 1 deletiondrivers/scsi/st.c
- drivers/target/target_core_pscsi.c 1 addition, 1 deletiondrivers/target/target_core_pscsi.c
Loading
Please register or sign in to comment