From: <vl...@us...> - 2008-05-14 17:20:30
|
Revision: 371 http://scst.svn.sourceforge.net/scst/?rev=371&view=rev Author: vlnb Date: 2008-05-14 10:20:20 -0700 (Wed, 14 May 2008) Log Message: ----------- Interface versioning between iSCSI-SCST kernel and user space parts, iscsi_u.h renamed to iscsi_scst.h. Property svn:ignore adjusted accordingly. Docs updated. Modified Paths: -------------- trunk/iscsi-scst/Makefile trunk/iscsi-scst/README trunk/iscsi-scst/kernel/config.c trunk/iscsi-scst/kernel/event.c trunk/iscsi-scst/kernel/iscsi.h trunk/iscsi-scst/usr/ctldev.c trunk/iscsi-scst/usr/iscsi_scstd.c trunk/iscsi-scst/usr/iscsid.h Added Paths: ----------- trunk/iscsi-scst/include/iscsi_scst.h trunk/iscsi-scst/include/iscsi_scst_ver.h Removed Paths: ------------- trunk/iscsi-scst/include/iscsi_u.h Property Changed: ---------------- trunk/ trunk/doc/ trunk/iscsi-scst/ trunk/iscsi-scst/doc/ trunk/iscsi-scst/doc/manpages/ trunk/iscsi-scst/etc/ trunk/iscsi-scst/etc/initd/ trunk/iscsi-scst/include/ trunk/iscsi-scst/kernel/ trunk/iscsi-scst/kernel/patches/ trunk/iscsi-scst/usr/ trunk/mpt/ trunk/mpt/in-tree/ trunk/qla2x00t/ trunk/qla2x00t/qla2x00-target/ trunk/qla_isp/ trunk/qla_isp/common/ trunk/qla_isp/doc/ trunk/qla_isp/firmware/ trunk/qla_isp/linux/ trunk/qla_isp/linux-2.6/ trunk/qla_isp/linux-2.6/build/ trunk/scripts/ trunk/scst/ trunk/scst/include/ trunk/scst/kernel/ trunk/scst/kernel/in-tree/ trunk/scst/kernel/old_unsupported/ trunk/scst/src/ trunk/scst/src/dev_handlers/ trunk/scstadmin/ trunk/scstadmin/SCST/ trunk/scstadmin/examples/ trunk/scstadmin/init.d/ trunk/scstadmin/scst_db/ trunk/srpt/ trunk/srpt/patches/ trunk/srpt/src/ trunk/usr/ trunk/usr/fileio/ trunk/www/ Property changes on: trunk ___________________________________________________________________ Name: svn:ignore - *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt + *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt iscsi_scst_itf_ver.h Property changes on: trunk/doc ___________________________________________________________________ Name: svn:ignore - *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt + *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt iscsi_scst_itf_ver.h Property changes on: trunk/iscsi-scst ___________________________________________________________________ Name: svn:ignore - *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt + *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt iscsi_scst_itf_ver.h Modified: trunk/iscsi-scst/Makefile =================================================================== --- trunk/iscsi-scst/Makefile 2008-05-14 14:58:29 UTC (rev 370) +++ trunk/iscsi-scst/Makefile 2008-05-14 17:20:20 UTC (rev 371) @@ -1,11 +1,9 @@ # -# Makefile for the Linux kernel device drivers. +# Makefile for iSCSI-SCST # # Note! Dependencies are done automagically by 'make dep', which also # removes any old dependencies. DON'T put your own dependencies here # unless it's something special (not a .c file). -# -# Note 2! The CFLAGS definitions are now in the main makefile. SCST_DIR := $(shell pwd)/../scst/src SUBDIRS := $(shell pwd) @@ -21,7 +19,7 @@ KDIR ?= /lib/modules/$(KVER)/build endif -all: progs mods +all: include/iscsi_scst_itf_ver.h progs mods mods: Modules.symvers Module.symvers $(MAKE) -C $(KDIR) SUBDIRS=$(shell pwd)/kernel modules @@ -29,9 +27,15 @@ progs: $(MAKE) -C usr -install: all kernel/iscsi-scst.ko usr/iscsi-scstd usr/iscsi-scst-adm +include/iscsi_scst_itf_ver.h: include/iscsi_scst.h + echo "/* Autogenerated, don't edit */" >include/iscsi_scst_itf_ver.h + echo "" >>include/iscsi_scst_itf_ver.h + echo -n "#define ISCSI_SCST_INTERFACE_VERSION " >>include/iscsi_scst_itf_ver.h + echo "\"`sha1sum include/iscsi_scst.h|awk '{printf $$1}'`\"" >>include/iscsi_scst_itf_ver.h + +install: all @install -vD usr/iscsi-scstd $(DISTDIR)/usr/local/sbin/iscsi-scstd - @install -vD usr/iscsi-scst-adm $(DISTDIR)/usr/local/sbin/iscsi-scst-adm + -@install -vD usr/iscsi-scst-adm $(DISTDIR)/usr/local/sbin/iscsi-scst-adm if [ -f /etc/debian_version ]; then \ install -vD -m 755 etc/initd/initd.debian $(DISTDIR)/etc/init.d/iscsi-scst; \ elif [ -f /etc/redhat-release ]; then \ @@ -70,7 +74,8 @@ $(MAKE) -C usr clean $(MAKE) -C $(KDIR) SUBDIRS=$(shell pwd)/kernel clean rm -f kernel/Modules.symvers kernel/Module.symvers \ - kernel/Module.markers kernel/modules.order + kernel/Module.markers kernel/modules.order \ + include/iscsi_scst_itf_ver.h extraclean: clean Modified: trunk/iscsi-scst/README =================================================================== --- trunk/iscsi-scst/README 2008-05-14 14:58:29 UTC (rev 370) +++ trunk/iscsi-scst/README 2008-05-14 17:20:20 UTC (rev 371) @@ -32,6 +32,12 @@ Basically as in README-IET, where file names are changed as specified above. +If during compilation you see message like "*** No rule to make target +`xxx.h', needed by `yyy.o'. Stop.", then your autogenerated +dependencies don't match your compiler configuration anymore. You should +run "make extraclean" to remove them. On the next compilation they will +be regenerated. + If you experience problems during kernel module load or running, check your system and/or kernel logs (or run dmesg command for the few most recent kernel messages). Property changes on: trunk/iscsi-scst/doc ___________________________________________________________________ Name: svn:ignore - *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt + *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt iscsi_scst_itf_ver.h Property changes on: trunk/iscsi-scst/doc/manpages ___________________________________________________________________ Name: svn:ignore - *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt + *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt iscsi_scst_itf_ver.h Property changes on: trunk/iscsi-scst/etc ___________________________________________________________________ Name: svn:ignore - *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt + *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt iscsi_scst_itf_ver.h Property changes on: trunk/iscsi-scst/etc/initd ___________________________________________________________________ Name: svn:ignore - *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt + *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt iscsi_scst_itf_ver.h Property changes on: trunk/iscsi-scst/include ___________________________________________________________________ Name: svn:ignore - *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt + *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt iscsi_scst_itf_ver.h Copied: trunk/iscsi-scst/include/iscsi_scst.h (from rev 370, trunk/iscsi-scst/include/iscsi_u.h) =================================================================== --- trunk/iscsi-scst/include/iscsi_scst.h (rev 0) +++ trunk/iscsi-scst/include/iscsi_scst.h 2008-05-14 17:20:20 UTC (rev 371) @@ -0,0 +1,153 @@ +/* + * Copyright (C) 2007 Vladislav Bolkhovitin + * Copyright (C) 2007 CMS Distribution Limited + * + * 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, version 2 + * of the License. + * + * 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. + */ + +#ifndef _ISCSI_SCST_U_H +#define _ISCSI_SCST_U_H + +#ifndef __KERNEL__ +#include <sys/uio.h> +#endif + +#include "iscsi_scst_ver.h" +#include "iscsi_scst_itf_ver.h" + +/* The maximum length of 223 bytes in the RFC. */ +#define ISCSI_NAME_LEN 256 + +#define ISCSI_LISTEN_PORT 3260 + +#define SCSI_ID_LEN 24 + +#ifndef aligned_u64 +#define aligned_u64 uint64_t __attribute__((aligned(8))) +#endif + +struct target_info { + u32 tid; + char name[ISCSI_NAME_LEN]; +}; + +struct session_info { + u32 tid; + + aligned_u64 sid; + char initiator_name[ISCSI_NAME_LEN]; + char user_name[ISCSI_NAME_LEN]; + u32 exp_cmd_sn; +}; + +#define DIGEST_ALL (DIGEST_NONE | DIGEST_CRC32C) +#define DIGEST_NONE (1 << 0) +#define DIGEST_CRC32C (1 << 1) + +struct conn_info { + u32 tid; + aligned_u64 sid; + + u32 cid; + u32 stat_sn; + u32 exp_stat_sn; + int header_digest; + int data_digest; + int fd; +}; + +enum { + key_initial_r2t, + key_immediate_data, + key_max_connections, + key_max_recv_data_length, + key_max_xmit_data_length, + key_max_burst_length, + key_first_burst_length, + key_default_wait_time, + key_default_retain_time, + key_max_outstanding_r2t, + key_data_pdu_inorder, + key_data_sequence_inorder, + key_error_recovery_level, + key_header_digest, + key_data_digest, + key_ofmarker, + key_ifmarker, + key_ofmarkint, + key_ifmarkint, + session_key_last, +}; + +enum { + key_queued_cmnds, + target_key_last, +}; + +enum { + key_session, + key_target, +}; + +struct iscsi_param_info { + u32 tid; + aligned_u64 sid; + + u32 param_type; + u32 partial; + + u32 session_param[session_key_last]; + u32 target_param[target_key_last]; +}; + +enum iscsi_event_state { + E_CONN_CLOSE, +}; + +struct iscsi_event { + u32 tid; + aligned_u64 sid; + u32 cid; + u32 state; +}; + +#define DEFAULT_NR_QUEUED_CMNDS 32 +#define MIN_NR_QUEUED_CMNDS 1 +#define MAX_NR_QUEUED_CMNDS 256 + +#define MAX_DATA_SEG_LEN (4096/sizeof(struct iovec)*4096) + +#define NETLINK_ISCSI_SCST 25 + +#define REGISTER_USERD _IOW('s', 0, const char*) +#define ADD_TARGET _IOW('s', 1, struct target_info) +#define DEL_TARGET _IOW('s', 2, struct target_info) +#define ADD_SESSION _IOW('s', 3, struct session_info) +#define DEL_SESSION _IOW('s', 4, struct session_info) +#define GET_SESSION_INFO _IOWR('s', 5, struct session_info) +#define ADD_CONN _IOW('s', 6, struct conn_info) +#define DEL_CONN _IOW('s', 7, struct conn_info) +#define GET_CONN_INFO _IOWR('s', 8, struct conn_info) +#define ISCSI_PARAM_SET _IOW('s', 9, struct iscsi_param_info) +#define ISCSI_PARAM_GET _IOWR('s', 10, struct iscsi_param_info) + +static inline int iscsi_is_key_declarative(int key) +{ + switch(key) + { + case key_max_xmit_data_length: + return 1; + default: + return 0; + } +} + +#endif Added: trunk/iscsi-scst/include/iscsi_scst_ver.h =================================================================== --- trunk/iscsi-scst/include/iscsi_scst_ver.h (rev 0) +++ trunk/iscsi-scst/include/iscsi_scst_ver.h 2008-05-14 17:20:20 UTC (rev 371) @@ -0,0 +1,16 @@ +/* + * Copyright (C) 2007 Vladislav Bolkhovitin + * Copyright (C) 2007 CMS Distribution Limited + * + * 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, version 2 + * of the License. + * + * 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. + */ + +#define ISCSI_VERSION_STRING "0.9.6/0.4.15r148" Deleted: trunk/iscsi-scst/include/iscsi_u.h =================================================================== --- trunk/iscsi-scst/include/iscsi_u.h 2008-05-14 14:58:29 UTC (rev 370) +++ trunk/iscsi-scst/include/iscsi_u.h 2008-05-14 17:20:20 UTC (rev 371) @@ -1,151 +0,0 @@ -/* - * Copyright (C) 2007 Vladislav Bolkhovitin - * Copyright (C) 2007 CMS Distribution Limited - * - * 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, version 2 - * of the License. - * - * 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. - */ - -#ifndef _ISCSI_U_H -#define _ISCSI_U_H - -#ifndef __KERNEL__ -#include <sys/uio.h> -#endif - -#define ISCSI_VERSION_STRING "0.9.6/0.4.15r148" - -/* The maximum length of 223 bytes in the RFC. */ -#define ISCSI_NAME_LEN 256 - -#define ISCSI_LISTEN_PORT 3260 - -#define SCSI_ID_LEN 24 - -#ifndef aligned_u64 -#define aligned_u64 uint64_t __attribute__((aligned(8))) -#endif - -struct target_info { - u32 tid; - char name[ISCSI_NAME_LEN]; -}; - -struct session_info { - u32 tid; - - aligned_u64 sid; - char initiator_name[ISCSI_NAME_LEN]; - char user_name[ISCSI_NAME_LEN]; - u32 exp_cmd_sn; -}; - -#define DIGEST_ALL (DIGEST_NONE | DIGEST_CRC32C) -#define DIGEST_NONE (1 << 0) -#define DIGEST_CRC32C (1 << 1) - -struct conn_info { - u32 tid; - aligned_u64 sid; - - u32 cid; - u32 stat_sn; - u32 exp_stat_sn; - int header_digest; - int data_digest; - int fd; -}; - -enum { - key_initial_r2t, - key_immediate_data, - key_max_connections, - key_max_recv_data_length, - key_max_xmit_data_length, - key_max_burst_length, - key_first_burst_length, - key_default_wait_time, - key_default_retain_time, - key_max_outstanding_r2t, - key_data_pdu_inorder, - key_data_sequence_inorder, - key_error_recovery_level, - key_header_digest, - key_data_digest, - key_ofmarker, - key_ifmarker, - key_ofmarkint, - key_ifmarkint, - session_key_last, -}; - -enum { - key_queued_cmnds, - target_key_last, -}; - -enum { - key_session, - key_target, -}; - -struct iscsi_param_info { - u32 tid; - aligned_u64 sid; - - u32 param_type; - u32 partial; - - u32 session_param[session_key_last]; - u32 target_param[target_key_last]; -}; - -enum iscsi_event_state { - E_CONN_CLOSE, -}; - -struct iscsi_event { - u32 tid; - aligned_u64 sid; - u32 cid; - u32 state; -}; - -#define DEFAULT_NR_QUEUED_CMNDS 32 -#define MIN_NR_QUEUED_CMNDS 1 -#define MAX_NR_QUEUED_CMNDS 256 - -#define MAX_DATA_SEG_LEN (4096/sizeof(struct iovec)*4096) - -#define NETLINK_ISCSI_SCST 25 - -#define ADD_TARGET _IOW('i', 0, struct target_info) -#define DEL_TARGET _IOW('i', 1, struct target_info) -#define ADD_SESSION _IOW('i', 2, struct session_info) -#define DEL_SESSION _IOW('i', 3, struct session_info) -#define GET_SESSION_INFO _IOWR('i', 4, struct session_info) -#define ADD_CONN _IOW('i', 5, struct conn_info) -#define DEL_CONN _IOW('i', 6, struct conn_info) -#define GET_CONN_INFO _IOWR('i', 7, struct conn_info) -#define ISCSI_PARAM_SET _IOW('i', 8, struct iscsi_param_info) -#define ISCSI_PARAM_GET _IOWR('i', 9, struct iscsi_param_info) - -static inline int iscsi_is_key_declarative(int key) -{ - switch(key) - { - case key_max_xmit_data_length: - return 1; - default: - return 0; - } -} - -#endif Property changes on: trunk/iscsi-scst/kernel ___________________________________________________________________ Name: svn:ignore - *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt + *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt iscsi_scst_itf_ver.h Modified: trunk/iscsi-scst/kernel/config.c =================================================================== --- trunk/iscsi-scst/kernel/config.c 2008-05-14 14:58:29 UTC (rev 370) +++ trunk/iscsi-scst/kernel/config.c 2008-05-14 17:20:20 UTC (rev 371) @@ -369,12 +369,40 @@ return err; } +static int iscsi_check_version(unsigned long arg) +{ + char ver[sizeof(ISCSI_SCST_INTERFACE_VERSION)+1]; + int res; + + res = copy_from_user(ver, (void*)arg, sizeof(ver)); + if (res < 0) { + PRINT_ERROR("%s", "Unable to get version string"); + goto out; + } + ver[sizeof(ver)-1] = '\0'; + + if (strcmp(ver, ISCSI_SCST_INTERFACE_VERSION) != 0) { + PRINT_ERROR("Incorrect version of user space %s (needed %s)", + ver, ISCSI_SCST_INTERFACE_VERSION); + res = -EINVAL; + goto out; + } + +out: + return res; +} + static long ioctl(struct file *file, unsigned int cmd, unsigned long arg) { struct iscsi_target *target = NULL; long err; u32 id; + if (cmd == REGISTER_USERD) { + err = iscsi_check_version(arg); + goto out; + } + if ((err = get_user(id, (u32 *) arg)) != 0) goto out; @@ -441,10 +469,11 @@ case GET_CONN_INFO: err = get_conn_info(target, arg); break; - + default: PRINT_ERROR("invalid ioctl cmd %x", cmd); err = -EINVAL; + break; } mutex_unlock(&target->target_mutex); Modified: trunk/iscsi-scst/kernel/event.c =================================================================== --- trunk/iscsi-scst/kernel/event.c 2008-05-14 14:58:29 UTC (rev 370) +++ trunk/iscsi-scst/kernel/event.c 2008-05-14 17:20:20 UTC (rev 371) @@ -18,7 +18,7 @@ */ #include <net/tcp.h> -#include "iscsi_u.h" +#include "iscsi_scst.h" #include "iscsi.h" static struct sock *nl; Modified: trunk/iscsi-scst/kernel/iscsi.h =================================================================== --- trunk/iscsi-scst/kernel/iscsi.h 2008-05-14 14:58:29 UTC (rev 370) +++ trunk/iscsi-scst/kernel/iscsi.h 2008-05-14 17:20:20 UTC (rev 371) @@ -26,7 +26,7 @@ #include <scst.h> #include "iscsi_hdr.h" -#include "iscsi_u.h" +#include "iscsi_scst.h" #include "iscsi_dbg.h" Property changes on: trunk/iscsi-scst/kernel/patches ___________________________________________________________________ Name: svn:ignore - *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt + *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt iscsi_scst_itf_ver.h Property changes on: trunk/iscsi-scst/usr ___________________________________________________________________ Name: svn:ignore - *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt + *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt iscsi_scst_itf_ver.h Modified: trunk/iscsi-scst/usr/ctldev.c =================================================================== --- trunk/iscsi-scst/usr/ctldev.c 2008-05-14 14:58:29 UTC (rev 370) +++ trunk/iscsi-scst/usr/ctldev.c 2008-05-14 17:20:20 UTC (rev 371) @@ -40,11 +40,12 @@ char devname[256]; char buf[256]; int devn; - int ctlfd; + int ctlfd = -1; + int err; if (!(f = fopen("/proc/devices", "r"))) { perror("Cannot open control path to the driver\n"); - return -1; + goto out; } devn = 0; @@ -63,24 +64,32 @@ fclose(f); if (!devn) { - printf - ("cannot find iscsictl in /proc/devices - " + printf("cannot find iscsictl in /proc/devices - " "make sure the module is loaded\n"); - return -1; + goto out; } unlink(CTL_DEVICE); if (mknod(CTL_DEVICE, (S_IFCHR | 0600), (devn << 8))) { printf("cannot create %s %d\n", CTL_DEVICE, errno); - return -1; + goto out; } ctlfd = open(CTL_DEVICE, O_RDWR); if (ctlfd < 0) { printf("cannot open %s %d\n", CTL_DEVICE, errno); - return -1; + goto out; } + err = ioctl(ctlfd, REGISTER_USERD, ISCSI_SCST_INTERFACE_VERSION); + if (err < 0) { + log_error("Unable to register: %s\n", strerror(errno)); + close(ctlfd); + ctlfd = -1; + goto out; + } + +out: return ctlfd; } Modified: trunk/iscsi-scst/usr/iscsi_scstd.c =================================================================== --- trunk/iscsi-scst/usr/iscsi_scstd.c 2008-05-14 14:58:29 UTC (rev 370) +++ trunk/iscsi-scst/usr/iscsi_scstd.c 2008-05-14 17:20:20 UTC (rev 371) @@ -573,10 +573,8 @@ exit(-1); }; - if ((ctrl_fd = ki->ctldev_open()) < 0) { - perror("ctldev fd\n"); + if ((ctrl_fd = ki->ctldev_open()) < 0) exit(-1); - } if ((ipc_fd = iscsi_adm_request_listen()) < 0) { perror("ipc fd\n"); Modified: trunk/iscsi-scst/usr/iscsid.h =================================================================== --- trunk/iscsi-scst/usr/iscsid.h 2008-05-14 14:58:29 UTC (rev 370) +++ trunk/iscsi-scst/usr/iscsid.h 2008-05-14 17:20:20 UTC (rev 371) @@ -22,7 +22,7 @@ #include "types.h" #include "iscsi_hdr.h" -#include "iscsi_u.h" +#include "iscsi_scst.h" #include "param.h" #include "config.h" #include "misc.h" Property changes on: trunk/mpt ___________________________________________________________________ Name: svn:ignore - *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt + *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt iscsi_scst_itf_ver.h Property changes on: trunk/mpt/in-tree ___________________________________________________________________ Name: svn:ignore - *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt + *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt iscsi_scst_itf_ver.h Property changes on: trunk/qla2x00t ___________________________________________________________________ Name: svn:ignore - *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt + *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt iscsi_scst_itf_ver.h Property changes on: trunk/qla2x00t/qla2x00-target ___________________________________________________________________ Name: svn:ignore - *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt + *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt iscsi_scst_itf_ver.h Property changes on: trunk/qla_isp ___________________________________________________________________ Name: svn:ignore - *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt + *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt iscsi_scst_itf_ver.h Property changes on: trunk/qla_isp/common ___________________________________________________________________ Name: svn:ignore - *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt + *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt iscsi_scst_itf_ver.h Property changes on: trunk/qla_isp/doc ___________________________________________________________________ Name: svn:ignore - *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt + *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt iscsi_scst_itf_ver.h Property changes on: trunk/qla_isp/firmware ___________________________________________________________________ Name: svn:ignore - *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt + *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt iscsi_scst_itf_ver.h Property changes on: trunk/qla_isp/linux ___________________________________________________________________ Name: svn:ignore - *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt + *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt iscsi_scst_itf_ver.h Property changes on: trunk/qla_isp/linux-2.6 ___________________________________________________________________ Name: svn:ignore - *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt + *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt iscsi_scst_itf_ver.h Property changes on: trunk/qla_isp/linux-2.6/build ___________________________________________________________________ Name: svn:ignore - *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt + *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt iscsi_scst_itf_ver.h Property changes on: trunk/scripts ___________________________________________________________________ Name: svn:ignore + *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt iscsi_scst_itf_ver.h Property changes on: trunk/scst ___________________________________________________________________ Name: svn:ignore - *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt + *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt iscsi_scst_itf_ver.h Property changes on: trunk/scst/include ___________________________________________________________________ Name: svn:ignore - *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt + *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt iscsi_scst_itf_ver.h Property changes on: trunk/scst/kernel ___________________________________________________________________ Name: svn:ignore - *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt + *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt iscsi_scst_itf_ver.h Property changes on: trunk/scst/kernel/in-tree ___________________________________________________________________ Name: svn:ignore - *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt + *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt iscsi_scst_itf_ver.h Property changes on: trunk/scst/kernel/old_unsupported ___________________________________________________________________ Name: svn:ignore - *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt + *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt iscsi_scst_itf_ver.h Property changes on: trunk/scst/src ___________________________________________________________________ Name: svn:ignore - *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt + *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt iscsi_scst_itf_ver.h Property changes on: trunk/scst/src/dev_handlers ___________________________________________________________________ Name: svn:ignore - *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt + *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt iscsi_scst_itf_ver.h Property changes on: trunk/scstadmin ___________________________________________________________________ Name: svn:ignore - *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt + *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt iscsi_scst_itf_ver.h Property changes on: trunk/scstadmin/SCST ___________________________________________________________________ Name: svn:ignore - *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt + *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt iscsi_scst_itf_ver.h Property changes on: trunk/scstadmin/examples ___________________________________________________________________ Name: svn:ignore - *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt + *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt iscsi_scst_itf_ver.h Property changes on: trunk/scstadmin/init.d ___________________________________________________________________ Name: svn:ignore - *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt + *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt iscsi_scst_itf_ver.h Property changes on: trunk/scstadmin/scst_db ___________________________________________________________________ Name: svn:ignore - *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt + *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt iscsi_scst_itf_ver.h Property changes on: trunk/srpt ___________________________________________________________________ Name: svn:ignore - *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt + *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt iscsi_scst_itf_ver.h Property changes on: trunk/srpt/patches ___________________________________________________________________ Name: svn:ignore - *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt + *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt iscsi_scst_itf_ver.h Property changes on: trunk/srpt/src ___________________________________________________________________ Name: svn:ignore - *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt + *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt iscsi_scst_itf_ver.h Property changes on: trunk/usr ___________________________________________________________________ Name: svn:ignore - *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt + *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt iscsi_scst_itf_ver.h Property changes on: trunk/usr/fileio ___________________________________________________________________ Name: svn:ignore - *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt + *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt iscsi_scst_itf_ver.h Property changes on: trunk/www ___________________________________________________________________ Name: svn:ignore - *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt + *.o *.mod.c *.ko *.ko.cmd *.o.cmd .tmp_versions Modules.symvers Module.symvers modules.order Module.markers .depend* iscsi-scst-adm iscsi-scstd fileio_tgt iscsi_scst_itf_ver.h This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |