target: Avoid compiler warnings about signed one-bit bitfields
[platform/adaptation/renesas_rcar/renesas_kernel.git] / include / target / target_core_base.h
index 35aa786..36a06f7 100644 (file)
@@ -89,7 +89,6 @@ enum transport_state_table {
        TRANSPORT_PROCESS_TMR   = 9,
        TRANSPORT_ISTATE_PROCESSING = 11,
        TRANSPORT_NEW_CMD_MAP   = 16,
-       TRANSPORT_FREE_CMD_INTR = 17,
        TRANSPORT_COMPLETE_QF_WP = 18,
        TRANSPORT_COMPLETE_QF_OK = 19,
 };
@@ -104,7 +103,6 @@ enum se_cmd_flags_table {
        SCF_SCSI_NON_DATA_CDB           = 0x00000040,
        SCF_SCSI_CDB_EXCEPTION          = 0x00000080,
        SCF_SCSI_RESERVATION_CONFLICT   = 0x00000100,
-       SCF_SE_CMD_FAILED               = 0x00000400,
        SCF_SE_LUN_CMD                  = 0x00000800,
        SCF_SE_ALLOW_EOO                = 0x00001000,
        SCF_SENT_CHECK_CONDITION        = 0x00004000,
@@ -115,7 +113,6 @@ enum se_cmd_flags_table {
        SCF_DELAYED_CMD_FROM_SAM_ATTR   = 0x00080000,
        SCF_UNUSED                      = 0x00100000,
        SCF_PASSTHROUGH_SG_TO_MEM_NOALLOC = 0x00400000,
-       SCF_EMULATE_CDB_ASYNC           = 0x01000000,
 };
 
 /* struct se_dev_entry->lun_flags and struct se_lun->lun_access */
@@ -156,6 +153,7 @@ enum tcm_sense_reason_table {
        TCM_CHECK_CONDITION_ABORT_CMD           = 0x0d,
        TCM_CHECK_CONDITION_UNIT_ATTENTION      = 0x0e,
        TCM_CHECK_CONDITION_NOT_READY           = 0x0f,
+       TCM_RESERVATION_CONFLICT                = 0x10,
 };
 
 struct se_obj {
@@ -424,8 +422,9 @@ struct se_cmd {
        int                     sam_task_attr;
        /* Transport protocol dependent state, see transport_state_table */
        enum transport_state_table t_state;
-       /* Transport specific error status */
-       int                     transport_error_status;
+       /* Used to signal cmd->se_tfo->check_release_cmd() usage per cmd */
+       unsigned                check_release:1;
+       unsigned                cmd_wait_set:1;
        /* See se_cmd_flags_table */
        u32                     se_cmd_flags;
        u32                     se_ordered_id;
@@ -452,8 +451,10 @@ struct se_cmd {
        struct se_session       *se_sess;
        struct se_tmr_req       *se_tmr_req;
        struct list_head        se_queue_node;
+       struct list_head        se_cmd_list;
+       struct completion       cmd_wait_comp;
        struct target_core_fabric_ops *se_tfo;
-       int (*transport_emulate_cdb)(struct se_cmd *);
+       int (*execute_task)(struct se_task *);
        void (*transport_complete_callback)(struct se_cmd *);
 
        unsigned char           *t_task_cdb;
@@ -559,12 +560,16 @@ struct se_node_acl {
 } ____cacheline_aligned;
 
 struct se_session {
+       unsigned                sess_tearing_down:1;
        u64                     sess_bin_isid;
        struct se_node_acl      *se_node_acl;
        struct se_portal_group *se_tpg;
        void                    *fabric_sess_ptr;
        struct list_head        sess_list;
        struct list_head        sess_acl_list;
+       struct list_head        sess_cmd_list;
+       struct list_head        sess_wait_list;
+       spinlock_t              sess_cmd_lock;
 } ____cacheline_aligned;
 
 struct se_device;