diff options
-rw-r--r-- | source3/include/smbprofile.h | 4 | ||||
-rw-r--r-- | source3/profile/profile.c | 4 | ||||
-rw-r--r-- | source3/smbd/server.c | 2 |
3 files changed, 5 insertions, 5 deletions
diff --git a/source3/include/smbprofile.h b/source3/include/smbprofile.h index 76d9d2b6f6f..c771fd431d6 100644 --- a/source3/include/smbprofile.h +++ b/source3/include/smbprofile.h @@ -533,7 +533,7 @@ static inline bool smbprofile_dump_pending(void) void smbprofile_dump(void); -void smbprofile_cleanup(pid_t pid); +void smbprofile_cleanup(pid_t pid, pid_t dst); void smbprofile_stats_accumulate(struct profile_stats *acc, const struct profile_stats *add); void smbprofile_collect(struct profile_stats *stats); @@ -610,7 +610,7 @@ static inline void smbprofile_dump(void) return; } -static inline void smbprofile_cleanup(pid_t pid) +static inline void smbprofile_cleanup(pid_t pid, pid_t dst) { return; } diff --git a/source3/profile/profile.c b/source3/profile/profile.c index 00cb3e550c4..1464a421b4d 100644 --- a/source3/profile/profile.c +++ b/source3/profile/profile.c @@ -312,7 +312,7 @@ void smbprofile_dump(void) return; } -void smbprofile_cleanup(pid_t pid) +void smbprofile_cleanup(pid_t pid, pid_t dst) { TDB_DATA key = { .dptr = (uint8_t *)&pid, .dsize = sizeof(pid) }; struct profile_stats s = {}; @@ -336,7 +336,7 @@ void smbprofile_cleanup(pid_t pid) tdb_delete(smbprofile_state.internal.db->tdb, key); tdb_chainunlock(smbprofile_state.internal.db->tdb, key); - pid = getpid(); + pid = dst; ret = tdb_chainlock(smbprofile_state.internal.db->tdb, key); if (ret != 0) { return; diff --git a/source3/smbd/server.c b/source3/smbd/server.c index c7a17332403..46e655a6e4f 100644 --- a/source3/smbd/server.c +++ b/source3/smbd/server.c @@ -579,7 +579,7 @@ static void remove_child_pid(struct smbd_parent_context *parent, __func__, strerror(ret))); } - smbprofile_cleanup(pid); + smbprofile_cleanup(pid, getpid()); for (child = parent->children; child != NULL; child = child->next) { if (child->pid == pid) { |