void file_close_conn(connection_struct *conn);
void file_close_pid(struct smbd_server_connection *sconn, uint16 smbpid,
int vuid);
-void file_init(void);
+bool file_init(struct smbd_server_connection *sconn);
void file_close_user(struct smbd_server_connection *sconn, int vuid);
struct files_struct *files_forall(
struct smbd_server_connection *sconn,
Initialise file structures.
****************************************************************************/
-void file_init(void)
+bool file_init(struct smbd_server_connection *sconn)
{
int request_max_open_files = lp_max_open_files();
int real_lim;
SMB_ASSERT(real_max_open_files > 100);
- file_bmap = bitmap_talloc(talloc_autofree_context(),
- real_max_open_files);
+ file_bmap = bitmap_talloc(sconn, real_max_open_files);
if (!file_bmap) {
- exit_server("out of memory in file_init");
+ return false;
}
+ return true;
}
/****************************************************************************
if (!init_names())
return False;
- file_init();
-
if (!secrets_init())
return False;
return -1;
}
+ if (!file_init(smbd_server_conn)) {
+ DEBUG(0, ("ERROR: file_init failed\n"));
+ return -1;
+ }
+
/*
* Initialize spoolss with an init function to convert printers first.
* static_init_rpc will try to initialize the spoolss server too but you