enum dma_data_direction data_direction,
                struct scatterlist *sgl, unsigned int nents);
 static int transport_generic_get_mem(struct se_cmd *cmd);
-static int transport_generic_remove(struct se_cmd *cmd,
-               int session_reinstatement);
 static bool transport_put_cmd(struct se_cmd *cmd);
 static void transport_remove_cmd_from_queue(struct se_cmd *cmd,
                struct se_queue_obj *qobj);
                return;
        if (remove) {
                transport_remove_cmd_from_queue(cmd, &cmd->se_dev->dev_queue_obj);
-               transport_generic_remove(cmd, 0);
+               transport_put_cmd(cmd);
        }
 }
 
        if (transport_cmd_check_stop_to_fabric(cmd))
                return;
 
-       transport_generic_remove(cmd, 0);
+       transport_put_cmd(cmd);
 }
 
 static void transport_add_cmd_to_queue(
        unsigned long flags;
 
        /*
-        * Reset cmd->t_se_count to allow transport_generic_remove()
+        * Reset cmd->t_se_count to allow transport_put_cmd()
         * to allow last call to free memory resources.
         */
        spin_lock_irqsave(&cmd->t_state_lock, flags);
        }
        spin_unlock_irqrestore(&cmd->t_state_lock, flags);
 
-       transport_generic_remove(cmd, 0);
+       transport_put_cmd(cmd);
 }
 
 static inline u32 transport_lba_21(unsigned char *cdb)
        return false;
 }
 
-static int
-transport_generic_remove(struct se_cmd *cmd, int session_reinstatement)
-{
-       unsigned long flags;
-
-       if (!transport_put_cmd(cmd)) {
-               if (session_reinstatement) {
-                       spin_lock_irqsave(&cmd->t_state_lock, flags);
-                       transport_all_task_dev_remove_state(cmd);
-                       spin_unlock_irqrestore(&cmd->t_state_lock,
-                                       flags);
-               }
-               return 1;
-       }
-
-       return 0;
-}
-
 /*
  * transport_generic_map_mem_to_cmd - Use fabric-alloced pages instead of
  * allocating in the core.
 
                transport_free_dev_tasks(cmd);
 
-               transport_generic_remove(cmd, session_reinstatement);
+               if (!transport_put_cmd(cmd) && session_reinstatement) {
+                       unsigned long flags;
+
+                       spin_lock_irqsave(&cmd->t_state_lock, flags);
+                       transport_all_task_dev_remove_state(cmd);
+                       spin_unlock_irqrestore(&cmd->t_state_lock, flags);
+               }
        }
 }
 EXPORT_SYMBOL(transport_generic_free_cmd);
                                transport_lun_remove_cmd(cmd);
 
                                if (transport_cmd_check_stop(cmd, 1, 0))
-                                       transport_generic_remove(cmd, 0);
+                                       transport_put_cmd(cmd);
                        }
 
                        spin_lock_irqsave(&dev->execute_task_lock, flags);
                        transport_lun_remove_cmd(cmd);
 
                        if (transport_cmd_check_stop(cmd, 1, 0))
-                               transport_generic_remove(cmd, 0);
+                               transport_put_cmd(cmd);
                }
 
                spin_lock_irqsave(&dev->execute_task_lock, flags);
                } else {
                        transport_lun_remove_cmd(cmd);
                        if (transport_cmd_check_stop(cmd, 1, 0))
-                               transport_generic_remove(cmd, 0);
+                               transport_put_cmd(cmd);
                }
        }
 }
                        transport_generic_complete_ok(cmd);
                        break;
                case TRANSPORT_REMOVE:
-                       transport_generic_remove(cmd, 0);
+                       transport_put_cmd(cmd);
                        break;
                case TRANSPORT_FREE_CMD_INTR:
                        transport_generic_free_cmd(cmd, 0, 0);