Ming reported that for SCSI we have a lifetime problem now that the BDI moved from the request_queue to the disk as del_gendisk doesn't finish all outstanding file system I/O. It turns out this actually is an older problem, although the case where it could be hit before was very unusual (unbinding of a SCSI upper driver while the scsi_device stays around). This series fixes this by draining all I/O in del_gendisk. Changes since v1: - fix a commit log typo - keep the existing nowait vs queue dying semantics in bio_queue_enter - actually keep q_usage_counter in atomic mode after del_gendisk