diff options
Diffstat (limited to 'src/server/server.c')
| -rw-r--r-- | src/server/server.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/server/server.c b/src/server/server.c index d086930..0bbb417 100644 --- a/src/server/server.c +++ b/src/server/server.c @@ -27,6 +27,7 @@ #include "net.h" #include "altservers.h" #include "integrity.h" +#include "iscsi.h" #include "threadpool.h" #include "rpc.h" #include "fuse.h" @@ -176,6 +177,10 @@ _Noreturn static void dnbd3_cleanup() threadpool_waitEmpty(); + // Destroy iSCSI global vector + iscsi_destroy(); + pthread_rwlock_destroy( &iscsi_globvec_rwlock ); + // Clean up images retries = 5; while ( !image_tryFreeAll() && --retries > 0 ) { @@ -365,6 +370,12 @@ int main(int argc, char *argv[]) altservers_init(); integrity_init(); net_init(); + + if ( _iSCSIServer ) { + if ( (pthread_rwlock_init( &iscsi_globvec_rwlock, NULL ) != 0) || (iscsi_create() < 0) ) + return EXIT_FAILURE; + } + uplink_globalsInit(); rpc_init(); if ( mountDir != NULL && !dfuse_init( "-oallow_other", mountDir ) ) { |
