Skip to content

Commit

Permalink
target: Minimize #include directives
Browse files Browse the repository at this point in the history
Remove superfluous #include directives from the include/target/*.h
files. Add missing #include directives to other *.h and *.c files.
Use forward declarations for structures where possible. This
change reduces the build time for make M=drivers/target on my
laptop from 27.1s to 18.7s or by about 30%.

Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Bryant G. Ly <bryantly@linux.vnet.ibm.com>
  • Loading branch information
Bart Van Assche committed Dec 9, 2016
1 parent f504572 commit 8dcf07b
Show file tree
Hide file tree
Showing 51 changed files with 187 additions and 25 deletions.
2 changes: 2 additions & 0 deletions drivers/target/iscsi/iscsi_target.c
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Expand Down
12 changes: 12 additions & 0 deletions drivers/target/iscsi/iscsi_target.h
Original file line number Diff line number Diff line change
@@ -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 *);
Expand Down
2 changes: 1 addition & 1 deletion drivers/target/iscsi/iscsi_target_auth.c
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
5 changes: 5 additions & 0 deletions drivers/target/iscsi/iscsi_target_auth.h
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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 *);

Expand Down
3 changes: 2 additions & 1 deletion drivers/target/iscsi/iscsi_target_configfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
2 changes: 1 addition & 1 deletion drivers/target/iscsi/iscsi_target_datain_values.c
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
3 changes: 3 additions & 0 deletions drivers/target/iscsi/iscsi_target_datain_values.h
Original file line number Diff line number Diff line change
@@ -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 *);
Expand Down
3 changes: 3 additions & 0 deletions drivers/target/iscsi/iscsi_target_device.h
Original file line number Diff line number Diff line change
@@ -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 *);

Expand Down
6 changes: 6 additions & 0 deletions drivers/target/iscsi/iscsi_target_erl0.h
Original file line number Diff line number Diff line change
@@ -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);
Expand Down
1 change: 1 addition & 0 deletions drivers/target/iscsi/iscsi_target_erl1.c
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Expand Down
10 changes: 10 additions & 0 deletions drivers/target/iscsi/iscsi_target_erl1.h
Original file line number Diff line number Diff line change
@@ -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 *);
Expand Down
1 change: 1 addition & 0 deletions drivers/target/iscsi/iscsi_target_erl2.c
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Expand Down
7 changes: 7 additions & 0 deletions drivers/target/iscsi/iscsi_target_erl2.h
Original file line number Diff line number Diff line change
@@ -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(
Expand Down
2 changes: 2 additions & 0 deletions drivers/target/iscsi/iscsi_target_login.c
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Expand Down
7 changes: 7 additions & 0 deletions drivers/target/iscsi/iscsi_target_login.h
Original file line number Diff line number Diff line change
@@ -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);
Expand Down
2 changes: 2 additions & 0 deletions drivers/target/iscsi/iscsi_target_nego.c
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Expand Down
4 changes: 4 additions & 0 deletions drivers/target/iscsi/iscsi_target_nego.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 *);
Expand Down
5 changes: 5 additions & 0 deletions drivers/target/iscsi/iscsi_target_nodeattrib.h
Original file line number Diff line number Diff line change
@@ -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);
Expand Down
2 changes: 1 addition & 1 deletion drivers/target/iscsi/iscsi_target_parameters.c
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
6 changes: 6 additions & 0 deletions drivers/target/iscsi/iscsi_target_parameters.h
Original file line number Diff line number Diff line change
@@ -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 {
Expand All @@ -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 *);
Expand Down
5 changes: 5 additions & 0 deletions drivers/target/iscsi/iscsi_target_seq_pdu_list.h
Original file line number Diff line number Diff line change
@@ -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

Expand Down Expand Up @@ -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 *);
Expand Down
6 changes: 6 additions & 0 deletions drivers/target/iscsi/iscsi_target_tmr.h
Original file line number Diff line number Diff line change
@@ -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 *);
Expand Down
2 changes: 1 addition & 1 deletion drivers/target/iscsi/iscsi_target_tpg.c
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
9 changes: 9 additions & 0 deletions drivers/target/iscsi/iscsi_target_tpg.h
Original file line number Diff line number Diff line change
@@ -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);
Expand Down
1 change: 1 addition & 0 deletions drivers/target/iscsi/iscsi_target_transport.c
Original file line number Diff line number Diff line change
@@ -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);
Expand Down
1 change: 1 addition & 0 deletions drivers/target/iscsi/iscsi_target_util.c
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Expand Down
8 changes: 8 additions & 0 deletions drivers/target/iscsi/iscsi_target_util.h
Original file line number Diff line number Diff line change
@@ -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 *);
Expand Down
4 changes: 4 additions & 0 deletions drivers/target/loopback/tcm_loop.h
Original file line number Diff line number Diff line change
@@ -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
Expand Down
3 changes: 3 additions & 0 deletions drivers/target/target_core_alua.c
Original file line number Diff line number Diff line change
Expand Up @@ -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>

Expand Down
2 changes: 2 additions & 0 deletions drivers/target/target_core_alua.h
Original file line number Diff line number Diff line change
@@ -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
*
Expand Down
1 change: 1 addition & 0 deletions drivers/target/target_core_device.c
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Expand Down
1 change: 1 addition & 0 deletions drivers/target/target_core_file.c
Original file line number Diff line number Diff line change
Expand Up @@ -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>

Expand Down
2 changes: 2 additions & 0 deletions drivers/target/target_core_file.h
Original file line number Diff line number Diff line change
@@ -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
Expand Down
3 changes: 3 additions & 0 deletions drivers/target/target_core_iblock.h
Original file line number Diff line number Diff line change
@@ -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
Expand Down
Loading

0 comments on commit 8dcf07b

Please sign in to comment.