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,33 ****
   * fields enclosed by brackets "[]" replaced with your own identifying
   * information: Portions Copyright [yyyy] [name of copyright owner]
   *
   * CDDL HEADER END
   */
  /*
   * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
   * Use is subject to license terms.
!  *
   * Copyright (c) 1983,1984,1985,1986,1987,1988,1989  AT&T.
   * All rights reserved.
   */
  
  #include <sys/types.h>
  #include <rpc/types.h>
  #include <sys/systm.h>
  #include <sys/vfs.h>
  #include <sys/errno.h>
--- 16,40 ----
   * fields enclosed by brackets "[]" replaced with your own identifying
   * information: Portions Copyright [yyyy] [name of copyright owner]
   *
   * CDDL HEADER END
   */
+ 
  /*
   * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
   * Use is subject to license terms.
!  */
! 
! /*
   * Copyright (c) 1983,1984,1985,1986,1987,1988,1989  AT&T.
   * All rights reserved.
   */
  
+ /*
+  * Copyright 2018 Nexenta Systems, Inc.
+  */
+ 
  #include <sys/types.h>
  #include <rpc/types.h>
  #include <sys/systm.h>
  #include <sys/vfs.h>
  #include <sys/errno.h>
*** 78,89 ****
  int
  nfs_export(void *arg)
  {
          STRUCT_DECL(exportfs_args, ea);
  
-         if (!INGLOBALZONE(curproc))
-                 return (set_errno(EPERM));
          STRUCT_INIT(ea, get_udatamodel());
          if (copyin(arg, STRUCT_BUF(ea), STRUCT_SIZE(ea)))
                  return (set_errno(EFAULT));
  
          return (exportfs(STRUCT_BUF(ea), get_udatamodel(), CRED()));
--- 85,94 ----
*** 109,121 ****
                   */
                  if (rfs4_client_clrst == NULL) {
                          break;
                  }
  
-                 if (!INGLOBALZONE(curproc))
-                         return (set_errno(EPERM));
- 
                  STRUCT_INIT(u_clr, get_udatamodel());
  
                  if (copyin(arg, STRUCT_BUF(u_clr), STRUCT_SIZE(u_clr)))
                          return (set_errno(EFAULT));
  
--- 114,123 ----
*** 162,173 ****
  
          case RDMA_SVC_INIT: {
                  struct rdma_svc_args rsa;
                  char netstore[20] = "tcp";
  
-                 if (!INGLOBALZONE(curproc))
-                         return (set_errno(EPERM));
                  if (get_udatamodel() != DATAMODEL_NATIVE) {
                          STRUCT_DECL(rdma_svc_args, ursa);
  
                          STRUCT_INIT(ursa, get_udatamodel());
                          if (copyin(arg, STRUCT_BUF(ursa), STRUCT_SIZE(ursa)))
--- 164,173 ----
*** 187,199 ****
                  break;
          }
  
          case NFS_SVC: { /* NFS server daemon */
                  STRUCT_DECL(nfs_svc_args, nsa);
- 
-                 if (!INGLOBALZONE(curproc))
-                         return (set_errno(EPERM));
                  STRUCT_INIT(nsa, get_udatamodel());
  
                  if (copyin(arg, STRUCT_BUF(nsa), STRUCT_SIZE(nsa)))
                          return (set_errno(EFAULT));
  
--- 187,196 ----
*** 207,218 ****
          }
  
          case NFS_GETFH: { /* get a file handle */
                  STRUCT_DECL(nfs_getfh_args, nga);
  
-                 if (!INGLOBALZONE(curproc))
-                         return (set_errno(EPERM));
                  STRUCT_INIT(nga, get_udatamodel());
                  if (copyin(arg, STRUCT_BUF(nga), STRUCT_SIZE(nga)))
                          return (set_errno(EFAULT));
  
                  error = nfs_getfh(STRUCT_BUF(nga), get_udatamodel(), CRED());
--- 204,213 ----