mirror of
https://github.com/samba-team/samba.git
synced 2024-12-24 21:34:56 +03:00
s3/smbd: open the share_info.tdb on startup instead of tconx
This is a small performance optimization. Instead of opening the tdb on every smb connection in the forked child process, we now open it in the parent and share the fd. This also reduces the total fd usage in the system.
This commit is contained in:
parent
bc4b253b2c
commit
6c55518d47
@ -721,6 +721,7 @@ struct named_mutex *grab_named_mutex(TALLOC_CTX *mem_ctx, const char *name,
|
|||||||
|
|
||||||
/* The following definitions come from lib/sharesec.c */
|
/* The following definitions come from lib/sharesec.c */
|
||||||
|
|
||||||
|
bool share_info_db_init(void);
|
||||||
SEC_DESC *get_share_security_default( TALLOC_CTX *ctx, size_t *psize, uint32 def_access);
|
SEC_DESC *get_share_security_default( TALLOC_CTX *ctx, size_t *psize, uint32 def_access);
|
||||||
SEC_DESC *get_share_security( TALLOC_CTX *ctx, const char *servicename,
|
SEC_DESC *get_share_security( TALLOC_CTX *ctx, const char *servicename,
|
||||||
size_t *psize);
|
size_t *psize);
|
||||||
|
@ -37,7 +37,7 @@ static int delete_fn(struct db_record *rec, void *priv)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool share_info_db_init(void)
|
bool share_info_db_init(void)
|
||||||
{
|
{
|
||||||
const char *vstring = "INFO/version";
|
const char *vstring = "INFO/version";
|
||||||
int32 vers_id;
|
int32 vers_id;
|
||||||
|
@ -1218,6 +1218,15 @@ extern void build_options(bool screen);
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Open the share_info.tdb here, so we don't have to open
|
||||||
|
after the fork on every single connection. This is a small
|
||||||
|
performance improvment and reduces the total number of system
|
||||||
|
fds used. */
|
||||||
|
if (!share_info_db_init()) {
|
||||||
|
DEBUG(0,("ERROR: failed to load share info db.\n"));
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
/* only start the background queue daemon if we are
|
/* only start the background queue daemon if we are
|
||||||
running as a daemon -- bad things will happen if
|
running as a daemon -- bad things will happen if
|
||||||
smbd is launched via inetd and we fork a copy of
|
smbd is launched via inetd and we fork a copy of
|
||||||
|
Loading…
Reference in New Issue
Block a user