1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-23 17:34:34 +03:00

r3561: Since we have tdb_reopen_all() after all forks, the local_pid logic is not

correct anymore. If we actually open the tdb before the fork, we end up
opening the tdb twice. Jerry, jra, this also happens in the locking and
printing subsystems. You might want to check it there (not that it actually
happens right now, but this gave me some confusion lately...).

Volker
(This used to be commit 40cad9dcc1)
This commit is contained in:
Volker Lendecke 2004-11-05 21:55:21 +00:00 committed by Gerald (Jerry) Carter
parent baf1ae1b0e
commit 9c61daf667
2 changed files with 2 additions and 8 deletions

View File

@ -135,11 +135,10 @@ static BOOL default_group_mapping(void)
static BOOL init_group_mapping(void)
{
static pid_t local_pid;
const char *vstring = "INFO/version";
int32 vers_id;
if (tdb && local_pid == sys_getpid())
if (tdb)
return True;
tdb = tdb_open_log(lock_path("group_mapping.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
if (!tdb) {
@ -147,8 +146,6 @@ static BOOL init_group_mapping(void)
return False;
}
local_pid = sys_getpid();
/* handle a Samba upgrade */
tdb_lock_bystring(tdb, vstring, 0);

View File

@ -30,11 +30,10 @@ static TDB_CONTEXT *tdb; /* used for driver files */
BOOL init_account_policy(void)
{
static pid_t local_pid;
const char *vstring = "INFO/version";
uint32 version;
if (tdb && local_pid == sys_getpid())
if (tdb)
return True;
tdb = tdb_open_log(lock_path("account_policy.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
if (!tdb) {
@ -42,8 +41,6 @@ BOOL init_account_policy(void)
return False;
}
local_pid = sys_getpid();
/* handle a Samba upgrade */
tdb_lock_bystring(tdb, vstring,0);
if (!tdb_fetch_uint32(tdb, vstring, &version) || version != DATABASE_VERSION) {