mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-26 05:34:13 +08:00
[SCSI] iscsi_tcp: hook iscsi_tcp into new libiscsi_tcp module
This hooks iscsi_tcp into the libiscsi_tcp module and removes code that is now in libiscsi_tcp. Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
This commit is contained in:
parent
a081c13e39
commit
38e1a8f547
@ -36,7 +36,7 @@ obj-$(CONFIG_SCSI_SAS_LIBSAS) += libsas/
|
||||
obj-$(CONFIG_SCSI_SRP_ATTRS) += scsi_transport_srp.o
|
||||
obj-$(CONFIG_SCSI_DH) += device_handler/
|
||||
|
||||
obj-$(CONFIG_ISCSI_TCP) += libiscsi.o iscsi_tcp.o
|
||||
obj-$(CONFIG_ISCSI_TCP) += libiscsi.o libiscsi_tcp.o iscsi_tcp.o
|
||||
obj-$(CONFIG_INFINIBAND_ISER) += libiscsi.o
|
||||
obj-$(CONFIG_SCSI_A4000T) += 53c700.o a4000t.o
|
||||
obj-$(CONFIG_SCSI_ZORRO7XX) += 53c700.o zorro7xx.o
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -19,67 +19,27 @@
|
||||
* See the file COPYING included with this distribution for more details.
|
||||
*/
|
||||
|
||||
#ifndef ISCSI_TCP_H
|
||||
#define ISCSI_TCP_H
|
||||
#ifndef ISCSI_SW_TCP_H
|
||||
#define ISCSI_SW_TCP_H
|
||||
|
||||
#include <scsi/libiscsi.h>
|
||||
#include <scsi/libiscsi_tcp.h>
|
||||
|
||||
struct crypto_hash;
|
||||
struct socket;
|
||||
struct iscsi_tcp_conn;
|
||||
struct iscsi_segment;
|
||||
|
||||
typedef int iscsi_segment_done_fn_t(struct iscsi_tcp_conn *,
|
||||
struct iscsi_segment *);
|
||||
|
||||
struct iscsi_segment {
|
||||
unsigned char *data;
|
||||
unsigned int size;
|
||||
unsigned int copied;
|
||||
unsigned int total_size;
|
||||
unsigned int total_copied;
|
||||
|
||||
struct hash_desc *hash;
|
||||
unsigned char recv_digest[ISCSI_DIGEST_SIZE];
|
||||
unsigned char digest[ISCSI_DIGEST_SIZE];
|
||||
unsigned int digest_len;
|
||||
|
||||
struct scatterlist *sg;
|
||||
void *sg_mapped;
|
||||
unsigned int sg_offset;
|
||||
|
||||
iscsi_segment_done_fn_t *done;
|
||||
};
|
||||
|
||||
/* Socket connection recieve helper */
|
||||
struct iscsi_tcp_recv {
|
||||
struct iscsi_hdr *hdr;
|
||||
struct iscsi_segment segment;
|
||||
|
||||
/* Allocate buffer for BHS + AHS */
|
||||
uint32_t hdr_buf[64];
|
||||
|
||||
/* copied and flipped values */
|
||||
int datalen;
|
||||
};
|
||||
|
||||
/* Socket connection send helper */
|
||||
struct iscsi_tcp_send {
|
||||
struct iscsi_sw_tcp_send {
|
||||
struct iscsi_hdr *hdr;
|
||||
struct iscsi_segment segment;
|
||||
struct iscsi_segment data_segment;
|
||||
};
|
||||
|
||||
struct iscsi_tcp_conn {
|
||||
struct iscsi_sw_tcp_conn {
|
||||
struct iscsi_conn *iscsi_conn;
|
||||
struct socket *sock;
|
||||
int stop_stage; /* conn_stop() flag: *
|
||||
* stop to recover, *
|
||||
* stop to terminate */
|
||||
/* control data */
|
||||
struct iscsi_tcp_recv in; /* TCP receive context */
|
||||
struct iscsi_tcp_send out; /* TCP send context */
|
||||
|
||||
struct iscsi_sw_tcp_send out;
|
||||
/* old values for socket callbacks */
|
||||
void (*old_data_ready)(struct sock *, int);
|
||||
void (*old_state_change)(struct sock *);
|
||||
@ -93,24 +53,13 @@ struct iscsi_tcp_conn {
|
||||
uint32_t sendpage_failures_cnt;
|
||||
uint32_t discontiguous_hdr_cnt;
|
||||
|
||||
int error;
|
||||
|
||||
ssize_t (*sendpage)(struct socket *, struct page *, int, size_t, int);
|
||||
};
|
||||
|
||||
struct iscsi_tcp_task {
|
||||
struct iscsi_hdr_buff {
|
||||
struct iscsi_hdr hdrbuf;
|
||||
char hdrextbuf[ISCSI_MAX_AHS_SIZE +
|
||||
struct iscsi_sw_tcp_hdrbuf {
|
||||
struct iscsi_hdr hdrbuf;
|
||||
char hdrextbuf[ISCSI_MAX_AHS_SIZE +
|
||||
ISCSI_DIGEST_SIZE];
|
||||
} hdr;
|
||||
|
||||
int sent;
|
||||
uint32_t exp_datasn; /* expected target's R2TSN/DataSN */
|
||||
int data_offset;
|
||||
struct iscsi_r2t_info *r2t; /* in progress solict R2T */
|
||||
struct iscsi_pool r2tpool;
|
||||
struct kfifo *r2tqueue;
|
||||
};
|
||||
|
||||
#endif /* ISCSI_H */
|
||||
#endif /* ISCSI_SW_TCP_H */
|
||||
|
Loading…
Reference in New Issue
Block a user