This commit is contained in:
parent
e03df61366
commit
422bfe39c4
@ -1,88 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
#
|
|
||||||
# /etc/init.d/iscsi
|
|
||||||
#
|
|
||||||
### BEGIN INIT INFO
|
|
||||||
# Provides: iscsiboot
|
|
||||||
# Required-Start: boot.proc
|
|
||||||
# Should-Start:
|
|
||||||
# Required-Stop:
|
|
||||||
# Should-Stop:
|
|
||||||
# Default-Start: B
|
|
||||||
# Default-Stop:
|
|
||||||
# Short-Description: Starts the iSCSI initiator daemon
|
|
||||||
# Description: iSCSI initiator daemon for root filesystem
|
|
||||||
# The iSCSI protocol allows for access of a disk via
|
|
||||||
# the network. This script starts the initiator daemon
|
|
||||||
# which is required if the root filesystem resides on
|
|
||||||
# an iSCSI disk.
|
|
||||||
### END INIT INFO
|
|
||||||
|
|
||||||
ISCSIADM=/sbin/iscsiadm
|
|
||||||
PID_FILE=/var/run/iscsi.pid
|
|
||||||
CONFIG_FILE=/etc/iscsid.conf
|
|
||||||
DAEMON=/sbin/iscsid
|
|
||||||
ARGS="-c $CONFIG_FILE -p $PID_FILE"
|
|
||||||
|
|
||||||
# Source LSB init functions
|
|
||||||
. /etc/rc.status
|
|
||||||
|
|
||||||
#
|
|
||||||
# This service is run right after booting. So all activated targets
|
|
||||||
# must be enabled during mkinitrd run and thus should not be removed
|
|
||||||
# when the open-iscsi service is stopped.
|
|
||||||
#
|
|
||||||
iscsi_mark_root_nodes()
|
|
||||||
{
|
|
||||||
TARGETS=$($ISCSIADM -m session 2> /dev/null | sed 's@.*\[[^:]*:\(.*\)\] .*@\1@g')
|
|
||||||
for rec in $TARGETS; do
|
|
||||||
STARTUP=`$ISCSIADM -m node -r $rec | grep "node.conn\[0\].startup" | cut -d' ' -f3`
|
|
||||||
if [ "$STARTUP" != "onboot" ] ; then
|
|
||||||
$ISCSIADM -m node -r $rec -o update -n node.conn[0].startup -v onboot
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
# Reset status of this service
|
|
||||||
rc_reset
|
|
||||||
|
|
||||||
# We only need to start this for root on iSCSI
|
|
||||||
if ! grep -q iscsi_tcp /proc/modules ; then
|
|
||||||
rc_failed 6
|
|
||||||
rc_exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
start)
|
|
||||||
[ ! -d /var/lib/open-iscsi ] && mkdir -p /var/lib/open-iscsi
|
|
||||||
echo -n "Starting iSCSI initiator for the root device: "
|
|
||||||
startproc $DAEMON $ARGS
|
|
||||||
rc_status -v
|
|
||||||
iscsi_mark_root_nodes
|
|
||||||
;;
|
|
||||||
stop)
|
|
||||||
rc_failed 0
|
|
||||||
;;
|
|
||||||
status)
|
|
||||||
echo -n "Checking for iSCSI initiator service: "
|
|
||||||
if checkproc $DAEMON ; then
|
|
||||||
rc_status -v
|
|
||||||
else
|
|
||||||
rc_failed 3
|
|
||||||
rc_status -v
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
restart)
|
|
||||||
$0 stop
|
|
||||||
sleep 1
|
|
||||||
$0 start
|
|
||||||
;;
|
|
||||||
reload)
|
|
||||||
rc_failed 0
|
|
||||||
*)
|
|
||||||
echo "Usage: $0 {start|stop|status|restart}"
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
rc_exit
|
|
||||||
|
|
4684
open-iscsi-add-discovery-ops
Normal file
4684
open-iscsi-add-discovery-ops
Normal file
File diff suppressed because it is too large
Load Diff
112
open-iscsi-add-suse-boot-script
Normal file
112
open-iscsi-add-suse-boot-script
Normal file
@ -0,0 +1,112 @@
|
|||||||
|
commit a9552e7d8651ecdaefc39ea7913ba2a382a025fe
|
||||||
|
Author: Hannes Reinecke <hare@suse.de>
|
||||||
|
Date: Mon Mar 10 10:16:46 2008 +0100
|
||||||
|
|
||||||
|
Add SUSE boot script
|
||||||
|
|
||||||
|
For root on iSCSI SUSE requires a separate boot script to start
|
||||||
|
up iscsid as soon as possible.
|
||||||
|
|
||||||
|
Signed-off-by: Hannes Reinecke <hare@suse.de>
|
||||||
|
|
||||||
|
diff --git a/Makefile b/Makefile
|
||||||
|
index 046c0f9..8eb812c 100644
|
||||||
|
--- a/Makefile
|
||||||
|
+++ b/Makefile
|
||||||
|
@@ -79,6 +79,8 @@ install_initd_suse:
|
||||||
|
$(INSTALL) -d $(DESTDIR)$(initddir)
|
||||||
|
$(INSTALL) -m 755 etc/initd/initd.suse \
|
||||||
|
$(DESTDIR)$(initddir)/open-iscsi
|
||||||
|
+ $(INSTALL) -m 755 etc/initd/boot.suse \
|
||||||
|
+ $(DESTDIR)$(initddir)/boot.open-iscsi
|
||||||
|
|
||||||
|
install_initd_redhat:
|
||||||
|
$(INSTALL) -d $(DESTDIR)$(initddir)
|
||||||
|
diff --git a/etc/initd/boot.suse b/etc/initd/boot.suse
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..df64e21
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/etc/initd/boot.suse
|
||||||
|
@@ -0,0 +1,82 @@
|
||||||
|
+#!/bin/bash
|
||||||
|
+#
|
||||||
|
+# /etc/init.d/iscsi
|
||||||
|
+#
|
||||||
|
+### BEGIN INIT INFO
|
||||||
|
+# Provides: iscsiboot
|
||||||
|
+# Required-Start: boot.proc
|
||||||
|
+# Should-Start:
|
||||||
|
+# Required-Stop:
|
||||||
|
+# Should-Stop:
|
||||||
|
+# Default-Start: B
|
||||||
|
+# Default-Stop:
|
||||||
|
+# Short-Description: Starts the iSCSI initiator daemon
|
||||||
|
+#
|
||||||
|
+### END INIT INFO
|
||||||
|
+
|
||||||
|
+ISCSIADM=/sbin/iscsiadm
|
||||||
|
+PID_FILE=/var/run/iscsi.pid
|
||||||
|
+CONFIG_FILE=/etc/iscsid.conf
|
||||||
|
+DAEMON=/sbin/iscsid
|
||||||
|
+ARGS="-c $CONFIG_FILE -p $PID_FILE"
|
||||||
|
+
|
||||||
|
+# Source LSB init functions
|
||||||
|
+. /etc/rc.status
|
||||||
|
+
|
||||||
|
+#
|
||||||
|
+# This service is run right after booting. So all activated targets
|
||||||
|
+# must be enabled during mkinitrd run and thus should not be removed
|
||||||
|
+# when the open-iscsi service is stopped.
|
||||||
|
+#
|
||||||
|
+iscsi_mark_root_nodes()
|
||||||
|
+{
|
||||||
|
+ $ISCSIADM -m session 2> /dev/null | while read t num i target ; do
|
||||||
|
+ ip=${i%%:*}
|
||||||
|
+ STARTUP=`$ISCSIADM -m node -p $ip -T $target | grep "node.conn\[0\].startup" | cut -d' ' -f3`
|
||||||
|
+ if [ "$STARTUP" != "onboot" ] ; then
|
||||||
|
+ $ISCSIADM -m node -p $ip -T $target -o update -n node.conn[0].startup -v onboot
|
||||||
|
+ fi
|
||||||
|
+ done
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+# Reset status of this service
|
||||||
|
+rc_reset
|
||||||
|
+
|
||||||
|
+# We only need to start this for root on iSCSI
|
||||||
|
+if ! grep -q iscsi_tcp /proc/modules ; then
|
||||||
|
+ rc_failed 6
|
||||||
|
+ rc_exit
|
||||||
|
+fi
|
||||||
|
+
|
||||||
|
+case "$1" in
|
||||||
|
+ start)
|
||||||
|
+ [ ! -d /var/lib/open-iscsi ] && mkdir -p /var/lib/open-iscsi
|
||||||
|
+ echo -n "Starting iSCSI initiator for the root device: "
|
||||||
|
+ startproc $DAEMON $ARGS
|
||||||
|
+ rc_status -v
|
||||||
|
+ iscsi_mark_root_nodes
|
||||||
|
+ ;;
|
||||||
|
+ stop)
|
||||||
|
+ rc_failed 0
|
||||||
|
+ ;;
|
||||||
|
+ status)
|
||||||
|
+ echo -n "Checking for iSCSI initiator service: "
|
||||||
|
+ if checkproc $DAEMON ; then
|
||||||
|
+ rc_status -v
|
||||||
|
+ else
|
||||||
|
+ rc_failed 3
|
||||||
|
+ rc_status -v
|
||||||
|
+ fi
|
||||||
|
+ ;;
|
||||||
|
+ restart)
|
||||||
|
+ $0 stop
|
||||||
|
+ sleep 1
|
||||||
|
+ $0 start
|
||||||
|
+ ;;
|
||||||
|
+ *)
|
||||||
|
+ echo "Usage: $0 {start|stop|status|restart}"
|
||||||
|
+ exit 1
|
||||||
|
+ ;;
|
||||||
|
+esac
|
||||||
|
+rc_exit
|
||||||
|
+
|
317
open-iscsi-backport-fwparam_ibft
Normal file
317
open-iscsi-backport-fwparam_ibft
Normal file
@ -0,0 +1,317 @@
|
|||||||
|
commit 318863586af9278c82bd8543b8891002ce76d485
|
||||||
|
Author: Hannes Reinecke <hare@suse.de>
|
||||||
|
Date: Mon Mar 10 11:21:49 2008 +0100
|
||||||
|
|
||||||
|
Add compability program fwparam_ibft
|
||||||
|
|
||||||
|
We still need the fwparam_ibft program as the fw discovery won't
|
||||||
|
give us details about the network settings.
|
||||||
|
|
||||||
|
Signed-off-by: Hannes Reinecke <hare@suse.de>
|
||||||
|
|
||||||
|
diff --git a/usr/Makefile b/usr/Makefile
|
||||||
|
index 0e54cf6..42a8788 100644
|
||||||
|
--- a/usr/Makefile
|
||||||
|
+++ b/usr/Makefile
|
||||||
|
@@ -42,19 +42,19 @@ COMMON_SRCS = $(ISCSI_LIB_SRCS)
|
||||||
|
# core initiator files
|
||||||
|
INITIATOR_SRCS = initiator.o scsi.o actor.o mgmt_ipc.o isns.o transport.o
|
||||||
|
# fw boot files
|
||||||
|
-FW_BOOT_SRCS = $(wildcard ../utils/fwparam_ibft/*.o)
|
||||||
|
+FWPARAM_LIB = ../utils/fwparam_ibft/libfwparam.a
|
||||||
|
|
||||||
|
all: $(PROGRAMS)
|
||||||
|
|
||||||
|
iscsid: $(COMMON_SRCS) $(IPC_OBJ) $(INITIATOR_SRCS) iscsid.o
|
||||||
|
$(CC) $(CFLAGS) $^ -o $@
|
||||||
|
|
||||||
|
-iscsiadm: $(COMMON_SRCS) $(FW_BOOT_SRCS) strings.o discovery.o iscsiadm.o
|
||||||
|
- $(CC) $(CFLAGS) $^ -o $@
|
||||||
|
+iscsiadm: $(COMMON_SRCS) strings.o discovery.o iscsiadm.o
|
||||||
|
+ $(CC) $(CFLAGS) $^ -o $@ $(FWPARAM_LIB)
|
||||||
|
|
||||||
|
-iscsistart: $(IPC_OBJ) $(ISCSI_LIB_SRCS) $(INITIATOR_SRCS) $(FW_BOOT_SRCS) \
|
||||||
|
+iscsistart: $(COMMON_SRCS) $(IPC_OBJ) $(INITIATOR_SRCS) \
|
||||||
|
iscsistart.o statics.o
|
||||||
|
- $(CC) $(CFLAGS) -static $^ -o $@
|
||||||
|
+ $(CC) $(CFLAGS) -static $^ -o $@ $(FWPARAM_LIB)
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f *.o $(PROGRAMS) .depend
|
||||||
|
diff --git a/utils/fwparam_ibft/Makefile b/utils/fwparam_ibft/Makefile
|
||||||
|
index 6d7d00a..1414f06 100644
|
||||||
|
--- a/utils/fwparam_ibft/Makefile
|
||||||
|
+++ b/utils/fwparam_ibft/Makefile
|
||||||
|
@@ -21,6 +21,9 @@
|
||||||
|
# "Prasanna Mumbai" <mumbai.prasanna@gmail.com>
|
||||||
|
#
|
||||||
|
|
||||||
|
+PROG = fwparam_ibft
|
||||||
|
+MAIN = fwparam_main.o
|
||||||
|
+LIB = libfwparam.a
|
||||||
|
OBJS := fwparam_ibft.o fw_entry.o
|
||||||
|
OBJS += prom_lex.o prom_parse.tab.o fwparam_ppc.o
|
||||||
|
CLEANFILES = $(OBJS) $(GENFILES) *.output *~
|
||||||
|
@@ -39,7 +42,10 @@ OPTFLAGS ?= -O2 -g -fPIC
|
||||||
|
WARNFLAGS ?= -Wall -Wstrict-prototypes
|
||||||
|
CFLAGS += $(OPTFLAGS) $(WARNFLAGS) -I../../include
|
||||||
|
|
||||||
|
-all: $(OBJS)
|
||||||
|
+all: $(LIB) $(PROG)
|
||||||
|
+
|
||||||
|
+$(LIB): $(OBJS)
|
||||||
|
+ $(AR) rcv $(LIB) $(OBJS)
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f *.o $(CLEANFILES) .depend
|
||||||
|
@@ -54,6 +60,9 @@ $(GENFILES): Makefile
|
||||||
|
|
||||||
|
$(OBJS): prom_parse.tab.h prom_parse.h fwparam_ibft.h
|
||||||
|
|
||||||
|
+$(PROG): $(MAIN) $(LIB)
|
||||||
|
+ gcc $(CFLAGS) -o $@ $< libfwparam.a
|
||||||
|
+
|
||||||
|
depend:
|
||||||
|
gcc $(CFLAGS) -M `ls *.c` > .depend
|
||||||
|
|
||||||
|
diff --git a/utils/fwparam_ibft/fwparam_ibft.c b/utils/fwparam_ibft/fwparam_ibft.c
|
||||||
|
index dcc63c3..4397f94 100644
|
||||||
|
--- a/utils/fwparam_ibft/fwparam_ibft.c
|
||||||
|
+++ b/utils/fwparam_ibft/fwparam_ibft.c
|
||||||
|
@@ -319,7 +319,7 @@ dump_ibft(void *ibft_loc, struct boot_context *context)
|
||||||
|
struct ibft_initiator *initiator = NULL;
|
||||||
|
struct ibft_nic *nic0 = NULL, *nic1 = NULL;
|
||||||
|
struct ibft_tgt *tgt0 = NULL, *tgt1 = NULL;
|
||||||
|
- char ipbuf[32];
|
||||||
|
+ char buf[32];
|
||||||
|
|
||||||
|
control = ibft_loc + sizeof(*ibft_hdr);
|
||||||
|
CHECK_HDR(control, control);
|
||||||
|
@@ -359,6 +359,28 @@ dump_ibft(void *ibft_loc, struct boot_context *context)
|
||||||
|
CHECK_HDR(tgt1, target);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (!context) {
|
||||||
|
+ snprintf(buf, sizeof(buf), "iSCSI_INITIATOR_");
|
||||||
|
+
|
||||||
|
+ if (initiator && (initiator->hdr.flags &
|
||||||
|
+ INIT_FLAG_FW_SEL_BOOT))
|
||||||
|
+ dump_initiator_prefix(ibft_loc, initiator, buf);
|
||||||
|
+
|
||||||
|
+ if (nic0 && (nic0->hdr.flags & INIT_FLAG_FW_SEL_BOOT))
|
||||||
|
+ dump_nic_prefix(ibft_loc, nic0, buf);
|
||||||
|
+ else if (nic1 && (nic1->hdr.flags & INIT_FLAG_FW_SEL_BOOT))
|
||||||
|
+ dump_nic_prefix(ibft_loc, nic1, buf);
|
||||||
|
+
|
||||||
|
+ snprintf(buf, sizeof(buf), "iSCSI_TARGET_");
|
||||||
|
+
|
||||||
|
+ if (tgt0 && (tgt0->hdr.flags & INIT_FLAG_FW_SEL_BOOT))
|
||||||
|
+ dump_tgt_prefix(ibft_loc, tgt0, buf);
|
||||||
|
+ else if (tgt1 && (tgt1->hdr.flags & INIT_FLAG_FW_SEL_BOOT))
|
||||||
|
+ dump_tgt_prefix(ibft_loc, tgt1, buf);
|
||||||
|
+
|
||||||
|
+ return 0;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
strncpy(context->initiatorname,
|
||||||
|
(char *)ibft_loc+initiator->initiator_name_off,
|
||||||
|
initiator->initiator_name_len + 1);
|
||||||
|
@@ -367,10 +389,10 @@ dump_ibft(void *ibft_loc, struct boot_context *context)
|
||||||
|
strncpy((char *)context->targetname,
|
||||||
|
(char *)(ibft_loc+tgt0->tgt_name_off),
|
||||||
|
tgt0->tgt_name_len);
|
||||||
|
- format_ipaddr(ipbuf, sizeof(ipbuf),
|
||||||
|
+ format_ipaddr(buf, sizeof(buf),
|
||||||
|
tgt0->ip_addr);
|
||||||
|
- strncpy((char *)context->target_ipaddr, ipbuf,
|
||||||
|
- sizeof(ipbuf));
|
||||||
|
+ strncpy((char *)context->target_ipaddr, buf,
|
||||||
|
+ sizeof(buf));
|
||||||
|
context->target_port = tgt0->port;
|
||||||
|
strncpy(context->chap_name,
|
||||||
|
(char *)(ibft_loc + tgt0->chap_name_off),
|
||||||
|
@@ -389,10 +411,10 @@ dump_ibft(void *ibft_loc, struct boot_context *context)
|
||||||
|
strncpy((char *)context->targetname,
|
||||||
|
(char *)(ibft_loc+tgt1->tgt_name_off),
|
||||||
|
tgt1->tgt_name_len);
|
||||||
|
- format_ipaddr(ipbuf, sizeof(ipbuf),
|
||||||
|
+ format_ipaddr(buf, sizeof(buf),
|
||||||
|
tgt1->ip_addr);
|
||||||
|
- strncpy((char *)context->target_ipaddr,ipbuf,
|
||||||
|
- sizeof(ipbuf));
|
||||||
|
+ strncpy((char *)context->target_ipaddr,buf,
|
||||||
|
+ sizeof(buf));
|
||||||
|
context->target_port = tgt1->port;
|
||||||
|
strncpy(context->chap_name,
|
||||||
|
(char *)(ibft_loc + tgt1->chap_name_off),
|
||||||
|
@@ -411,7 +433,7 @@ dump_ibft(void *ibft_loc, struct boot_co
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
-char *search_ibft(unsigned char *start, int length)
|
||||||
|
+char *search_ibft(unsigned char *start, int start_addr, int length)
|
||||||
|
{
|
||||||
|
unsigned char *cur_ptr, *rom_end;
|
||||||
|
struct ibft_table_hdr *ibft_hdr;
|
||||||
|
@@ -426,35 +448,51 @@ char *search_ibft(unsigned char *start,
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
memcpy(&rom_size, cur_ptr + 2, 1);
|
||||||
|
- /* Don't search past the end of the ROM BIOS block */
|
||||||
|
- rom_end = cur_ptr + (rom_size * 512) - strlen(iBFTSTR);
|
||||||
|
- while (cur_ptr < rom_end) {
|
||||||
|
- if (!memcmp(cur_ptr, iBFTSTR,strlen(iBFTSTR)))
|
||||||
|
- break;
|
||||||
|
- cur_ptr++;
|
||||||
|
- }
|
||||||
|
|
||||||
|
- if (cur_ptr == rom_end) {
|
||||||
|
- cur_ptr += strlen(iBFTSTR);
|
||||||
|
- continue;
|
||||||
|
- }
|
||||||
|
+ if (debug > 1)
|
||||||
|
+ fprintf(stderr, "Found rom at %x of size %d\n",
|
||||||
|
+ ((int)(cur_ptr - start) + start_addr),
|
||||||
|
+ rom_size * 512);
|
||||||
|
|
||||||
|
- ibft_hdr = (struct ibft_table_hdr *)cur_ptr;
|
||||||
|
- /* Make sure it's correct version. */
|
||||||
|
- if (ibft_hdr->revision != iBFT_REV) {
|
||||||
|
- cur_ptr = rom_end + strlen(iBFTSTR);
|
||||||
|
+ if (rom_size == 0) {
|
||||||
|
+ /* Skip empty rom areas */
|
||||||
|
+ cur_ptr += 512;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
- /* Make sure that length is valid. */
|
||||||
|
- if ((cur_ptr + ibft_hdr->length) <= (start + length)) {
|
||||||
|
- /* Let verify the checksum */
|
||||||
|
- for (i = 0, check_sum = 0; i < ibft_hdr->length; i++)
|
||||||
|
- check_sum += cur_ptr[i];
|
||||||
|
+ /* Don't search past the end of rom area */
|
||||||
|
+ rom_end = (cur_ptr + (rom_size * 512)) - strlen(iBFTSTR);
|
||||||
|
|
||||||
|
- if (check_sum == 0)
|
||||||
|
- return (char *)cur_ptr;
|
||||||
|
+ while (cur_ptr < rom_end) {
|
||||||
|
+ if (memcmp(cur_ptr, iBFTSTR,strlen(iBFTSTR))) {
|
||||||
|
+ cur_ptr++;
|
||||||
|
+ continue;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (debug > 1)
|
||||||
|
+ fprintf(stderr, "Found iBFT table at %x\n",
|
||||||
|
+ (int)(cur_ptr - start) + start_addr);
|
||||||
|
+
|
||||||
|
+ ibft_hdr = (struct ibft_table_hdr *)cur_ptr;
|
||||||
|
+
|
||||||
|
+ /* Make sure it's correct version. */
|
||||||
|
+ if (ibft_hdr->revision != iBFT_REV) {
|
||||||
|
+ cur_ptr = rom_end;
|
||||||
|
+ continue;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ /* Make sure that length is valid. */
|
||||||
|
+ if ((cur_ptr + ibft_hdr->length) <= (start + length)) {
|
||||||
|
+ /* Let verify the checksum */
|
||||||
|
+ for (i = 0, check_sum = 0; i < ibft_hdr->length; i++)
|
||||||
|
+ check_sum += cur_ptr[i];
|
||||||
|
+
|
||||||
|
+ if (check_sum == 0)
|
||||||
|
+ return (char *)cur_ptr;
|
||||||
|
+ }
|
||||||
|
+ cur_ptr = rom_end;
|
||||||
|
}
|
||||||
|
+ cur_ptr += strlen(iBFTSTR);
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
@@ -505,7 +543,7 @@ fwparam_ibft(struct boot_context *contex
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
|
- ibft_loc = search_ibft((unsigned char *)filebuf, end_search);
|
||||||
|
+ ibft_loc = search_ibft((unsigned char *)filebuf, start, end_search);
|
||||||
|
if (ibft_loc)
|
||||||
|
ret = dump_ibft(ibft_loc, context);
|
||||||
|
else {
|
||||||
|
diff --git a/utils/fwparam_ibft/fwparam_main.c b/utils/fwparam_ibft/fwparam_main.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..3a91b52
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/utils/fwparam_ibft/fwparam_main.c
|
||||||
|
@@ -0,0 +1,73 @@
|
||||||
|
+/*
|
||||||
|
+ * This program is free software; you can redistribute it and/or modify
|
||||||
|
+ * it under the terms of the GNU General Public License as published by
|
||||||
|
+ * the Free Software Foundation; either version 2 of the License, or
|
||||||
|
+ * (at your option) any later version.
|
||||||
|
+ *
|
||||||
|
+ * This program is distributed in the hope that it will be useful,
|
||||||
|
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
+ * GNU General Public License for more details.
|
||||||
|
+ *
|
||||||
|
+ * You should have received a copy of the GNU General Public License
|
||||||
|
+ * along with this program; if not, write to the Free Software
|
||||||
|
+ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||||
|
+ * USA.
|
||||||
|
+ *
|
||||||
|
+ * Copyright (C) IBM Corporation, 2006
|
||||||
|
+ *
|
||||||
|
+ * Authors: Patrick Mansfield <patmans@us.ibm.com>
|
||||||
|
+ * Mike Anderson <andmike@us.ibm.com>
|
||||||
|
+ * Hannes Reinecke <hare@suse.de>
|
||||||
|
+ */
|
||||||
|
+
|
||||||
|
+#include <stdio.h>
|
||||||
|
+#include <stdlib.h>
|
||||||
|
+#include <string.h>
|
||||||
|
+#include <unistd.h>
|
||||||
|
+#include <fcntl.h>
|
||||||
|
+#include <errno.h>
|
||||||
|
+
|
||||||
|
+#include "fwparam_ibft.h"
|
||||||
|
+#include "fw_context.h"
|
||||||
|
+
|
||||||
|
+extern int debug;
|
||||||
|
+
|
||||||
|
+int
|
||||||
|
+main (int argc, char **argv)
|
||||||
|
+{
|
||||||
|
+ int option, ret;
|
||||||
|
+ char *progname, *filebuf = NULL;
|
||||||
|
+
|
||||||
|
+ progname = argv[0];
|
||||||
|
+
|
||||||
|
+ while (1) {
|
||||||
|
+ option = getopt(argc, argv, "f:vhb");
|
||||||
|
+ if (option == -1)
|
||||||
|
+ break;
|
||||||
|
+ switch (option) {
|
||||||
|
+ case 'b':
|
||||||
|
+ /* Ignored for compability */
|
||||||
|
+ break;
|
||||||
|
+ case 'f':
|
||||||
|
+ filebuf = optarg;
|
||||||
|
+ break;
|
||||||
|
+ case 'v':
|
||||||
|
+ debug++;
|
||||||
|
+ break;
|
||||||
|
+ default:
|
||||||
|
+ fprintf(stderr, "Unknown or bad option '%c'\n", option);
|
||||||
|
+ case 'h':
|
||||||
|
+ printf("Usage: %s OPTIONS\n"
|
||||||
|
+ "-b print only fw boot selected sections\n"
|
||||||
|
+ "-f file_to_search (default /dev/mem)\n"
|
||||||
|
+ "-v verbose\n",
|
||||||
|
+ progname);
|
||||||
|
+ exit(1);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ ret = fwparam_ibft(NULL, filebuf);
|
||||||
|
+
|
||||||
|
+ exit(ret);
|
||||||
|
+}
|
@ -1,111 +0,0 @@
|
|||||||
diff --git a/usr/iscsiadm.c b/usr/iscsiadm.c
|
|
||||||
index 07922ca..873607b 100644
|
|
||||||
--- a/usr/iscsiadm.c
|
|
||||||
+++ b/usr/iscsiadm.c
|
|
||||||
@@ -260,6 +260,19 @@ session_logout(int rid, node_rec_t *rec)
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
|
||||||
+session_active(int rid)
|
|
||||||
+{
|
|
||||||
+ iscsiadm_req_t req;
|
|
||||||
+ iscsiadm_rsp_t rsp;
|
|
||||||
+
|
|
||||||
+ memset(&req, 0, sizeof(req));
|
|
||||||
+ req.command = MGMT_IPC_SESSION_ACTIVE;
|
|
||||||
+ req.u.session.rid = rid;
|
|
||||||
+
|
|
||||||
+ return do_iscsid(&ipc_fd, &req, &rsp);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static int
|
|
||||||
config_init(void)
|
|
||||||
{
|
|
||||||
int rc;
|
|
||||||
@@ -726,6 +739,12 @@ main(int argc, char **argv)
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
} else if (op == OP_DELETE) {
|
|
||||||
+ rc = session_active(rid);
|
|
||||||
+ if (rc > 0 && rc != MGMT_IPC_ERR_NOT_FOUND) {
|
|
||||||
+ iscsid_handle_error(rc);
|
|
||||||
+ rc = -1;
|
|
||||||
+ goto out;
|
|
||||||
+ }
|
|
||||||
if (idbm_delete_node(db, &rec)) {
|
|
||||||
log_error("can not delete record");
|
|
||||||
rc = -1;
|
|
||||||
diff --git a/usr/mgmt_ipc.c b/usr/mgmt_ipc.c
|
|
||||||
index d1f1eaf..4682b34 100644
|
|
||||||
--- a/usr/mgmt_ipc.c
|
|
||||||
+++ b/usr/mgmt_ipc.c
|
|
||||||
@@ -123,6 +123,27 @@ mgmt_ipc_session_login(struct mgmt_ipc_d
|
|
||||||
}
|
|
||||||
|
|
||||||
static mgmt_ipc_err_e
|
|
||||||
+mgmt_ipc_session_active(queue_task_t *qtask, int rid)
|
|
||||||
+{
|
|
||||||
+ iscsi_session_t *session;
|
|
||||||
+ struct qelem *item;
|
|
||||||
+ int i;
|
|
||||||
+
|
|
||||||
+ for (i = 0; i < num_providers; i++) {
|
|
||||||
+ item = provider[i].sessions.q_forw;
|
|
||||||
+ while (item != &provider[i].sessions) {
|
|
||||||
+ session = (iscsi_session_t *)item;
|
|
||||||
+ if (session->nrec.id == rid)
|
|
||||||
+ return MGMT_IPC_ERR_ACTIVE;
|
|
||||||
+
|
|
||||||
+ item = item->q_forw;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ return MGMT_IPC_ERR_NOT_FOUND;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static mgmt_ipc_err_e
|
|
||||||
mgmt_ipc_session_activelist(queue_task_t *qtask, iscsiadm_rsp_t *rsp)
|
|
||||||
{
|
|
||||||
iscsi_session_t *session;
|
|
||||||
@@ -383,6 +404,9 @@ mgmt_ipc_handle(struct mgmt_ipc_db *dbt,
|
|
||||||
rsp.err = mgmt_ipc_session_sync(dbt, qtask, req.u.session.rid,
|
|
||||||
req.u.session.sid);
|
|
||||||
break;
|
|
||||||
+ case MGMT_IPC_SESSION_ACTIVE:
|
|
||||||
+ rsp.err = mgmt_ipc_session_active(qtask, req.u.session.rid);
|
|
||||||
+ break;
|
|
||||||
case MGMT_IPC_SESSION_ACTIVELIST:
|
|
||||||
rsp.err = mgmt_ipc_session_activelist(qtask, &rsp);
|
|
||||||
immrsp = 1;
|
|
||||||
diff --git a/usr/mgmt_ipc.h b/usr/mgmt_ipc.h
|
|
||||||
index be12070..9564ed5 100644
|
|
||||||
--- a/usr/mgmt_ipc.h
|
|
||||||
+++ b/usr/mgmt_ipc.h
|
|
||||||
@@ -42,6 +42,7 @@ typedef enum mgmt_ipc_err {
|
|
||||||
MGMT_IPC_ERR_ACCESS = 13,
|
|
||||||
MGMT_IPC_ERR_TRANS_CAPS = 14,
|
|
||||||
MGMT_IPC_ERR_EXISTS = 15,
|
|
||||||
+ MGMT_IPC_ERR_ACTIVE = 16,
|
|
||||||
} mgmt_ipc_err_e;
|
|
||||||
|
|
||||||
typedef enum iscsiadm_cmd {
|
|
||||||
@@ -58,6 +59,7 @@ typedef enum iscsiadm_cmd {
|
|
||||||
MGMT_IPC_CONFIG_FILE = 10,
|
|
||||||
MGMT_IPC_IMMEDIATE_STOP = 11,
|
|
||||||
MGMT_IPC_SESSION_SYNC = 12,
|
|
||||||
+ MGMT_IPC_SESSION_ACTIVE = 13,
|
|
||||||
} iscsiadm_cmd_e;
|
|
||||||
|
|
||||||
/* IPC Request */
|
|
||||||
diff --git a/usr/util.c b/usr/util.c
|
|
||||||
index a4c0b5a..ba63850 100644
|
|
||||||
--- a/usr/util.c
|
|
||||||
+++ b/usr/util.c
|
|
||||||
@@ -194,6 +194,7 @@ void iscsid_handle_error(int err)
|
|
||||||
/* 13 */ "daemon access denied",
|
|
||||||
/* 14 */ "iSCSI transport capability failure",
|
|
||||||
/* 15 */ "already exists",
|
|
||||||
+ /* 16 */ "session still active",
|
|
||||||
};
|
|
||||||
log_error("initiator reported error (%d - %s)", err, err_msgs[err]);
|
|
||||||
}
|
|
90
open-iscsi-check-logmsg-length
Normal file
90
open-iscsi-check-logmsg-length
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
commit fa1429ee35e2dc2ea4895ec38216482afc3d95b5
|
||||||
|
Author: Hannes Reinecke <hare@suse.de>
|
||||||
|
Date: Wed Apr 2 11:31:18 2008 +0200
|
||||||
|
|
||||||
|
log_syslog might crash upon failure
|
||||||
|
|
||||||
|
log_dequeue returns 1 on two conditions; either the log queue is empty entirely
|
||||||
|
or this is the last message on the queue. When the first condition is true the
|
||||||
|
logger will crash as it tries to access an invalid message.
|
||||||
|
|
||||||
|
Signed-off-by: Hannes Reinecke <hare@suse.de>
|
||||||
|
|
||||||
|
diff --git a/usr/iscsid.c b/usr/iscsid.c
|
||||||
|
index 2959821..2fbc387 100644
|
||||||
|
--- a/usr/iscsid.c
|
||||||
|
+++ b/usr/iscsid.c
|
||||||
|
@@ -388,7 +388,7 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
|
if ((mgmt_ipc_fd = mgmt_ipc_listen()) < 0) {
|
||||||
|
log_close(log_pid);
|
||||||
|
- exit(-1);
|
||||||
|
+ exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (log_daemon) {
|
||||||
|
@@ -413,7 +413,7 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
|
if ((control_fd = ipc->ctldev_open()) < 0) {
|
||||||
|
log_close(log_pid);
|
||||||
|
- exit(-1);
|
||||||
|
+ exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
chdir("/");
|
||||||
|
@@ -430,7 +430,7 @@ int main(int argc, char *argv[])
|
||||||
|
} else {
|
||||||
|
if ((control_fd = ipc->ctldev_open()) < 0) {
|
||||||
|
log_close(log_pid);
|
||||||
|
- exit(-1);
|
||||||
|
+ exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/usr/log.c b/usr/log.c
|
||||||
|
index 9b82c46..a738454 100644
|
||||||
|
--- a/usr/log.c
|
||||||
|
+++ b/usr/log.c
|
||||||
|
@@ -196,7 +196,7 @@ int log_dequeue (void * buff)
|
||||||
|
int len;
|
||||||
|
|
||||||
|
if (la->empty)
|
||||||
|
- return 1;
|
||||||
|
+ return 0;
|
||||||
|
|
||||||
|
len = strlen((char *)&src->str) * sizeof(char) +
|
||||||
|
sizeof(struct logmsg) + 1;
|
||||||
|
@@ -215,7 +215,7 @@ int log_dequeue (void * buff)
|
||||||
|
|
||||||
|
memset((void *)src, 0, len);
|
||||||
|
|
||||||
|
- return la->empty;
|
||||||
|
+ return len;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
@@ -314,19 +314,22 @@ static void __dump_char(int level, unsigned char *buf, int *cp, int ch)
|
||||||
|
|
||||||
|
static void log_flush(void)
|
||||||
|
{
|
||||||
|
+ int msglen;
|
||||||
|
+
|
||||||
|
while (!la->empty) {
|
||||||
|
la->ops[0].sem_op = -1;
|
||||||
|
if (semop(la->semid, la->ops, 1) < 0) {
|
||||||
|
syslog(LOG_ERR, "semop up failed %d", errno);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
- log_dequeue(la->buff);
|
||||||
|
+ msglen = log_dequeue(la->buff);
|
||||||
|
la->ops[0].sem_op = 1;
|
||||||
|
if (semop(la->semid, la->ops, 1) < 0) {
|
||||||
|
syslog(LOG_ERR, "semop down failed");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
- log_syslog(la->buff);
|
||||||
|
+ if (msglen)
|
||||||
|
+ log_syslog(la->buff);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
151
open-iscsi-cleanup-IPC
Normal file
151
open-iscsi-cleanup-IPC
Normal file
@ -0,0 +1,151 @@
|
|||||||
|
commit 824e3244cd75d33653eacde88acc8b456145543c
|
||||||
|
Author: Hannes Reinecke <hare@suse.de>
|
||||||
|
Date: Fri Apr 4 13:14:14 2008 +0200
|
||||||
|
|
||||||
|
Cleanup IPC segments and identifiers
|
||||||
|
|
||||||
|
Upon error we're not cleaning up IPC identifiers properly,
|
||||||
|
hence we're leaking IPC ids to the system. Not good.
|
||||||
|
And we're not invalidating the logarea itself, making the
|
||||||
|
daemon crash when started twice.
|
||||||
|
|
||||||
|
Signed-off-by: Hannes Reinecke <hare@suse.de>
|
||||||
|
|
||||||
|
diff --git a/usr/log.c b/usr/log.c
|
||||||
|
index a738454..013caed 100644
|
||||||
|
--- a/usr/log.c
|
||||||
|
+++ b/usr/log.c
|
||||||
|
@@ -37,6 +37,33 @@ int log_level = 0;
|
||||||
|
|
||||||
|
static int log_stop_daemon = 0;
|
||||||
|
|
||||||
|
+static void free_logarea (void)
|
||||||
|
+{
|
||||||
|
+ int shmid;
|
||||||
|
+
|
||||||
|
+ if (!la)
|
||||||
|
+ return;
|
||||||
|
+
|
||||||
|
+ if (la->semid != -1)
|
||||||
|
+ semctl(la->semid, 0, IPC_RMID, la->semarg);
|
||||||
|
+ if (la->buff) {
|
||||||
|
+ shmdt(la->buff);
|
||||||
|
+ shmctl(la->shmid_buff, IPC_RMID, NULL);
|
||||||
|
+ la->buff = NULL;
|
||||||
|
+ la->shmid_buff = -1;
|
||||||
|
+ }
|
||||||
|
+ if (la->start) {
|
||||||
|
+ shmdt(la->start);
|
||||||
|
+ shmctl(la->shmid_msg, IPC_RMID, NULL);
|
||||||
|
+ la->start = NULL;
|
||||||
|
+ la->shmid_msg = -1;
|
||||||
|
+ }
|
||||||
|
+ shmid = la->shmid;
|
||||||
|
+ shmdt(la);
|
||||||
|
+ shmctl(shmid, IPC_RMID, NULL);
|
||||||
|
+ la = NULL;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static int logarea_init (int size)
|
||||||
|
{
|
||||||
|
int shmid;
|
||||||
|
@@ -48,21 +75,28 @@ static int logarea_init (int size)
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
la = shmat(shmid, NULL, 0);
|
||||||
|
- if (!la)
|
||||||
|
+ if (!la) {
|
||||||
|
+ shmctl(shmid, IPC_RMID, NULL);
|
||||||
|
return 1;
|
||||||
|
+ }
|
||||||
|
+ la->shmid = shmid;
|
||||||
|
+ la->start = NULL;
|
||||||
|
+ la->buff = NULL;
|
||||||
|
+ la->semid = -1;
|
||||||
|
|
||||||
|
if (size < MAX_MSG_SIZE)
|
||||||
|
size = DEFAULT_AREA_SIZE;
|
||||||
|
|
||||||
|
if ((shmid = shmget(IPC_PRIVATE, size,
|
||||||
|
0644 | IPC_CREAT | IPC_EXCL)) == -1) {
|
||||||
|
- shmdt(la);
|
||||||
|
+ free_logarea();
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
+ la->shmid_msg = shmid;
|
||||||
|
|
||||||
|
- la->start = shmat(shmid, NULL, 0);
|
||||||
|
+ la->start = shmat(la->shmid_msg, NULL, 0);
|
||||||
|
if (!la->start) {
|
||||||
|
- shmdt(la);
|
||||||
|
+ free_logarea();
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
memset(la->start, 0, size);
|
||||||
|
@@ -74,32 +108,27 @@ static int logarea_init (int size)
|
||||||
|
|
||||||
|
if ((shmid = shmget(IPC_PRIVATE, MAX_MSG_SIZE + sizeof(struct logmsg),
|
||||||
|
0644 | IPC_CREAT | IPC_EXCL)) == -1) {
|
||||||
|
- shmdt(la->start);
|
||||||
|
- shmdt(la);
|
||||||
|
+ free_logarea();
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
la->buff = shmat(shmid, NULL, 0);
|
||||||
|
if (!la->buff) {
|
||||||
|
- shmdt(la->start);
|
||||||
|
- shmdt(la);
|
||||||
|
+ free_logarea();
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((la->semid = semget(SEMKEY, 1, 0600 | IPC_CREAT)) < 0) {
|
||||||
|
- shmdt(la->buff);
|
||||||
|
- shmdt(la->start);
|
||||||
|
- shmdt(la);
|
||||||
|
+ free_logarea();
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
la->semarg.val=1;
|
||||||
|
if (semctl(la->semid, 0, SETVAL, la->semarg) < 0) {
|
||||||
|
- shmdt(la->buff);
|
||||||
|
- shmdt(la->start);
|
||||||
|
- shmdt(la);
|
||||||
|
+ free_logarea();
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ la->shmid_buff = shmid;
|
||||||
|
la->ops[0].sem_num = 0;
|
||||||
|
la->ops[0].sem_flg = 0;
|
||||||
|
|
||||||
|
@@ -107,14 +136,6 @@ static int logarea_init (int size)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
-static void free_logarea (void)
|
||||||
|
-{
|
||||||
|
- shmdt(la->buff);
|
||||||
|
- shmdt(la->start);
|
||||||
|
- shmdt(la);
|
||||||
|
- semctl(la->semid, 0, IPC_RMID, la->semarg);
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
#if LOGDBG
|
||||||
|
static void dump_logarea (void)
|
||||||
|
{
|
||||||
|
diff --git a/usr/log.h b/usr/log.h
|
||||||
|
index 4816a1b..4d2a265 100644
|
||||||
|
--- a/usr/log.h
|
||||||
|
+++ b/usr/log.h
|
||||||
|
@@ -51,6 +51,9 @@ struct logmsg {
|
||||||
|
};
|
||||||
|
|
||||||
|
struct logarea {
|
||||||
|
+ int shmid;
|
||||||
|
+ int shmid_msg;
|
||||||
|
+ int shmid_buff;
|
||||||
|
int empty;
|
||||||
|
void *head;
|
||||||
|
void *tail;
|
52
open-iscsi-discover-all-targets
Normal file
52
open-iscsi-discover-all-targets
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
--- open-iscsi-2.0-707/etc/initd/initd.suse 2007/11/15 13:42:43 1.37
|
||||||
|
+++ open-iscsi-2.0-707/etc/initd/initd.suse 2007/11/30 08:10:00
|
||||||
|
@@ -94,6 +94,38 @@
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
+iscsi_discover_all_targets()
|
||||||
|
+{
|
||||||
|
+ # Strip off any existing ID information
|
||||||
|
+ RAW_NODE_LIST=`iscsiadm -m node | sed -nre 's/^(\[[0-9a-f]*\] )?(.*)$/\2/p'`
|
||||||
|
+ # Obtain IPv4 list
|
||||||
|
+ IPV4_NODE_LIST=`echo "$RAW_NODE_LIST" | sed -nre 's/^([0-9]{1,3}(\.[0-9]{1,3}){3}):[^: ]* (.*)$/\1 \3/p'`
|
||||||
|
+ # Now obtain IPv6 list
|
||||||
|
+ IPV6_NODE_LIST=`echo "$RAW_NODE_LIST" | sed -nre 's/^([0-9a-f]{1,4}(:[0-9a-f]{0,4}){6}:[0-9a-f]{1,4}):[^: ]* (.*)$/\1 \3/p'`
|
||||||
|
+
|
||||||
|
+ DISC_TARGETS=""
|
||||||
|
+ while read NODE_ADDR NODE_NAME; do
|
||||||
|
+ [ -z "$NODE_ADDR" -a -z "$NODE_NAME" ] && continue
|
||||||
|
+ NODE_ATTRS=`iscsiadm -m node -p "$NODE_ADDR" -T "$NODE_NAME"`
|
||||||
|
+ NODE_STATUS=`echo "$NODE_ATTRS" | sed -nre 's/^.*node\.conn\[0\]\.startup = ([a-z]*).*$/\1/p'`
|
||||||
|
+
|
||||||
|
+ if [ "$NODE_STATUS" == 'automatic' ]; then
|
||||||
|
+ DISC_TARGETS=`echo "$DISC_TARGETS" | sed -re '/'"$NODE_ADDR"'/!{s/(.*)/\1 '"$NODE_ADDR"'/}'`
|
||||||
|
+ fi
|
||||||
|
+ done < <(echo "$IPV4_NODE_LIST"; echo "$IPV6_NODE_LIST")
|
||||||
|
+
|
||||||
|
+ for TARGET_ADDR in $DISC_TARGETS; do
|
||||||
|
+ echo -n "Attempting discovery on target at ${TARGET_ADDR}: "
|
||||||
|
+ iscsiadm -m discovery -t st -p "$TARGET_ADDR" > /dev/null 2>&1
|
||||||
|
+ if [ "$?" -ne 0 ]; then
|
||||||
|
+ rc_failed 1
|
||||||
|
+ rc_status -v
|
||||||
|
+ return 1
|
||||||
|
+ fi
|
||||||
|
+ rc_status -v
|
||||||
|
+ done
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
[ ! -d /var/lib/iscsi ] && mkdir -p /var/lib/iscsi
|
||||||
|
@@ -108,6 +140,10 @@
|
||||||
|
rc_status -v
|
||||||
|
fi
|
||||||
|
if [ "$RETVAL" == "0" ]; then
|
||||||
|
+ iscsi_discover_all_targets
|
||||||
|
+ RETVAL=$?
|
||||||
|
+ fi
|
||||||
|
+ if [ "$RETVAL" == "0" ]; then
|
||||||
|
iscsi_login_all_nodes
|
||||||
|
fi
|
||||||
|
;;
|
25
open-iscsi-dont-fail-init-script-on-stop
Normal file
25
open-iscsi-dont-fail-init-script-on-stop
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
commit f866141b55c21b4697f31309054fb4ecdcda19b6
|
||||||
|
Author: Hannes Reinecke <hare@suse.de>
|
||||||
|
Date: Mon Mar 17 15:21:21 2008 +0100
|
||||||
|
|
||||||
|
Don't fail SUSE init script when calling 'stop' twice
|
||||||
|
|
||||||
|
When calling SUSE init script twice with 'stop' or once when
|
||||||
|
the daemon is not running, it will return failed.
|
||||||
|
|
||||||
|
References: 369300
|
||||||
|
Signed-off-by: Hannes Reinecke <hare@suse.de>
|
||||||
|
|
||||||
|
diff --git a/etc/initd/initd.suse b/etc/initd/initd.suse
|
||||||
|
index a8b4a0c..d8b91cc 100644
|
||||||
|
--- a/etc/initd/initd.suse
|
||||||
|
+++ b/etc/initd/initd.suse
|
||||||
|
@@ -176,7 +176,7 @@ case "$1" in
|
||||||
|
fi
|
||||||
|
rc_failed $status
|
||||||
|
else
|
||||||
|
- rc_failed 1
|
||||||
|
+ rc_failed $RETVAL
|
||||||
|
fi
|
||||||
|
rc_status -v
|
||||||
|
;;
|
98
open-iscsi-fix-suse-build
Normal file
98
open-iscsi-fix-suse-build
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
diff --git a/Makefile b/Makefile
|
||||||
|
index 8eb812c..167138f 100644
|
||||||
|
--- a/Makefile
|
||||||
|
+++ b/Makefile
|
||||||
|
@@ -15,7 +15,7 @@ etcdir = /etc
|
||||||
|
initddir = $(etcdir)/init.d
|
||||||
|
|
||||||
|
MANPAGES = doc/iscsid.8 doc/iscsiadm.8 doc/iscsi_discovery.8
|
||||||
|
-PROGRAMS = usr/iscsid usr/iscsiadm utils/iscsi_discovery utils/iscsi-iname
|
||||||
|
+PROGRAMS = usr/iscsid usr/iscsiadm utils/iscsi_discovery utils/iscsi-iname utils/fwparam_ibft/fwparam_ibft
|
||||||
|
INSTALL = install
|
||||||
|
ETCFILES = etc/iscsid.conf
|
||||||
|
IFACEFILES = etc/iface.example
|
||||||
|
@@ -54,7 +54,7 @@ clean:
|
||||||
|
install_etc install_iface install_doc install_kernel install_iname
|
||||||
|
|
||||||
|
install: install_kernel install_programs install_doc install_etc \
|
||||||
|
- install_initd install_iname install_iface
|
||||||
|
+ install_initd
|
||||||
|
|
||||||
|
install_usr: install_programs install_doc install_etc \
|
||||||
|
install_initd install_iname install_iface
|
||||||
|
diff --git a/kernel/Makefile b/kernel/Makefile
|
||||||
|
index bf67fec..268758d 100644
|
||||||
|
--- a/kernel/Makefile
|
||||||
|
+++ b/kernel/Makefile
|
||||||
|
@@ -32,11 +32,16 @@ V ?= 0
|
||||||
|
# eg to compile for a kernel that you aren't currently running
|
||||||
|
KERNELRELEASE ?= $(shell uname -r)
|
||||||
|
KSRC ?= /lib/modules/$(KERNELRELEASE)/build
|
||||||
|
+KSRC := $(shell test -f $(KSRC)/Makefile || echo "")
|
||||||
|
KBUILD_OUTPUT ?=
|
||||||
|
# this is the basic Kbuild invocation, just append your make target
|
||||||
|
KBUILD_BASE = +$(MAKE) -C $(KSRC) M=`pwd` KBUILD_OUTPUT=$(KBUILD_OUTPUT) $(KARCH) V=$(V)
|
||||||
|
|
||||||
|
-all: kernel_check
|
||||||
|
+all: kernel_src
|
||||||
|
+
|
||||||
|
+kernel_src: $(shell test -n "$(KSRC)" && echo has_kernel_src)
|
||||||
|
+
|
||||||
|
+has_kernel_src: kernel_check
|
||||||
|
$(KBUILD_BASE) modules
|
||||||
|
|
||||||
|
# ============ BEGIN code for kernel_check and source patching ================
|
||||||
|
@@ -58,9 +63,11 @@ cur_patched=cur_patched
|
||||||
|
# check to see if code is unpatched
|
||||||
|
unpatch_code=$(shell test -e $(cur_patched) && echo do_unpatch_code )
|
||||||
|
|
||||||
|
-KSUBLEVEL = $(shell cat $(KSRC)/Makefile | awk -F= '/^SUBLEVEL =/ {print $$2}' | \
|
||||||
|
+KSUBLEVEL = $(shell cat $(KSRC)/Makefile 2> /dev/null | awk -F= '/^SUBLEVEL =/ {print $$2}' | \
|
||||||
|
sed 's/^[ \t]*//;s/[ \t]*$$//')
|
||||||
|
|
||||||
|
+KSUBLEVEL?=$(shell echo $(KERNELRELEASE) | sed -n 's/.\..\.\([[:digit:]]*\)\..*/\1/p')
|
||||||
|
+
|
||||||
|
KERNEL_TARGET=linux_2_6_$(KSUBLEVEL)
|
||||||
|
kernel_check: $(KERNEL_TARGET)
|
||||||
|
|
||||||
|
@@ -114,7 +121,11 @@ has_20to21_patch: $(20to21_patch)
|
||||||
|
|
||||||
|
# ============ END code for kernel_check and source patching =================
|
||||||
|
|
||||||
|
-clean: $(unpatch_code)
|
||||||
|
+clean: clean_kernel_src
|
||||||
|
+
|
||||||
|
+clean_kernel_src: $(shell test -n "$(KSRC)" && echo has_clean_kernel_src)
|
||||||
|
+
|
||||||
|
+has_clean_kernel_src: $(unpatch_code)
|
||||||
|
$(KBUILD_BASE) clean
|
||||||
|
rm -f Module.symvers
|
||||||
|
|
||||||
|
@@ -164,7 +164,9 @@ ko = $(patsubst %.o,%.ko,$(obj-m))
|
||||||
|
$(ko): all
|
||||||
|
|
||||||
|
# now the actual command
|
||||||
|
-install_kernel: $(ko)
|
||||||
|
+install_kernel: $(shell test -n "$(KSRC)" && echo install_kernel_obj);
|
||||||
|
+
|
||||||
|
+install_kernel_obj: $(ko)
|
||||||
|
$(KBUILD_BASE) modules_install INSTALL_MOD_DIR=$(INSTALL_MOD_DIR) INSTALL_MOD_PATH=$(INSTALL_MOD_PATH)
|
||||||
|
|
||||||
|
# vim: ft=make tw=72 sw=4 ts=4:
|
||||||
|
diff --git a/usr/Makefile b/usr/Makefile
|
||||||
|
index bf67fec..268758d 100644
|
||||||
|
--- a/usr/Makefile
|
||||||
|
+++ b/usr/Makefile
|
||||||
|
@@ -7,9 +7,11 @@ OSNAME=$(shell uname -s)
|
||||||
|
KERNELRELEASE ?= $(shell uname -r)
|
||||||
|
KSRC ?= /lib/modules/$(KERNELRELEASE)/build
|
||||||
|
|
||||||
|
-KSUBLEVEL=$(shell cat $(KSRC)/Makefile | awk -F= '/^SUBLEVEL =/ {print $$2}' | \
|
||||||
|
+KSUBLEVEL=$(shell cat $(KSRC)/Makefile 2> /dev/null | awk -F= '/^SUBLEVEL =/ {print $$2}' | \
|
||||||
|
sed 's/^[ \t]*//;s/[ \t]*$$//')
|
||||||
|
|
||||||
|
+KSUBLEVEL?=$(shell echo $OSNAME | sed -n 's/.\..\.\([[:digit:]]*\)\..*/\1/p')
|
||||||
|
+
|
||||||
|
ifeq ($(OSNAME),Linux)
|
||||||
|
ifeq ($(KSUBLEVEL),11)
|
||||||
|
IPC_CFLAGS=-DNETLINK_ISCSI=12 -D_GNU_SOURCE
|
11
open-iscsi-fixup-debug-option
Normal file
11
open-iscsi-fixup-debug-option
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
--- open-iscsi-2.0-865/usr/iscsiadm.c 2007/12/13 07:37:12 1.5
|
||||||
|
+++ open-iscsi-2.0-865/usr/iscsiadm.c 2007/12/13 07:30:41
|
||||||
|
@@ -80,7 +80,7 @@
|
||||||
|
{"logoutall", required_argument, NULL, 'U'},
|
||||||
|
{"stats", no_argument, NULL, 's'},
|
||||||
|
{"killiscsid", required_argument, NULL, 'k'},
|
||||||
|
- {"debug", required_argument, NULL, 'g'},
|
||||||
|
+ {"debug", required_argument, NULL, 'd'},
|
||||||
|
{"show", no_argument, NULL, 'S'},
|
||||||
|
{"version", no_argument, NULL, 'V'},
|
||||||
|
{"help", no_argument, NULL, 'h'},
|
34
open-iscsi-fixup-init-script
Normal file
34
open-iscsi-fixup-init-script
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
--- open-iscsi-2.0-865/etc/initd/initd.suse 2007/12/06 07:55:12 1.9
|
||||||
|
+++ open-iscsi-2.0-865/etc/initd/initd.suse 2007/12/06 10:38:32
|
||||||
|
@@ -34,19 +34,26 @@
|
||||||
|
iscsi_login_all_nodes()
|
||||||
|
{
|
||||||
|
echo -n "Setting up iSCSI targets: "
|
||||||
|
- $ISCSIADM -m node --loginall=automatic
|
||||||
|
+ $ISCSIADM -m node --loginall=automatic 2> /dev/null
|
||||||
|
+ if [ $? == 19 ] ; then
|
||||||
|
+ rc_failed 6
|
||||||
|
+ fi
|
||||||
|
rc_status -v
|
||||||
|
}
|
||||||
|
|
||||||
|
iscsi_logout_all_nodes()
|
||||||
|
{
|
||||||
|
+ echo -n "Closing all iSCSI connections: "
|
||||||
|
# Logout from all active sessions
|
||||||
|
- if $ISCSIADM -m node --logoutall=all ; then
|
||||||
|
- rc_status -v
|
||||||
|
- else
|
||||||
|
- RETVAL=$?
|
||||||
|
+ if ! $ISCSIADM -m node --logoutall=automatic 2> /dev/null; then
|
||||||
|
+ if [ $? == 19 ] ; then
|
||||||
|
+ RETVAL=6
|
||||||
|
+ else
|
||||||
|
+ RETVAL=1
|
||||||
|
+ fi
|
||||||
|
rc_failed $RETVAL
|
||||||
|
fi
|
||||||
|
+ rc_status -v
|
||||||
|
|
||||||
|
# Not sure whether this is still needed
|
||||||
|
sleep 1
|
29
open-iscsi-format-luns
Normal file
29
open-iscsi-format-luns
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
commit 1a44165c0757fb3aefd0fae0cb1554756b38c2a6
|
||||||
|
Author: Hannes Reinecke <hare@suse.de>
|
||||||
|
Date: Mon Mar 10 10:56:15 2008 +0100
|
||||||
|
|
||||||
|
Format LUNs correctly
|
||||||
|
|
||||||
|
We are printing two characters at a time, so we should skip the same
|
||||||
|
amount of characters for each round.
|
||||||
|
|
||||||
|
Signed-off-by: Hannes Reinecke <hare@suse.de>
|
||||||
|
|
||||||
|
diff --git a/utils/fwparam_ibft/fwparam_ibft.c b/utils/fwparam_ibft/fwparam_ibft.c
|
||||||
|
index d6b8b7f..dcc63c3 100644
|
||||||
|
--- a/utils/fwparam_ibft/fwparam_ibft.c
|
||||||
|
+++ b/utils/fwparam_ibft/fwparam_ibft.c
|
||||||
|
@@ -81,8 +81,11 @@ format_lun(char *buf, size_t size, uint8_t *lun)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
- for (i = 0; i < 8; i++)
|
||||||
|
- snprintf(buf++, size--, "%x", lun[i]);
|
||||||
|
+ for (i = 0; i < 8; i++) {
|
||||||
|
+ snprintf(buf, size, "%02x", lun[i]);
|
||||||
|
+ buf += 2;
|
||||||
|
+ size -= 2;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
69
open-iscsi-fwparam-scan-in-blocks
Normal file
69
open-iscsi-fwparam-scan-in-blocks
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
diff --git a/kernel/iscsi_tcp.c b/kernel/iscsi_tcp.c
|
||||||
|
diff --git a/kernel/iscsi_tcp.h b/kernel/iscsi_tcp.h
|
||||||
|
diff --git a/kernel/libiscsi.c b/kernel/libiscsi.c
|
||||||
|
diff --git a/kernel/libiscsi.h b/kernel/libiscsi.h
|
||||||
|
diff --git a/kernel/scsi_transport_iscsi.c b/kernel/scsi_transport_iscsi.c
|
||||||
|
diff --git a/kernel/scsi_transport_iscsi.h b/kernel/scsi_transport_iscsi.h
|
||||||
|
diff --git a/usr/discovery.c b/usr/discovery.c
|
||||||
|
diff --git a/usr/idbm.c b/usr/idbm.c
|
||||||
|
diff --git a/usr/iscsiadm.c b/usr/iscsiadm.c
|
||||||
|
diff --git a/utils/fwparam_ibft/fwparam_ibft.c b/utils/fwparam_ibft/fwparam_ibft.c
|
||||||
|
index 02f8ac8..4557016 100644
|
||||||
|
--- a/utils/fwparam_ibft/fwparam_ibft.c
|
||||||
|
+++ b/utils/fwparam_ibft/fwparam_ibft.c
|
||||||
|
@@ -39,6 +39,8 @@ int debug;
|
||||||
|
int dev_count;
|
||||||
|
char filename[FILENAMESZ];
|
||||||
|
|
||||||
|
+char ID_ROMEXT[]={0x55, 0xaa, 0}; /* extended rom magic */
|
||||||
|
+
|
||||||
|
const char nulls[16]; /* defaults to zero */
|
||||||
|
|
||||||
|
int
|
||||||
|
@@ -408,22 +410,38 @@ dump_ibft(void *ibft_loc, struct boot_context *context)
|
||||||
|
|
||||||
|
char *search_ibft(unsigned char *start, int length)
|
||||||
|
{
|
||||||
|
- unsigned char *cur_ptr;
|
||||||
|
+ unsigned char *cur_ptr, *rom_end;
|
||||||
|
struct ibft_table_hdr *ibft_hdr;
|
||||||
|
- unsigned char check_sum;
|
||||||
|
+ unsigned char check_sum, rom_size;
|
||||||
|
uint32_t i;
|
||||||
|
|
||||||
|
cur_ptr = (unsigned char *)start;
|
||||||
|
- for (cur_ptr = (unsigned char *)start;
|
||||||
|
- cur_ptr < (start + length);
|
||||||
|
- cur_ptr++) {
|
||||||
|
- if (memcmp(cur_ptr, iBFTSTR,strlen(iBFTSTR)))
|
||||||
|
+ while (cur_ptr < (start + length)) {
|
||||||
|
+ if (memcmp(cur_ptr, ID_ROMEXT, strlen(ID_ROMEXT)) != 0) {
|
||||||
|
+ /* Skip this block */
|
||||||
|
+ cur_ptr += 512;
|
||||||
|
continue;
|
||||||
|
+ }
|
||||||
|
+ memcpy(&rom_size, cur_ptr + 2, 1);
|
||||||
|
+ /* Don't search past the end of the ROM BIOS block */
|
||||||
|
+ rom_end = cur_ptr + (rom_size * 512) - strlen(iBFTSTR);
|
||||||
|
+ while (cur_ptr < rom_end) {
|
||||||
|
+ if (!memcmp(cur_ptr, iBFTSTR,strlen(iBFTSTR)))
|
||||||
|
+ break;
|
||||||
|
+ cur_ptr++;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (cur_ptr == rom_end) {
|
||||||
|
+ cur_ptr += strlen(iBFTSTR);
|
||||||
|
+ continue;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
ibft_hdr = (struct ibft_table_hdr *)cur_ptr;
|
||||||
|
/* Make sure it's correct version. */
|
||||||
|
- if (ibft_hdr->revision != iBFT_REV)
|
||||||
|
+ if (ibft_hdr->revision != iBFT_REV) {
|
||||||
|
+ cur_ptr = rom_end + strlen(iBFTSTR);
|
||||||
|
continue;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
/* Make sure that length is valid. */
|
||||||
|
if ((cur_ptr + ibft_hdr->length) <= (start + length)) {
|
||||||
|
diff --git a/utils/fwparam_ibft/fwparam_ibft.h b/utils/fwparam_ibft/fwparam_ibft.h
|
File diff suppressed because it is too large
Load Diff
22
open-iscsi-fwparam_ppc-string-overflow
Normal file
22
open-iscsi-fwparam_ppc-string-overflow
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
diff --git a/utils/fwparam_ibft/fwparam_ppc.c b/utils/fwparam_ibft/fwparam_ppc.c
|
||||||
|
index b040837..6d344d1 100644
|
||||||
|
--- a/utils/fwparam_ibft/fwparam_ppc.c
|
||||||
|
+++ b/utils/fwparam_ibft/fwparam_ppc.c
|
||||||
|
@@ -436,10 +436,14 @@ int fwparam_ppc(struct boot_context *context, const char *filepath)
|
||||||
|
* the appropriate FCODE with a load method.
|
||||||
|
*/
|
||||||
|
if (filepath) {
|
||||||
|
- strncat(filename, filepath, FILENAMESZ);
|
||||||
|
+ strncat(filename, filepath, FILENAMESZ - 1);
|
||||||
|
+ filename[FILENAMESZ - 1] = '\0';
|
||||||
|
fplen = strlen(filename);
|
||||||
|
- } else
|
||||||
|
- strncat(filename, DT_TOP, FILENAMESZ);
|
||||||
|
+ } else {
|
||||||
|
+ strncat(filename, DT_TOP, FILENAMESZ - 1);
|
||||||
|
+ filename[FILENAMESZ - 1] = '\0';
|
||||||
|
+ fplen = strlen(filename);
|
||||||
|
+ }
|
||||||
|
|
||||||
|
strncat(filename + fplen, BOOTPATH, FILENAMESZ - fplen);
|
||||||
|
|
13650
open-iscsi-git-update
13650
open-iscsi-git-update
File diff suppressed because it is too large
Load Diff
110
open-iscsi-ibft-fill-initiator-values
Normal file
110
open-iscsi-ibft-fill-initiator-values
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
commit 18cbe8c5f68e5e545d02f773da03f52deadfd45b
|
||||||
|
Author: Hannes Reinecke <hare@suse.de>
|
||||||
|
Date: Wed Mar 12 10:36:30 2008 +0100
|
||||||
|
|
||||||
|
Fill in initiator values for iBFT context
|
||||||
|
|
||||||
|
The iBFT context already contains the fields for the initiator,
|
||||||
|
so we can as well fill them with something sensible.
|
||||||
|
|
||||||
|
Signed-off-by: Hannes Reinecke <hare@suse.de>
|
||||||
|
|
||||||
|
diff --git a/include/fw_context.h b/include/fw_context.h
|
||||||
|
index 47ac6ae..f6999e3 100644
|
||||||
|
--- a/include/fw_context.h
|
||||||
|
+++ b/include/fw_context.h
|
||||||
|
@@ -33,8 +33,9 @@ struct boot_context {
|
||||||
|
char chap_password_in[16];
|
||||||
|
char iface[42];
|
||||||
|
char mac[18];
|
||||||
|
- char ipaddr[18];
|
||||||
|
- char mask[18];
|
||||||
|
+ char ipaddr[32];
|
||||||
|
+ char mask[19];
|
||||||
|
+ char gwaddr[32];
|
||||||
|
char lun[17];
|
||||||
|
char vlan[15];
|
||||||
|
char isid[10];
|
||||||
|
diff --git a/utils/fwparam_ibft/fwparam_ibft.c b/utils/fwparam_ibft/fwparam_ibft.c
|
||||||
|
index 4397f94..3801028 100644
|
||||||
|
--- a/utils/fwparam_ibft/fwparam_ibft.c
|
||||||
|
+++ b/utils/fwparam_ibft/fwparam_ibft.c
|
||||||
|
@@ -150,6 +150,32 @@ format_ipaddr(char *buf, size_t size, uint8_t *ip)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
+void
|
||||||
|
+format_netmask(char *buf, size_t size, uint8_t mask)
|
||||||
|
+{
|
||||||
|
+ uint32_t tmp;
|
||||||
|
+
|
||||||
|
+ tmp = 0xffffffff << (32 - mask);
|
||||||
|
+ sprintf(buf,"%d.%d.%d.%d",
|
||||||
|
+ (tmp >> 24) & 0xff,
|
||||||
|
+ (tmp >> 16) & 0xff,
|
||||||
|
+ (tmp >> 8) & 0xff,
|
||||||
|
+ tmp & 0xff);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+void
|
||||||
|
+format_mac(char *buf, size_t size, uint8_t *mac)
|
||||||
|
+{
|
||||||
|
+ int i;
|
||||||
|
+
|
||||||
|
+ for (i = 0; i < 5; i++) {
|
||||||
|
+ sprintf(buf, "%02x:", mac[i]);
|
||||||
|
+ buf += 3;
|
||||||
|
+ }
|
||||||
|
+ sprintf(buf, "%02x", mac[i]);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+
|
||||||
|
/*
|
||||||
|
* Dump the 16 byte ipaddr, as IPV6 or IPV4.
|
||||||
|
*/
|
||||||
|
@@ -385,6 +411,45 @@ dump_ibft(void *ibft_loc, struct boot_context *context)
|
||||||
|
(char *)ibft_loc+initiator->initiator_name_off,
|
||||||
|
initiator->initiator_name_len + 1);
|
||||||
|
|
||||||
|
+ if (nic0 && (nic0->hdr.flags & INIT_FLAG_FW_SEL_BOOT)) {
|
||||||
|
+ format_ipaddr(buf, sizeof(buf),
|
||||||
|
+ nic0->ip_addr);
|
||||||
|
+ strcpy((char *)context->ipaddr, buf);
|
||||||
|
+
|
||||||
|
+ format_ipaddr(buf, sizeof(buf),
|
||||||
|
+ nic0->gateway);
|
||||||
|
+ strcpy((char *)context->gwaddr, buf);
|
||||||
|
+
|
||||||
|
+ format_mac(buf, sizeof(buf),
|
||||||
|
+ nic0->mac);
|
||||||
|
+ strcpy((char *)context->mac, buf);
|
||||||
|
+
|
||||||
|
+ format_netmask(buf, sizeof(buf),
|
||||||
|
+ nic0->subnet_mask_prefix);
|
||||||
|
+ strcpy((char *)context->mask, buf);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (nic1 && (nic1->hdr.flags & INIT_FLAG_FW_SEL_BOOT)) {
|
||||||
|
+ format_ipaddr(buf, sizeof(buf),
|
||||||
|
+ nic1->ip_addr);
|
||||||
|
+ strncpy((char *)context->ipaddr, buf,
|
||||||
|
+ sizeof(buf));
|
||||||
|
+ format_ipaddr(buf, sizeof(buf),
|
||||||
|
+ nic1->gateway);
|
||||||
|
+ strncpy((char *)context->gwaddr, buf,
|
||||||
|
+ sizeof(buf));
|
||||||
|
+
|
||||||
|
+ format_mac(buf, sizeof(buf),
|
||||||
|
+ nic1->mac);
|
||||||
|
+ strncpy((char *)context->mac, buf,
|
||||||
|
+ sizeof(buf));
|
||||||
|
+
|
||||||
|
+ format_netmask(buf, sizeof(buf),
|
||||||
|
+ nic1->subnet_mask_prefix);
|
||||||
|
+ strncpy((char *)context->mask, buf,
|
||||||
|
+ sizeof(buf));
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (tgt0 && (tgt0->hdr.flags & INIT_FLAG_FW_SEL_BOOT)) {
|
||||||
|
strncpy((char *)context->targetname,
|
||||||
|
(char *)(ibft_loc+tgt0->tgt_name_off),
|
105
open-iscsi-ibft-print-ifspec
Normal file
105
open-iscsi-ibft-print-ifspec
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
commit 01ce5f6e4f9859aab2b3a7b36ca59e010af1d10a
|
||||||
|
Author: Hannes Reinecke <hare@suse.de>
|
||||||
|
Date: Wed Mar 12 10:37:47 2008 +0100
|
||||||
|
|
||||||
|
Implement '-i' to print out ifspec line
|
||||||
|
|
||||||
|
For the initrd we can easily print out the required
|
||||||
|
ifspec line, saving us quite some hassle there.
|
||||||
|
|
||||||
|
Signed-off-by: Hannes Reinecke <hare@suse.de>
|
||||||
|
|
||||||
|
diff --git a/utils/fwparam_ibft/fwparam_main.c b/utils/fwparam_ibft/fwparam_main.c
|
||||||
|
index 3a91b52..95a1a4d 100644
|
||||||
|
--- a/utils/fwparam_ibft/fwparam_main.c
|
||||||
|
+++ b/utils/fwparam_ibft/fwparam_main.c
|
||||||
|
@@ -27,22 +27,56 @@
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <errno.h>
|
||||||
|
+#include <sys/types.h>
|
||||||
|
+#include <dirent.h>
|
||||||
|
|
||||||
|
#include "fwparam_ibft.h"
|
||||||
|
#include "fw_context.h"
|
||||||
|
|
||||||
|
extern int debug;
|
||||||
|
|
||||||
|
+int get_ifnum_from_mac(char *mac)
|
||||||
|
+{
|
||||||
|
+ int ifnum = -1, fd;
|
||||||
|
+ DIR *d;
|
||||||
|
+ struct dirent *dent;
|
||||||
|
+ char buf[20], attr[64];
|
||||||
|
+
|
||||||
|
+ d = opendir("/sys/class/net");
|
||||||
|
+ while ((dent = readdir(d))) {
|
||||||
|
+ if (dent->d_name[0] == '.')
|
||||||
|
+ continue;
|
||||||
|
+
|
||||||
|
+ sprintf(attr,"/sys/class/net/%s/address", dent->d_name);
|
||||||
|
+ fd = open(attr,O_RDONLY);
|
||||||
|
+ if (!fd)
|
||||||
|
+ continue;
|
||||||
|
+
|
||||||
|
+ read(fd, buf, 18);
|
||||||
|
+ close(fd);
|
||||||
|
+
|
||||||
|
+ if (strncmp(mac, buf, strlen(mac)))
|
||||||
|
+ continue;
|
||||||
|
+
|
||||||
|
+ if (sscanf(dent->d_name,"eth%d", &ifnum) == 1)
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+ closedir(d);
|
||||||
|
+
|
||||||
|
+ return ifnum;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
int
|
||||||
|
main (int argc, char **argv)
|
||||||
|
{
|
||||||
|
- int option, ret;
|
||||||
|
+ int option, ret, do_ipconfig = 0;
|
||||||
|
char *progname, *filebuf = NULL;
|
||||||
|
+ struct boot_context ctxt;
|
||||||
|
|
||||||
|
progname = argv[0];
|
||||||
|
|
||||||
|
while (1) {
|
||||||
|
- option = getopt(argc, argv, "f:vhb");
|
||||||
|
+ option = getopt(argc, argv, "f:ivhb");
|
||||||
|
if (option == -1)
|
||||||
|
break;
|
||||||
|
switch (option) {
|
||||||
|
@@ -52,6 +86,9 @@ main (int argc, char **argv)
|
||||||
|
case 'f':
|
||||||
|
filebuf = optarg;
|
||||||
|
break;
|
||||||
|
+ case 'i':
|
||||||
|
+ do_ipconfig = 1;
|
||||||
|
+ break;
|
||||||
|
case 'v':
|
||||||
|
debug++;
|
||||||
|
break;
|
||||||
|
@@ -67,7 +104,18 @@ main (int argc, char **argv)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- ret = fwparam_ibft(NULL, filebuf);
|
||||||
|
-
|
||||||
|
+ if (!do_ipconfig)
|
||||||
|
+ ret = fwparam_ibft(NULL, filebuf);
|
||||||
|
+ else {
|
||||||
|
+ ret = fwparam_ibft(&ctxt, filebuf);
|
||||||
|
+ if (!ret)
|
||||||
|
+ /*
|
||||||
|
+ * Format is:
|
||||||
|
+ * ipaddr:peeraddr:gwaddr:mask:hostname:iface:none
|
||||||
|
+ */
|
||||||
|
+ printf("%s::%s:%s::eth%d:ibft\n",
|
||||||
|
+ ctxt.ipaddr, ctxt.gwaddr,
|
||||||
|
+ ctxt.mask, get_ifnum_from_mac(ctxt.mac));
|
||||||
|
+ }
|
||||||
|
exit(ret);
|
||||||
|
}
|
24
open-iscsi-print-ibft-error-to-stderr
Normal file
24
open-iscsi-print-ibft-error-to-stderr
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
commit daa06c2b0c0351fda9a667dabed426f976e40226
|
||||||
|
Author: Hannes Reinecke <hare@suse.de>
|
||||||
|
Date: Fri Apr 4 13:43:25 2008 +0200
|
||||||
|
|
||||||
|
fwparam_ibft: print messages to stderr
|
||||||
|
|
||||||
|
When no iBFT was found a message would be printed to stdout,
|
||||||
|
confusing any parsing scripts.
|
||||||
|
|
||||||
|
Signed-off-by: Hannes Reinecke <hare@suse.de>
|
||||||
|
|
||||||
|
diff --git a/utils/fwparam_ibft/fwparam_ibft.c b/utils/fwparam_ibft/fwparam_ibft.c
|
||||||
|
index 3801028..dc0fc6b 100644
|
||||||
|
--- a/utils/fwparam_ibft/fwparam_ibft.c
|
||||||
|
+++ b/utils/fwparam_ibft/fwparam_ibft.c
|
||||||
|
@@ -612,7 +612,7 @@ fwparam_ibft(struct boot_context *context, const char *filepath)
|
||||||
|
if (ibft_loc)
|
||||||
|
ret = dump_ibft(ibft_loc, context);
|
||||||
|
else {
|
||||||
|
- printf("Could not find iBFT.\n");
|
||||||
|
+ fprintf(stderr, "Could not find iBFT.\n");
|
||||||
|
ret = -1;
|
||||||
|
}
|
||||||
|
munmap(filebuf, end_search);
|
@ -1,52 +0,0 @@
|
|||||||
tree 52d73cd6c3e3eb7baac92e9bdb524e47b39a7969
|
|
||||||
parent bf0e6c96e01cfb9ff8a5232c93866a5bbbe0d76b
|
|
||||||
author Hannes Reinecke <hare@suse.de> 1183549502 +0200
|
|
||||||
committer Hannes Reinecke <hare@suse.de> 1183549502 +0200
|
|
||||||
|
|
||||||
Fix SuSE init script
|
|
||||||
|
|
||||||
Our build checker found several omissions in the init script.
|
|
||||||
So have it fixed.
|
|
||||||
|
|
||||||
Signed-off-by: Hannes Reinecke <hare@suse.de>
|
|
||||||
505f63168e98bf0a09ed2582d2d684b77d485193
|
|
||||||
etc/initd/initd.suse | 13 +++++++++++--
|
|
||||||
1 files changed, 11 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/etc/initd/initd.suse b/etc/initd/initd.suse
|
|
||||||
index 163479e..651891c 100644
|
|
||||||
--- a/etc/initd/initd.suse
|
|
||||||
+++ b/etc/initd/initd.suse
|
|
||||||
@@ -1,6 +1,6 @@
|
|
||||||
#!/bin/bash
|
|
||||||
#
|
|
||||||
-# /etc/init.d/iscsi
|
|
||||||
+# /etc/init.d/open-iscsi
|
|
||||||
#
|
|
||||||
### BEGIN INIT INFO
|
|
||||||
# Provides: iscsi
|
|
||||||
@@ -11,7 +11,12 @@
|
|
||||||
# Default-Start: 3 5
|
|
||||||
# Default-Stop:
|
|
||||||
# Short-Description: Starts and stops the iSCSI client initiator
|
|
||||||
-#
|
|
||||||
+# Description: Start iSCSI iniitiator
|
|
||||||
+# The iSCSI protocol provides access to a SCSI device
|
|
||||||
+# across a network. This script initalizes and starts
|
|
||||||
+# the iSCSI initiator daemon which manages the access to
|
|
||||||
+# these devices. The iSCSI devices itself appear as normal
|
|
||||||
+# SCSI disks to the operating system.
|
|
||||||
### END INIT INFO
|
|
||||||
|
|
||||||
PID_FILE=/var/run/iscsi.pid
|
|
||||||
@@ -111,6 +116,10 @@ case "$1" in
|
|
||||||
sleep 1
|
|
||||||
$0 start
|
|
||||||
;;
|
|
||||||
+ reload)
|
|
||||||
+ rc_failed 0
|
|
||||||
+ rc_status -v
|
|
||||||
+ ;;
|
|
||||||
*)
|
|
||||||
echo "Usage: $0 {start|stop|status|restart}"
|
|
||||||
exit 1
|
|
205
open-iscsi-teardown-device-stack
Normal file
205
open-iscsi-teardown-device-stack
Normal file
@ -0,0 +1,205 @@
|
|||||||
|
commit 6005e4dab173f021b35da79e763ab0dd40d94a08
|
||||||
|
Author: Hannes Reinecke <hare@suse.de>
|
||||||
|
Date: Thu Apr 10 16:37:02 2008 +0200
|
||||||
|
|
||||||
|
Tear down device stack before logging out
|
||||||
|
|
||||||
|
We have to tear down the entire device stack before logging
|
||||||
|
out of any iSCSI portal, otherwise the system won't be
|
||||||
|
able to do a clean umount.
|
||||||
|
|
||||||
|
Signed-off-by: Hannes Reinecke <hare@suse.de>
|
||||||
|
|
||||||
|
diff --git a/etc/initd/initd.suse b/etc/initd/initd.suse
|
||||||
|
index d8b91cc..18bd889 100644
|
||||||
|
--- a/etc/initd/initd.suse
|
||||||
|
+++ b/etc/initd/initd.suse
|
||||||
|
@@ -26,6 +26,148 @@ ARGS="-c $CONFIG_FILE -p $PID_FILE"
|
||||||
|
# Reset status of this service
|
||||||
|
rc_reset
|
||||||
|
|
||||||
|
+dm_major()
|
||||||
|
+{
|
||||||
|
+ local maj
|
||||||
|
+
|
||||||
|
+ [ -f /proc/devices ] || echo 0
|
||||||
|
+ maj=$(sed -n 's/\([0-9]*\) device-mapper/\1/p' /proc/devices)
|
||||||
|
+ echo $maj
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+umount_lun()
|
||||||
|
+{
|
||||||
|
+ local dev=$1
|
||||||
|
+ local d m t l
|
||||||
|
+
|
||||||
|
+ cat /proc/mounts | sed -ne '/^\/dev\/.*/p' | while read d m t o x; do
|
||||||
|
+ if [ "$m" = "/" ] ; then
|
||||||
|
+ continue;
|
||||||
|
+ fi
|
||||||
|
+ l=$d
|
||||||
|
+ [ -L "$d" ] && l=$(readlink -f $d)
|
||||||
|
+
|
||||||
|
+ if [ "${l##/dev/mapper}" != "$l" ] ; then
|
||||||
|
+ t=$(dmsetup info -c --noheadings -o minor ${l##/dev/mapper/})
|
||||||
|
+ l="/dev/dm-$t"
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
+ if [ "$l" != "$dev" ] ; then
|
||||||
|
+ continue;
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
+ umount $d
|
||||||
|
+ break;
|
||||||
|
+ done
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+teardown_md()
|
||||||
|
+{
|
||||||
|
+ local dev=${1##/dev/}
|
||||||
|
+ local md_minor
|
||||||
|
+
|
||||||
|
+ md_minor=$(cat /proc/mdstat | sed -n "s/\(md[0-9]*\) : .* $dev.*/\1/p")
|
||||||
|
+
|
||||||
|
+ if [ "$md_minor" ] ; then
|
||||||
|
+ teardown_iscsi /dev/${md_minor}
|
||||||
|
+ mdadm -S /dev/${md_minor}
|
||||||
|
+ return 0
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
+ return 1
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+teardown_dm()
|
||||||
|
+{
|
||||||
|
+ local dev=${1##/dev/}
|
||||||
|
+ local dm_maj=$(dm_major)
|
||||||
|
+ local dm_min
|
||||||
|
+ local retval=1
|
||||||
|
+ local tblname
|
||||||
|
+
|
||||||
|
+ read dev_t < /sys/block/$dev/dev
|
||||||
|
+
|
||||||
|
+ dmsetup table | sed -n "s/\(.*\): .* $dev_t .*/\1/p" | while read tblname; do
|
||||||
|
+ tbluuid=$(dmsetup info -c --noheadings -o uuid $tblname)
|
||||||
|
+ [ -z "$tbluuid" ] && continue
|
||||||
|
+ dm_min=$(dmsetup info -c --noheadings -o minor $tblname)
|
||||||
|
+ if [ ${tbluuid##mpath-} != "$tbluuid" ] ; then
|
||||||
|
+ teardown_iscsi /dev/dm-$dm_min
|
||||||
|
+ dmsetup remove $tblname
|
||||||
|
+ retval=0
|
||||||
|
+ elif [ ${tbluuid##part} != "$tbluuid" ] ; then
|
||||||
|
+ teardown_iscsi /dev/dm-$dm_min
|
||||||
|
+ dmsetup remove $tblname
|
||||||
|
+ retval=0
|
||||||
|
+ elif [ ${tbluuid##LVM-} != "$tbluuid" ] ; then
|
||||||
|
+ # We don't support stacking atop of LVM devices
|
||||||
|
+ umount_lun /dev/dm-$dm_min
|
||||||
|
+ dmsetup remove $tblname
|
||||||
|
+ retval=0
|
||||||
|
+ fi
|
||||||
|
+ done
|
||||||
|
+ return $retval
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+teardown_block()
|
||||||
|
+{
|
||||||
|
+ local dev=${1##/dev}
|
||||||
|
+ local s
|
||||||
|
+ local p
|
||||||
|
+
|
||||||
|
+ if [ ${dev##/sd} == $dev ] ; then
|
||||||
|
+ return 1
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
+ p="/sys/block${dev%%[0-9]*}"
|
||||||
|
+
|
||||||
|
+ if [ ! -d ${p} ] && [ ! -d ${p}/device ] ; then
|
||||||
|
+ continue;
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
+ s=$(cd -P ${p}/device && echo $PWD)
|
||||||
|
+
|
||||||
|
+ case "$s" in
|
||||||
|
+ */session[0-9]*/*)
|
||||||
|
+ # This is an iSCSI device
|
||||||
|
+ umount_lun $dev
|
||||||
|
+ return 0
|
||||||
|
+ ;;
|
||||||
|
+ esac
|
||||||
|
+ return 1
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+teardown_iscsi()
|
||||||
|
+{
|
||||||
|
+ local dev=$1
|
||||||
|
+
|
||||||
|
+ teardown_md $dev && return
|
||||||
|
+
|
||||||
|
+ teardown_dm $dev && return
|
||||||
|
+
|
||||||
|
+ teardown_block $dev && return
|
||||||
|
+
|
||||||
|
+ umount_lun $dev
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+iscsi_umount_all_luns()
|
||||||
|
+{
|
||||||
|
+ local d m dev p s
|
||||||
|
+
|
||||||
|
+ for target in /sys/class/iscsi_session/session*/device/target* ; do
|
||||||
|
+ [ -e $target ] || continue;
|
||||||
|
+ cd -P $target;
|
||||||
|
+ for lun in *:*:*:*; do
|
||||||
|
+ cd -P /sys/class/scsi_device/$lun/device
|
||||||
|
+ for l in block:* ; do
|
||||||
|
+ [ -e $l ] || continue
|
||||||
|
+ dev=${l##block:}
|
||||||
|
+ teardown_iscsi /dev/$dev
|
||||||
|
+ done
|
||||||
|
+ done
|
||||||
|
+ done
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
iscsi_login_all_nodes()
|
||||||
|
{
|
||||||
|
echo -n "Setting up iSCSI targets: "
|
||||||
|
@@ -55,39 +197,6 @@ iscsi_logout_all_nodes()
|
||||||
|
return ${RETVAL:-0}
|
||||||
|
}
|
||||||
|
|
||||||
|
-iscsi_umount_all_luns()
|
||||||
|
-{
|
||||||
|
- local d m dev p s
|
||||||
|
-
|
||||||
|
- cat /proc/mounts | sed -ne '/^\/dev\/.*/p' | while read d m t o x; do
|
||||||
|
- if [ "$m" = "/" ] ; then
|
||||||
|
- continue;
|
||||||
|
- fi
|
||||||
|
- if [ -L "$d" ] ; then
|
||||||
|
- d=$(readlink -f $d)
|
||||||
|
- fi
|
||||||
|
- dev=${d##/dev}
|
||||||
|
-
|
||||||
|
- if [ "${dev##/sd}" = "$dev" ] ; then
|
||||||
|
- continue;
|
||||||
|
- fi
|
||||||
|
- p="/sys/block${dev%%[0-9]*}"
|
||||||
|
-
|
||||||
|
- if [ ! -d ${p} ] && [ ! -d ${p}/device ] ; then
|
||||||
|
- continue;
|
||||||
|
- fi
|
||||||
|
-
|
||||||
|
- s=$(cd -P ${p}/device && echo $PWD)
|
||||||
|
-
|
||||||
|
- case "$s" in
|
||||||
|
- */session[0-9]*/*)
|
||||||
|
- # This is an iSCSI device
|
||||||
|
- umount "$m"
|
||||||
|
- ;;
|
||||||
|
- esac
|
||||||
|
- done
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
iscsi_list_all_nodes()
|
||||||
|
{
|
||||||
|
# Check for active sessions
|
13
open-iscsi-update-nodes
Normal file
13
open-iscsi-update-nodes
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
diff --git a/usr/iscsiadm.c b/usr/iscsiadm.c
|
||||||
|
index 591ae8c..9e3d47c 100644
|
||||||
|
--- a/usr/iscsiadm.c
|
||||||
|
+++ b/usr/iscsiadm.c
|
||||||
|
@@ -1604,7 +1604,7 @@ do_sofware_sendtargets(idbm_t *db, discovery_rec_t *drec,
|
||||||
|
* ops for them
|
||||||
|
*/
|
||||||
|
if (!op)
|
||||||
|
- op = OP_NEW | OP_DELETE | OP_UPDATE;
|
||||||
|
+ op = OP_NEW | OP_DELETE;
|
||||||
|
|
||||||
|
drec->type = DISCOVERY_TYPE_SENDTARGETS;
|
||||||
|
rc = discovery_sendtargets(db, drec, &new_rec_list);
|
@ -1,9 +1,105 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Apr 15 13:47:21 CEST 2008 - hare@suse.de
|
||||||
|
|
||||||
|
- Synchronize with SLES10 SP2
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Apr 10 16:38:23 CEST 2008 - hare@suse.de
|
||||||
|
|
||||||
|
- Tear down device stack before logging out (bnc#378141)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Apr 4 13:44:56 CEST 2008 - hare@suse.de
|
||||||
|
|
||||||
|
- Don't try to print invalid log messages (bnc#372719)
|
||||||
|
- Cleanup IPC identifiers upon error (bnc#372719)
|
||||||
|
- Print iBFT error messages to stderr (bnc#372725)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Mar 17 15:24:52 CET 2008 - hare@suse.de
|
||||||
|
|
||||||
|
- Don't fail init script if called twice with 'stop' (bnc#369300)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Mar 12 12:11:54 CET 2008 - hare@suse.de
|
||||||
|
|
||||||
|
- Add parameter '-i' to fwparam_ibft for mkinitrd (bnc#277106)
|
||||||
|
- Only logout from targets marked as 'automatic' (bnc#369767)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Mar 10 12:58:25 CET 2008 - hare@suse.de
|
||||||
|
|
||||||
|
- Synchronize with git repository
|
||||||
|
- Fixes to simplify build process
|
||||||
|
- Re-implement fwparam_ibft (bnc#367437)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Mar 5 12:05:05 CET 2008 - hare@suse.de
|
||||||
|
|
||||||
|
- Fixup '-op' to not overwrite other nodes on discovery
|
||||||
|
(bnc#365259)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Feb 18 15:28:03 CET 2008 - hare@suse.de
|
||||||
|
|
||||||
|
- Fixup /etc/init.d/boot.open-iscsi to use correct syntax
|
||||||
|
for iscsiadm (bnc#360674)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Feb 7 16:09:14 CET 2008 - hare@suse.de
|
||||||
|
|
||||||
|
- Add '-op' option to discovery to avoid overwriting
|
||||||
|
of existing nodes (bnc#357197)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Dec 6 14:21:55 CET 2007 - hare@suse.de
|
||||||
|
|
||||||
|
- Update to official version 2.0-866
|
||||||
|
- Include latest git patches (FATE#303021)
|
||||||
|
- Start initiator after iSCSI target (FATE#302415)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Nov 30 09:20:33 CET 2007 - hare@suse.de
|
||||||
|
|
||||||
|
- Rediscover all targets to make sure the network
|
||||||
|
is up (#307930, #251675)
|
||||||
|
- Fixup debug option to iscsiadm (#346504)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Nov 15 15:38:24 CET 2007 - hare@suse.de
|
||||||
|
|
||||||
|
- Do not overwrite existing node records when doing a
|
||||||
|
discovery (#278172)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Oct 26 08:25:21 CEST 2007 - bphilips@suse.de
|
||||||
|
|
||||||
|
- Scan BIOS memory in blocks to avoid crash on buggy
|
||||||
|
BIOS (#293845)
|
||||||
|
- Don't unload modules on stop to avoid kernel oops (#328923)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Aug 2 13:47:20 CEST 2007 - hare@suse.de
|
||||||
|
|
||||||
|
- Fix insecure privileges and credential verification (#280413)
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Mon Jul 9 16:40:54 CEST 2007 - hare@suse.de
|
Mon Jul 9 16:40:54 CEST 2007 - hare@suse.de
|
||||||
|
|
||||||
- update to svn r866
|
- update to svn r866
|
||||||
- include latest git patches
|
- include latest git patches
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri May 11 10:37:50 CEST 2007 - hare@suse.de
|
||||||
|
|
||||||
|
- Correct target and initiator mixup for ppc (#273600)
|
||||||
|
- Print LUN correctly (#271292)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Apr 26 09:17:21 CEST 2007 - hare@suse.de
|
||||||
|
|
||||||
|
- fwparam_ibft crashes with Broadcom chips (#267458)
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Wed Apr 4 10:51:56 CEST 2007 - hare@suse.de
|
Wed Apr 4 10:51:56 CEST 2007 - hare@suse.de
|
||||||
|
|
||||||
@ -77,6 +173,14 @@ Mon Jan 15 13:10:53 CET 2007 - hare@suse.de
|
|||||||
|
|
||||||
- Reference symlink to /etc/iscsid.conf in rpm.
|
- Reference symlink to /etc/iscsid.conf in rpm.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Jan 12 15:58:50 CET 2007 - hare@suse.de
|
||||||
|
|
||||||
|
- update to official version 2.0-707
|
||||||
|
- update to svn r759
|
||||||
|
- Include iBFT BIOS tool (FATE 301671)
|
||||||
|
- Implement compability mode for iscsiadm
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Fri Oct 20 14:14:33 CEST 2006 - hare@suse.de
|
Fri Oct 20 14:14:33 CEST 2006 - hare@suse.de
|
||||||
|
|
||||||
|
222
open-iscsi.spec
222
open-iscsi.spec
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package open-iscsi (Version 2.0.866)
|
# spec file for package open-iscsi (Version 2.0.865)
|
||||||
#
|
#
|
||||||
# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||||
# This file and all modifications and additions to the pristine
|
# This file and all modifications and additions to the pristine
|
||||||
# package are under the same license as the package itself.
|
# package are under the same license as the package itself.
|
||||||
#
|
#
|
||||||
@ -10,28 +10,43 @@
|
|||||||
|
|
||||||
# norootforbuild
|
# norootforbuild
|
||||||
|
|
||||||
|
|
||||||
Name: open-iscsi
|
Name: open-iscsi
|
||||||
URL: http://www.open-iscsi.org
|
BuildRequires: bison db-devel flex
|
||||||
|
Url: http://www.open-iscsi.org
|
||||||
License: GPL v2 or later
|
License: GPL v2 or later
|
||||||
Group: Productivity/Networking/Other
|
Group: Productivity/Networking/Other
|
||||||
Prereq: %fillup_prereq %insserv_prereq
|
PreReq: %fillup_prereq %insserv_prereq
|
||||||
BuildRequires: bison flex
|
AutoReqProv: on
|
||||||
Autoreqprov: on
|
Version: 2.0.865
|
||||||
Version: 2.0.866
|
|
||||||
Release: 1
|
Release: 1
|
||||||
Provides: linux-iscsi
|
Provides: linux-iscsi
|
||||||
Obsoletes: linux-iscsi
|
Obsoletes: linux-iscsi
|
||||||
%define iscsi_release 865
|
%define iscsi_release 865
|
||||||
Summary: Linux* Open-iSCSI Software Initiator
|
Summary: Linux* Open-iSCSI Software Initiator
|
||||||
Source: %{name}-2.0-865.tar.bz2
|
Source: %{name}-2.0-865.tar.bz2
|
||||||
Source3: boot.open-iscsi
|
|
||||||
Source11: iscsi-gen-initiatorname.sh
|
Source11: iscsi-gen-initiatorname.sh
|
||||||
Patch1: %{name}-866.diff
|
Patch1: %{name}-866.diff
|
||||||
Patch2: %{name}-git-update
|
Patch2: %{name}-git-update
|
||||||
Patch13: %{name}-suse-init-fixes
|
Patch3: %{name}-add-discovery-ops
|
||||||
Patch14: %{name}-fwparam_ppc
|
Patch4: %{name}-add-suse-boot-script
|
||||||
Patch21: %{name}-check-active-sessions-before-delete
|
Patch5: %{name}-format-luns
|
||||||
|
Patch22: %{name}-fwparam-scan-in-blocks
|
||||||
Patch23: %{name}-umount-all-luns
|
Patch23: %{name}-umount-all-luns
|
||||||
|
Patch24: %{name}-update-nodes
|
||||||
|
Patch25: %{name}-fixup-init-script
|
||||||
|
Patch26: %{name}-discover-all-targets
|
||||||
|
Patch28: %{name}-fixup-debug-option
|
||||||
|
Patch30: %{name}-backport-fwparam_ibft
|
||||||
|
Patch31: %{name}-fix-suse-build
|
||||||
|
Patch32: %{name}-ibft-fill-initiator-values
|
||||||
|
Patch33: %{name}-ibft-print-ifspec
|
||||||
|
Patch34: %{name}-dont-fail-init-script-on-stop
|
||||||
|
Patch35: %{name}-check-logmsg-length
|
||||||
|
Patch36: %{name}-cleanup-IPC
|
||||||
|
Patch37: %{name}-print-ibft-error-to-stderr
|
||||||
|
Patch38: %{name}-teardown-device-stack
|
||||||
|
Patch39: %{name}-fwparam_ppc-string-overflow
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
|
|
||||||
%description
|
%description
|
||||||
@ -60,36 +75,37 @@ Authors:
|
|||||||
open-iscsi@googlegroups.com
|
open-iscsi@googlegroups.com
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -n %{name}-2.0-%{iscsi_release}
|
%setup -n %{name}-2.0-865
|
||||||
%patch1
|
%patch1
|
||||||
%patch2 -p1
|
%patch2 -p1
|
||||||
|
%patch3 -p1
|
||||||
|
%patch4 -p1
|
||||||
|
%patch5 -p1
|
||||||
|
%patch22 -p1
|
||||||
%patch23 -p1
|
%patch23 -p1
|
||||||
%patch13 -p1
|
%patch24 -p1
|
||||||
%patch14 -p1
|
%patch25 -p1
|
||||||
|
%patch26 -p1
|
||||||
|
%patch28 -p1
|
||||||
|
%patch30 -p1
|
||||||
|
%patch31 -p1
|
||||||
|
%patch32 -p1
|
||||||
|
%patch33 -p1
|
||||||
|
%patch34 -p1
|
||||||
|
%patch35 -p1
|
||||||
|
%patch36 -p1
|
||||||
|
%patch37 -p1
|
||||||
|
%patch38 -p1
|
||||||
|
%patch39 -p1
|
||||||
|
cp etc/iface.example .
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%ifarch %ix86 x86_64
|
%{__make} OPTFLAGS="${RPM_OPT_FLAGS}"
|
||||||
%define target_arch x86
|
|
||||||
%else
|
|
||||||
%ifarch ppc ppc64
|
|
||||||
%define target_arch ppc
|
|
||||||
%else
|
|
||||||
%define target_arch none
|
|
||||||
%endif
|
|
||||||
%endif
|
|
||||||
%{__make} OPTFLAGS="${RPM_OPT_FLAGS}" -C usr
|
|
||||||
%{__make} OPTFLAGS="${RPM_OPT_FLAGS}" -C utils
|
|
||||||
%{__make} OPTFLAGS="${RPM_OPT_FLAGS}" -C utils/fwparam_ibft
|
|
||||||
%{__make} OPTFLAGS="${RPM_OPT_FLAGS}" -C utils/fwparam_ppc
|
|
||||||
|
|
||||||
%install
|
%install
|
||||||
[ "${RPM_BUILD_ROOT}" != "/" -a -d ${RPM_BUILD_ROOT} ] && rm -rf ${RPM_BUILD_ROOT}
|
make DESTDIR=${RPM_BUILD_ROOT} install
|
||||||
make DESTDIR=${RPM_BUILD_ROOT} install_programs
|
|
||||||
make DESTDIR=${RPM_BUILD_ROOT} install_etc
|
|
||||||
make DESTDIR=${RPM_BUILD_ROOT} install_initd_suse
|
make DESTDIR=${RPM_BUILD_ROOT} install_initd_suse
|
||||||
make DESTDIR=${RPM_BUILD_ROOT} install_doc
|
|
||||||
install -D -m 755 %{S:11} ${RPM_BUILD_ROOT}/sbin/iscsi-gen-initiatorname
|
install -D -m 755 %{S:11} ${RPM_BUILD_ROOT}/sbin/iscsi-gen-initiatorname
|
||||||
install -D -m 755 %{S:3} ${RPM_BUILD_ROOT}/etc/init.d/boot.open-iscsi
|
|
||||||
(cd ${RPM_BUILD_ROOT}/sbin; ln -sf /etc/init.d/open-iscsi rcopen-iscsi)
|
(cd ${RPM_BUILD_ROOT}/sbin; ln -sf /etc/init.d/open-iscsi rcopen-iscsi)
|
||||||
(cd ${RPM_BUILD_ROOT}/etc; ln -sf iscsi/iscsid.conf iscsid.conf)
|
(cd ${RPM_BUILD_ROOT}/etc; ln -sf iscsi/iscsid.conf iscsid.conf)
|
||||||
|
|
||||||
@ -98,10 +114,6 @@ install -D -m 755 %{S:3} ${RPM_BUILD_ROOT}/etc/init.d/boot.open-iscsi
|
|||||||
|
|
||||||
%post
|
%post
|
||||||
%{fillup_and_insserv -Y boot.open-iscsi}
|
%{fillup_and_insserv -Y boot.open-iscsi}
|
||||||
if [ -f /etc/initiatorname.iscsi ] ; then
|
|
||||||
mv /etc/initiatorname.iscsi /etc/iscsi
|
|
||||||
ln -sf /etc/iscsi/initiatorname.iscsi /etc/initiatorname.iscsi
|
|
||||||
fi
|
|
||||||
if [ ! -f /etc/iscsi/initiatorname.iscsi ] ; then
|
if [ ! -f /etc/iscsi/initiatorname.iscsi ] ; then
|
||||||
/sbin/iscsi-gen-initiatorname
|
/sbin/iscsi-gen-initiatorname
|
||||||
fi
|
fi
|
||||||
@ -120,133 +132,187 @@ fi
|
|||||||
%config /etc/init.d/boot.open-iscsi
|
%config /etc/init.d/boot.open-iscsi
|
||||||
/sbin/*
|
/sbin/*
|
||||||
%dir /etc/iscsi
|
%dir /etc/iscsi
|
||||||
|
%doc iface.example
|
||||||
%doc COPYING README
|
%doc COPYING README
|
||||||
%doc %{_mandir}/man8/*
|
%doc %{_mandir}/man8/*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Mon Jul 09 2007 - hare@suse.de
|
* Tue Apr 15 2008 hare@suse.de
|
||||||
|
- Synchronize with SLES10 SP2
|
||||||
|
* Thu Apr 10 2008 hare@suse.de
|
||||||
|
- Tear down device stack before logging out (bnc#378141)
|
||||||
|
* Fri Apr 04 2008 hare@suse.de
|
||||||
|
- Don't try to print invalid log messages (bnc#372719)
|
||||||
|
- Cleanup IPC identifiers upon error (bnc#372719)
|
||||||
|
- Print iBFT error messages to stderr (bnc#372725)
|
||||||
|
* Mon Mar 17 2008 hare@suse.de
|
||||||
|
- Don't fail init script if called twice with 'stop' (bnc#369300)
|
||||||
|
* Wed Mar 12 2008 hare@suse.de
|
||||||
|
- Add parameter '-i' to fwparam_ibft for mkinitrd (bnc#277106)
|
||||||
|
- Only logout from targets marked as 'automatic' (bnc#369767)
|
||||||
|
* Mon Mar 10 2008 hare@suse.de
|
||||||
|
- Synchronize with git repository
|
||||||
|
- Fixes to simplify build process
|
||||||
|
- Re-implement fwparam_ibft (bnc#367437)
|
||||||
|
* Wed Mar 05 2008 hare@suse.de
|
||||||
|
- Fixup '-op' to not overwrite other nodes on discovery
|
||||||
|
(bnc#365259)
|
||||||
|
* Mon Feb 18 2008 hare@suse.de
|
||||||
|
- Fixup /etc/init.d/boot.open-iscsi to use correct syntax
|
||||||
|
for iscsiadm (bnc#360674)
|
||||||
|
* Thu Feb 07 2008 hare@suse.de
|
||||||
|
- Add '-op' option to discovery to avoid overwriting
|
||||||
|
of existing nodes (bnc#357197)
|
||||||
|
* Thu Dec 06 2007 hare@suse.de
|
||||||
|
- Update to official version 2.0-866
|
||||||
|
- Include latest git patches (FATE#303021)
|
||||||
|
- Start initiator after iSCSI target (FATE#302415)
|
||||||
|
* Fri Nov 30 2007 hare@suse.de
|
||||||
|
- Rediscover all targets to make sure the network
|
||||||
|
is up (#307930, #251675)
|
||||||
|
- Fixup debug option to iscsiadm (#346504)
|
||||||
|
* Thu Nov 15 2007 hare@suse.de
|
||||||
|
- Do not overwrite existing node records when doing a
|
||||||
|
discovery (#278172)
|
||||||
|
* Fri Oct 26 2007 bphilips@suse.de
|
||||||
|
- Scan BIOS memory in blocks to avoid crash on buggy
|
||||||
|
BIOS (#293845)
|
||||||
|
- Don't unload modules on stop to avoid kernel oops (#328923)
|
||||||
|
* Thu Aug 02 2007 hare@suse.de
|
||||||
|
- Fix insecure privileges and credential verification (#280413)
|
||||||
|
* Mon Jul 09 2007 hare@suse.de
|
||||||
- update to svn r866
|
- update to svn r866
|
||||||
- include latest git patches
|
- include latest git patches
|
||||||
* Wed Apr 04 2007 - hare@suse.de
|
* Fri May 11 2007 hare@suse.de
|
||||||
|
- Correct target and initiator mixup for ppc (#273600)
|
||||||
|
- Print LUN correctly (#271292)
|
||||||
|
* Thu Apr 26 2007 hare@suse.de
|
||||||
|
- fwparam_ibft crashes with Broadcom chips (#267458)
|
||||||
|
* Wed Apr 04 2007 hare@suse.de
|
||||||
- update to official release 2.0-754
|
- update to official release 2.0-754
|
||||||
- update to svn r779
|
- update to svn r779
|
||||||
- Include changes from SLES10 SP1
|
- Include changes from SLES10 SP1
|
||||||
* Fri Mar 30 2007 - hare@suse.de
|
* Fri Mar 30 2007 hare@suse.de
|
||||||
- Include fwparam_ibft program for OpenPROM (#226682)
|
- Include fwparam_ibft program for OpenPROM (#226682)
|
||||||
* Wed Mar 28 2007 - hare@suse.de
|
* Wed Mar 28 2007 hare@suse.de
|
||||||
- Return status '6' when root on iSCSI is not enabled (#257979)
|
- Return status '6' when root on iSCSI is not enabled (#257979)
|
||||||
* Fri Mar 16 2007 - hare@suse.de
|
* Fri Mar 16 2007 hare@suse.de
|
||||||
- Fix typo in output of fwparam_ibft (#250445)
|
- Fix typo in output of fwparam_ibft (#250445)
|
||||||
* Thu Mar 08 2007 - hare@suse.de
|
* Thu Mar 08 2007 hare@suse.de
|
||||||
- connect() to the daemon might fail on busy machines (#244649)
|
- connect() to the daemon might fail on busy machines (#244649)
|
||||||
* Mon Mar 05 2007 - hare@suse.de
|
* Mon Mar 05 2007 hare@suse.de
|
||||||
- Add /usr/bin/iscsi-dbconvert to convert SLES10 GA
|
- Add /usr/bin/iscsi-dbconvert to convert SLES10 GA
|
||||||
databases to new format (#251298)
|
databases to new format (#251298)
|
||||||
* Fri Feb 16 2007 - hare@suse.de
|
* Fri Feb 16 2007 hare@suse.de
|
||||||
- Fix iscsiadm to print session info correctly (#243203)
|
- Fix iscsiadm to print session info correctly (#243203)
|
||||||
* Thu Feb 08 2007 - hare@suse.de
|
* Thu Feb 08 2007 hare@suse.de
|
||||||
- update to svn r768
|
- update to svn r768
|
||||||
- Update iSNS support (#243203)
|
- Update iSNS support (#243203)
|
||||||
- Correct typo in /etc/init.d/boot.open-iscsi (#243203)
|
- Correct typo in /etc/init.d/boot.open-iscsi (#243203)
|
||||||
* Fri Feb 02 2007 - hare@suse.de
|
* Fri Feb 02 2007 hare@suse.de
|
||||||
- Umount all luns on shutdown (#223484)
|
- Umount all luns on shutdown (#223484)
|
||||||
* Wed Jan 31 2007 - hare@suse.de
|
* Wed Jan 31 2007 hare@suse.de
|
||||||
- Remove the start iSCSI after Xen hack (#231077)
|
- Remove the start iSCSI after Xen hack (#231077)
|
||||||
- Fixup /etc/init.d/boot.open-iscsi script (#239819)
|
- Fixup /etc/init.d/boot.open-iscsi script (#239819)
|
||||||
* Thu Jan 18 2007 - hare@suse.de
|
* Thu Jan 18 2007 hare@suse.de
|
||||||
- Fix compat mode to display the record id.
|
- Fix compat mode to display the record id.
|
||||||
- Add /sbin/iscsi-gen-initiatorname to generate
|
- Add /sbin/iscsi-gen-initiatorname to generate
|
||||||
a default iSCSI initiatorname.
|
a default iSCSI initiatorname.
|
||||||
* Mon Jan 15 2007 - hare@suse.de
|
* Mon Jan 15 2007 hare@suse.de
|
||||||
- Fixup %%post scripts.
|
- Fixup %%post scripts.
|
||||||
* Mon Jan 15 2007 - hare@suse.de
|
* Mon Jan 15 2007 hare@suse.de
|
||||||
- Reference symlink to /etc/iscsid.conf in rpm.
|
- Reference symlink to /etc/iscsid.conf in rpm.
|
||||||
* Fri Oct 20 2006 - hare@suse.de
|
* Fri Jan 12 2007 hare@suse.de
|
||||||
|
- update to official version 2.0-707
|
||||||
|
- update to svn r759
|
||||||
|
- Include iBFT BIOS tool (FATE 301671)
|
||||||
|
- Implement compability mode for iscsiadm
|
||||||
|
* Fri Oct 20 2006 hare@suse.de
|
||||||
- Update to svn r713
|
- Update to svn r713
|
||||||
- Use /dev/urandom instead of rand() (#180837)
|
- Use /dev/urandom instead of rand() (#180837)
|
||||||
- Fixup init script
|
- Fixup init script
|
||||||
* Fri Oct 06 2006 - hare@suse.de
|
* Fri Oct 06 2006 hare@suse.de
|
||||||
- Update to official version 2.0-707
|
- Update to official version 2.0-707
|
||||||
* Fri Jul 28 2006 - olh@suse.de
|
* Fri Jul 28 2006 olh@suse.de
|
||||||
- remove unused boot.proc from boot.open-iscsi (#181972)
|
- remove unused boot.proc from boot.open-iscsi (#181972)
|
||||||
* Mon Jun 19 2006 - hare@suse.de
|
* Mon Jun 19 2006 hare@suse.de
|
||||||
- update to svn r606
|
- update to svn r606
|
||||||
- Include local patches
|
- Include local patches
|
||||||
- Fix OCFS2 hangs (#185107, #180773)
|
- Fix OCFS2 hangs (#185107, #180773)
|
||||||
* Thu Jun 01 2006 - hare@suse.de
|
* Thu Jun 01 2006 hare@suse.de
|
||||||
- Added new startmode 'onboot' for root on iSCSI
|
- Added new startmode 'onboot' for root on iSCSI
|
||||||
- Added new init script boot.open-iscsi startup
|
- Added new init script boot.open-iscsi startup
|
||||||
iscsid as early as possible (#176804)
|
iscsid as early as possible (#176804)
|
||||||
* Wed May 31 2006 - hare@suse.de
|
* Wed May 31 2006 hare@suse.de
|
||||||
- update to svn r595
|
- update to svn r595
|
||||||
- Include local patches
|
- Include local patches
|
||||||
- Fix lockup on target restart for real (#176151)
|
- Fix lockup on target restart for real (#176151)
|
||||||
* Mon May 22 2006 - hare@suse.de
|
* Mon May 22 2006 hare@suse.de
|
||||||
- update to svn r581
|
- update to svn r581
|
||||||
- Fix lockup when target is restarted (#176151)
|
- Fix lockup when target is restarted (#176151)
|
||||||
- Start open-iscsi after Xen (#177381)
|
- Start open-iscsi after Xen (#177381)
|
||||||
* Fri May 19 2006 - hare@suse.de
|
* Fri May 19 2006 hare@suse.de
|
||||||
- update to svn r574
|
- update to svn r574
|
||||||
- Fix machine hang during error recovery (#174166)
|
- Fix machine hang during error recovery (#174166)
|
||||||
- Display chap secrets for yast (#149055)
|
- Display chap secrets for yast (#149055)
|
||||||
* Tue May 02 2006 - hare@suse.de
|
* Tue May 02 2006 hare@suse.de
|
||||||
- update to svn r564
|
- update to svn r564
|
||||||
(contains all local changes)
|
(contains all local changes)
|
||||||
* Tue Apr 25 2006 - wrwhitehead@novell.com
|
* Wed Apr 26 2006 wrwhitehead@novell.com
|
||||||
- Fix communication hang (#157463).
|
- Fix communication hang (#157463).
|
||||||
- The iscsi-tcp_data_ready callback needs to empty out the
|
- The iscsi-tcp_data_ready callback needs to empty out the
|
||||||
tcp receive queue rather than just rely on the callback to
|
tcp receive queue rather than just rely on the callback to
|
||||||
occur for every message in the receive queue.
|
occur for every message in the receive queue.
|
||||||
* Fri Apr 21 2006 - hare@suse.de
|
* Fri Apr 21 2006 hare@suse.de
|
||||||
- update to svn r545
|
- update to svn r545
|
||||||
Fixes a crash with Wasabi targets (#157463).
|
Fixes a crash with Wasabi targets (#157463).
|
||||||
* Wed Mar 22 2006 - hare@suse.de
|
* Wed Mar 22 2006 hare@suse.de
|
||||||
- Add rcopen-iscsi link (#158230)
|
- Add rcopen-iscsi link (#158230)
|
||||||
- Check for active records before deletion (#149935)
|
- Check for active records before deletion (#149935)
|
||||||
- Do not display error messages on startup if no
|
- Do not display error messages on startup if no
|
||||||
records are found.
|
records are found.
|
||||||
* Fri Mar 10 2006 - hare@suse.de
|
* Fri Mar 10 2006 hare@suse.de
|
||||||
- Update to svn r520 (contains all local changes)
|
- Update to svn r520 (contains all local changes)
|
||||||
- Add documentation for discovery types (#149936)
|
- Add documentation for discovery types (#149936)
|
||||||
* Tue Feb 28 2006 - hare@suse.de
|
* Tue Feb 28 2006 hare@suse.de
|
||||||
- Fixed type of portal_group_tag (#153638)
|
- Fixed type of portal_group_tag (#153638)
|
||||||
* Tue Feb 21 2006 - hare@suse.de
|
* Tue Feb 21 2006 hare@suse.de
|
||||||
- Fixed open-iscsi startup script (#148982)
|
- Fixed open-iscsi startup script (#148982)
|
||||||
* Mon Feb 20 2006 - hare@suse.de
|
* Mon Feb 20 2006 hare@suse.de
|
||||||
- Update to svn r495
|
- Update to svn r495
|
||||||
- Implement iSCSI boot support (FATE #140350)
|
- Implement iSCSI boot support (FATE #140350)
|
||||||
* Thu Feb 09 2006 - hare@suse.de
|
* Thu Feb 09 2006 hare@suse.de
|
||||||
- Update to svn r488 to match kernel revision
|
- Update to svn r488 to match kernel revision
|
||||||
(#149412).
|
(#149412).
|
||||||
- Remove obsolete patches.
|
- Remove obsolete patches.
|
||||||
* Wed Jan 25 2006 - mls@suse.de
|
* Wed Jan 25 2006 mls@suse.de
|
||||||
- converted neededforbuild to BuildRequires
|
- converted neededforbuild to BuildRequires
|
||||||
* Mon Jan 23 2006 - hare@suse.de
|
* Mon Jan 23 2006 hare@suse.de
|
||||||
- Update to svn r473
|
- Update to svn r473
|
||||||
- Enhance start script
|
- Enhance start script
|
||||||
- Fix appearent login failures.
|
- Fix appearent login failures.
|
||||||
* Fri Jan 20 2006 - hare@suse.de
|
* Fri Jan 20 2006 hare@suse.de
|
||||||
- Update to svn r471
|
- Update to svn r471
|
||||||
- Fix start script.
|
- Fix start script.
|
||||||
* Mon Jan 16 2006 - hare@suse.de
|
* Mon Jan 16 2006 hare@suse.de
|
||||||
- Add Provides/Obsoletes tag.
|
- Add Provides/Obsoletes tag.
|
||||||
* Fri Jan 13 2006 - hare@suse.de
|
* Fri Jan 13 2006 hare@suse.de
|
||||||
- Rebasing package to open-iscsi-0.5-454
|
- Rebasing package to open-iscsi-0.5-454
|
||||||
- Update to svn r457
|
- Update to svn r457
|
||||||
* Mon Dec 19 2005 - hare@suse.de
|
* Mon Dec 19 2005 hare@suse.de
|
||||||
- Update to svn r446.
|
- Update to svn r446.
|
||||||
* Thu Nov 03 2005 - hare@suse.de
|
* Thu Nov 03 2005 hare@suse.de
|
||||||
- Update to svn r436.
|
- Update to svn r436.
|
||||||
* Thu Sep 08 2005 - hare@suse.de
|
* Thu Sep 08 2005 hare@suse.de
|
||||||
- Update to svn r408.
|
- Update to svn r408.
|
||||||
(Added NOOP IN handling)
|
(Added NOOP IN handling)
|
||||||
- Removed obsolete patches
|
- Removed obsolete patches
|
||||||
* Mon Aug 22 2005 - hare@suse.de
|
* Mon Aug 22 2005 hare@suse.de
|
||||||
- Update to svn r401.
|
- Update to svn r401.
|
||||||
- Fixed package to install properly.
|
- Fixed package to install properly.
|
||||||
- Fixed init script
|
- Fixed init script
|
||||||
- Added iscsi-iname to generate iSCSI Initiatorname.
|
- Added iscsi-iname to generate iSCSI Initiatorname.
|
||||||
* Mon Aug 08 2005 - hare@suse.de
|
* Mon Aug 08 2005 hare@suse.de
|
||||||
- Update to svn r389.
|
- Update to svn r389.
|
||||||
* Thu Jul 07 2005 - hare@suse.de
|
* Thu Jul 07 2005 hare@suse.de
|
||||||
- Initial version 0.3rc6-369
|
- Initial version 0.3rc6-369
|
||||||
|
Loading…
x
Reference in New Issue
Block a user