[Pkg-iscsi-maintainers] [iscsitarget] 01/07: Imported Upstream version 1.4.20.3+svn496

Ritesh Raj Sarraf rrs at alioth.debian.org
Thu Sep 26 14:40:42 UTC 2013


This is an automated email from the git hooks/post-receive script.

rrs pushed a commit to branch master
in repository iscsitarget.

commit 798662d3bc1f969d30948600d77089872954b480
Author: Ritesh Raj Sarraf <rrs at debian.org>
Date:   Thu Sep 26 18:00:13 2013 +0530

    Imported Upstream version 1.4.20.3+svn496
---
 Makefile                 |    8 +++++
 dkms.conf                |   78 ++++++++++++++++++++++++++++------------------
 kernel/block-io.c        |    4 +--
 kernel/config.c          |    9 +++---
 kernel/event.c           |   10 +++---
 kernel/file-io.c         |    2 +-
 kernel/target.c          |    3 +-
 kernel/target_disk.c     |   13 ++++----
 patches/compat-3.6.patch |   21 +++++++++++++
 patches/compat-3.9.patch |   27 ++++++++++++++++
 10 files changed, 124 insertions(+), 51 deletions(-)

diff --git a/Makefile b/Makefile
index df41642..cd2e31d 100644
--- a/Makefile
+++ b/Makefile
@@ -66,6 +66,14 @@ kver_lk = $(shell [ `echo $(KVER) | egrep $(1)` ] && echo 1 || echo 0)
 # base first the earlier patch sets will not need to be modified.
 #
 
+ifeq ($(call kver_lt,3,10,0),1)
+	PATCHES := $(PATCHES) compat-3.9.patch
+endif
+
+ifeq ($(call kver_lt,3,7,0),1)
+	PATCHES := $(PATCHES) compat-3.6.patch
+endif
+
 ifeq ($(call kver_le,3,5,0),1)
 	PATCHES := $(PATCHES) compat-3.5.patch
 endif
diff --git a/dkms.conf b/dkms.conf
index a4fc9e5..f0812c4 100644
--- a/dkms.conf
+++ b/dkms.conf
@@ -20,48 +20,66 @@ AUTOINSTALL="yes"
 # Patches newest - oldest, distro spec at bottom
 #
 
-PATCH[0]="compat-2.6.36-2.6.37.patch"
-PATCH_MATCH[0]="2\.6\.(9|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37)"
+PATCH[0]="compat-3.9.patch"
+PATCH_MATCH[0]="(2\.6\.(9|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38|39)|3\.(0|1|2|3|4|5|6|7|8|9)\.0)"
 
-PATCH[1]="compat-2.6.33-2.6.35.patch"
-PATCH_MATCH[1]="2\.6\.(9|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35)"
+PATCH[1]="compat-3.6.patch"
+PATCH_MATCH[1]="(2\.6\.(9|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38|39)|3\.(0|1|2|3|4|5|6)\.0)"
 
-PATCH[2]="compat-2.6.32.patch"
-PATCH_MATCH[2]="2\.6\.(9|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32)"
+PATCH[2]="compat-3.5.patch"
+PATCH_MATCH[2]="(2\.6\.(9|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38|39)|3\.(0|1|2|3|4|5)\.0)"
 
-PATCH[3]="compat-2.6.31.patch"
-PATCH_MATCH[3]="2\.6\.(9|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31)"
+PATCH[3]="compat-3.2-3.4.patch"
+PATCH_MATCH[3]="(2\.6\.(9|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38|39)|3\.(0|1|2|3|4)\.0)"
 
-PATCH[4]="compat-2.6.30.patch"
-PATCH_MATCH[4]="2\.6\.(9|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30)"
+PATCH[4]="compat-2.6.39-3.2.patch"
+PATCH_MATCH[4]="(2\.6\.(9|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38|39)|3\.(0|1|2)\.0)"
 
-PATCH[5]="compat-2.6.29.patch"
-PATCH_MATCH[5]="2\.6\.(9|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29)"
+PATCH[5]="compat-2.6.38.patch"
+PATCH_MATCH[5]="2\.6\.(9|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38)"
 
-PATCH[6]="compat-2.6.28.patch"
-PATCH_MATCH[6]="2\.6\.(9|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28)"
+PATCH[6]="compat-2.6.36-2.6.37.patch"
+PATCH_MATCH[6]="2\.6\.(9|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37)"
 
-PATCH[7]="compat-2.6.25-2.6.27.patch"
-PATCH_MATCH[7]="2\.6\.(9|14|15|16|17|18|19|20|21|22|23|24|25|26|27)"
+PATCH[7]="compat-2.6.33-2.6.35.patch"
+PATCH_MATCH[7]="2\.6\.(9|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35)"
 
-PATCH[8]="compat-2.6.24.patch"
-PATCH_MATCH[8]="2\.6\.(9|14|15|16|17|18|19|20|21|22|23|24)"
+PATCH[8]="compat-2.6.32.patch"
+PATCH_MATCH[8]="2\.6\.(9|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32)"
 
-PATCH[9]="compat-2.6.23.patch"
-PATCH_MATCH[9]="2\.6\.(9|14|15|16|17|18|19|20|21|22|23)"
+PATCH[9]="compat-2.6.31.patch"
+PATCH_MATCH[9]="2\.6\.(9|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31)"
 
-PATCH[10]="compat-2.6.22.patch"
-PATCH_MATCH[10]="2\.6\.(9|14|15|16|17|18|19|20|21|22)"
+PATCH[10]="compat-2.6.30.patch"
+PATCH_MATCH[10]="2\.6\.(9|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30)"
 
-PATCH[11]="compat-2.6.19-2.6.21.patch"
-PATCH_MATCH[11]="2\.6\.(9|14|15|16|17|18|19|20|21)"
+PATCH[11]="compat-2.6.29.patch"
+PATCH_MATCH[11]="2\.6\.(9|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29)"
 
-PATCH[12]="compat-2.6.14-2.6.18.patch"
-PATCH_MATCH[12]="2\.6\.(9|14|15|16|17|18)"
+PATCH[12]="compat-2.6.28.patch"
+PATCH_MATCH[12]="2\.6\.(9|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28)"
 
-PATCH[13]="compat-sles10sp2.patch"
-PATCH_MATCH[13]="2\.6\.16\.60-.*"
+PATCH[13]="compat-2.6.25-2.6.27.patch"
+PATCH_MATCH[13]="2\.6\.(9|14|15|16|17|18|19|20|21|22|23|24|25|26|27)"
 
-PATCH[14]="compat-rhel4.patch"
-PATCH_MATCH[14]="2\.6\.9-.*\.(el|plus\.c4)"
+PATCH[14]="compat-2.6.24.patch"
+PATCH_MATCH[14]="2\.6\.(9|14|15|16|17|18|19|20|21|22|23|24)"
+
+PATCH[15]="compat-2.6.23.patch"
+PATCH_MATCH[15]="2\.6\.(9|14|15|16|17|18|19|20|21|22|23)"
+
+PATCH[16]="compat-2.6.22.patch"
+PATCH_MATCH[16]="2\.6\.(9|14|15|16|17|18|19|20|21|22)"
+
+PATCH[17]="compat-2.6.19-2.6.21.patch"
+PATCH_MATCH[17]="2\.6\.(9|14|15|16|17|18|19|20|21)"
+
+PATCH[18]="compat-2.6.14-2.6.18.patch"
+PATCH_MATCH[18]="2\.6\.(9|14|15|16|17|18)"
+
+PATCH[19]="compat-sles10sp2.patch"
+PATCH_MATCH[19]="2\.6\.16\.60-.*"
+
+PATCH[20]="compat-rhel4.patch"
+PATCH_MATCH[20]="2\.6\.9-.*\.(el|plus\.c4)"
 
diff --git a/kernel/block-io.c b/kernel/block-io.c
index dffc4d0..7c9ea21 100644
--- a/kernel/block-io.c
+++ b/kernel/block-io.c
@@ -79,7 +79,7 @@ blockio_make_request(struct iet_volume *volume, struct tio *tio, int rw)
 	init_completion(&tio_work->tio_complete);
 
 	/* Main processing loop, allocate and fill all bios */
-	while (tio_index < tio->pg_cnt) {
+	while (size && tio_index < tio->pg_cnt) {
 		bio = bio_alloc(GFP_KERNEL, min(max_pages, BIO_MAX_PAGES));
 		if (!bio) {
 			err = -ENOMEM;
@@ -100,7 +100,7 @@ blockio_make_request(struct iet_volume *volume, struct tio *tio, int rw)
 		atomic_inc(&tio_work->bios_remaining);
 
 		/* Loop for filling bio */
-		while (tio_index < tio->pg_cnt) {
+		while (size && tio_index < tio->pg_cnt) {
 			unsigned int bytes = PAGE_SIZE;
 
 			if (bytes > size)
diff --git a/kernel/config.c b/kernel/config.c
index 672a1e3..cd1d2f6 100644
--- a/kernel/config.c
+++ b/kernel/config.c
@@ -34,7 +34,7 @@ void iet_procfs_exit(void)
 	for (i = 0; i < ARRAY_SIZE(iet_proc_entries); i++)
 		remove_proc_entry(iet_proc_entries[i].name, proc_iet_dir);
 
-	remove_proc_entry(proc_iet_dir->name, proc_iet_dir->parent);
+	proc_remove(proc_iet_dir);
 }
 
 int iet_procfs_init(void)
@@ -46,10 +46,9 @@ int iet_procfs_init(void)
 		goto err;
 
 	for (i = 0; i < ARRAY_SIZE(iet_proc_entries); i++) {
-		ent = create_proc_entry(iet_proc_entries[i].name, 0, proc_iet_dir);
-		if (ent)
-			ent->proc_fops = iet_proc_entries[i].fops;
-		else
+		ent = proc_create(iet_proc_entries[i].name, 0, proc_iet_dir,
+                          iet_proc_entries[i].fops);
+		if (!ent)
 			goto err;
 	}
 
diff --git a/kernel/event.c b/kernel/event.c
index 1c5f3a4..ef4adcb 100644
--- a/kernel/event.c
+++ b/kernel/event.c
@@ -26,7 +26,7 @@ static void event_recv_skb(struct sk_buff *skb)
 		rlen = NLMSG_ALIGN(nlh->nlmsg_len);
 		if (rlen > skb->len)
 			rlen = skb->len;
-		ietd_pid = NETLINK_CB(skb).pid;
+		ietd_pid = NETLINK_CB(skb).portid;
 		WARN_ON(ietd_pid == 0);
 		if (nlh->nlmsg_flags & NLM_F_ACK)
 			netlink_ack(skb, nlh, 0);
@@ -39,12 +39,13 @@ static int notify(void *data, int len, int gfp_mask)
 	struct sk_buff *skb;
 	struct nlmsghdr *nlh;
 	static u32 seq = 0;
+	int payload = NLMSG_SPACE(len);
 
-	if (!(skb = alloc_skb(NLMSG_SPACE(len), gfp_mask)))
+	if (!(skb = alloc_skb(payload, gfp_mask)))
 		return -ENOMEM;
 
 	WARN_ON(ietd_pid == 0);
-	nlh = __nlmsg_put(skb, ietd_pid, seq++, NLMSG_DONE, len - sizeof(*nlh), 0);
+	nlh = __nlmsg_put(skb, ietd_pid, seq++, NLMSG_DONE, payload - sizeof(*nlh), 0);
 
 	memcpy(NLMSG_DATA(nlh), data, len);
 
@@ -61,7 +62,7 @@ int event_send(u32 tid, u64 sid, u32 cid, u32 state, int atomic)
 	event.cid = cid;
 	event.state = state;
 
-	err = notify(&event, NLMSG_SPACE(sizeof(struct iet_event)), 0);
+	err = notify(&event, sizeof(struct iet_event), 0);
 
 	return err;
 }
@@ -77,7 +78,6 @@ int event_init(void)
 
 	nl = netlink_kernel_create(&init_net,
 				   NETLINK_IET,
-				   THIS_MODULE,
 				   &cfg);
 	if (!nl)
 		return -ENOMEM;
diff --git a/kernel/file-io.c b/kernel/file-io.c
index 21a986a..8c4a7f7 100644
--- a/kernel/file-io.c
+++ b/kernel/file-io.c
@@ -34,7 +34,7 @@ static int fileio_make_request(struct iet_volume *lu, struct tio *tio, int rw)
 	size = tio->size;
 	ppos = tio->offset;
 
-	for (i = 0; i < tio->pg_cnt; i++) {
+	for (i = 0; i < tio->pg_cnt && size; i++) {
 		page = tio->pvec[i];
 		assert(page);
 		buf = page_address(page);
diff --git a/kernel/target.c b/kernel/target.c
index b458ce1..656d8e3 100644
--- a/kernel/target.c
+++ b/kernel/target.c
@@ -343,7 +343,8 @@ static void *iet_seq_next(struct seq_file *m, void *v, loff_t *pos)
 
 static void iet_seq_stop(struct seq_file *m, void *v)
 {
-	mutex_unlock(&target_list_mutex);
+	if (PTR_ERR(v) != -EINTR)
+		mutex_unlock(&target_list_mutex);
 }
 
 static int iet_seq_show(struct seq_file *m, void *p)
diff --git a/kernel/target_disk.c b/kernel/target_disk.c
index 6b1de2c..14c0c11 100644
--- a/kernel/target_disk.c
+++ b/kernel/target_disk.c
@@ -413,14 +413,14 @@ static void build_write_same_response(struct iscsi_cmnd *cmnd) {
 	struct tio *target_tio;
 	struct iet_volume *lu = cmnd->lun;
 	struct tio_iterator iter;
-	u32 MAX_IO_SIZE = 1 << 30; /* 1MByte */
-	u32 length, medium_length;
+	u32 MAX_IO_SIZE = 1 << 20; /* 1MByte */
+	u64 length, medium_length;
 	loff_t offset;
 	u8 *data_addr;
 	u32 data_size;
 
 	length = cmnd->tio->size;
-	medium_length = (u32)((loff_t) lu->blk_cnt << lu->blk_shift);
+	medium_length = ((loff_t) lu->blk_cnt << lu->blk_shift);
 	offset = cmnd->tio->offset;
 
 	data_addr = page_address(cmnd->tio->pvec[0]);
@@ -430,7 +430,7 @@ static void build_write_same_response(struct iscsi_cmnd *cmnd) {
 	if (length == 0) {
 		length = medium_length - offset + 1;
 		dprintk(D_VAAI,
-			"write to end, calculated length = %u\n", length);
+			"write to end, calculated length = %llu\n", length);
 	}
 
 	if (length + offset > medium_length) {
@@ -444,7 +444,6 @@ static void build_write_same_response(struct iscsi_cmnd *cmnd) {
 	/* Fill target_tio with data from request, because it's all
 	   same data, we can just reuse it later with differnt offset. */
 	target_tio = tio_alloc(get_pgcnt(min_t(u32, length, MAX_IO_SIZE)));
-	tio_get(target_tio);
 
 	tio_init_iterator(target_tio, &iter);
 	while(iter.pg_idx < target_tio->pg_cnt) {
@@ -452,7 +451,7 @@ static void build_write_same_response(struct iscsi_cmnd *cmnd) {
 	}
 
 	while (length > 0) {
-		u32 to_write = min_t(u32, length, MAX_IO_SIZE);
+		u32 to_write = (u32)min_t(u64, length, MAX_IO_SIZE);
 		tio_set(target_tio, to_write, offset);
 
 		/* submit to IO layer */
@@ -469,7 +468,7 @@ static void build_write_same_response(struct iscsi_cmnd *cmnd) {
 		length -= to_write;
 		offset += to_write;
 		dprintk(D_VAAI,
-			"Committed %u bytes, %u left, offset %llu\n",
+			"Committed %u bytes, %llu left, offset %llu\n",
 			to_write, length, offset);
 	}
 
diff --git a/patches/compat-3.6.patch b/patches/compat-3.6.patch
new file mode 100644
index 0000000..71f2406
--- /dev/null
+++ b/patches/compat-3.6.patch
@@ -0,0 +1,21 @@
+diff --git b/kernel/event.c a/kernel/event.c
+index ef4adcb..024c1be 100644
+--- b/kernel/event.c
++++ a/kernel/event.c
+@@ -26,7 +26,7 @@ static void event_recv_skb(struct sk_buff *skb)
+ 		rlen = NLMSG_ALIGN(nlh->nlmsg_len);
+ 		if (rlen > skb->len)
+ 			rlen = skb->len;
+-		ietd_pid = NETLINK_CB(skb).portid;
++		ietd_pid = NETLINK_CB(skb).pid;
+ 		WARN_ON(ietd_pid == 0);
+ 		if (nlh->nlmsg_flags & NLM_F_ACK)
+ 			netlink_ack(skb, nlh, 0);
+@@ -78,6 +78,7 @@ int event_init(void)
+ 
+ 	nl = netlink_kernel_create(&init_net,
+ 				   NETLINK_IET,
++				   THIS_MODULE,
+ 				   &cfg);
+ 	if (!nl)
+ 		return -ENOMEM;
diff --git a/patches/compat-3.9.patch b/patches/compat-3.9.patch
new file mode 100644
index 0000000..d3cf0da
--- /dev/null
+++ b/patches/compat-3.9.patch
@@ -0,0 +1,27 @@
+diff --git b/kernel/config.c a/kernel/config.c
+index cd1d2f6..672a1e3 100644
+--- b/kernel/config.c
++++ a/kernel/config.c
+@@ -34,7 +34,7 @@ void iet_procfs_exit(void)
+ 	for (i = 0; i < ARRAY_SIZE(iet_proc_entries); i++)
+ 		remove_proc_entry(iet_proc_entries[i].name, proc_iet_dir);
+ 
+-	proc_remove(proc_iet_dir);
++	remove_proc_entry(proc_iet_dir->name, proc_iet_dir->parent);
+ }
+ 
+ int iet_procfs_init(void)
+@@ -46,9 +46,10 @@ int iet_procfs_init(void)
+ 		goto err;
+ 
+ 	for (i = 0; i < ARRAY_SIZE(iet_proc_entries); i++) {
+-		ent = proc_create(iet_proc_entries[i].name, 0, proc_iet_dir,
+-                          iet_proc_entries[i].fops);
+-		if (!ent)
++		ent = create_proc_entry(iet_proc_entries[i].name, 0, proc_iet_dir);
++		if (ent)
++			ent->proc_fops = iet_proc_entries[i].fops;
++		else
+ 			goto err;
+ 	}
+ 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-iscsi/iscsitarget.git



More information about the Pkg-iscsi-maintainers mailing list