mbox series

[v4,0/3] Avoid that .queuecommand() gets called for a quiesced SCSI device

Message ID 20190617151820.241583-1-bvanassche@acm.org (mailing list archive)
Headers show
Series Avoid that .queuecommand() gets called for a quiesced SCSI device | expand

Message

Bart Van Assche June 17, 2019, 3:18 p.m. UTC
Hi Martin,

As explained in a recent LSF/MM topic proposal, it can happen that the SCSI
error handler calls .queuecommand() for a blocked SCSI device. SCSI LLDs do
not expect this. Hence this patch series. Please consider this series for
kernel v5.3.

Thanks,

Bart.

Changes compared to v3:
- Instead of converting sysfs attempts to change the SCSI device state into
  "blocked" into "quiesced", refuse attempts to change the SCSI device into
  anything else than "offline" or "running".
- In patch 2/2, remove a "to do" comment above scsi_internal_device_block().

Changes compared to v2:
- Added a patch that converts SDEV_BLOCK into SDEV_QUIESCE for requests
  received through sysfs to change the SCSI device state.

Changes compared to v1:
- Wait on SDEV_BLOCK instead of SDEV_QUIESCE in the SCSI error handler.

Bart Van Assche (3):
  scsi: Restrict user space SCSI device state changes to "running" and
    "offfline"
  scsi: Avoid that .queuecommand() gets called for a blocked SCSI device
  RDMA/srp: Fix a sleep-in-invalid-context bug

 drivers/infiniband/ulp/srp/ib_srp.c | 21 ++-------------------
 drivers/scsi/scsi_error.c           | 26 ++++++++++++++++++++++++--
 drivers/scsi/scsi_lib.c             |  4 ----
 drivers/scsi/scsi_sysfs.c           |  7 ++++++-
 4 files changed, 32 insertions(+), 26 deletions(-)

Comments

Martin K. Petersen June 19, 2019, 1:32 a.m. UTC | #1
Bart,

> As explained in a recent LSF/MM topic proposal, it can happen that the
> SCSI error handler calls .queuecommand() for a blocked SCSI
> device. SCSI LLDs do not expect this. Hence this patch series. Please
> consider this series for kernel v5.3.

Applied to 5.3/scsi-queue, thanks!