[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