]> xenbits.xen.org Git - xenclient/kernel.git/commitdiff
Apply open-iscsi-2.0-865.13-2.6.18-18_compat.patch from open-iscsi-2.0.865.13.tar.gz open-iscsi-2.0-865.13
authort_jeang <devnull@localhost>
Tue, 6 Jan 2009 12:05:59 +0000 (12:05 +0000)
committert_jeang <devnull@localhost>
Tue, 6 Jan 2009 12:05:59 +0000 (12:05 +0000)
drivers/scsi/iscsi_2.6.20_compat.h [new file with mode: 0644]
drivers/scsi/iscsi_2.6.22_compat.h [new file with mode: 0644]
drivers/scsi/iscsi_tcp.h
drivers/scsi/libiscsi.c
drivers/scsi/scsi_transport_iscsi.c
include/scsi/libiscsi.h
include/scsi/scsi_transport_iscsi.h

diff --git a/drivers/scsi/iscsi_2.6.20_compat.h b/drivers/scsi/iscsi_2.6.20_compat.h
new file mode 100644 (file)
index 0000000..84e3165
--- /dev/null
@@ -0,0 +1,59 @@
+
+#define CRYPTO_ALG_ASYNC               0x00000080
+struct hash_desc
+{
+       struct crypto_tfm *tfm;
+       u32 flags;
+};
+
+static inline int crypto_hash_init(struct hash_desc *desc)
+{
+       crypto_digest_init(desc->tfm);
+       return 0;
+}
+
+static inline int crypto_hash_digest(struct hash_desc *desc,
+                                    struct scatterlist *sg,
+                                    unsigned int nbytes, u8 *out)
+{
+       crypto_digest_digest(desc->tfm, sg, 1, out);
+       return nbytes;
+}
+
+static inline int crypto_hash_update(struct hash_desc *desc,
+                                    struct scatterlist *sg,
+                                    unsigned int nbytes)
+{
+       crypto_digest_update(desc->tfm, sg, 1);
+       return nbytes;
+}
+
+static inline int crypto_hash_final(struct hash_desc *desc, u8 *out)
+{
+       crypto_digest_final(desc->tfm, out);
+       return 0;
+}
+
+static inline struct crypto_tfm *crypto_alloc_hash(const char *alg_name,
+                                                   u32 type, u32 mask)
+{
+       struct crypto_tfm *ret = crypto_alloc_tfm(alg_name ,type);
+       return ret ? ret : ERR_PTR(-ENOMEM);
+}
+
+static inline void crypto_free_hash(struct crypto_tfm *tfm)
+{
+       crypto_free_tfm(tfm);
+}
+
+int kernel_getsockname(struct socket *sock, struct sockaddr *addr,
+                       int *addrlen)
+{
+       return sock->ops->getname(sock, addr, addrlen, 0);
+}
+
+int kernel_getpeername(struct socket *sock, struct sockaddr *addr,
+                       int *addrlen)
+{
+       return sock->ops->getname(sock, addr, addrlen, 1);
+}
diff --git a/drivers/scsi/iscsi_2.6.22_compat.h b/drivers/scsi/iscsi_2.6.22_compat.h
new file mode 100644 (file)
index 0000000..6627292
--- /dev/null
@@ -0,0 +1,6 @@
+#include <linux/version.h>
+
+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,21)
+#define netlink_kernel_create(uint, groups, input, cb_mutex, mod) \
+       netlink_kernel_create(uint, groups, input, mod)
+#endif
index 4b86fe4d00b6e08f5d661589a3468602e595f79f..1b4336d5a8a905241790f228f8d9f9ac18fbb7ec 100644 (file)
@@ -52,6 +52,8 @@
 #define ISCSI_SG_TABLESIZE             SG_ALL
 #define ISCSI_TCP_MAX_CMD_LEN          16
 
+#include "iscsi_2.6.20_compat.h"
+#include "iscsi_2.6.22_compat.h"
 struct crypto_hash;
 struct socket;
 
index 0a64150677c28efd617f5fb7c15ec269b2e7d02c..002963d223ef5e60c8154df06bba927868721e5c 100644 (file)
@@ -780,10 +780,9 @@ again:
        return rc;
 }
 
-static void iscsi_xmitworker(struct work_struct *work)
+static void iscsi_xmitworker(void *data)
 {
-       struct iscsi_conn *conn =
-               container_of(work, struct iscsi_conn, xmitwork);
+       struct iscsi_conn *conn = data;
        int rc;
        /*
         * serialize Xmit worker on a per-connection basis.
@@ -1643,7 +1642,7 @@ iscsi_conn_setup(struct iscsi_cls_session *cls_session, uint32_t conn_idx)
        INIT_LIST_HEAD(&conn->mgmtqueue);
        INIT_LIST_HEAD(&conn->xmitqueue);
        INIT_LIST_HEAD(&conn->requeue);
-       INIT_WORK(&conn->xmitwork, iscsi_xmitworker);
+       INIT_WORK(&conn->xmitwork, iscsi_xmitworker, conn);
 
        /* allocate login_mtask used for the login/text sequences */
        spin_lock_bh(&session->lock);
index 96d44c3d13f94624352f00b026ca653599832e68..505b4260d8f79c19dd313694263e271e6e497fbe 100644 (file)
@@ -29,6 +29,7 @@
 #include <scsi/scsi_transport.h>
 #include "scsi_transport_iscsi.h"
 #include "iscsi_if.h"
+#include "iscsi_2.6.22_compat.h"
 
 #define ISCSI_SESSION_ATTRS 16
 #define ISCSI_CONN_ATTRS 11
@@ -234,11 +235,9 @@ static int iscsi_user_scan(struct Scsi_Host *shost, uint channel,
        return 0;
 }
 
-static void session_recovery_timedout(struct work_struct *work)
+static void session_recovery_timedout(void *data)
 {
-       struct iscsi_cls_session *session =
-               container_of(work, struct iscsi_cls_session,
-                            recovery_work.work);
+       struct iscsi_cls_session *session = data;
 
        dev_printk(KERN_INFO, &session->dev, "iscsi: session recovery timed "
                  "out after %d secs\n", session->recovery_tmo);
@@ -278,7 +277,7 @@ iscsi_alloc_session(struct Scsi_Host *shost,
 
        session->transport = transport;
        session->recovery_tmo = 120;
-       INIT_DELAYED_WORK(&session->recovery_work, session_recovery_timedout);
+       INIT_WORK(&session->recovery_work, session_recovery_timedout, session);
        INIT_LIST_HEAD(&session->host_list);
        INIT_LIST_HEAD(&session->sess_list);
 
index dbea6b466e03a02bcfe8c34a0ce881ffc1a83f71..b38baf7cb85040a69826d8a1eb41c71d5cab5d18 100644 (file)
@@ -25,8 +25,6 @@
 
 #include <linux/types.h>
 #include <linux/mutex.h>
-#include <linux/timer.h>
-#include <linux/workqueue.h>
 #include "iscsi_proto.h"
 #include "iscsi_if.h"
 
index 05e25542527cd77dc44e4d4b29eee0bda30ea0fd..562f63dc9b4ad2b1587f3a7a290f3480e9b2b507 100644 (file)
@@ -182,7 +182,7 @@ struct iscsi_cls_session {
 
        /* recovery fields */
        int recovery_tmo;
-       struct delayed_work recovery_work;
+       struct work_struct recovery_work;
 
        int target_id;