summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/modules/vfs_aio_fork.c1
-rw-r--r--source3/modules/vfs_aio_pthread.c3
-rw-r--r--source3/smbd/aio.c3
3 files changed, 4 insertions, 3 deletions
diff --git a/source3/modules/vfs_aio_fork.c b/source3/modules/vfs_aio_fork.c
index 01eb97de86..bcd7c6ae2d 100644
--- a/source3/modules/vfs_aio_fork.c
+++ b/source3/modules/vfs_aio_fork.c
@@ -434,6 +434,7 @@ static void handle_aio_completion(struct event_context *event_ctx,
aio_ex = (struct aio_extra *)child->aiocb->aio_sigevent.sigev_value.sival_ptr;
smbd_aio_complete_aio_ex(aio_ex);
+ TALLOC_FREE(aio_ex);
}
static int aio_child_destructor(struct aio_child *child)
diff --git a/source3/modules/vfs_aio_pthread.c b/source3/modules/vfs_aio_pthread.c
index 82611b0a7b..b6d4e1ef35 100644
--- a/source3/modules/vfs_aio_pthread.c
+++ b/source3/modules/vfs_aio_pthread.c
@@ -296,7 +296,7 @@ static void aio_pthread_handle_completion(struct event_context *event_ctx,
DEBUG(10,("aio_pthread_handle_completion: jobid %d completed\n",
jobid ));
-
+ TALLOC_FREE(aio_ex);
}
/************************************************************************
@@ -424,6 +424,7 @@ static void aio_pthread_handle_immediate(struct tevent_context *ctx,
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);
}
/************************************************************************
diff --git a/source3/smbd/aio.c b/source3/smbd/aio.c
index 07b8388fba..44081f69a0 100644
--- a/source3/smbd/aio.c
+++ b/source3/smbd/aio.c
@@ -67,6 +67,7 @@ static void smbd_aio_signal_handler(struct tevent_context *ev_ctx,
info->si_value.sival_ptr;
smbd_aio_complete_aio_ex(aio_ex);
+ TALLOC_FREE(aio_ex);
}
@@ -931,8 +932,6 @@ void smbd_aio_complete_aio_ex(struct aio_extra *aio_ex)
if (!handle_aio_completed(aio_ex, &ret)) {
return;
}
-
- TALLOC_FREE(aio_ex);
}
/****************************************************************************