diff options
Diffstat (limited to 'source3/locking')
-rw-r--r-- | source3/locking/brlock.c | 23 | ||||
-rw-r--r-- | source3/locking/locking.c | 7 |
2 files changed, 9 insertions, 21 deletions
diff --git a/source3/locking/brlock.c b/source3/locking/brlock.c index 8c22f7d7ab..e7fa4022f6 100644 --- a/source3/locking/brlock.c +++ b/source3/locking/brlock.c @@ -162,10 +162,6 @@ static BOOL brl_conflict_other(struct lock_struct *lck1, struct lock_struct *lck } -#if DONT_DO_THIS - /* doing this traversal could kill solaris machines under high load (tridge) */ - /* delete any dead locks */ - /**************************************************************************** Delete a record if it is for a dead process, if check_self is true, then delete any records belonging to this pid also (there shouldn't be any). @@ -219,7 +215,6 @@ static int delete_fn(TDB_CONTEXT *ttdb, TDB_DATA kbuf, TDB_DATA dbuf, void *stat tdb_chainunlock(tdb, kbuf); return 0; } -#endif /**************************************************************************** Open up the brlock.tdb database. @@ -227,6 +222,8 @@ static int delete_fn(TDB_CONTEXT *ttdb, TDB_DATA kbuf, TDB_DATA dbuf, void *stat void brl_init(int read_only) { + BOOL check_self = False; + if (tdb) return; tdb = tdb_open_log(lock_path("brlock.tdb"), 0, TDB_DEFAULT|(read_only?0x0:TDB_CLEAR_IF_FIRST), @@ -236,14 +233,9 @@ void brl_init(int read_only) return; } -#if DONT_DO_THIS - /* doing this traversal could kill solaris machines under high load (tridge) */ /* delete any dead locks */ - if (!read_only) { - BOOL check_self = False; + if (!read_only) tdb_traverse(tdb, delete_fn, &check_self); - } -#endif } /**************************************************************************** @@ -252,17 +244,14 @@ void brl_init(int read_only) void brl_shutdown(int read_only) { + BOOL check_self = True; + if (!tdb) return; -#if DONT_DO_THIS - /* doing this traversal could kill solaris machines under high load (tridge) */ /* delete any dead locks */ - if (!read_only) { - BOOL check_self = True; + if (!read_only) tdb_traverse(tdb, delete_fn, &check_self); - } -#endif tdb_close(tdb); } diff --git a/source3/locking/locking.c b/source3/locking/locking.c index d42d041b79..87df805250 100644 --- a/source3/locking/locking.c +++ b/source3/locking/locking.c @@ -681,7 +681,6 @@ static BOOL mod_share_mode( SMB_DEV_T dev, SMB_INO_T inode, share_mode_entry *en int i; share_mode_entry *shares; BOOL need_store=False; - BOOL ret = True; /* read in the existing share modes */ dbuf = tdb_fetch(tdb, locking_key(dev, inode)); @@ -703,15 +702,15 @@ static BOOL mod_share_mode( SMB_DEV_T dev, SMB_INO_T inode, share_mode_entry *en if (need_store) { if (data->u.num_share_mode_entries == 0) { if (tdb_delete(tdb, locking_key(dev, inode)) == -1) - ret = False; + need_store = False; } else { if (tdb_store(tdb, locking_key(dev, inode), dbuf, TDB_REPLACE) == -1) - ret = False; + need_store = False; } } SAFE_FREE(dbuf.dptr); - return ret; + return need_store; } /******************************************************************* |