]> git.ipfire.org Git - people/arne_f/ipfire-3.x.git/blob - iscsi-initiator-utils/patches/iscsi-initiator-utils-fix-lib-sysfs-init.patch
Move all packages to root.
[people/arne_f/ipfire-3.x.git] / iscsi-initiator-utils / patches / iscsi-initiator-utils-fix-lib-sysfs-init.patch
1 diff -aurp open-iscsi-2.0-872-rc1-bnx2i/libiscsi/libiscsi.c open-iscsi-2.0-872-rc1-bnx2i.work/libiscsi/libiscsi.c
2 --- open-iscsi-2.0-872-rc1-bnx2i/libiscsi/libiscsi.c 2010-05-18 17:57:59.000000000 -0500
3 +++ open-iscsi-2.0-872-rc1-bnx2i.work/libiscsi/libiscsi.c 2010-05-18 17:58:43.000000000 -0500
4 @@ -40,6 +40,9 @@
5
6 #define CHECK(a) { context->error_str[0] = 0; rc = a; if (rc) goto leave; }
7
8 +/* UGLY, not thread safe :( */
9 +static int sysfs_initialized = 0;
10 +
11 struct libiscsi_context {
12 char error_str[256];
13 /* For get_parameter_helper() */
14 @@ -66,7 +69,10 @@ struct libiscsi_context *libiscsi_init(v
15 return NULL;
16
17 log_init("libiscsi", 1024, libiscsi_log, context);
18 - sysfs_init();
19 + if (!sysfs_initialized) {
20 + sysfs_init();
21 + sysfs_initialized = 1;
22 + }
23 increase_max_files();
24 if (idbm_init(NULL)) {
25 sysfs_cleanup();
26 @@ -529,6 +535,11 @@ int libiscsi_get_firmware_network_config
27 {
28 struct boot_context fw_entry;
29
30 + if (!sysfs_initialized) {
31 + sysfs_init();
32 + sysfs_initialized = 1;
33 + }
34 +
35 memset(config, 0, sizeof *config);
36 memset(&fw_entry, 0, sizeof fw_entry);
37 if (fw_get_entry(&fw_entry))
38 @@ -551,6 +562,11 @@ int libiscsi_get_firmware_initiator_name
39 {
40 struct boot_context fw_entry;
41
42 + if (!sysfs_initialized) {
43 + sysfs_init();
44 + sysfs_initialized = 1;
45 + }
46 +
47 memset(initiatorname, 0, LIBISCSI_VALUE_MAXLEN);
48 memset(&fw_entry, 0, sizeof fw_entry);
49 if (fw_get_entry(&fw_entry))