From: Gleb C. <lna...@ya...> - 2024-11-16 11:38:27
|
Commit: 60dc638 GitHub URL: https://github.com/SCST-project/scst/commit/60dc638b1b87330469195b919131840a58f75921 Author: Gleb Chesnokov Date: 2024-11-16T14:33:58+03:00 Log Message: ----------- iscsi-scst: Fix multiple checkpatch warnings This patch does not change any functionality. Modified Paths: -------------- iscsi-scst/kernel/iscsi.h | 112 +++++++-------- iscsi-scst/kernel/iscsi_dbg.h | 7 +- iscsi-scst/kernel/iscsi_hdr.h | 6 +- iscsi-scst/kernel/param.c | 92 +++++------- iscsi-scst/kernel/session.c | 100 ++++++------- iscsi-scst/kernel/target.c | 75 +++++----- 6 files changed, 169 insertions(+), 223 deletions(-) =================================================================== diff --git a/iscsi-scst/kernel/iscsi.h b/iscsi-scst/kernel/iscsi.h index dfd61cf..8b9728c 100644 --- a/iscsi-scst/kernel/iscsi.h +++ b/iscsi-scst/kernel/iscsi.h @@ -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__ */ diff --git a/iscsi-scst/kernel/iscsi_dbg.h b/iscsi-scst/kernel/iscsi_dbg.h index 85ba6d6..550e79b 100644 --- a/iscsi-scst/kernel/iscsi_dbg.h +++ b/iscsi-scst/kernel/iscsi_dbg.h @@ -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 diff --git a/iscsi-scst/kernel/iscsi_hdr.h b/iscsi-scst/kernel/iscsi_hdr.h index c1d70e7..e8f3ce6 100644 --- a/iscsi-scst/kernel/iscsi_hdr.h +++ b/iscsi-scst/kernel/iscsi_hdr.h @@ -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]) diff --git a/iscsi-scst/kernel/param.c b/iscsi-scst/kernel/param.c index 77b1a82..1f01389 100644 --- a/iscsi-scst/kernel/param.c +++ b/iscsi-scst/kernel/param.c @@ -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; } diff --git a/iscsi-scst/kernel/session.c b/iscsi-scst/kernel/session.c index 1d5d9ca..906a2f9 100644 --- a/iscsi-scst/kernel/session.c +++ b/iscsi-scst/kernel/session.c @@ -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, }; - diff --git a/iscsi-scst/kernel/target.c b/iscsi-scst/kernel/target.c index a74ef48..bb9ec0b 100644 --- a/iscsi-scst/kernel/target.c +++ b/iscsi-scst/kernel/target.c @@ -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, |