+++ /dev/null
-diff -aurp open-iscsi-2.0-872-rc1-bnx2i/libiscsi/libiscsi.c open-iscsi-2.0-872-rc1-bnx2i.work/libiscsi/libiscsi.c
---- open-iscsi-2.0-872-rc1-bnx2i/libiscsi/libiscsi.c 2010-05-18 17:57:59.000000000 -0500
-+++ open-iscsi-2.0-872-rc1-bnx2i.work/libiscsi/libiscsi.c 2010-05-18 17:58:43.000000000 -0500
-@@ -40,6 +40,9 @@
-
- #define CHECK(a) { context->error_str[0] = 0; rc = a; if (rc) goto leave; }
-
-+/* UGLY, not thread safe :( */
-+static int sysfs_initialized = 0;
-+
- struct libiscsi_context {
- char error_str[256];
- /* For get_parameter_helper() */
-@@ -66,7 +69,10 @@ struct libiscsi_context *libiscsi_init(v
- return NULL;
-
- log_init("libiscsi", 1024, libiscsi_log, context);
-- sysfs_init();
-+ if (!sysfs_initialized) {
-+ sysfs_init();
-+ sysfs_initialized = 1;
-+ }
- increase_max_files();
- if (idbm_init(NULL)) {
- sysfs_cleanup();
-@@ -529,6 +535,11 @@ int libiscsi_get_firmware_network_config
- {
- struct boot_context fw_entry;
-
-+ if (!sysfs_initialized) {
-+ sysfs_init();
-+ sysfs_initialized = 1;
-+ }
-+
- memset(config, 0, sizeof *config);
- memset(&fw_entry, 0, sizeof fw_entry);
- if (fw_get_entry(&fw_entry))
-@@ -551,6 +562,11 @@ int libiscsi_get_firmware_initiator_name
- {
- struct boot_context fw_entry;
-
-+ if (!sysfs_initialized) {
-+ sysfs_init();
-+ sysfs_initialized = 1;
-+ }
-+
- memset(initiatorname, 0, LIBISCSI_VALUE_MAXLEN);
- memset(&fw_entry, 0, sizeof fw_entry);
- if (fw_get_entry(&fw_entry))