Hi,
I just wanted to report a small problem applying kernel/2.6.26_compat.patch and
provide an updated patch to fix the problem.
If you try to compile the source from current git master branch for
kernel-2.6.26,
you will encounter patch error.
Here is what I did.
bash-3.2$ git clone
git://git.kernel.org/pub/scm/linux/kernel/git/mnc/open-iscsi.git
bash-3.2$ git log --summary | head -3
commit fb4f2d3072bee96606d01e3535c100dc99b8d331
Author: Mike Christie micha...@cs.wisc.edu
Date: Wed Nov 25 18:09:39 2009 -0600
bash-3.2$ uname -r
2.6.26.8-57.laphroaig.fc8
bash-3.2$ make KSRC=/home/hiro/rpmbuild/BUILD/kernel-2.6.26/linux-2.6.26.i686/
snip-
make -C kernel
make[1]: Entering directory `/home/hiro/programming/git/open-iscsi/kernel'
echo Patching source code for linux-2.6.26 ...
Patching source code for linux-2.6.26 ...
if [ -e cur_patched ]; then \
make -C . clean; \
fi
patch -p1 2.6.26_compat.patch
patching file libiscsi.c
patching file open_iscsi_compat.h
patching file scsi_transport_iscsi.c
Hunk #1 FAILED at 30.
Hunk #2 succeeded at 146 (offset 31 lines).
Hunk #4 succeeded at 1405 (offset 92 lines).
Hunk #6 succeeded at 1548 (offset 119 lines).
Hunk #8 succeeded at 2080 (offset 123 lines).
Hunk #10 succeeded at 2134 (offset 123 lines).
1 out of 10 hunks FAILED -- saving rejects to file scsi_transport_iscsi.c.rej
make[1]: *** [has_26_patch] Error 1
make[1]: Leaving directory `/home/hiro/programming/git/open-iscsi/kernel'
make: *** [kernel] Error 2
You can see that patchihg scsi_transport_iscsi.c failed.
The problematic hunk in 2.6.26_compat.patch is
#define ISCSI_SESSION_ATTRS 21. In the latest source file,
ISCSI_SESSION_ATTRS is 22, but that macro was left
to be 21 in the patch, so patch command fails since
it cannot find proper context.
bash-3.2$ cat kernel/2.6.26_compat.patch
snip
diff --git a/scsi_transport_iscsi.c b/scsi_transport_iscsi.c
index a49a92c..c07535e 100644
--- a/scsi_transport_iscsi.c
+++ b/scsi_transport_iscsi.c
@@ -30,6 +30,8 @@
#include scsi_transport_iscsi.h
#include iscsi_if.h
+#include open_iscsi_compat.h
+
#define ISCSI_SESSION_ATTRS 21
#define ISCSI_CONN_ATTRS 13
#define ISCSI_HOST_ATTRS 4
bash-3.2$ cat -n kernel/scsi_transport_iscsi.c | grep define
ISCSI_SESSION_ATTRS
33 #define ISCSI_SESSION_ATTRS 22
I attached the updated 2.6.26_compat.patch. Please check it.
Thanks.
Kim
--
You received this message because you are subscribed to the Google Groups
open-iscsi group.
To post to this group, send email to open-is...@googlegroups.com.
To unsubscribe from this group, send email to
open-iscsi+unsubscr...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/open-iscsi?hl=en.
diff --git a/libiscsi.c b/libiscsi.c
index 0b810b6..6ffb49c 100644
--- a/libiscsi.c
+++ b/libiscsi.c
@@ -38,6 +38,8 @@
#include scsi_transport_iscsi.h
#include libiscsi.h
+#include open_iscsi_compat.h
+
static int iscsi_dbg_lib_conn;
module_param_named(debug_libiscsi_conn, iscsi_dbg_lib_conn, int,
S_IRUGO | S_IWUSR);
diff --git a/scsi_transport_iscsi.c b/scsi_transport_iscsi.c
index f64ffa7..c6eeae0 100644
--- a/scsi_transport_iscsi.c
+++ b/scsi_transport_iscsi.c
@@ -30,6 +30,8 @@
#include scsi_transport_iscsi.h
#include iscsi_if.h
+#include open_iscsi_compat.h
+
#define ISCSI_SESSION_ATTRS 22
#define ISCSI_CONN_ATTRS 13
#define ISCSI_HOST_ATTRS 4
@@ -144,6 +146,7 @@ static struct attribute_group iscsi_transport_group = {
.attrs = iscsi_transport_attrs,
};
+#if 0
/*
* iSCSI endpoint attrs
*/
@@ -267,6 +270,7 @@ struct iscsi_endpoint *iscsi_lookup_endpoint(u64 handle)
return ep;
}
EXPORT_SYMBOL_GPL(iscsi_lookup_endpoint);
+#endif
static int iscsi_setup_host(struct transport_container *tc, struct device *dev,
struct device *cdev)
@@ -1401,6 +1405,8 @@ static int
iscsi_if_transport_ep(struct iscsi_transport *transport,
struct iscsi_uevent *ev, int msg_type)
{
+ return -ENOSYS;
+#if 0
struct iscsi_endpoint *ep;
int rc = 0;
@@ -1432,6 +1438,8 @@ iscsi_if_transport_ep(struct iscsi_transport *transport,
break;
}
return rc;
+
+#endif
}
static int
@@ -1540,6 +1548,9 @@ iscsi_if_recv_msg(struct sk_buff *skb, struct nlmsghdr *nlh, uint32_t *group)
ev-u.c_session.queue_depth);
break;
case ISCSI_UEVENT_CREATE_BOUND_SESSION:
+ err = -ENOSYS;
+ break;
+#if 0
ep = iscsi_lookup_endpoint(ev-u.c_bound_session.ep_handle);
if (!ep) {
err = -EINVAL;
@@ -1551,6 +1562,7 @@ iscsi_if_recv_msg(struct sk_buff *skb, struct nlmsghdr *nlh, uint32_t *group)
ev-u.c_bound_session.cmds_max,
ev-u.c_bound_session.queue_depth);
break;
+#endif
case ISCSI_UEVENT_DESTROY_SESSION:
session = iscsi_session_lookup(ev-u.d_session.sid);
if (session)
@@ -2068,13 +2080,14 @@ static __init int iscsi_transport_init(void)
if (err)
return err;
+#if 0
err = class_register(iscsi_endpoint_class);
if (err)
goto