Fix pmcstat exit from kernel introduced by r325275.

pmcstat request for close will generate a close event.
This event will be in turn received by pmcstat to close the file.

Reviewed by:	kib
Tested by:	pho
MFC after:	1 week
Sponsored by: Stormshield
This commit is contained in:
Fabien Thomas 2018-01-17 16:41:22 +00:00
parent 27522b2c36
commit 9f4f1d4d1f
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=328087
3 changed files with 4 additions and 1 deletions

View file

@ -335,6 +335,8 @@ pmclog_get_event(void *cookie, char **data, ssize_t *len,
ev->pl_u.pl_cc.pl_pc[npc] = (uintfptr_t) 0;
break;
case PMCLOG_TYPE_CLOSELOG:
ev->pl_state = PMCLOG_EOF;
return (-1);
case PMCLOG_TYPE_DROPNOTIFY:
/* nothing to do */
break;

View file

@ -799,6 +799,8 @@ pmclog_close(struct pmc_owner *po)
PMCDBG1(LOG,CLO,1, "po=%p", po);
pmclog_process_closelog(po);
mtx_lock(&pmc_kthread_mtx);
/*

View file

@ -2928,7 +2928,6 @@ pmc_syscall_handler(struct thread *td, void *syscall_args)
po : NULL);
} else if (po->po_flags & PMC_PO_OWNS_LOGFILE) {
pmclog_proc_ignite(pmclog_proc_handle, NULL);
pmclog_process_closelog(po);
error = pmclog_close(po);
if (error == 0) {
LIST_FOREACH(pm, &po->po_pmcs, pm_next)