Print this page
11083 support NFS server in zone
Portions contributed by: Dan Kruchinin <dan.kruchinin@nexenta.com>
Portions contributed by: Stepan Zastupov <stepan.zastupov@gmail.com>
Portions contributed by: Joyce McIntosh <joyce.mcintosh@nexenta.com>
Portions contributed by: Mike Zeller <mike@mikezeller.net>
Portions contributed by: Dan McDonald <danmcd@joyent.com>
Portions contributed by: Gordon Ross <gordon.w.ross@gmail.com>
Portions contributed by: Vitaliy Gusev <gusev.vitaliy@gmail.com>
Reviewed by: Rick McNeal <rick.mcneal@nexenta.com>
Reviewed by: Rob Gittins <rob.gittins@nexenta.com>
Reviewed by: Sanjay Nadkarni <sanjay.nadkarni@nexenta.com>
Reviewed by: Jason King <jbk@joyent.com>
Reviewed by: C Fraire <cfraire@me.com>
Change-Id: I22f289d357503f9b48a0bc2482cc4328a6d43d16
        
*** 16,30 ****
   * fields enclosed by brackets "[]" replaced with your own identifying
   * information: Portions Copyright [yyyy] [name of copyright owner]
   *
   * CDDL HEADER END
   */
  /*
   * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
-  * Copyright 2018 Joyent, Inc.
-  * Copyright 2019 Nexenta Systems, Inc. All rights reserved.
   * Copyright 2014 Igor Kozhukhov <ikozhukhov@gmail.com>.
   */
  
  #ifndef _SYS_ZONE_H
  #define _SYS_ZONE_H
  
--- 16,31 ----
   * fields enclosed by brackets "[]" replaced with your own identifying
   * information: Portions Copyright [yyyy] [name of copyright owner]
   *
   * CDDL HEADER END
   */
+ 
  /*
   * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
   * Copyright 2014 Igor Kozhukhov <ikozhukhov@gmail.com>.
+  * Copyright 2019 Nexenta Systems, Inc. All rights reserved.
+  * Copyright 2020 Joyent, Inc.
   */
  
  #ifndef _SYS_ZONE_H
  #define _SYS_ZONE_H
  
*** 637,647 ****
  /*
   * Special value of zone_psetid to indicate that pools are disabled.
   */
  #define ZONE_PS_INVAL   PS_MYID
  
- 
  extern zone_t zone0;
  extern zone_t *global_zone;
  extern uint_t maxzones;
  extern rctl_hndl_t rc_zone_nlwps;
  extern rctl_hndl_t rc_zone_nprocs;
--- 638,647 ----
*** 779,788 ****
--- 779,808 ----
   * Special processes visible in all zones.
   */
  #define ZONE_SPECIALPID(x)       ((x) == 0 || (x) == 1)
  
  /*
+  * A root vnode of the current zone.
+  *
+  * NOTE: It may be necessary (initialization time for file sharing where an
+  * NGZ loads a file-sharing kernel module that does zsd initialization) to NOT
+  * use this macro. One should ASSERT() that curzone == active ZSD (an
+  * ASSERTion that's not always true at ZSD initialization time) during regular
+  * use of this macro.
+  */
+ #define ZONE_ROOTVP()   (curzone->zone_rootvp)
+ 
+ /*
+  * Since a zone's root isn't necessarily an actual filesystem boundary
+  * (i.e. VROOT may not be set on zone->zone_rootvp) we need to not assume it.
+  * This macro helps in checking if a vnode is the current zone's rootvp.
+  * NOTE:  Using the VN_ prefix, even though it's defined here in zone.h.
+  * NOTE2: See above warning about ZONE_ROOTVP().
+  */
+ #define VN_IS_CURZONEROOT(vp)   (VN_CMP(vp, ZONE_ROOTVP()))
+ 
+ /*
   * Zone-safe version of thread_create() to be used when the caller wants to
   * create a kernel thread to run within the current zone's context.
   */
  extern kthread_t *zthread_create(caddr_t, size_t, void (*)(), void *, size_t,
      pri_t);