Print this page
2988 nfssrv: need ability to go to submounts for v3 and v2 protocols
Portions contributed by: Marcel Telka <marcel.telka@nexenta.com>
Portions contributed by: Jean McCormack <jean.mccormack@nexenta.com>
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>
Reviewed by: Alek Pinchuk <alek.pinchuk@nexenta.com>
Reviewed by: Dan Fields <dan.fields@nexenta.com>
Reviewed by: Dan McDonald <danmcd@joyent.com>
Change-Id: I6fdf110cc17e789353c4442b83a46cb80643456e

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/nfs/export.h
          +++ new/usr/src/uts/common/nfs/export.h
↓ open down ↓ 12 lines elided ↑ open up ↑
  13   13   * When distributing Covered Code, include this CDDL HEADER in each
  14   14   * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15   15   * If applicable, add the following below this CDDL HEADER, with the
  16   16   * fields enclosed by brackets "[]" replaced with your own identifying
  17   17   * information: Portions Copyright [yyyy] [name of copyright owner]
  18   18   *
  19   19   * CDDL HEADER END
  20   20   */
  21   21  
  22   22  /*
  23      - * Copyright 2016 Nexenta Systems, Inc.  All rights reserved.
  24   23   * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
       24 + * Copyright 2016 Nexenta Systems, Inc.  All rights reserved.
  25   25   * Copyright 2016 Jason King.
  26   26   */
  27   27  
  28   28  /*      Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
  29   29  /*        All Rights Reserved   */
  30   30  
  31   31  #ifndef _NFS_EXPORT_H
  32   32  #define _NFS_EXPORT_H
  33   33  
  34   34  #include <nfs/nfs_sec.h>
↓ open down ↓ 26 lines elided ↑ open up ↑
  61   61  /*
  62   62   * Note: exported_lock is currently used to ensure the integrity of
  63   63   * the secinfo fields.
  64   64   */
  65   65  struct secinfo {
  66   66          seconfig_t      s_secinfo;      /* /etc/nfssec.conf entry */
  67   67          unsigned int    s_flags;        /* flags (see below) */
  68   68          int32_t         s_refcnt;       /* reference count for tracking */
  69   69                                          /* how many children (self included) */
  70   70                                          /* use this flavor. */
  71      -        int             s_window;       /* window */
       71 +        int             s_window;       /* window */
  72   72          uint_t          s_rootid;       /* UID to use for authorized roots */
  73   73          int             s_rootcnt;      /* count of root names */
  74   74          caddr_t         *s_rootnames;   /* array of root names */
  75   75                                          /* they are strings for AUTH_DES and */
  76   76                                          /* rpc_gss_principal_t for RPCSEC_GSS */
  77   77  };
  78   78  
  79   79  #ifdef _SYSCALL32
  80   80  struct secinfo32 {
  81   81          seconfig32_t    s_secinfo;      /* /etc/nfssec.conf entry */
  82   82          uint32_t        s_flags;        /* flags (see below) */
  83   83          int32_t         s_refcnt;       /* reference count for tracking */
  84   84                                          /* how many children (self included) */
  85   85                                          /* use this flavor. */
  86      -        int32_t         s_window;       /* window */
       86 +        int32_t         s_window;       /* window */
  87   87          uint32_t        s_rootid;       /* UID to use for authorized roots */
  88   88          int32_t         s_rootcnt;      /* count of root names */
  89   89          caddr32_t       s_rootnames;    /* array of root names */
  90   90                                          /* they are strings for AUTH_DES and */
  91   91                                          /* rpc_gss_principal_t for RPCSEC_GSS */
  92   92  };
  93   93  #endif /* _SYSCALL32 */
  94   94  
  95   95  /*
  96   96   * security negotiation related
↓ open down ↓ 85 lines elided ↑ open up ↑
 182  182  #define EX_VOLFH        0x100   /* XXX nfsv4 fh may expire anytime */
 183  183  #define EX_VOLRNM       0x200   /* XXX nfsv4 fh expire at rename */
 184  184  #define EX_VOLMIG       0x400   /* XXX nfsv4 fh expire at migration */
 185  185  #define EX_NOEXPOPEN    0x800   /* XXX nfsv4 fh no expire with open */
 186  186  #endif /* VOLATILE_FH_TEST */
 187  187  
 188  188  #define EX_CHARMAP      0x1000  /* NFS may need a character set conversion */
 189  189  #define EX_NOACLFAB     0x2000  /* If set, NFSv2 and v3 servers won't */
 190  190                                  /* fabricate an aclent_t ACL on file systems */
 191  191                                  /* that don't support aclent_t ACLs */
      192 +#define EX_NOHIDE       0x4000  /* traversable from exported parent */
 192  193  
 193  194  #ifdef  _KERNEL
 194  195  
 195  196  #define RPC_IDEMPOTENT  0x1     /* idempotent or not */
 196  197  /*
 197  198   * Be very careful about which NFS procedures get the RPC_ALLOWANON bit.
 198  199   * Right now, if this bit is on, we ignore the results of per NFS request
 199  200   * access control.
 200  201   */
 201  202  #define RPC_ALLOWANON   0x2     /* allow anonymous access */
↓ open down ↓ 488 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX