summaryrefslogtreecommitdiff
path: root/source3/smbd/blocking.c
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2006-04-13 22:22:54 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 11:16:22 -0500
commit713eaf1d67d9ef967fb4526113e2a3ba3dd5e229 (patch)
tree04e1b26cd6c6c1fa8c1bd0c1c0a34c6abebd15f9 /source3/smbd/blocking.c
parent1f19676903021bed4cc42356230c6c31ff0577c4 (diff)
downloadsamba-713eaf1d67d9ef967fb4526113e2a3ba3dd5e229.tar.gz
samba-713eaf1d67d9ef967fb4526113e2a3ba3dd5e229.tar.bz2
samba-713eaf1d67d9ef967fb4526113e2a3ba3dd5e229.zip
r15083: Using talloc with destructors is nice and all, but in this
case it's in a performace critical path and it *hurts* us. Go back to plain malloc/free with an explicit destructor call. Jeremy. (This used to be commit 1c99aed563c29e1b3d70939878af747a0660bfec)
Diffstat (limited to 'source3/smbd/blocking.c')
-rw-r--r--source3/smbd/blocking.c28
1 files changed, 14 insertions, 14 deletions
diff --git a/source3/smbd/blocking.c b/source3/smbd/blocking.c
index 6b47d0466b..a8db498ef5 100644
--- a/source3/smbd/blocking.c
+++ b/source3/smbd/blocking.c
@@ -121,7 +121,7 @@ BOOL push_blocking_lock_request( char *inbuf, int length,
memcpy(blr->inbuf, inbuf, length);
blr->length = length;
- br_lck = brl_get_locks(NULL, blr->fsp);
+ br_lck = brl_get_locks(blr->fsp);
if (!br_lck) {
free_blocking_lock_record(blr);
return False;
@@ -136,7 +136,7 @@ BOOL push_blocking_lock_request( char *inbuf, int length,
PENDING_LOCK,
blr->lock_flav,
&my_lock_ctx);
- TALLOC_FREE(br_lck);
+ byte_range_lock_destructor(br_lck);
if (!NT_STATUS_IS_OK(status)) {
DEBUG(0,("push_blocking_lock_request: failed to add PENDING_LOCK record.\n"));
@@ -625,7 +625,7 @@ void remove_pending_lock_requests_by_fid(files_struct *fsp)
for(blr = blocking_lock_queue; blr; blr = next) {
next = blr->next;
if(blr->fsp->fnum == fsp->fnum) {
- struct byte_range_lock *br_lck = brl_get_locks(NULL, fsp);
+ struct byte_range_lock *br_lck = brl_get_locks(fsp);
if (br_lck) {
DEBUG(10,("remove_pending_lock_requests_by_fid - removing request type %d for \
@@ -637,7 +637,7 @@ file %s fnum = %d\n", blr->com_type, fsp->fsp_name, fsp->fnum ));
blr->offset,
blr->count,
blr->lock_flav);
- TALLOC_FREE(br_lck);
+ byte_range_lock_destructor(br_lck);
}
@@ -658,7 +658,7 @@ void remove_pending_lock_requests_by_mid(int mid)
next = blr->next;
if(SVAL(blr->inbuf,smb_mid) == mid) {
files_struct *fsp = blr->fsp;
- struct byte_range_lock *br_lck = brl_get_locks(NULL, fsp);
+ struct byte_range_lock *br_lck = brl_get_locks(fsp);
if (br_lck) {
DEBUG(10,("remove_pending_lock_requests_by_mid - removing request type %d for \
@@ -670,7 +670,7 @@ file %s fnum = %d\n", blr->com_type, fsp->fsp_name, fsp->fnum ));
blr->offset,
blr->count,
blr->lock_flav);
- TALLOC_FREE(br_lck);
+ byte_range_lock_destructor(br_lck);
}
blocking_lock_reply_error(blr,NT_STATUS_FILE_LOCK_CONFLICT);
@@ -754,7 +754,7 @@ void process_blocking_lock_queue(time_t t)
fsp->fnum, fsp->fsp_name ));
if((blr->expire_time != -1) && (blr->expire_time <= t)) {
- struct byte_range_lock *br_lck = brl_get_locks(NULL, fsp);
+ struct byte_range_lock *br_lck = brl_get_locks(fsp);
/*
* Lock expired - throw away all previously
@@ -771,7 +771,7 @@ void process_blocking_lock_queue(time_t t)
blr->offset,
blr->count,
blr->lock_flav);
- TALLOC_FREE(br_lck);
+ byte_range_lock_destructor(br_lck);
}
blocking_lock_reply_error(blr,NT_STATUS_FILE_LOCK_CONFLICT);
@@ -780,7 +780,7 @@ void process_blocking_lock_queue(time_t t)
}
if(!change_to_user(conn,vuid)) {
- struct byte_range_lock *br_lck = brl_get_locks(NULL, fsp);
+ struct byte_range_lock *br_lck = brl_get_locks(fsp);
/*
* Remove the entry and return an error to the client.
@@ -793,7 +793,7 @@ void process_blocking_lock_queue(time_t t)
blr->offset,
blr->count,
blr->lock_flav);
- TALLOC_FREE(br_lck);
+ byte_range_lock_destructor(br_lck);
}
DEBUG(0,("process_blocking_lock_queue: Unable to become user vuid=%d.\n",
@@ -804,7 +804,7 @@ void process_blocking_lock_queue(time_t t)
}
if(!set_current_service(conn,SVAL(blr->inbuf,smb_flg),True)) {
- struct byte_range_lock *br_lck = brl_get_locks(NULL, fsp);
+ struct byte_range_lock *br_lck = brl_get_locks(fsp);
/*
* Remove the entry and return an error to the client.
@@ -817,7 +817,7 @@ void process_blocking_lock_queue(time_t t)
blr->offset,
blr->count,
blr->lock_flav);
- TALLOC_FREE(br_lck);
+ byte_range_lock_destructor(br_lck);
}
DEBUG(0,("process_blocking_lock_queue: Unable to become service Error was %s.\n", strerror(errno) ));
@@ -834,7 +834,7 @@ void process_blocking_lock_queue(time_t t)
*/
if(blocking_lock_record_process(blr)) {
- struct byte_range_lock *br_lck = brl_get_locks(NULL, fsp);
+ struct byte_range_lock *br_lck = brl_get_locks(fsp);
if (br_lck) {
brl_remove_pending_lock(br_lck,
@@ -843,7 +843,7 @@ void process_blocking_lock_queue(time_t t)
blr->offset,
blr->count,
blr->lock_flav);
- TALLOC_FREE(br_lck);
+ byte_range_lock_destructor(br_lck);
}
free_blocking_lock_record(blr);