Hi all, here's a patchset to facilitate full async scsi disk probing. The current approach has the problem of calling async_synchronize_full_domain() during sd_remove(), which is required to wait for _all_ current asynchronous probes to complete. When running under iSER sd_remove() is called from the RX thread directly, ie sd_remove() has to complete before RX processing can continue. But as probing has to issue I/O any response will be stuck in the RX queue, resulting in a deadlock. This patchset breaks up the synchronization point into a per-device cookie, thus removing the global synchronisation and breaking the deadlock. But during testing some more deficiencies up and down the stack had been revealed, so we'll need the entire patchset to make it work. As usual, comments and reviews are welcome. Hannes Reinecke (4): block: check for GENHD_FL_UP in del_gendisk() sd: Check if parent is still present before proceeding with probing scsi: add missing get_device() return value checks sd: use async_probe cookie to avoid deadlocks block/genhd.c | 3 +++ drivers/scsi/scsi_scan.c | 14 ++++++++++++-- drivers/scsi/sd.c | 19 +++++++++++++------ drivers/scsi/sd.h | 3 +++ 4 files changed, 31 insertions(+), 8 deletions(-) -- 1.8.5.6