s3: Remove talloc_autofree_context() from files.c
authorVolker Lendecke <vl@samba.org>
Mon, 27 Sep 2010 03:50:22 +0000 (05:50 +0200)
committerVolker Lendecke <vl@samba.org>
Tue, 28 Sep 2010 05:36:18 +0000 (07:36 +0200)
source3/include/proto.h
source3/smbd/files.c
source3/smbd/server.c

index 88cb2c1fffb19c176b63cc75c8e2717bc9678914..5cdb956974c3c535c814069b4d767c634fea0b4d 100644 (file)
@@ -4753,7 +4753,7 @@ NTSTATUS file_new(struct smb_request *req, connection_struct *conn,
 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,
index 05b22dcd7c2d971934f87181b2fb2dd89be3a117..4d9e4f1f81a078782c73a9bee8fd5b983a219136 100644 (file)
@@ -172,7 +172,7 @@ void file_close_pid(struct smbd_server_connection *sconn, uint16 smbpid,
  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;
@@ -197,12 +197,12 @@ void file_init(void)
 
        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;
 }
 
 /****************************************************************************
index 6cc7907cbbf130303152ce67244fce9a81c989f0..ff59b3dbafb36993d7cdd8678895c98391423708 100644 (file)
@@ -794,8 +794,6 @@ static bool init_structs(void )
        if (!init_names())
                return False;
 
-       file_init();
-
        if (!secrets_init())
                return False;
 
@@ -1168,6 +1166,11 @@ extern void build_options(bool screen);
                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