FreeBSD: Simplify INGLOBALZONE

FreeBSD's previous ZFS implemented INGLOBALZONE(thread) as
(!jailed((thread)->td_ucred)) and passed curthread to INGLOBALZONE.

We pass curproc instead of curthread, so we can achieve the same effect
with (!jailed((proc)->p_ucred)).  The implementation is trivial enough
to fit on a single line in a define.  We don't really need a whole
separate function for something that's already macros all the way down.

Eliminate in_globalzone.

Reviewed-by: Alexander Motin <mav@FreeBSD.org>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ryan Moeller <freqlabs@FreeBSD.org>
Closes #10851
This commit is contained in:
Ryan Moeller 2020-08-29 18:43:26 +00:00 committed by Brian Behlendorf
parent 2f65c7a608
commit eff621071f
2 changed files with 4 additions and 11 deletions

View File

@ -29,6 +29,8 @@
#ifndef _OPENSOLARIS_SYS_ZONE_H_
#define _OPENSOLARIS_SYS_ZONE_H_
#include <sys/jail.h>
/*
* Macros to help with zone visibility restrictions.
*/
@ -36,12 +38,9 @@
#define GLOBAL_ZONEID 0
/*
* Is thread in the global zone?
* Is proc in the global zone?
*/
#define INGLOBALZONE(p) in_globalzone((p))
extern boolean_t in_globalzone(struct proc *);
#define INGLOBALZONE(proc) (!jailed((proc)->p_ucred))
/*
* Attach the given dataset to the given jail.

View File

@ -242,12 +242,6 @@ zone_get_hostid(void *ptr)
return ((uint32_t)curthread->td_ucred->cr_prison->pr_hostid);
}
boolean_t
in_globalzone(struct proc *p)
{
return (!jailed(FIRST_THREAD_IN_PROC((p))->td_ucred));
}
static void
zone_sysinit(void *arg __unused)
{