Thsee patches have some conflicts with some in_interrupt changes so the following patches were made over Martin's 5.12 branches. The patches handle Christoph's review comment to remove target_submit_cmd_map_sgls in this thread: https://www.spinics.net/lists/linux-scsi/msg154443.html which is for the "target: fix cmd plugging and completion" patchset: https://patchwork.kernel.org/project/linux-scsi/list/?series=431163 The patches actually do a little more than just kill the function and the set was getting longer, so I'm sending it separately now. These patches do: 1. Breaks up target_submit_cmd_map_sgls into 3 helpers: ------------------------------------------------------- - target_init_cmd: Do the basic general setup and get a refcount to the session to make sure the caller can execute the cmd. - target_submit_prep: Do the mapping, cdb processing and get a ref to the lun. - target_submit: Pass the cmd to LIO core for execution. The above functions must be used by drivers that either: - rely on lio for session shutdown synchronization by calling target_stop_session. - need to map sgls 2. Make target_submit_cmd easier to use. ---------------------------------------- It seems a lot of drivers were not handling target_submit_cmd* errors correctly, or were handling it but it would never return a failure for them. The only way target_submit_cmd* would fail is if the driver also used target_stop_session, but a lot of drivers did their own session sync up, so I simplified the API. target_submit_cmd never returns a failure so callers do not have worry about it.