iscsi-scst: Fix multiple checkpatch warnings

This patch does not change any functionality.
This commit is contained in:
Gleb Chesnokov
2024-11-16 14:33:58 +03:00
parent 3a54209167
commit 60dc638b1b
6 changed files with 169 additions and 223 deletions
+49 -63
View File
@@ -100,7 +100,6 @@ struct iscsi_thread_pool {
struct list_head threads_list; /* protected by tp_mutex */
};
struct iscsi_target;
struct iscsi_cmnd;
@@ -180,7 +179,7 @@ struct iscsi_session {
u64 sid;
};
#define ISCSI_CONN_IOV_MAX (PAGE_SIZE/sizeof(struct kvec))
#define ISCSI_CONN_IOV_MAX (PAGE_SIZE / sizeof(struct kvec))
#define ISCSI_CONN_RD_STATE_IDLE 0
#define ISCSI_CONN_RD_STATE_IN_LIST 1
@@ -250,13 +249,13 @@ struct iscsi_conn {
struct file *file;
struct socket *sock;
void (*old_state_change)(struct sock *);
void (*old_state_change)(struct sock *sk);
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 15, 0))
void (*old_data_ready)(struct sock *);
void (*old_data_ready)(struct sock *sk);
#else
void (*old_data_ready)(struct sock *, int);
void (*old_data_ready)(struct sock *sk, int len);
#endif
void (*old_write_space)(struct sock *);
void (*old_write_space)(struct sock *sk);
/* Both read only. Stay here for better CPU cache locality. */
int hdigest_type;
@@ -545,22 +544,20 @@ extern void conn_abort(struct iscsi_conn *conn);
extern void iscsi_restart_cmnd(struct iscsi_cmnd *cmnd);
extern void iscsi_fail_data_waiting_cmnd(struct iscsi_cmnd *cmnd);
extern void iscsi_send_nop_in(struct iscsi_conn *conn);
extern int iscsi_preliminary_complete(struct iscsi_cmnd *req,
struct iscsi_cmnd *orig_req, bool get_data);
extern int set_scst_preliminary_status_rsp(struct iscsi_cmnd *req,
bool get_data, int key, int asc, int ascq);
extern int iscsi_preliminary_complete(struct iscsi_cmnd *req, struct iscsi_cmnd *orig_req,
bool get_data);
extern int set_scst_preliminary_status_rsp(struct iscsi_cmnd *req, bool get_data, int key, int asc,
int ascq);
extern int iscsi_threads_pool_get(bool dedicated, const cpumask_t *cpu_mask,
struct iscsi_thread_pool **out_pool);
struct iscsi_thread_pool **out_pool);
extern void iscsi_threads_pool_put(struct iscsi_thread_pool *p);
/* conn.c */
extern struct kobj_type iscsi_conn_ktype;
extern struct iscsi_conn *conn_lookup(struct iscsi_session *session, u16 cid);
extern void conn_reinst_finished(struct iscsi_conn *conn);
extern int __add_conn(struct iscsi_session *session,
struct iscsi_kern_conn_info *info);
extern int __del_conn(struct iscsi_session *session,
struct iscsi_kern_conn_info *info);
extern int __add_conn(struct iscsi_session *session, struct iscsi_kern_conn_info *info);
extern int __del_conn(struct iscsi_session *session, struct iscsi_kern_conn_info *info);
extern void conn_free(struct iscsi_conn *conn);
extern void iscsi_make_conn_rd_active(struct iscsi_conn *conn);
#define ISCSI_CONN_ACTIVE_CLOSE 1
@@ -568,8 +565,7 @@ extern void iscsi_make_conn_rd_active(struct iscsi_conn *conn);
extern void __mark_conn_closed(struct iscsi_conn *conn, int flags);
extern void mark_conn_closed(struct iscsi_conn *conn);
extern void iscsi_make_conn_wr_active(struct iscsi_conn *conn);
extern void iscsi_check_tm_data_wait_timeouts(struct iscsi_conn *conn,
bool force);
extern void iscsi_check_tm_data_wait_timeouts(struct iscsi_conn *conn, bool force);
extern void __iscsi_write_space_ready(struct iscsi_conn *conn);
/* nthread.c */
@@ -583,27 +579,24 @@ extern void req_add_to_write_timeout_list(struct iscsi_cmnd *req);
extern const struct attribute *iscsi_tgt_attrs[];
extern int iscsi_enable_target(struct scst_tgt *scst_tgt, bool enable);
extern bool iscsi_is_target_enabled(struct scst_tgt *scst_tgt);
extern ssize_t iscsi_sysfs_send_event(uint32_t tid,
enum iscsi_kern_event_code code,
const char *param1, const char *param2, void **data);
extern ssize_t iscsi_sysfs_send_event(uint32_t tid, enum iscsi_kern_event_code code,
const char *param1, const char *param2, void **data);
extern struct iscsi_target *target_lookup_by_id(u32 id);
extern int __add_target(struct iscsi_kern_target_info *info);
extern int __del_target(u32 id);
extern ssize_t iscsi_sysfs_add_target(const char *target_name, char *params);
extern ssize_t iscsi_sysfs_del_target(const char *target_name);
extern ssize_t iscsi_sysfs_mgmt_cmd(char *cmd);
extern void target_del_session(struct iscsi_target *target,
struct iscsi_session *session, int flags);
extern void target_del_session(struct iscsi_target *target, struct iscsi_session *session,
int flags);
extern void target_del_all_sess(struct iscsi_target *target, int flags);
extern void target_del_all(void);
/* config.c */
extern int conn_sysfs_add(struct iscsi_conn *conn);
extern const struct attribute *iscsi_attrs[];
extern int iscsi_add_attr(struct iscsi_target *target,
const struct iscsi_kern_attr *user_info);
extern void __iscsi_del_attr(struct iscsi_target *target,
struct iscsi_attr *tgt_attr);
extern int iscsi_add_attr(struct iscsi_target *target, const struct iscsi_kern_attr *user_info);
extern void __iscsi_del_attr(struct iscsi_target *target, struct iscsi_attr *tgt_attr);
/* session.c */
extern const struct attribute *iscsi_sess_attrs[];
@@ -612,8 +605,7 @@ extern const struct file_operations session_seq_fops;
extern struct iscsi_session *session_lookup(struct iscsi_target *target,
u64 sid);
extern void sess_reinst_finished(struct iscsi_session *session);
extern int __add_session(struct iscsi_target *target,
struct iscsi_kern_session_info *info);
extern int __add_session(struct iscsi_target *target, struct iscsi_kern_session_info *info);
extern int __del_session(struct iscsi_target *target, u64 sid);
extern int session_free(struct iscsi_session *session, bool del);
extern void iscsi_sess_force_close(struct iscsi_session *sess);
@@ -621,12 +613,11 @@ extern void iscsi_sess_force_close(struct iscsi_session *sess);
/* params.c */
extern const char *iscsi_get_digest_name(int val, char *res);
extern const char *iscsi_get_bool_value(int val);
extern int iscsi_params_set(struct iscsi_target *target,
struct iscsi_kern_params_info *info, int set);
extern int iscsi_params_set(struct iscsi_target *target, struct iscsi_kern_params_info *info,
int set);
/* event.c */
extern int event_send(u32 tid, u64 sid, u32 cid, u32 cookie,
enum iscsi_kern_event_code code,
extern int event_send(u32 tid, u64 sid, u32 cid, u32 cookie, enum iscsi_kern_event_code code,
const char *param1, const char *param2);
extern int event_init(void);
extern void event_exit(void);
@@ -677,8 +668,8 @@ static inline bool cmnd_get_check(struct iscsi_cmnd *cmnd)
res = 1;
/* Necessary code is serialized by locks in cmnd_done() */
} else {
TRACE_DBG("cmnd %p, new ref_cnt %d", cmnd,
atomic_read(&cmnd->ref_cnt));
TRACE_DBG("cmnd %p, new ref_cnt %d",
cmnd, atomic_read(&cmnd->ref_cnt));
res = 0;
}
return res;
@@ -687,8 +678,8 @@ static inline bool cmnd_get_check(struct iscsi_cmnd *cmnd)
static inline void cmnd_get(struct iscsi_cmnd *cmnd)
{
atomic_inc(&cmnd->ref_cnt);
TRACE_DBG("cmnd %p, new cmnd->ref_cnt %d", cmnd,
atomic_read(&cmnd->ref_cnt));
TRACE_DBG("cmnd %p, new cmnd->ref_cnt %d",
cmnd, atomic_read(&cmnd->ref_cnt));
/*
* For the same reason as in kref_get(). Let's be safe and
* always do it.
@@ -698,8 +689,8 @@ static inline void cmnd_get(struct iscsi_cmnd *cmnd)
static inline void cmnd_put(struct iscsi_cmnd *cmnd)
{
TRACE_DBG("cmnd %p, new ref_cnt %d", cmnd,
atomic_read(&cmnd->ref_cnt)-1);
TRACE_DBG("cmnd %p, new ref_cnt %d",
cmnd, atomic_read(&cmnd->ref_cnt) - 1);
EXTRACHECKS_BUG_ON(atomic_read(&cmnd->ref_cnt) == 0);
@@ -708,21 +699,19 @@ static inline void cmnd_put(struct iscsi_cmnd *cmnd)
}
/* conn->write_list_lock supposed to be locked and BHs off */
static inline void cmd_add_on_write_list(struct iscsi_conn *conn,
struct iscsi_cmnd *cmnd)
static inline void cmd_add_on_write_list(struct iscsi_conn *conn, struct iscsi_cmnd *cmnd)
{
struct iscsi_cmnd *parent = cmnd->parent_req;
TRACE_DBG("cmnd %p", cmnd);
/* See comment in iscsi_restart_cmnd() */
EXTRACHECKS_BUG_ON(cmnd->parent_req->hashed &&
(cmnd_opcode(cmnd) != ISCSI_OP_R2T));
EXTRACHECKS_BUG_ON(cmnd->parent_req->hashed && (cmnd_opcode(cmnd) != ISCSI_OP_R2T));
list_add_tail(&cmnd->write_list_entry, &conn->write_list);
cmnd->on_write_list = 1;
parent->not_processed_rsp_cnt++;
TRACE_DBG("not processed rsp cnt %d (parent %p)",
parent->not_processed_rsp_cnt, parent);
parent->not_processed_rsp_cnt, parent);
}
/* conn->write_list_lock supposed to be locked and BHs off */
@@ -736,17 +725,15 @@ static inline void cmd_del_from_write_list(struct iscsi_cmnd *cmnd)
parent->not_processed_rsp_cnt--;
TRACE_DBG("not processed rsp cnt %d (parent %p)",
parent->not_processed_rsp_cnt, parent);
parent->not_processed_rsp_cnt, parent);
EXTRACHECKS_BUG_ON(parent->not_processed_rsp_cnt < 0);
}
static inline void cmd_add_on_rx_ddigest_list(struct iscsi_cmnd *req,
struct iscsi_cmnd *cmnd)
static inline void cmd_add_on_rx_ddigest_list(struct iscsi_cmnd *req, struct iscsi_cmnd *cmnd)
{
TRACE_DBG("Adding RX ddigest cmd %p to digest list of req %p", cmnd,
req);
list_add_tail(&cmnd->rx_ddigest_cmd_list_entry,
&req->rx_ddigest_cmd_list);
TRACE_DBG("Adding RX ddigest cmd %p to digest list of req %p",
cmnd, req);
list_add_tail(&cmnd->rx_ddigest_cmd_list_entry, &req->rx_ddigest_cmd_list);
#ifdef CONFIG_SCST_EXTRACHECKS
cmnd->on_rx_digest_list = 1;
#endif
@@ -765,7 +752,7 @@ static inline unsigned long iscsi_get_timeout(struct iscsi_cmnd *req)
{
unsigned long res;
res = (cmnd_opcode(req) == ISCSI_OP_NOP_OUT) ?
res = cmnd_opcode(req) == ISCSI_OP_NOP_OUT ?
req->conn->nop_in_timeout : req->conn->data_rsp_timeout;
if (unlikely(test_bit(ISCSI_CMD_ABORTED, &req->prelim_compl_flags)))
@@ -791,8 +778,8 @@ static inline int test_write_ready(struct iscsi_conn *conn)
static inline void conn_get(struct iscsi_conn *conn)
{
atomic_inc(&conn->conn_ref_cnt);
TRACE_DBG("conn %p, new conn_ref_cnt %d", conn,
atomic_read(&conn->conn_ref_cnt));
TRACE_DBG("conn %p, new conn_ref_cnt %d",
conn, atomic_read(&conn->conn_ref_cnt));
/*
* For the same reason as in kref_get(). Let's be safe and
* always do it.
@@ -802,8 +789,8 @@ static inline void conn_get(struct iscsi_conn *conn)
static inline void conn_put(struct iscsi_conn *conn)
{
TRACE_DBG("conn %p, new conn_ref_cnt %d", conn,
atomic_read(&conn->conn_ref_cnt)-1);
TRACE_DBG("conn %p, new conn_ref_cnt %d",
conn, atomic_read(&conn->conn_ref_cnt) - 1);
sBUG_ON(atomic_read(&conn->conn_ref_cnt) == 0);
/*
@@ -823,23 +810,22 @@ static inline void iscsi_extracheck_is_rd_thread(struct iscsi_conn *conn) {}
static inline void iscsi_extracheck_is_wr_thread(struct iscsi_conn *conn) {}
#endif
extern int iscsi_conn_alloc(struct iscsi_session *session,
struct iscsi_kern_conn_info *info, struct iscsi_conn **new_conn,
struct iscsit_transport *t);
extern int iscsi_conn_alloc(struct iscsi_session *session, struct iscsi_kern_conn_info *info,
struct iscsi_conn **new_conn, struct iscsit_transport *t);
extern int conn_activate(struct iscsi_conn *conn);
extern void iscsi_tcp_mark_conn_closed(struct iscsi_conn *conn, int flags);
extern void iscsi_tcp_conn_free(struct iscsi_conn *conn);
extern void iscsi_cmnd_init(struct iscsi_conn *conn, struct iscsi_cmnd *cmnd,
struct iscsi_cmnd *parent);
struct iscsi_cmnd *parent);
extern struct iscsi_cmnd *iscsi_get_send_cmnd(struct iscsi_conn *conn);
extern void start_close_conn(struct iscsi_conn *conn);
extern __be32 cmnd_set_sn(struct iscsi_cmnd *cmnd, int set_stat_sn);
extern void iscsi_set_resid(struct iscsi_cmnd *rsp);
extern int iscsi_init_conn(struct iscsi_session *session,
struct iscsi_kern_conn_info *info, struct iscsi_conn *conn);
extern int iscsi_init_conn(struct iscsi_session *session, struct iscsi_kern_conn_info *info,
struct iscsi_conn *conn);
extern void req_cmnd_pre_release(struct iscsi_cmnd *req);
extern struct iscsi_cmnd *create_status_rsp(struct iscsi_cmnd *req,
int status, const u8 *sense_buf, int sense_len);
extern struct iscsi_cmnd *create_status_rsp(struct iscsi_cmnd *req, int status,
const u8 *sense_buf, int sense_len);
extern int iscsi_cmnd_set_write_buf(struct iscsi_cmnd *req);
#endif /* __ISCSI_H__ */
+3 -4
View File
@@ -48,16 +48,15 @@
struct iscsi_pdu;
struct iscsi_cmnd;
extern void iscsi_dump_pdu(struct iscsi_pdu *pdu);
extern unsigned long iscsi_get_flow_ctrl_or_mgmt_dbg_log_flag(
struct iscsi_cmnd *cmnd);
extern unsigned long iscsi_get_flow_ctrl_or_mgmt_dbg_log_flag(struct iscsi_cmnd *cmnd);
#else
#define iscsi_dump_pdu(x) do {} while (0)
#define iscsi_get_flow_ctrl_or_mgmt_dbg_log_flag(x) 0
#endif
#define TRACE_CONN_CLOSE(args...) TRACE_DBG_FLAG(TRACE_DEBUG|TRACE_CONN_OC, args)
#define TRACE_CONN_CLOSE(args...) TRACE_DBG_FLAG(TRACE_DEBUG | TRACE_CONN_OC, args)
#define TRACE_CONN_CLOSE_DBG(args...) TRACE(TRACE_CONN_OC_DBG, args)
#define TRACE_NET_PAGE(args...) TRACE_DBG_FLAG(TRACE_NET_PG, args)
#define TRACE_WRITE(args...) TRACE_DBG_FLAG(TRACE_DEBUG|TRACE_D_WRITE, args)
#define TRACE_WRITE(args...) TRACE_DBG_FLAG(TRACE_DEBUG | TRACE_D_WRITE, args)
#endif
+3 -3
View File
@@ -125,7 +125,7 @@ struct iscsi_cdb_ahdr {
__be16 ahslength;
u8 ahstype;
u8 reserved;
u8 cdb[0];
u8 cdb[];
} __packed;
struct iscsi_rlength_ahdr {
@@ -163,7 +163,7 @@ struct iscsi_scsi_rsp_hdr {
struct iscsi_sense_data {
__be16 length;
u8 data[0];
u8 data[];
} __packed;
struct iscsi_task_mgt_hdr {
@@ -518,7 +518,7 @@ struct iscsi_nop_in_hdr {
#define ISCSI_RESERVED_TAG_CPU32 (0xffffffffU)
#define ISCSI_RESERVED_TAG (cpu_to_be32(ISCSI_RESERVED_TAG_CPU32))
#define cmnd_hdr(cmnd) ((struct iscsi_scsi_cmd_hdr *) (&((cmnd)->pdu.bhs)))
#define cmnd_hdr(cmnd) ((struct iscsi_scsi_cmd_hdr *)(&((cmnd)->pdu.bhs)))
#define cmnd_opcode(cmnd) ((cmnd)->pdu.bhs.opcode & ISCSI_OPCODE_MASK)
#define cmnd_scsicode(cmnd) (cmnd_hdr((cmnd))->scb[0])
+39 -53
View File
@@ -83,25 +83,25 @@ static void log_params(struct iscsi_sess_params *params)
char hdigest_name[64], ddigest_name[64];
PRINT_INFO("Negotiated parameters: InitialR2T %s, ImmediateData %s, MaxConnections %d, MaxRecvDataSegmentLength %d, MaxXmitDataSegmentLength %d, ",
iscsi_get_bool_value(params->initial_r2t),
iscsi_get_bool_value(params->immediate_data),
params->max_connections,
params->max_recv_data_length, params->max_xmit_data_length);
iscsi_get_bool_value(params->initial_r2t),
iscsi_get_bool_value(params->immediate_data),
params->max_connections,
params->max_recv_data_length, params->max_xmit_data_length);
PRINT_INFO(" MaxBurstLength %d, FirstBurstLength %d, DefaultTime2Wait %d, DefaultTime2Retain %d, ",
params->max_burst_length, params->first_burst_length,
params->default_wait_time, params->default_retain_time);
params->max_burst_length, params->first_burst_length,
params->default_wait_time, params->default_retain_time);
PRINT_INFO(" MaxOutstandingR2T %d, DataPDUInOrder %s, DataSequenceInOrder %s, ErrorRecoveryLevel %d, ",
params->max_outstanding_r2t,
iscsi_get_bool_value(params->data_pdu_inorder),
iscsi_get_bool_value(params->data_sequence_inorder),
params->error_recovery_level);
params->max_outstanding_r2t,
iscsi_get_bool_value(params->data_pdu_inorder),
iscsi_get_bool_value(params->data_sequence_inorder),
params->error_recovery_level);
PRINT_INFO(" HeaderDigest %s, DataDigest %s, OFMarker %s, IFMarker %s, OFMarkInt %d, IFMarkInt %d, RDMAExtensions %s",
iscsi_get_digest_name(params->header_digest, hdigest_name),
iscsi_get_digest_name(params->data_digest, ddigest_name),
iscsi_get_bool_value(params->ofmarker),
iscsi_get_bool_value(params->ifmarker),
params->ofmarkint, params->ifmarkint,
iscsi_get_bool_value(params->rdma_extensions));
iscsi_get_digest_name(params->header_digest, hdigest_name),
iscsi_get_digest_name(params->data_digest, ddigest_name),
iscsi_get_bool_value(params->ofmarker),
iscsi_get_bool_value(params->ifmarker),
params->ofmarkint, params->ifmarkint,
iscsi_get_bool_value(params->rdma_extensions));
}
/* target_mutex supposed to be locked */
@@ -137,13 +137,10 @@ static void sess_params_check(struct iscsi_kern_params_info *info)
CHECK_PARAM(info, iparams, rdma_extensions, 0, 1);
CHECK_PARAM(info, iparams, target_recv_data_length, 512, max_len);
CHECK_PARAM(info, iparams, initiator_recv_data_length, 512, max_len);
return;
}
/* target_mutex supposed to be locked */
static void sess_params_set(struct iscsi_sess_params *params,
struct iscsi_kern_params_info *info)
static void sess_params_set(struct iscsi_sess_params *params, struct iscsi_kern_params_info *info)
{
int32_t *iparams = info->session_params;
@@ -171,11 +168,9 @@ static void sess_params_set(struct iscsi_sess_params *params,
SET_PARAM(params, info, iparams, rdma_extensions);
SET_PARAM(params, info, iparams, target_recv_data_length);
SET_PARAM(params, info, iparams, initiator_recv_data_length);
return;
}
static void sess_params_get(struct iscsi_sess_params *params,
struct iscsi_kern_params_info *info)
static void sess_params_get(struct iscsi_sess_params *params, struct iscsi_kern_params_info *info)
{
int32_t *iparams = info->session_params;
@@ -203,12 +198,10 @@ static void sess_params_get(struct iscsi_sess_params *params,
GET_PARAM(params, info, iparams, rdma_extensions);
GET_PARAM(params, info, iparams, target_recv_data_length);
GET_PARAM(params, info, iparams, initiator_recv_data_length);
return;
}
/* target_mutex supposed to be locked */
static void tgt_params_check(struct iscsi_session *session,
struct iscsi_kern_params_info *info)
static void tgt_params_check(struct iscsi_session *session, struct iscsi_kern_params_info *info)
{
int32_t *iparams = info->target_params;
unsigned int rsp_timeout, nop_in_timeout;
@@ -218,14 +211,10 @@ static void tgt_params_check(struct iscsi_session *session,
* performed in the user space.
*/
CHECK_PARAM(info, iparams, queued_cmnds, MIN_NR_QUEUED_CMNDS,
MAX_NR_QUEUED_CMNDS);
CHECK_PARAM(info, iparams, rsp_timeout, MIN_RSP_TIMEOUT,
MAX_RSP_TIMEOUT);
CHECK_PARAM(info, iparams, nop_in_interval, MIN_NOP_IN_INTERVAL,
MAX_NOP_IN_INTERVAL);
CHECK_PARAM(info, iparams, nop_in_timeout, MIN_NOP_IN_TIMEOUT,
MAX_NOP_IN_TIMEOUT);
CHECK_PARAM(info, iparams, queued_cmnds, MIN_NR_QUEUED_CMNDS, MAX_NR_QUEUED_CMNDS);
CHECK_PARAM(info, iparams, rsp_timeout, MIN_RSP_TIMEOUT, MAX_RSP_TIMEOUT);
CHECK_PARAM(info, iparams, nop_in_interval, MIN_NOP_IN_INTERVAL, MAX_NOP_IN_INTERVAL);
CHECK_PARAM(info, iparams, nop_in_timeout, MIN_NOP_IN_TIMEOUT, MAX_NOP_IN_TIMEOUT);
/*
* We adjust too long timeout in req_add_to_write_timeout_list()
@@ -240,14 +229,12 @@ static void tgt_params_check(struct iscsi_session *session,
else
nop_in_timeout = session->tgt_params.nop_in_timeout;
if (nop_in_timeout > rsp_timeout)
PRINT_WARNING("%s", "RspTimeout should be >= NopInTimeout, otherwise data transfer failure could take up to NopInTimeout long to detect");
return;
PRINT_WARNING("RspTimeout should be >= NopInTimeout, otherwise data transfer failure could take up to NopInTimeout long to detect");
}
/* target_mutex supposed to be locked */
static int iscsi_tgt_params_set(struct iscsi_session *session,
struct iscsi_kern_params_info *info, int set)
static int iscsi_tgt_params_set(struct iscsi_session *session, struct iscsi_kern_params_info *info,
int set)
{
struct iscsi_tgt_params *params = &session->tgt_params;
int32_t *iparams = info->target_params;
@@ -264,12 +251,12 @@ static int iscsi_tgt_params_set(struct iscsi_session *session,
SET_PARAM(params, info, iparams, nop_in_interval);
SET_PARAM(params, info, iparams, nop_in_timeout);
PRINT_INFO("Target parameters set for session %llx: QueuedCommands %d, Response timeout %d, Nop-In interval %d, Nop-In timeout %d", session->sid,
params->queued_cmnds, params->rsp_timeout,
params->nop_in_interval, params->nop_in_timeout);
PRINT_INFO("Target parameters set for session %llx: QueuedCommands %d, Response timeout %d, Nop-In interval %d, Nop-In timeout %d",
session->sid,
params->queued_cmnds, params->rsp_timeout,
params->nop_in_interval, params->nop_in_timeout);
list_for_each_entry(conn, &session->conn_list,
conn_list_entry) {
list_for_each_entry(conn, &session->conn_list, conn_list_entry) {
conn->data_rsp_timeout =
session->tgt_params.rsp_timeout * HZ;
conn->nop_in_interval =
@@ -277,11 +264,11 @@ static int iscsi_tgt_params_set(struct iscsi_session *session,
conn->nop_in_timeout =
session->tgt_params.nop_in_timeout * HZ;
spin_lock_bh(&conn->conn_thr_pool->rd_lock);
if (!conn->closing && (conn->nop_in_interval > 0)) {
if (!conn->closing && conn->nop_in_interval > 0) {
TRACE_DBG("Schedule Nop-In work for conn %p",
conn);
schedule_delayed_work(&conn->nop_in_delayed_work,
conn->nop_in_interval + ISCSI_ADD_SCHED_TIME);
conn->nop_in_interval + ISCSI_ADD_SCHED_TIME);
}
spin_unlock_bh(&conn->conn_thr_pool->rd_lock);
}
@@ -297,7 +284,7 @@ static int iscsi_tgt_params_set(struct iscsi_session *session,
/* target_mutex supposed to be locked */
static int iscsi_sess_params_set(struct iscsi_session *session,
struct iscsi_kern_params_info *info, int set)
struct iscsi_kern_params_info *info, int set)
{
struct iscsi_sess_params *params;
@@ -309,15 +296,15 @@ static int iscsi_sess_params_set(struct iscsi_session *session,
if (set) {
sess_params_set(params, info);
log_params(params);
} else
} else {
sess_params_get(params, info);
}
return 0;
}
/* target_mutex supposed to be locked */
int iscsi_params_set(struct iscsi_target *target,
struct iscsi_kern_params_info *info, int set)
int iscsi_params_set(struct iscsi_target *target, struct iscsi_kern_params_info *info, int set)
{
int err;
struct iscsi_session *session;
@@ -331,14 +318,13 @@ int iscsi_params_set(struct iscsi_target *target,
}
session = session_lookup(target, info->sid);
if (session == NULL) {
if (!session) {
PRINT_ERROR("Session for sid %llx not found", info->sid);
err = -ENOENT;
goto out;
}
if (set && !list_empty(&session->conn_list) &&
(info->params_type != key_target)) {
if (set && !list_empty(&session->conn_list) && info->params_type != key_target) {
err = -EBUSY;
goto out;
}
+43 -57
View File
@@ -29,8 +29,7 @@ struct iscsi_session *session_lookup(struct iscsi_target *target, u64 sid)
lockdep_assert_held(&target->target_mutex);
list_for_each_entry(session, &target->session_list,
session_list_entry) {
list_for_each_entry(session, &target->session_list, session_list_entry) {
if (session->sid == sid)
return session;
}
@@ -38,8 +37,8 @@ struct iscsi_session *session_lookup(struct iscsi_target *target, u64 sid)
}
/* target_mgmt_mutex supposed to be locked */
static int iscsi_session_alloc(struct iscsi_target *target,
struct iscsi_kern_session_info *info, struct iscsi_session **result)
static int iscsi_session_alloc(struct iscsi_target *target, struct iscsi_kern_session_info *info,
struct iscsi_session **result)
{
int err;
unsigned int i;
@@ -76,27 +75,24 @@ static int iscsi_session_alloc(struct iscsi_target *target,
session->next_ttt = 1;
session->scst_sess = scst_register_session(target->scst_tgt, 0,
name, session, NULL, NULL);
if (session->scst_sess == NULL) {
session->scst_sess = scst_register_session(target->scst_tgt, 0, name, session, NULL, NULL);
if (!session->scst_sess) {
PRINT_ERROR("%s", "scst_register_session() failed");
err = -ENOMEM;
goto err;
}
if (!session->sess_params.rdma_extensions) {
err = iscsi_threads_pool_get(
scst_get_acg_tgt_priv(session->scst_sess->acg) != NULL,
&session->scst_sess->acg->acg_cpu_mask,
&session->sess_thr_pool);
err = iscsi_threads_pool_get((bool)scst_get_acg_tgt_priv(session->scst_sess->acg),
&session->scst_sess->acg->acg_cpu_mask,
&session->sess_thr_pool);
if (err != 0)
goto err_unreg;
}
TRACE(TRACE_MGMT, "Session %p created: target %p, tid %u, sid %#Lx, initiator %s",
session, target, target->tid, info->sid,
session->scst_sess->initiator_name);
session, target, target->tid, info->sid,
session->scst_sess->initiator_name);
*result = session;
return 0;
@@ -131,12 +127,10 @@ void sess_reinst_finished(struct iscsi_session *sess)
sess->sess_reinstating = 0;
TRACE_EXIT();
return;
}
/* target_mgmt_mutex supposed to be locked */
int __add_session(struct iscsi_target *target,
struct iscsi_kern_session_info *info)
int __add_session(struct iscsi_target *target, struct iscsi_kern_session_info *info)
{
struct iscsi_session *new_sess = NULL, *sess, *old_sess;
int err = 0, i;
@@ -155,17 +149,17 @@ int __add_session(struct iscsi_target *target,
mutex_lock(&target->target_mutex);
sess = session_lookup(target, info->sid);
if (sess != NULL) {
if (sess) {
PRINT_ERROR("Attempt to add session with existing SID %llx",
info->sid);
info->sid);
err = -EEXIST;
goto out_err_unlock;
}
params_info = kmalloc(sizeof(*params_info), GFP_KERNEL);
if (params_info == NULL) {
if (!params_info) {
PRINT_ERROR("Unable to allocate params info (size %zd)",
sizeof(*params_info));
sizeof(*params_info));
err = -ENOMEM;
goto out_err_unlock;
}
@@ -178,13 +172,12 @@ int __add_session(struct iscsi_target *target,
* We need to find the latest session to correctly handle
* multi-reinstatements
*/
list_for_each_entry_reverse(sess, &target->session_list,
session_list_entry) {
list_for_each_entry_reverse(sess, &target->session_list, session_list_entry) {
union iscsi_sid s = *(union iscsi_sid *)&sess->sid;
s.id.tsih = 0;
if ((sid.id64 == s.id64) &&
(strcmp(info->initiator_name, sess->initiator_name) == 0)) {
if (sid.id64 == s.id64 &&
strcmp(info->initiator_name, sess->initiator_name) == 0) {
if (!sess->sess_shutting_down) {
/* session reinstatement */
old_sess = sess;
@@ -221,11 +214,11 @@ int __add_session(struct iscsi_target *target,
kfree(params_info);
params_info = NULL;
if (old_sess != NULL) {
if (old_sess) {
reinstatement = true;
TRACE_MGMT_DBG("Reinstating sess %p with SID %llx (old %p, SID %llx)",
new_sess, new_sess->sid, old_sess, old_sess->sid);
new_sess, new_sess->sid, old_sess, old_sess->sid);
new_sess->sess_reinstating = 1;
old_sess->sess_reinst_successor = new_sess;
@@ -246,7 +239,7 @@ int __add_session(struct iscsi_target *target,
* SCST core under scst_mutex).
*/
scst_set_initial_UA(new_sess->scst_sess,
SCST_LOAD_SENSE(scst_sense_nexus_loss_UA));
SCST_LOAD_SENSE(scst_sense_nexus_loss_UA));
}
out:
@@ -288,7 +281,6 @@ static void iscsi_unreg_sess_done(struct scst_session *scst_sess)
__session_free(session);
TRACE_EXIT();
return;
}
/* target_mutex supposed to be locked */
@@ -297,29 +289,28 @@ int session_free(struct iscsi_session *session, bool del)
unsigned int i;
TRACE(TRACE_MGMT, "Freeing session %p (SID %llx)",
session, session->sid);
session, session->sid);
lockdep_assert_held(&session->target->target_mutex);
sBUG_ON(!list_empty(&session->conn_list));
if (unlikely(atomic_read(&session->active_cmds) != 0)) {
PRINT_CRIT_ERROR("active_cmds not 0 (%d)!!",
atomic_read(&session->active_cmds));
atomic_read(&session->active_cmds));
sBUG();
}
for (i = 0; i < ARRAY_SIZE(session->cmnd_data_wait_hash); i++)
sBUG_ON(!list_empty(&session->cmnd_data_wait_hash[i]));
if (session->sess_reinst_successor != NULL)
if (session->sess_reinst_successor)
sess_reinst_finished(session->sess_reinst_successor);
if (session->sess_reinstating) {
struct iscsi_session *s;
TRACE_MGMT_DBG("Freeing being reinstated sess %p", session);
list_for_each_entry(s, &session->target->session_list,
session_list_entry) {
list_for_each_entry(s, &session->target->session_list, session_list_entry) {
if (s->sess_reinst_successor == session) {
s->sess_reinst_successor = NULL;
break;
@@ -330,7 +321,7 @@ int session_free(struct iscsi_session *session, bool del)
if (del)
list_del(&session->session_list_entry);
if (session->scst_sess != NULL) {
if (session->scst_sess) {
/*
* We must NOT call scst_unregister_session() in the waiting
* mode, since we are under target_mutex. Otherwise we can
@@ -338,10 +329,10 @@ int session_free(struct iscsi_session *session, bool del)
* and scst_mutex in SCST core (iscsi_report_aen() called by
* SCST core under scst_mutex).
*/
scst_unregister_session(session->scst_sess, 0,
iscsi_unreg_sess_done);
} else
scst_unregister_session(session->scst_sess, 0, iscsi_unreg_sess_done);
} else {
__session_free(session);
}
return 0;
}
@@ -376,19 +367,17 @@ void iscsi_sess_force_close(struct iscsi_session *sess)
lockdep_assert_held(&sess->target->target_mutex);
PRINT_INFO("Force closing session %llx with initiator %s (%p)",
(unsigned long long)sess->sid, sess->initiator_name, sess);
(unsigned long long)sess->sid, sess->initiator_name, sess);
list_for_each_entry(conn, &sess->conn_list, conn_list_entry) {
TRACE(TRACE_MGMT, "Force closing connection %p", conn);
__mark_conn_closed(conn,
ISCSI_CONN_ACTIVE_CLOSE|ISCSI_CONN_DELETING);
ISCSI_CONN_ACTIVE_CLOSE | ISCSI_CONN_DELETING);
}
TRACE_EXIT();
return;
}
#define ISCSI_SESS_BOOL_PARAM_ATTR(name, exported_name) \
static ssize_t iscsi_sess_show_##name(struct kobject *kobj, \
struct kobj_attribute *attr, char *buf) \
@@ -407,7 +396,7 @@ static ssize_t iscsi_sess_show_##name(struct kobject *kobj, \
} \
\
static struct kobj_attribute iscsi_sess_attr_##name = \
__ATTR(exported_name, S_IRUGO, iscsi_sess_show_##name, NULL)
__ATTR(exported_name, 0444, iscsi_sess_show_##name, NULL)
#define ISCSI_SESS_INT_PARAM_ATTR(name, exported_name) \
static ssize_t iscsi_sess_show_##name(struct kobject *kobj, \
@@ -426,7 +415,7 @@ static ssize_t iscsi_sess_show_##name(struct kobject *kobj, \
} \
\
static struct kobj_attribute iscsi_sess_attr_##name = \
__ATTR(exported_name, S_IRUGO, iscsi_sess_show_##name, NULL)
__ATTR(exported_name, 0444, iscsi_sess_show_##name, NULL)
#define ISCSI_SESS_DIGEST_PARAM_ATTR(name, exported_name) \
static ssize_t iscsi_sess_show_##name(struct kobject *kobj, \
@@ -447,7 +436,7 @@ static ssize_t iscsi_sess_show_##name(struct kobject *kobj, \
} \
\
static struct kobj_attribute iscsi_sess_attr_##name = \
__ATTR(exported_name, S_IRUGO, iscsi_sess_show_##name, NULL)
__ATTR(exported_name, 0444, iscsi_sess_show_##name, NULL)
ISCSI_SESS_BOOL_PARAM_ATTR(initial_r2t, InitialR2T);
ISCSI_SESS_BOOL_PARAM_ATTR(immediate_data, ImmediateData);
@@ -459,8 +448,7 @@ ISCSI_SESS_INT_PARAM_ATTR(max_outstanding_r2t, MaxOutstandingR2T);
ISCSI_SESS_DIGEST_PARAM_ATTR(header_digest, HeaderDigest);
ISCSI_SESS_DIGEST_PARAM_ATTR(data_digest, DataDigest);
static ssize_t iscsi_sess_sid_show(struct kobject *kobj,
struct kobj_attribute *attr, char *buf)
static ssize_t iscsi_sess_sid_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf)
{
int pos;
struct scst_session *scst_sess;
@@ -478,10 +466,10 @@ static ssize_t iscsi_sess_sid_show(struct kobject *kobj,
}
static struct kobj_attribute iscsi_attr_sess_sid =
__ATTR(sid, S_IRUGO, iscsi_sess_sid_show, NULL);
__ATTR(sid, 0444, iscsi_sess_sid_show, NULL);
static ssize_t iscsi_sess_reinstating_show(struct kobject *kobj,
struct kobj_attribute *attr, char *buf)
static ssize_t iscsi_sess_reinstating_show(struct kobject *kobj, struct kobj_attribute *attr,
char *buf)
{
int pos;
struct scst_session *scst_sess;
@@ -499,13 +487,12 @@ static ssize_t iscsi_sess_reinstating_show(struct kobject *kobj,
}
static struct kobj_attribute iscsi_sess_attr_reinstating =
__ATTR(reinstating, S_IRUGO, iscsi_sess_reinstating_show, NULL);
__ATTR(reinstating, 0444, iscsi_sess_reinstating_show, NULL);
static ssize_t iscsi_sess_thread_pid_show(struct kobject *kobj,
struct kobj_attribute *attr, char *buf)
static ssize_t iscsi_sess_thread_pid_show(struct kobject *kobj, struct kobj_attribute *attr,
char *buf)
{
struct scst_session *scst_sess = container_of(kobj, struct scst_session,
sess_kobj);
struct scst_session *scst_sess = container_of(kobj, struct scst_session, sess_kobj);
struct iscsi_session *sess = scst_sess_get_tgt_priv(scst_sess);
struct iscsi_thread_pool *thr_pool = sess->sess_thr_pool;
struct iscsi_thread *t;
@@ -530,7 +517,7 @@ out:
}
static struct kobj_attribute iscsi_sess_thread_pid =
__ATTR(thread_pid, S_IRUGO, iscsi_sess_thread_pid_show, NULL);
__ATTR(thread_pid, 0444, iscsi_sess_thread_pid_show, NULL);
const struct attribute *iscsi_sess_attrs[] = {
&iscsi_sess_attr_initial_r2t.attr,
@@ -547,4 +534,3 @@ const struct attribute *iscsi_sess_attrs[] = {
&iscsi_sess_thread_pid.attr,
NULL,
};
+32 -43
View File
@@ -60,7 +60,7 @@ static struct iscsi_target *target_lookup_by_name(const char *name)
/* target_mgmt_mutex supposed to be locked */
static int iscsi_target_create(struct iscsi_kern_target_info *info, u32 tid,
struct iscsi_target **out_target)
struct iscsi_target **out_target)
{
int err = -EINVAL, len;
char *name = info->name;
@@ -87,7 +87,8 @@ static int iscsi_target_create(struct iscsi_kern_target_info *info, u32 tid,
goto out_put;
}
target->tid = info->tid = tid;
info->tid = tid;
target->tid = info->tid;
strscpy(target->name, name, sizeof(target->name));
@@ -154,9 +155,9 @@ int __add_target(struct iscsi_kern_target_info *info)
}
add_info = kmalloc(sizeof(*add_info), GFP_KERNEL);
if (add_info == NULL) {
if (!add_info) {
PRINT_ERROR("Unable to allocate additional info (size %zd)",
sizeof(*add_info));
sizeof(*add_info));
err = -ENOMEM;
goto out;
}
@@ -194,7 +195,7 @@ int __add_target(struct iscsi_kern_target_info *info)
goto out_del_unlock;
}
attr_info->name[sizeof(attr_info->name)-1] = '\0';
attr_info->name[sizeof(attr_info->name) - 1] = '\0';
err = iscsi_add_attr(target, attr_info);
if (err != 0)
@@ -226,17 +227,14 @@ static void target_destroy(struct iscsi_target *target)
TRACE_MGMT_DBG("Destroying target tid %u", target->tid);
list_for_each_entry_safe(attr, t, &target->attrs_list,
attrs_list_entry) {
list_for_each_entry_safe(attr, t, &target->attrs_list, attrs_list_entry)
__iscsi_del_attr(target, attr);
}
scst_unregister_target(target->scst_tgt);
kfree(target);
module_put(THIS_MODULE);
return;
}
/* target_mgmt_mutex supposed to be locked */
@@ -276,13 +274,12 @@ out:
}
/* target_mutex supposed to be locked */
void target_del_session(struct iscsi_target *target,
struct iscsi_session *session, int flags)
void target_del_session(struct iscsi_target *target, struct iscsi_session *session, int flags)
{
TRACE_ENTRY();
TRACE(TRACE_MGMT, "Deleting session %p (initiator %s)", session,
session->scst_sess->initiator_name);
TRACE(TRACE_MGMT, "Deleting session %p (initiator %s)",
session, session->scst_sess->initiator_name);
lockdep_assert_held(&target->target_mutex);
@@ -301,7 +298,6 @@ void target_del_session(struct iscsi_target *target,
}
TRACE_EXIT();
return;
}
/* target_mutex supposed to be locked */
@@ -315,14 +311,12 @@ void target_del_all_sess(struct iscsi_target *target, int flags)
if (!list_empty(&target->session_list)) {
TRACE_MGMT_DBG("Deleting all sessions from target %p", target);
list_for_each_entry_safe(session, ts, &target->session_list,
session_list_entry) {
list_for_each_entry_safe(session, ts, &target->session_list, session_list_entry)
target_del_session(target, session, flags);
}
}
TRACE_EXIT();
return;
}
EXPORT_SYMBOL(target_del_all_sess);
@@ -363,14 +357,13 @@ void target_del_all(void)
* theyself, but act in advance.
*/
list_for_each_entry_safe(target, t, &target_list,
target_list_entry) {
list_for_each_entry_safe(target, t, &target_list, target_list_entry) {
mutex_lock(&target->target_mutex);
if (!list_empty(&target->session_list)) {
target_del_all_sess(target,
ISCSI_CONN_ACTIVE_CLOSE |
ISCSI_CONN_DELETING);
ISCSI_CONN_ACTIVE_CLOSE |
ISCSI_CONN_DELETING);
} else if (!first) {
TRACE_MGMT_DBG("Deleting target %p", target);
list_del(&target->target_list_entry);
@@ -393,12 +386,9 @@ void target_del_all(void)
TRACE_MGMT_DBG("%s", "Deleting all targets finished");
TRACE_EXIT();
return;
}
static ssize_t iscsi_tgt_tid_show(struct kobject *kobj,
struct kobj_attribute *attr, char *buf)
static ssize_t iscsi_tgt_tid_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf)
{
int res = -E_TGT_PRIV_NOT_YET_SET;
struct scst_tgt *scst_tgt;
@@ -419,15 +409,15 @@ out:
}
static struct kobj_attribute iscsi_tgt_attr_tid =
__ATTR(tid, S_IRUGO, iscsi_tgt_tid_show, NULL);
__ATTR(tid, 0444, iscsi_tgt_tid_show, NULL);
const struct attribute *iscsi_tgt_attrs[] = {
&iscsi_tgt_attr_tid.attr,
NULL,
};
ssize_t iscsi_sysfs_send_event(uint32_t tid, enum iscsi_kern_event_code code,
const char *param1, const char *param2, void **data)
ssize_t iscsi_sysfs_send_event(uint32_t tid, enum iscsi_kern_event_code code, const char *param1,
const char *param2, void **data)
{
int res;
struct scst_sysfs_user_info *info;
@@ -461,7 +451,7 @@ ssize_t iscsi_sysfs_send_event(uint32_t tid, enum iscsi_kern_event_code code,
*/
res = scst_wait_info_completion(info, 31 * HZ);
if (data != NULL)
if (data)
*data = info->data;
out_free:
@@ -481,7 +471,7 @@ int iscsi_enable_target(struct scst_tgt *scst_tgt, bool enable)
TRACE_ENTRY();
if (tgt == NULL) {
if (!tgt) {
res = -E_TGT_PRIV_NOT_YET_SET;
goto out;
}
@@ -505,7 +495,7 @@ bool iscsi_is_target_enabled(struct scst_tgt *scst_tgt)
struct iscsi_target *tgt =
(struct iscsi_target *)scst_tgt_get_tgt_priv(scst_tgt);
if (tgt != NULL)
if (tgt)
return tgt->tgt_enabled;
else
return false;
@@ -517,8 +507,7 @@ ssize_t iscsi_sysfs_add_target(const char *target_name, char *params)
TRACE_ENTRY();
res = iscsi_sysfs_send_event(0, E_ADD_TARGET, target_name,
params, NULL);
res = iscsi_sysfs_send_event(0, E_ADD_TARGET, target_name, params, NULL);
if (res > 0) {
/* It's tid */
res = 0;
@@ -540,7 +529,7 @@ ssize_t iscsi_sysfs_del_target(const char *target_name)
mutex_lock(&target_mgmt_mutex);
tgt = target_lookup_by_name(target_name);
if (tgt == NULL) {
if (!tgt) {
PRINT_ERROR("Target %s not found", target_name);
mutex_unlock(&target_mgmt_mutex);
res = -ENOENT;
@@ -574,7 +563,7 @@ ssize_t iscsi_sysfs_mgmt_cmd(char *cmd)
}
static ssize_t iscsi_acg_sess_dedicated_threads_show(struct kobject *kobj,
struct kobj_attribute *attr, char *buf)
struct kobj_attribute *attr, char *buf)
{
int pos;
struct scst_acg *acg;
@@ -583,17 +572,17 @@ static ssize_t iscsi_acg_sess_dedicated_threads_show(struct kobject *kobj,
TRACE_ENTRY();
acg = container_of(kobj, struct scst_acg, acg_kobj);
dedicated = scst_get_acg_tgt_priv(acg) != NULL;
dedicated = scst_get_acg_tgt_priv(acg);
pos = sprintf(buf, "%d\n%s", dedicated,
dedicated ? SCST_SYSFS_KEY_MARK "\n" : "");
pos = sprintf(buf, "%d\n%s", dedicated, dedicated ? SCST_SYSFS_KEY_MARK "\n" : "");
TRACE_EXIT_RES(pos);
return pos;
}
static ssize_t iscsi_acg_sess_dedicated_threads_store(struct kobject *kobj,
struct kobj_attribute *attr, const char *buf, size_t count)
struct kobj_attribute *attr, const char *buf,
size_t count)
{
int res;
struct scst_acg *acg;
@@ -619,9 +608,9 @@ out:
}
static struct kobj_attribute iscsi_acg_attr_sess_dedicated_threads =
__ATTR(per_sess_dedicated_tgt_threads, S_IRUGO | S_IWUSR,
iscsi_acg_sess_dedicated_threads_show,
iscsi_acg_sess_dedicated_threads_store);
__ATTR(per_sess_dedicated_tgt_threads, 0644,
iscsi_acg_sess_dedicated_threads_show,
iscsi_acg_sess_dedicated_threads_store);
const struct attribute *iscsi_acg_attrs[] = {
&iscsi_acg_attr_sess_dedicated_threads.attr,