mirror of
https://github.com/samba-team/samba.git
synced 2025-01-12 09:18:10 +03:00
Removed unneeded variable, added comment on deadlock prevention.
Jeremy.
(This used to be commit 3f52632ac9
)
This commit is contained in:
parent
0ef1acbabb
commit
79a9902d39
@ -115,7 +115,6 @@ BOOL claim_connection(connection_struct *conn,char *name,int max_connections,BOO
|
||||
struct connections_key key;
|
||||
struct connections_data crec;
|
||||
TDB_DATA kbuf, dbuf;
|
||||
BOOL ret = True;
|
||||
|
||||
if (!tdb) {
|
||||
tdb = tdb_open_log(lock_path("connections.tdb"), 0, TDB_CLEAR_IF_FIRST|TDB_DEFAULT,
|
||||
@ -136,18 +135,21 @@ BOOL claim_connection(connection_struct *conn,char *name,int max_connections,BOO
|
||||
cs.name = lp_servicename(SNUM(conn));
|
||||
cs.Clear = Clear;
|
||||
|
||||
/*
|
||||
* This has a race condition, but locking the chain before hand is worse
|
||||
* as it leads to deadlock.
|
||||
*/
|
||||
|
||||
if (tdb_traverse(tdb, count_fn, &cs) == -1) {
|
||||
DEBUG(0,("claim_connection: traverse of connections.tdb failed with error %s.\n",
|
||||
tdb_errorstr(tdb) ));
|
||||
ret = False;
|
||||
goto out;
|
||||
return False;
|
||||
}
|
||||
|
||||
if (cs.curr_connections >= max_connections) {
|
||||
DEBUG(1,("claim_connection: Max connections (%d) exceeded for %s\n",
|
||||
max_connections, name ));
|
||||
ret = False;
|
||||
goto out;
|
||||
return False;
|
||||
}
|
||||
}
|
||||
|
||||
@ -183,10 +185,8 @@ BOOL claim_connection(connection_struct *conn,char *name,int max_connections,BOO
|
||||
if (tdb_store(tdb, kbuf, dbuf, TDB_REPLACE) != 0) {
|
||||
DEBUG(0,("claim_connection: tdb_store failed with error %s.\n",
|
||||
tdb_errorstr(tdb) ));
|
||||
ret = False;
|
||||
return False;
|
||||
}
|
||||
|
||||
out:
|
||||
|
||||
return ret;
|
||||
return True;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user