mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-24 04:34:08 +08:00
Merge branch 'scsi-target-for-v4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/bvanassche/linux
Pull scsi target cleanups from Bart Van Assche: "The changes here are: - a few small bug fixes for the iSCSI and user space target drivers. - minimize the target build time by about 30% by rearranging #include directives - fix the second argument passed to percpu_ida_alloc() - reduce the number of false positive warnings reported by sparse These patches pass Wu Fengguang's build bot tests and also the linux-next tests" * 'scsi-target-for-v4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/bvanassche/linux: iscsi-target: Return error if unable to add network portal target: Fix spelling mistake and unwrap multi-line text target/iscsi: Fix double free in lio_target_tiqn_addtpg() target/user: Fix use-after-free of tcmu_cmds if they are expired target: Minimize #include directives target/user: Add an #include directive cxgbit: Add an #include directive ibmvscsi_tgt: Add two #include directives sbp-target: Add an #include directive qla2xxx: Add an #include directive configfs: Minimize #include directives usb: gadget: Fix second argument of percpu_ida_alloc() sbp-target: Fix second argument of percpu_ida_alloc() target/user: Fix a data type in tcmu_queue_cmd() target: Use NULL instead of 0 to represent a pointer
This commit is contained in:
commit
d5db84a871
@ -30,6 +30,7 @@
|
||||
#include <linux/types.h>
|
||||
#include <linux/list.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/delay.h>
|
||||
|
||||
#include <target/target_core_base.h>
|
||||
#include <target/target_core_fabric.h>
|
||||
|
@ -26,6 +26,7 @@
|
||||
#ifndef __H_IBMVSCSI_TGT
|
||||
#define __H_IBMVSCSI_TGT
|
||||
|
||||
#include <linux/interrupt.h>
|
||||
#include "libsrp.h"
|
||||
|
||||
#define SYS_ID_NAME_LEN 64
|
||||
|
@ -9,6 +9,7 @@
|
||||
|
||||
#include <linux/delay.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/t10-pi.h>
|
||||
#include <scsi/scsi_tcq.h>
|
||||
#include <scsi/scsi_bsg_fc.h>
|
||||
#include <scsi/scsi_eh.h>
|
||||
|
@ -9,6 +9,7 @@
|
||||
#include <linux/workqueue.h>
|
||||
#include <linux/kthread.h>
|
||||
#include <asm/unaligned.h>
|
||||
#include <net/tcp.h>
|
||||
#include <target/target_core_base.h>
|
||||
#include <target/target_core_fabric.h>
|
||||
#include "cxgbit.h"
|
||||
|
@ -23,7 +23,9 @@
|
||||
#include <linux/module.h>
|
||||
#include <linux/vmalloc.h>
|
||||
#include <linux/idr.h>
|
||||
#include <linux/delay.h>
|
||||
#include <asm/unaligned.h>
|
||||
#include <net/ipv6.h>
|
||||
#include <scsi/scsi_proto.h>
|
||||
#include <scsi/iscsi_proto.h>
|
||||
#include <scsi/scsi_tcq.h>
|
||||
|
@ -1,6 +1,18 @@
|
||||
#ifndef ISCSI_TARGET_H
|
||||
#define ISCSI_TARGET_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/spinlock.h>
|
||||
|
||||
struct iscsi_cmd;
|
||||
struct iscsi_conn;
|
||||
struct iscsi_np;
|
||||
struct iscsi_portal_group;
|
||||
struct iscsi_session;
|
||||
struct iscsi_tpg_np;
|
||||
struct kref;
|
||||
struct sockaddr_storage;
|
||||
|
||||
extern struct iscsi_tiqn *iscsit_get_tiqn_for_login(unsigned char *);
|
||||
extern struct iscsi_tiqn *iscsit_get_tiqn(unsigned char *, int);
|
||||
extern void iscsit_put_tiqn_for_login(struct iscsi_tiqn *);
|
||||
|
@ -20,8 +20,8 @@
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/random.h>
|
||||
#include <linux/scatterlist.h>
|
||||
|
||||
#include <target/iscsi/iscsi_target_core.h>
|
||||
#include "iscsi_target_nego.h"
|
||||
#include "iscsi_target_auth.h"
|
||||
|
@ -1,6 +1,8 @@
|
||||
#ifndef _ISCSI_CHAP_H_
|
||||
#define _ISCSI_CHAP_H_
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
#define CHAP_DIGEST_UNKNOWN 0
|
||||
#define CHAP_DIGEST_MD5 5
|
||||
#define CHAP_DIGEST_SHA 6
|
||||
@ -18,6 +20,9 @@
|
||||
#define CHAP_STAGE_CLIENT_NRIC 4
|
||||
#define CHAP_STAGE_SERVER_NR 5
|
||||
|
||||
struct iscsi_node_auth;
|
||||
struct iscsi_conn;
|
||||
|
||||
extern u32 chap_main_loop(struct iscsi_conn *, struct iscsi_node_auth *, char *, char *,
|
||||
int *, int *);
|
||||
|
||||
|
@ -21,10 +21,11 @@
|
||||
#include <linux/ctype.h>
|
||||
#include <linux/export.h>
|
||||
#include <linux/inet.h>
|
||||
#include <linux/module.h>
|
||||
#include <net/ipv6.h>
|
||||
#include <target/target_core_base.h>
|
||||
#include <target/target_core_fabric.h>
|
||||
#include <target/iscsi/iscsi_transport.h>
|
||||
|
||||
#include <target/iscsi/iscsi_target_core.h>
|
||||
#include "iscsi_target_parameters.h"
|
||||
#include "iscsi_target_device.h"
|
||||
@ -100,8 +101,10 @@ static ssize_t lio_target_np_driver_store(struct config_item *item,
|
||||
|
||||
tpg_np_new = iscsit_tpg_add_network_portal(tpg,
|
||||
&np->np_sockaddr, tpg_np, type);
|
||||
if (IS_ERR(tpg_np_new))
|
||||
if (IS_ERR(tpg_np_new)) {
|
||||
rc = PTR_ERR(tpg_np_new);
|
||||
goto out;
|
||||
}
|
||||
} else {
|
||||
tpg_np_new = iscsit_tpg_locate_child_np(tpg_np, type);
|
||||
if (tpg_np_new) {
|
||||
|
@ -16,8 +16,8 @@
|
||||
* GNU General Public License for more details.
|
||||
******************************************************************************/
|
||||
|
||||
#include <linux/slab.h>
|
||||
#include <scsi/iscsi_proto.h>
|
||||
|
||||
#include <target/iscsi/iscsi_target_core.h>
|
||||
#include "iscsi_target_seq_pdu_list.h"
|
||||
#include "iscsi_target_erl1.h"
|
||||
|
@ -1,6 +1,9 @@
|
||||
#ifndef ISCSI_TARGET_DATAIN_VALUES_H
|
||||
#define ISCSI_TARGET_DATAIN_VALUES_H
|
||||
|
||||
struct iscsi_cmd;
|
||||
struct iscsi_datain;
|
||||
|
||||
extern struct iscsi_datain_req *iscsit_allocate_datain_req(void);
|
||||
extern void iscsit_attach_datain_req(struct iscsi_cmd *, struct iscsi_datain_req *);
|
||||
extern void iscsit_free_datain_req(struct iscsi_cmd *, struct iscsi_datain_req *);
|
||||
|
@ -1,6 +1,9 @@
|
||||
#ifndef ISCSI_TARGET_DEVICE_H
|
||||
#define ISCSI_TARGET_DEVICE_H
|
||||
|
||||
struct iscsi_cmd;
|
||||
struct iscsi_session;
|
||||
|
||||
extern void iscsit_determine_maxcmdsn(struct iscsi_session *);
|
||||
extern void iscsit_increment_maxcmdsn(struct iscsi_cmd *, struct iscsi_session *);
|
||||
|
||||
|
@ -1,6 +1,12 @@
|
||||
#ifndef ISCSI_TARGET_ERL0_H
|
||||
#define ISCSI_TARGET_ERL0_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
struct iscsi_cmd;
|
||||
struct iscsi_conn;
|
||||
struct iscsi_session;
|
||||
|
||||
extern void iscsit_set_dataout_sequence_values(struct iscsi_cmd *);
|
||||
extern int iscsit_check_pre_dataout(struct iscsi_cmd *, unsigned char *);
|
||||
extern int iscsit_check_post_dataout(struct iscsi_cmd *, unsigned char *, u8);
|
||||
|
@ -17,6 +17,7 @@
|
||||
******************************************************************************/
|
||||
|
||||
#include <linux/list.h>
|
||||
#include <linux/slab.h>
|
||||
#include <scsi/iscsi_proto.h>
|
||||
#include <target/target_core_base.h>
|
||||
#include <target/target_core_fabric.h>
|
||||
|
@ -1,6 +1,16 @@
|
||||
#ifndef ISCSI_TARGET_ERL1_H
|
||||
#define ISCSI_TARGET_ERL1_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <scsi/iscsi_proto.h> /* itt_t */
|
||||
|
||||
struct iscsi_cmd;
|
||||
struct iscsi_conn;
|
||||
struct iscsi_datain_req;
|
||||
struct iscsi_ooo_cmdsn;
|
||||
struct iscsi_pdu;
|
||||
struct iscsi_session;
|
||||
|
||||
extern int iscsit_dump_data_payload(struct iscsi_conn *, u32, int);
|
||||
extern int iscsit_create_recovery_datain_values_datasequenceinorder_yes(
|
||||
struct iscsi_cmd *, struct iscsi_datain_req *);
|
||||
|
@ -17,6 +17,7 @@
|
||||
* GNU General Public License for more details.
|
||||
******************************************************************************/
|
||||
|
||||
#include <linux/slab.h>
|
||||
#include <scsi/iscsi_proto.h>
|
||||
#include <target/target_core_base.h>
|
||||
#include <target/target_core_fabric.h>
|
||||
|
@ -1,6 +1,13 @@
|
||||
#ifndef ISCSI_TARGET_ERL2_H
|
||||
#define ISCSI_TARGET_ERL2_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
struct iscsi_cmd;
|
||||
struct iscsi_conn;
|
||||
struct iscsi_conn_recovery;
|
||||
struct iscsi_session;
|
||||
|
||||
extern void iscsit_create_conn_recovery_datain_values(struct iscsi_cmd *, __be32);
|
||||
extern void iscsit_create_conn_recovery_dataout_values(struct iscsi_cmd *);
|
||||
extern struct iscsi_conn_recovery *iscsit_get_inactive_connection_recovery_entry(
|
||||
|
@ -20,6 +20,8 @@
|
||||
#include <linux/string.h>
|
||||
#include <linux/kthread.h>
|
||||
#include <linux/idr.h>
|
||||
#include <linux/tcp.h> /* TCP_NODELAY */
|
||||
#include <net/ipv6.h> /* ipv6_addr_v4mapped() */
|
||||
#include <scsi/iscsi_proto.h>
|
||||
#include <target/target_core_base.h>
|
||||
#include <target/target_core_fabric.h>
|
||||
|
@ -1,6 +1,13 @@
|
||||
#ifndef ISCSI_TARGET_LOGIN_H
|
||||
#define ISCSI_TARGET_LOGIN_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
struct iscsi_conn;
|
||||
struct iscsi_login;
|
||||
struct iscsi_np;
|
||||
struct sockaddr_storage;
|
||||
|
||||
extern int iscsi_login_setup_crypto(struct iscsi_conn *);
|
||||
extern int iscsi_check_for_session_reinstatement(struct iscsi_conn *);
|
||||
extern int iscsi_login_post_auth_non_zero_tsih(struct iscsi_conn *, u16, u32);
|
||||
|
@ -18,6 +18,8 @@
|
||||
|
||||
#include <linux/ctype.h>
|
||||
#include <linux/kthread.h>
|
||||
#include <linux/slab.h>
|
||||
#include <net/sock.h>
|
||||
#include <scsi/iscsi_proto.h>
|
||||
#include <target/target_core_base.h>
|
||||
#include <target/target_core_fabric.h>
|
||||
|
@ -4,6 +4,10 @@
|
||||
#define DECIMAL 0
|
||||
#define HEX 1
|
||||
|
||||
struct iscsi_conn;
|
||||
struct iscsi_login;
|
||||
struct iscsi_np;
|
||||
|
||||
extern void convert_null_to_semi(char *, int);
|
||||
extern int extract_param(const char *, const char *, unsigned int, char *,
|
||||
unsigned char *);
|
||||
|
@ -1,6 +1,11 @@
|
||||
#ifndef ISCSI_TARGET_NODEATTRIB_H
|
||||
#define ISCSI_TARGET_NODEATTRIB_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
struct iscsi_node_acl;
|
||||
struct iscsi_portal_group;
|
||||
|
||||
extern void iscsit_set_default_node_attribues(struct iscsi_node_acl *,
|
||||
struct iscsi_portal_group *);
|
||||
extern int iscsit_na_dataout_timeout(struct iscsi_node_acl *, u32);
|
||||
|
@ -17,7 +17,7 @@
|
||||
******************************************************************************/
|
||||
|
||||
#include <linux/slab.h>
|
||||
|
||||
#include <linux/uio.h> /* struct kvec */
|
||||
#include <target/iscsi/iscsi_target_core.h>
|
||||
#include "iscsi_target_util.h"
|
||||
#include "iscsi_target_parameters.h"
|
||||
|
@ -1,6 +1,7 @@
|
||||
#ifndef ISCSI_PARAMETERS_H
|
||||
#define ISCSI_PARAMETERS_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <scsi/iscsi_proto.h>
|
||||
|
||||
struct iscsi_extra_response {
|
||||
@ -23,6 +24,11 @@ struct iscsi_param {
|
||||
struct list_head p_list;
|
||||
} ____cacheline_aligned;
|
||||
|
||||
struct iscsi_conn;
|
||||
struct iscsi_conn_ops;
|
||||
struct iscsi_param_list;
|
||||
struct iscsi_sess_ops;
|
||||
|
||||
extern int iscsi_login_rx_data(struct iscsi_conn *, char *, int);
|
||||
extern int iscsi_login_tx_data(struct iscsi_conn *, char *, char *, int);
|
||||
extern void iscsi_dump_conn_ops(struct iscsi_conn_ops *);
|
||||
|
@ -1,6 +1,9 @@
|
||||
#ifndef ISCSI_SEQ_AND_PDU_LIST_H
|
||||
#define ISCSI_SEQ_AND_PDU_LIST_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/cache.h>
|
||||
|
||||
/* struct iscsi_pdu->status */
|
||||
#define DATAOUT_PDU_SENT 1
|
||||
|
||||
@ -78,6 +81,8 @@ struct iscsi_seq {
|
||||
u32 xfer_len;
|
||||
} ____cacheline_aligned;
|
||||
|
||||
struct iscsi_cmd;
|
||||
|
||||
extern int iscsit_build_pdu_and_seq_lists(struct iscsi_cmd *, u32);
|
||||
extern struct iscsi_pdu *iscsit_get_pdu_holder(struct iscsi_cmd *, u32, u32);
|
||||
extern struct iscsi_pdu *iscsit_get_pdu_holder_for_seq(struct iscsi_cmd *, struct iscsi_seq *);
|
||||
|
@ -1,6 +1,12 @@
|
||||
#ifndef ISCSI_TARGET_TMR_H
|
||||
#define ISCSI_TARGET_TMR_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
struct iscsi_cmd;
|
||||
struct iscsi_conn;
|
||||
struct iscsi_tmr_req;
|
||||
|
||||
extern u8 iscsit_tmr_abort_task(struct iscsi_cmd *, unsigned char *);
|
||||
extern int iscsit_tmr_task_warm_reset(struct iscsi_conn *, struct iscsi_tmr_req *,
|
||||
unsigned char *);
|
||||
|
@ -16,9 +16,9 @@
|
||||
* GNU General Public License for more details.
|
||||
******************************************************************************/
|
||||
|
||||
#include <linux/slab.h>
|
||||
#include <target/target_core_base.h>
|
||||
#include <target/target_core_fabric.h>
|
||||
|
||||
#include <target/iscsi/iscsi_target_core.h>
|
||||
#include "iscsi_target_erl0.h"
|
||||
#include "iscsi_target_login.h"
|
||||
@ -260,7 +260,6 @@ err_out:
|
||||
iscsi_release_param_list(tpg->param_list);
|
||||
tpg->param_list = NULL;
|
||||
}
|
||||
kfree(tpg);
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,15 @@
|
||||
#ifndef ISCSI_TARGET_TPG_H
|
||||
#define ISCSI_TARGET_TPG_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
struct iscsi_np;
|
||||
struct iscsi_session;
|
||||
struct iscsi_tiqn;
|
||||
struct iscsi_tpg_np;
|
||||
struct se_node_acl;
|
||||
struct sockaddr_storage;
|
||||
|
||||
extern struct iscsi_portal_group *iscsit_alloc_portal_group(struct iscsi_tiqn *, u16);
|
||||
extern int iscsit_load_discovery_tpg(void);
|
||||
extern void iscsit_release_discovery_tpg(void);
|
||||
|
@ -1,5 +1,6 @@
|
||||
#include <linux/spinlock.h>
|
||||
#include <linux/list.h>
|
||||
#include <linux/module.h>
|
||||
#include <target/iscsi/iscsi_transport.h>
|
||||
|
||||
static LIST_HEAD(g_transport_list);
|
||||
|
@ -18,6 +18,7 @@
|
||||
|
||||
#include <linux/list.h>
|
||||
#include <linux/percpu_ida.h>
|
||||
#include <net/ipv6.h> /* ipv6_addr_equal() */
|
||||
#include <scsi/scsi_tcq.h>
|
||||
#include <scsi/iscsi_proto.h>
|
||||
#include <target/target_core_base.h>
|
||||
|
@ -1,8 +1,16 @@
|
||||
#ifndef ISCSI_TARGET_UTIL_H
|
||||
#define ISCSI_TARGET_UTIL_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <scsi/iscsi_proto.h> /* itt_t */
|
||||
|
||||
#define MARKER_SIZE 8
|
||||
|
||||
struct iscsi_cmd;
|
||||
struct iscsi_conn;
|
||||
struct iscsi_conn_recovery;
|
||||
struct iscsi_session;
|
||||
|
||||
extern int iscsit_add_r2t_to_list(struct iscsi_cmd *, u32, u32, int, u32);
|
||||
extern struct iscsi_r2t *iscsit_get_r2t_for_eos(struct iscsi_cmd *, u32, u32);
|
||||
extern struct iscsi_r2t *iscsit_get_r2t_from_list(struct iscsi_cmd *);
|
||||
|
@ -1,3 +1,7 @@
|
||||
#include <linux/types.h>
|
||||
#include <linux/device.h>
|
||||
#include <target/target_core_base.h> /* struct se_cmd */
|
||||
|
||||
#define TCM_LOOP_VERSION "v2.1-rc2"
|
||||
#define TL_WWN_ADDR_LEN 256
|
||||
#define TL_TPGS_PER_HBA 32
|
||||
|
@ -28,6 +28,7 @@
|
||||
#include <linux/string.h>
|
||||
#include <linux/configfs.h>
|
||||
#include <linux/ctype.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/firewire.h>
|
||||
#include <linux/firewire-constants.h>
|
||||
#include <scsi/scsi_proto.h>
|
||||
@ -928,7 +929,7 @@ static struct sbp_target_request *sbp_mgt_get_req(struct sbp_session *sess,
|
||||
struct sbp_target_request *req;
|
||||
int tag;
|
||||
|
||||
tag = percpu_ida_alloc(&se_sess->sess_tag_pool, GFP_ATOMIC);
|
||||
tag = percpu_ida_alloc(&se_sess->sess_tag_pool, TASK_RUNNING);
|
||||
if (tag < 0)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
|
@ -26,8 +26,11 @@
|
||||
#include <linux/slab.h>
|
||||
#include <linux/spinlock.h>
|
||||
#include <linux/configfs.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/export.h>
|
||||
#include <linux/fcntl.h>
|
||||
#include <linux/file.h>
|
||||
#include <linux/fs.h>
|
||||
#include <scsi/scsi_proto.h>
|
||||
#include <asm/unaligned.h>
|
||||
|
||||
|
@ -1,6 +1,8 @@
|
||||
#ifndef TARGET_CORE_ALUA_H
|
||||
#define TARGET_CORE_ALUA_H
|
||||
|
||||
#include <target/target_core_base.h>
|
||||
|
||||
/*
|
||||
* INQUIRY response data, TPGS Field
|
||||
*
|
||||
|
@ -144,12 +144,12 @@ static ssize_t target_core_item_dbroot_store(struct config_item *item,
|
||||
return -EINVAL;
|
||||
}
|
||||
if (!S_ISDIR(file_inode(fp)->i_mode)) {
|
||||
filp_close(fp, 0);
|
||||
filp_close(fp, NULL);
|
||||
mutex_unlock(&g_tf_lock);
|
||||
pr_err("db_root: not a directory: %s\n", db_root_stage);
|
||||
return -EINVAL;
|
||||
}
|
||||
filp_close(fp, 0);
|
||||
filp_close(fp, NULL);
|
||||
|
||||
strncpy(db_root, db_root_stage, read_bytes);
|
||||
|
||||
|
@ -33,6 +33,7 @@
|
||||
#include <linux/kthread.h>
|
||||
#include <linux/in.h>
|
||||
#include <linux/export.h>
|
||||
#include <linux/t10-pi.h>
|
||||
#include <asm/unaligned.h>
|
||||
#include <net/sock.h>
|
||||
#include <net/tcp.h>
|
||||
|
@ -32,6 +32,7 @@
|
||||
#include <linux/module.h>
|
||||
#include <linux/vmalloc.h>
|
||||
#include <linux/falloc.h>
|
||||
#include <linux/uio.h>
|
||||
#include <scsi/scsi_proto.h>
|
||||
#include <asm/unaligned.h>
|
||||
|
||||
|
@ -1,6 +1,8 @@
|
||||
#ifndef TARGET_CORE_FILE_H
|
||||
#define TARGET_CORE_FILE_H
|
||||
|
||||
#include <target/target_core_base.h>
|
||||
|
||||
#define FD_VERSION "4.0"
|
||||
|
||||
#define FD_MAX_DEV_NAME 256
|
||||
|
@ -1,6 +1,9 @@
|
||||
#ifndef TARGET_CORE_IBLOCK_H
|
||||
#define TARGET_CORE_IBLOCK_H
|
||||
|
||||
#include <linux/atomic.h>
|
||||
#include <target/target_core_base.h>
|
||||
|
||||
#define IBLOCK_VERSION "4.0"
|
||||
|
||||
#define IBLOCK_MAX_CDBS 16
|
||||
|
@ -1,6 +1,11 @@
|
||||
#ifndef TARGET_CORE_INTERNAL_H
|
||||
#define TARGET_CORE_INTERNAL_H
|
||||
|
||||
#include <linux/configfs.h>
|
||||
#include <linux/list.h>
|
||||
#include <linux/types.h>
|
||||
#include <target/target_core_base.h>
|
||||
|
||||
#define TARGET_CORE_NAME_MAX_LEN 64
|
||||
#define TARGET_FABRIC_NAME_SIZE 32
|
||||
|
||||
|
@ -29,6 +29,8 @@
|
||||
#include <linux/list.h>
|
||||
#include <linux/vmalloc.h>
|
||||
#include <linux/file.h>
|
||||
#include <linux/fcntl.h>
|
||||
#include <linux/fs.h>
|
||||
#include <scsi/scsi_proto.h>
|
||||
#include <asm/unaligned.h>
|
||||
|
||||
@ -253,8 +255,7 @@ target_scsi2_reservation_reserve(struct se_cmd *cmd)
|
||||
|
||||
if ((cmd->t_task_cdb[1] & 0x01) &&
|
||||
(cmd->t_task_cdb[1] & 0x02)) {
|
||||
pr_err("LongIO and Obselete Bits set, returning"
|
||||
" ILLEGAL_REQUEST\n");
|
||||
pr_err("LongIO and Obsolete Bits set, returning ILLEGAL_REQUEST\n");
|
||||
return TCM_UNSUPPORTED_SCSI_OPCODE;
|
||||
}
|
||||
/*
|
||||
|
@ -1,5 +1,9 @@
|
||||
#ifndef TARGET_CORE_PR_H
|
||||
#define TARGET_CORE_PR_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <target/target_core_base.h>
|
||||
|
||||
/*
|
||||
* PERSISTENT_RESERVE_OUT service action codes
|
||||
*
|
||||
|
@ -15,11 +15,12 @@
|
||||
#define PS_TIMEOUT_DISK (15*HZ)
|
||||
#define PS_TIMEOUT_OTHER (500*HZ)
|
||||
|
||||
#include <linux/device.h>
|
||||
#include <linux/kref.h>
|
||||
#include <linux/kobject.h>
|
||||
#include <linux/cache.h> /* ___cacheline_aligned */
|
||||
#include <target/target_core_base.h> /* struct se_device */
|
||||
|
||||
struct block_device;
|
||||
struct scsi_device;
|
||||
struct Scsi_Host;
|
||||
|
||||
struct pscsi_plugin_task {
|
||||
unsigned char pscsi_sense[TRANSPORT_SENSE_BUFFER];
|
||||
|
@ -26,7 +26,9 @@
|
||||
|
||||
#include <linux/string.h>
|
||||
#include <linux/parser.h>
|
||||
#include <linux/highmem.h>
|
||||
#include <linux/timer.h>
|
||||
#include <linux/scatterlist.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/spinlock.h>
|
||||
#include <scsi/scsi_proto.h>
|
||||
|
@ -1,6 +1,10 @@
|
||||
#ifndef TARGET_CORE_RD_H
|
||||
#define TARGET_CORE_RD_H
|
||||
|
||||
#include <linux/module.h>
|
||||
#include <linux/types.h>
|
||||
#include <target/target_core_base.h>
|
||||
|
||||
#define RD_HBA_VERSION "v4.0"
|
||||
#define RD_MCP_VERSION "4.0"
|
||||
|
||||
|
@ -24,6 +24,7 @@
|
||||
#include <linux/module.h>
|
||||
#include <linux/ratelimit.h>
|
||||
#include <linux/crc-t10dif.h>
|
||||
#include <linux/t10-pi.h>
|
||||
#include <asm/unaligned.h>
|
||||
#include <scsi/scsi_proto.h>
|
||||
#include <scsi/scsi_tcq.h>
|
||||
|
@ -1,6 +1,8 @@
|
||||
#ifndef TARGET_CORE_UA_H
|
||||
#define TARGET_CORE_UA_H
|
||||
|
||||
#include <target/target_core_base.h>
|
||||
|
||||
/*
|
||||
* From spc4r17, Table D.1: ASC and ASCQ Assignement
|
||||
*/
|
||||
|
@ -27,6 +27,7 @@
|
||||
#include <linux/uio_driver.h>
|
||||
#include <linux/stringify.h>
|
||||
#include <linux/bitops.h>
|
||||
#include <linux/highmem.h>
|
||||
#include <net/genetlink.h>
|
||||
#include <scsi/scsi_common.h>
|
||||
#include <scsi/scsi_proto.h>
|
||||
@ -537,7 +538,7 @@ tcmu_queue_cmd(struct se_cmd *se_cmd)
|
||||
struct se_device *se_dev = se_cmd->se_dev;
|
||||
struct tcmu_dev *udev = TCMU_DEV(se_dev);
|
||||
struct tcmu_cmd *tcmu_cmd;
|
||||
int ret;
|
||||
sense_reason_t ret;
|
||||
|
||||
tcmu_cmd = tcmu_alloc_cmd(se_cmd);
|
||||
if (!tcmu_cmd)
|
||||
@ -685,8 +686,6 @@ static int tcmu_check_expired_cmd(int id, void *p, void *data)
|
||||
target_complete_cmd(cmd->se_cmd, SAM_STAT_CHECK_CONDITION);
|
||||
cmd->se_cmd = NULL;
|
||||
|
||||
kmem_cache_free(tcmu_cmd_cache, cmd);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -25,6 +25,7 @@
|
||||
#include <linux/spinlock.h>
|
||||
#include <linux/list.h>
|
||||
#include <linux/configfs.h>
|
||||
#include <linux/ratelimit.h>
|
||||
#include <scsi/scsi_proto.h>
|
||||
#include <asm/unaligned.h>
|
||||
|
||||
|
@ -1,3 +1,5 @@
|
||||
#include <target/target_core_base.h>
|
||||
|
||||
#define XCOPY_TARGET_DESC_LEN 32
|
||||
#define XCOPY_SEGMENT_DESC_LEN 28
|
||||
#define XCOPY_NAA_IEEE_REGEX_LEN 16
|
||||
|
@ -17,6 +17,9 @@
|
||||
#ifndef __TCM_FC_H__
|
||||
#define __TCM_FC_H__
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <target/target_core_base.h>
|
||||
|
||||
#define FT_VERSION "0.4"
|
||||
|
||||
#define FT_NAMELEN 32 /* length of ASCII WWPNs including pad */
|
||||
|
@ -1073,7 +1073,7 @@ static struct usbg_cmd *usbg_get_cmd(struct f_uas *fu,
|
||||
struct usbg_cmd *cmd;
|
||||
int tag;
|
||||
|
||||
tag = percpu_ida_alloc(&se_sess->sess_tag_pool, GFP_ATOMIC);
|
||||
tag = percpu_ida_alloc(&se_sess->sess_tag_pool, TASK_RUNNING);
|
||||
if (tag < 0)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
|
@ -35,14 +35,11 @@
|
||||
#ifndef _CONFIGFS_H_
|
||||
#define _CONFIGFS_H_
|
||||
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/list.h>
|
||||
#include <linux/kref.h>
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/err.h>
|
||||
|
||||
#include <linux/atomic.h>
|
||||
#include <linux/stat.h> /* S_IRUGO */
|
||||
#include <linux/types.h> /* ssize_t */
|
||||
#include <linux/list.h> /* struct list_head */
|
||||
#include <linux/kref.h> /* struct kref */
|
||||
#include <linux/mutex.h> /* struct mutex */
|
||||
|
||||
#define CONFIGFS_ITEM_NAME_LEN 20
|
||||
|
||||
|
@ -1,12 +1,14 @@
|
||||
#ifndef ISCSI_TARGET_CORE_H
|
||||
#define ISCSI_TARGET_CORE_H
|
||||
|
||||
#include <linux/in.h>
|
||||
#include <linux/configfs.h>
|
||||
#include <net/sock.h>
|
||||
#include <net/tcp.h>
|
||||
#include <scsi/iscsi_proto.h>
|
||||
#include <target/target_core_base.h>
|
||||
#include <linux/dma-direction.h> /* enum dma_data_direction */
|
||||
#include <linux/list.h> /* struct list_head */
|
||||
#include <linux/socket.h> /* struct sockaddr_storage */
|
||||
#include <linux/types.h> /* u8 */
|
||||
#include <scsi/iscsi_proto.h> /* itt_t */
|
||||
#include <target/target_core_base.h> /* struct se_cmd */
|
||||
|
||||
struct sock;
|
||||
|
||||
#define ISCSIT_VERSION "v4.1.0"
|
||||
#define ISCSI_MAX_DATASN_MISSING_COUNT 16
|
||||
|
@ -1,6 +1,10 @@
|
||||
#ifndef ISCSI_TARGET_STAT_H
|
||||
#define ISCSI_TARGET_STAT_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/spinlock.h>
|
||||
#include <linux/socket.h>
|
||||
|
||||
/*
|
||||
* For struct iscsi_tiqn->tiqn_wwn default groups
|
||||
*/
|
||||
|
@ -1,6 +1,6 @@
|
||||
#include <linux/module.h>
|
||||
#include <linux/list.h>
|
||||
#include "iscsi_target_core.h"
|
||||
#include "iscsi_target_core.h" /* struct iscsi_cmd */
|
||||
|
||||
struct sockaddr_storage;
|
||||
|
||||
struct iscsit_transport {
|
||||
#define ISCSIT_TRANSPORT_NAME 16
|
||||
|
@ -1,8 +1,14 @@
|
||||
#ifndef TARGET_CORE_BACKEND_H
|
||||
#define TARGET_CORE_BACKEND_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <target/target_core_base.h>
|
||||
|
||||
#define TRANSPORT_FLAG_PASSTHROUGH 1
|
||||
|
||||
struct request_queue;
|
||||
struct scatterlist;
|
||||
|
||||
struct target_backend_ops {
|
||||
char name[16];
|
||||
char inquiry_prod[16];
|
||||
|
@ -1,14 +1,10 @@
|
||||
#ifndef TARGET_CORE_BASE_H
|
||||
#define TARGET_CORE_BASE_H
|
||||
|
||||
#include <linux/in.h>
|
||||
#include <linux/configfs.h>
|
||||
#include <linux/dma-mapping.h>
|
||||
#include <linux/blkdev.h>
|
||||
#include <linux/percpu_ida.h>
|
||||
#include <linux/t10-pi.h>
|
||||
#include <net/sock.h>
|
||||
#include <net/tcp.h>
|
||||
#include <linux/configfs.h> /* struct config_group */
|
||||
#include <linux/dma-direction.h> /* enum dma_data_direction */
|
||||
#include <linux/percpu_ida.h> /* struct percpu_ida */
|
||||
#include <linux/semaphore.h> /* struct semaphore */
|
||||
|
||||
#define TARGET_CORE_VERSION "v5.0"
|
||||
|
||||
|
@ -1,6 +1,10 @@
|
||||
#ifndef TARGET_CORE_FABRIC_H
|
||||
#define TARGET_CORE_FABRIC_H
|
||||
|
||||
#include <linux/configfs.h>
|
||||
#include <linux/types.h>
|
||||
#include <target/target_core_base.h>
|
||||
|
||||
struct target_core_fabric_ops {
|
||||
struct module *module;
|
||||
const char *name;
|
||||
|
Loading…
Reference in New Issue
Block a user