diff -Nurp ubuntu/iscsitarget/block-io.c /home/stefan/src/ubuntu-hardy/lum/ubuntu/block/iscsitarget/block-io.c
--- ubuntu/iscsitarget/block-io.c	2008-09-25 00:06:09.000000000 +0200
+++ /home/stefan/src/ubuntu-hardy/lum/ubuntu/block/iscsitarget/block-io.c	2008-10-03 20:59:17.000000000 +0200
@@ -9,7 +9,6 @@
  * This code is licenced under the GPL.
  */
 
-#include <linux/types.h>
 #include <linux/parser.h>
 #include <linux/blkdev.h>
 #include <linux/buffer_head.h>
@@ -29,15 +28,10 @@ struct tio_work {
 	struct completion tio_complete;
 };
 
-static void
-blockio_bio_endio(struct bio *bio, int error)
+static void blockio_bio_endio(struct bio *bio, int error)
 {
 	struct tio_work *tio_work = bio->bi_private;
 
-	/* Ignore partials */
-	if (bio->bi_size)
-		return;
-
 	error = test_bit(BIO_UPTODATE, &bio->bi_flags) ? error : -EIO;
 
 	if (error)
diff -Nurp ubuntu/iscsitarget/BOM /home/stefan/src/ubuntu-hardy/lum/ubuntu/block/iscsitarget/BOM
--- ubuntu/iscsitarget/BOM	2008-09-25 00:06:09.000000000 +0200
+++ /home/stefan/src/ubuntu-hardy/lum/ubuntu/block/iscsitarget/BOM	1970-01-01 01:00:00.000000000 +0100
@@ -1,2 +0,0 @@
-Downloaded from:	http://www.amherst.edu/~swplotner/iscsitarget/download/iscsitarget/
-Current Version:	0.4.15.145
diff -Nurp ubuntu/iscsitarget/config.c /home/stefan/src/ubuntu-hardy/lum/ubuntu/block/iscsitarget/config.c
--- ubuntu/iscsitarget/config.c	2008-09-25 00:06:09.000000000 +0200
+++ /home/stefan/src/ubuntu-hardy/lum/ubuntu/block/iscsitarget/config.c	2008-10-03 20:59:17.000000000 +0200
@@ -40,7 +40,7 @@ int iet_procfs_init(void)
 	int i;
 	struct proc_dir_entry *ent;
 
-	if (!(proc_iet_dir = proc_mkdir("net/iet", 0)))
+	if (!(proc_iet_dir = proc_mkdir("iet", init_net.proc_net)))
 		goto err;
 
 	proc_iet_dir->owner = THIS_MODULE;
diff -Nurp ubuntu/iscsitarget/digest.c /home/stefan/src/ubuntu-hardy/lum/ubuntu/block/iscsitarget/digest.c
--- ubuntu/iscsitarget/digest.c	2008-09-25 00:06:09.000000000 +0200
+++ /home/stefan/src/ubuntu-hardy/lum/ubuntu/block/iscsitarget/digest.c	2008-10-03 20:59:17.000000000 +0200
@@ -215,6 +215,7 @@ static void digest_data(struct hash_desc
 
 	assert(count <= ISCSI_CONN_IOV_MAX);
 
+	sg_init_table(sg, ARRAY_SIZE(cmnd->conn->hash_sg));
 	crypto_hash_init(hash);
 
 	for (i = 0; size; i++) {
@@ -228,6 +229,8 @@ static void digest_data(struct hash_desc
 		offset = 0;
 	}
 
+	sg_mark_end(&sg[i - 1]);
+
 	crypto_hash_update(hash, sg, nbytes);
 	crypto_hash_final(hash, crc);
 }
diff -Nurp ubuntu/iscsitarget/event.c /home/stefan/src/ubuntu-hardy/lum/ubuntu/block/iscsitarget/event.c
--- ubuntu/iscsitarget/event.c	2008-09-25 00:06:09.000000000 +0200
+++ /home/stefan/src/ubuntu-hardy/lum/ubuntu/block/iscsitarget/event.c	2008-10-03 20:59:17.000000000 +0200
@@ -37,7 +37,7 @@ static void event_recv_skb(struct sk_buf
 	while (skb->len >= NLMSG_SPACE(0)) {
 		nlh = (struct nlmsghdr *)skb->data;
 		if (nlh->nlmsg_len < sizeof(*nlh) || skb->len < nlh->nlmsg_len)
-			return;
+			break;
 		rlen = NLMSG_ALIGN(nlh->nlmsg_len);
 		if (rlen > skb->len)
 			rlen = skb->len;
@@ -47,23 +47,8 @@ static void event_recv_skb(struct sk_buf
 			netlink_ack(skb, nlh, 0);
 		skb_pull(skb, rlen);
 	}
-	return;
 }
 
-#if 0
-static void event_recv(struct sock *sk, int length)
-{
-	struct sk_buff *skb;
-
-	while ((skb = skb_dequeue(&sk->sk_receive_queue))) {
-		if (event_recv_skb(skb) && skb->len)
-			skb_queue_head(&sk->sk_receive_queue, skb);
-		else
-			kfree_skb(skb);
-	}
-}
-#endif
-
 static int notify(void *data, int len, int gfp_mask)
 {
 	struct sk_buff *skb;
@@ -99,7 +84,6 @@ int event_init(void)
 {
 	nl = netlink_kernel_create(&init_net, NETLINK_IET, 1, event_recv_skb,
 				   NULL, THIS_MODULE);
-
 	if (!nl)
 		return -ENOMEM;
 	else
diff -Nurp ubuntu/iscsitarget/Kconfig /home/stefan/src/ubuntu-hardy/lum/ubuntu/block/iscsitarget/Kconfig
--- ubuntu/iscsitarget/Kconfig	2008-09-25 00:06:09.000000000 +0200
+++ /home/stefan/src/ubuntu-hardy/lum/ubuntu/block/iscsitarget/Kconfig	1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
-config SCSI_ISCSITARGET
-	tristate "iSCSI Target Driver"
-	depends on SCSI
diff -Nurp ubuntu/iscsitarget/Makefile /home/stefan/src/ubuntu-hardy/lum/ubuntu/block/iscsitarget/Makefile
--- ubuntu/iscsitarget/Makefile	2008-09-25 00:06:09.000000000 +0200
+++ /home/stefan/src/ubuntu-hardy/lum/ubuntu/block/iscsitarget/Makefile	2008-10-03 20:59:17.000000000 +0200
@@ -1,9 +1,6 @@
-#
-# Makefile for the Linux kernel device drivers.
-#
-
-obj-$(CONFIG_SCSI_ISCSITARGET)		+= iscsi_trgt.o
+obj-m		+= iscsi_trgt.o
 iscsi_trgt-objs	:= tio.o iscsi.o nthread.o wthread.o config.o digest.o \
 			conn.o session.o target.o volume.o iotype.o \
 			file-io.o null-io.o target_disk.o event.o param.o \
 			block-io.o
+
