__field( unsigned int,  opcode          )
                __field( unsigned int,  data_length     )
                __field( unsigned int,  task_attribute  )
+               __field( unsigned char, control         )
                __array( unsigned char, cdb, TCM_MAX_COMMAND_SIZE       )
                __string( initiator,    cmd->se_sess->se_node_acl->initiatorname        )
        ),
                __entry->opcode         = cmd->t_task_cdb[0];
                __entry->data_length    = cmd->data_length;
                __entry->task_attribute = cmd->sam_task_attr;
+               __entry->control        = scsi_command_control(cmd->t_task_cdb);
                memcpy(__entry->cdb, cmd->t_task_cdb, TCM_MAX_COMMAND_SIZE);
                __assign_str(initiator, cmd->se_sess->se_node_acl->initiatorname);
        ),
                  show_opcode_name(__entry->opcode),
                  __entry->data_length, __print_hex(__entry->cdb, 16),
                  show_task_attribute_name(__entry->task_attribute),
-                 scsi_command_size(__entry->cdb) <= 16 ?
-                       __entry->cdb[scsi_command_size(__entry->cdb) - 1] :
-                       __entry->cdb[1]
+                 __entry->control
        )
 );
 
                __field( unsigned int,  opcode          )
                __field( unsigned int,  data_length     )
                __field( unsigned int,  task_attribute  )
+               __field( unsigned char, control         )
                __field( unsigned char, scsi_status     )
                __field( unsigned char, sense_length    )
                __array( unsigned char, cdb, TCM_MAX_COMMAND_SIZE       )
                __entry->opcode         = cmd->t_task_cdb[0];
                __entry->data_length    = cmd->data_length;
                __entry->task_attribute = cmd->sam_task_attr;
+               __entry->control        = scsi_command_control(cmd->t_task_cdb);
                __entry->scsi_status    = cmd->scsi_status;
                __entry->sense_length   = cmd->scsi_status == SAM_STAT_CHECK_CONDITION ?
                        min(18, ((u8 *) cmd->sense_buffer)[SPC_ADD_SENSE_LEN_OFFSET] + 8) : 0;
                  show_opcode_name(__entry->opcode),
                  __entry->data_length, __print_hex(__entry->cdb, 16),
                  show_task_attribute_name(__entry->task_attribute),
-                 scsi_command_size(__entry->cdb) <= 16 ?
-                       __entry->cdb[scsi_command_size(__entry->cdb) - 1] :
-                       __entry->cdb[1]
+                 __entry->control
        )
 );