mirror of
https://github.com/adulau/aha.git
synced 2024-12-27 19:26:25 +00: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
3 changed files with 280 additions and 1359 deletions
|
@ -36,7 +36,7 @@ obj-$(CONFIG_SCSI_SAS_LIBSAS) += libsas/
|
||||||
obj-$(CONFIG_SCSI_SRP_ATTRS) += scsi_transport_srp.o
|
obj-$(CONFIG_SCSI_SRP_ATTRS) += scsi_transport_srp.o
|
||||||
obj-$(CONFIG_SCSI_DH) += device_handler/
|
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_INFINIBAND_ISER) += libiscsi.o
|
||||||
obj-$(CONFIG_SCSI_A4000T) += 53c700.o a4000t.o
|
obj-$(CONFIG_SCSI_A4000T) += 53c700.o a4000t.o
|
||||||
obj-$(CONFIG_SCSI_ZORRO7XX) += 53c700.o zorro7xx.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.
|
* See the file COPYING included with this distribution for more details.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef ISCSI_TCP_H
|
#ifndef ISCSI_SW_TCP_H
|
||||||
#define ISCSI_TCP_H
|
#define ISCSI_SW_TCP_H
|
||||||
|
|
||||||
#include <scsi/libiscsi.h>
|
#include <scsi/libiscsi.h>
|
||||||
|
#include <scsi/libiscsi_tcp.h>
|
||||||
|
|
||||||
struct crypto_hash;
|
|
||||||
struct socket;
|
struct socket;
|
||||||
struct iscsi_tcp_conn;
|
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 */
|
/* Socket connection send helper */
|
||||||
struct iscsi_tcp_send {
|
struct iscsi_sw_tcp_send {
|
||||||
struct iscsi_hdr *hdr;
|
struct iscsi_hdr *hdr;
|
||||||
struct iscsi_segment segment;
|
struct iscsi_segment segment;
|
||||||
struct iscsi_segment data_segment;
|
struct iscsi_segment data_segment;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct iscsi_tcp_conn {
|
struct iscsi_sw_tcp_conn {
|
||||||
struct iscsi_conn *iscsi_conn;
|
struct iscsi_conn *iscsi_conn;
|
||||||
struct socket *sock;
|
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 */
|
/* old values for socket callbacks */
|
||||||
void (*old_data_ready)(struct sock *, int);
|
void (*old_data_ready)(struct sock *, int);
|
||||||
void (*old_state_change)(struct sock *);
|
void (*old_state_change)(struct sock *);
|
||||||
|
@ -93,24 +53,13 @@ struct iscsi_tcp_conn {
|
||||||
uint32_t sendpage_failures_cnt;
|
uint32_t sendpage_failures_cnt;
|
||||||
uint32_t discontiguous_hdr_cnt;
|
uint32_t discontiguous_hdr_cnt;
|
||||||
|
|
||||||
int error;
|
|
||||||
|
|
||||||
ssize_t (*sendpage)(struct socket *, struct page *, int, size_t, int);
|
ssize_t (*sendpage)(struct socket *, struct page *, int, size_t, int);
|
||||||
};
|
};
|
||||||
|
|
||||||
struct iscsi_tcp_task {
|
struct iscsi_sw_tcp_hdrbuf {
|
||||||
struct iscsi_hdr_buff {
|
struct iscsi_hdr hdrbuf;
|
||||||
struct iscsi_hdr hdrbuf;
|
char hdrextbuf[ISCSI_MAX_AHS_SIZE +
|
||||||
char hdrextbuf[ISCSI_MAX_AHS_SIZE +
|
|
||||||
ISCSI_DIGEST_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 a new issue