The branch, master has been updated via e02a788 Simplify the logic around doing an immediate event reschedule. from 0c44d46 s4:dsdb/samdb/ldb_modules/schema.c - move "get_last_structural_class()" into "util.c"
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit e02a788f6085cfa93e5b521ef4e0ced06e4353e3 Author: Jeremy Allison <j...@samba.org> Date: Tue Apr 10 20:47:14 2012 -0700 Simplify the logic around doing an immediate event reschedule. We don't need to do a talloc here, we already have a long-lived pointer we can pass in as the private data. Autobuild-User: Jeremy Allison <j...@samba.org> Autobuild-Date: Wed Apr 11 08:05:47 CEST 2012 on sn-devel-104 ----------------------------------------------------------------------- Summary of changes: source3/modules/vfs_aio_pthread.c | 30 +++++++----------------------- 1 files changed, 7 insertions(+), 23 deletions(-) Changeset truncated at 500 lines: diff --git a/source3/modules/vfs_aio_pthread.c b/source3/modules/vfs_aio_pthread.c index 1cddea3..cb441bf 100644 --- a/source3/modules/vfs_aio_pthread.c +++ b/source3/modules/vfs_aio_pthread.c @@ -407,17 +407,8 @@ static void aio_pthread_handle_immediate(struct tevent_context *ctx, void *private_data) { struct aio_extra *aio_ex = NULL; - int *pjobid = (int *)private_data; - struct aio_private_data *pd = find_private_data_by_jobid(*pjobid); + struct aio_private_data *pd = (struct aio_private_data *)private_data; - if (pd == NULL) { - DEBUG(1, ("aio_pthread_handle_immediate cannot find jobid %d\n", - *pjobid)); - TALLOC_FREE(pjobid); - return; - } - - TALLOC_FREE(pjobid); aio_ex = (struct aio_extra *)pd->aiocb->aio_sigevent.sigev_value.sival_ptr; smbd_aio_complete_aio_ex(aio_ex); TALLOC_FREE(aio_ex); @@ -445,7 +436,7 @@ static void aio_pthread_handle_suspend_completion(struct event_context *event_ct struct suspend_private *sp = (struct suspend_private *)p; struct aio_private_data *pd = NULL; struct tevent_immediate *im = NULL; - int *pjobid = NULL; + int jobid; int i; DEBUG(10, ("aio_pthread_handle_suspend_completion called with flags=%d\n", @@ -455,21 +446,15 @@ static void aio_pthread_handle_suspend_completion(struct event_context *event_ct return; } - pjobid = talloc_array(NULL, int, 1); - if (pjobid == NULL) { - smb_panic("aio_pthread_handle_suspend_completion: no memory."); - } - - if (pthreadpool_finished_job(pool, pjobid)) { + if (pthreadpool_finished_job(pool, &jobid)) { smb_panic("aio_pthread_handle_suspend_completion: can't find job."); return; } - pd = find_private_data_by_jobid(*pjobid); + pd = find_private_data_by_jobid(jobid); if (pd == NULL) { DEBUG(1, ("aio_pthread_handle_completion cannot find jobid %d\n", - *pjobid)); - TALLOC_FREE(pjobid); + jobid)); return; } @@ -477,7 +462,6 @@ static void aio_pthread_handle_suspend_completion(struct event_context *event_ct for (i = 0; i < sp->num_entries; i++) { if (sp->aiocb_array[i] == pd->aiocb) { sp->num_finished++; - TALLOC_FREE(pjobid); return; } } @@ -492,12 +476,12 @@ static void aio_pthread_handle_suspend_completion(struct event_context *event_ct DEBUG(10,("aio_pthread_handle_suspend_completion: " "re-scheduling job id %d\n", - *pjobid)); + jobid)); tevent_schedule_immediate(im, server_event_context(), aio_pthread_handle_immediate, - (void *)pjobid); + (void *)pd); } -- Samba Shared Repository