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 ----