Print this page
NEX-17457 kernel share list fails to be updated after fs import
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Gordon Ross <gordon.ross@nexenta.com>
Reviewed by: Yuri Pankov <yuripv@yuripv.net>
1575 untangle libmlrpc from SMB server
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Toomas Soome <tsoome@me.com>
Approved by: Richard Lowe <richlowe@richlowe.net>
NEX-15958 panic importing CA share after failover
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Include in backports of:
  NEX-9808 SMB3 persistent handles
NEX-15958 panic importing CA share after failover
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Include in backports of:
  NEX-9808 SMB3 persistent handles
NEX-9808 SMB3 persistent handles
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
NEX-5665 SMB2 oplock leases
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Roman Strashkin <roman.strashkin@nexenta.com>
NEX-9808 SMB3 persistent handles
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
NEX-5665 SMB2 oplock leases
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Roman Strashkin <roman.strashkin@nexenta.com>
NEX-10098 Disabling SMB server service does not change the sharestate of a smb share to “offline”.
Reviewed by: Gordon Ross <gordon.ross@nexenta.com>
Reviewed by: Rob Gittins <rob.gittins@nexenta.com>
NEX-5273 SMB 3 Encryption
Reviewed by: Gordon Ross <gordon.ross@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Roman Strashkin <roman.strashkin@nexenta.com>
NEX-3863 Would like an SMB share property to enable/disable quotas
Reviewed by: Bayard Bell <bayard.bell@nexenta.com>
Reviewed by: Kevin Crowe <kevin.crowe@nexenta.com>
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>
SMB-39 Use AF_UNIX pipes for RPC
SMB-50 User-mode SMB server
 Includes work by these authors:
 Thomas Keiser <thomas.keiser@nexenta.com>
 Albert Lee <trisk@nexenta.com>
        
*** 19,41 ****
   * CDDL HEADER END
   */
  
  /*
   * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
!  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
   * Copyright (c) 2016 by Delphix. All rights reserved.
   */
  
  #ifndef _SMB_SHARE_H
  #define _SMB_SHARE_H
  
  #include <sys/param.h>
  #include <smbsrv/string.h>
  #include <smbsrv/smb_inet.h>
  #include <smbsrv/hash_table.h>
! #include <smbsrv/wintypes.h>
! #include <smb/lmerr.h>
  
  #if !defined(_KERNEL) && !defined(_FAKE_KERNEL)
  #include <libshare.h>
  #endif
  
--- 19,42 ----
   * CDDL HEADER END
   */
  
  /*
   * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
!  * Copyright 2018 Nexenta Systems, Inc.  All rights reserved.
   * Copyright (c) 2016 by Delphix. All rights reserved.
   */
  
  #ifndef _SMB_SHARE_H
  #define _SMB_SHARE_H
  
  #include <sys/param.h>
+ #include <smb/lmerr.h>
+ #include <smb/wintypes.h>
  #include <smbsrv/string.h>
  #include <smbsrv/smb_inet.h>
  #include <smbsrv/hash_table.h>
! #include <smbsrv/smbinfo.h>
  
  #if !defined(_KERNEL) && !defined(_FAKE_KERNEL)
  #include <libshare.h>
  #endif
  
*** 72,98 ****
   *
   * catia                CATIA character substitution
   *
   * guestok              Determines whether guest access is allowed
   *
!  * next three properties use access-list a al NFS
   *
   * ro                   list of hosts that will have read-only access
   * rw                   list of hosts that will have read/write access
   * none                 list of hosts that won't be allowed access
   */
  #define SHOPT_AD_CONTAINER      "ad-container"
  #define SHOPT_ABE               "abe"
  #define SHOPT_NAME              "name"
  #define SHOPT_CSC               "csc"
  #define SHOPT_CATIA             "catia"
  #define SHOPT_GUEST             "guestok"
  #define SHOPT_RO                "ro"
  #define SHOPT_RW                "rw"
  #define SHOPT_NONE              "none"
  #define SHOPT_DFSROOT           "dfsroot"
  #define SHOPT_DESCRIPTION       "description"
  
  #define SMB_DEFAULT_SHARE_GROUP "smb"
  #define SMB_PROTOCOL_NAME       "smb"
  
  /*
--- 73,112 ----
   *
   * catia                CATIA character substitution
   *
   * guestok              Determines whether guest access is allowed
   *
!  * quotas               SMB quotas presented & supported (T/F)
   *
+  * encrypt              Controls SMB3 encryption per-share.
+  *      disabled        Server does not tell the client to encrypt requests.
+  *      enabled         Server asks, but does not require, that the client
+  *                      encrypt its requests.
+  *      required        Server denies unencrypted share access.
+  *
+  * next three properties use access-list a la NFS
+  *
   * ro                   list of hosts that will have read-only access
   * rw                   list of hosts that will have read/write access
   * none                 list of hosts that won't be allowed access
   */
  #define SHOPT_AD_CONTAINER      "ad-container"
  #define SHOPT_ABE               "abe"
  #define SHOPT_NAME              "name"
+ #define SHOPT_CA                "ca"
  #define SHOPT_CSC               "csc"
  #define SHOPT_CATIA             "catia"
  #define SHOPT_GUEST             "guestok"
  #define SHOPT_RO                "ro"
  #define SHOPT_RW                "rw"
  #define SHOPT_NONE              "none"
  #define SHOPT_DFSROOT           "dfsroot"
  #define SHOPT_DESCRIPTION       "description"
+ #define SHOPT_QUOTAS            "quotas"
+ #define SHOPT_FSO               "fso"   /* Force Shared Oplocks */
+ #define SHOPT_ENCRYPT           "encrypt"
+ #define SHOPT_AUTOHOME          "Autohome"
  
  #define SMB_DEFAULT_SHARE_GROUP "smb"
  #define SMB_PROTOCOL_NAME       "smb"
  
  /*
*** 168,184 ****
--- 182,203 ----
  #define SMB_SHRF_ACC_NONE       0x0100
  #define SMB_SHRF_ACC_RO         0x0200
  #define SMB_SHRF_ACC_RW         0x0400
  #define SMB_SHRF_ACC_ALL        0x0F00
  
+ #define SMB_SHRF_QUOTAS         0x1000  /* Enable SMB Quotas */
+ #define SMB_SHRF_FSO            0x2000  /* Force Shared Oplocks */
+ #define SMB_SHRF_CA             0x4000  /* Continuous Availability */
+ 
  /*
   * Runtime flags
   */
  #define SMB_SHRF_ADMIN          0x01000000
  #define SMB_SHRF_TRANS          0x10000000
  #define SMB_SHRF_PERM           0x20000000
  #define SMB_SHRF_AUTOHOME       0x40000000
+ #define SMB_SHRF_REMOVED        0x80000000      /* unshared */
  
  #define SMB_SHARE_PRINT         "print$"
  #define SMB_SHARE_PRINT_LEN     6
  /*
   * refcnt is currently only used for autohome.  autohome needs a refcnt
*** 198,207 ****
--- 217,227 ----
          uid_t           shr_uid;                /* autohome only */
          gid_t           shr_gid;                /* autohome only */
          char            shr_access_none[MAXPATHLEN];
          char            shr_access_ro[MAXPATHLEN];
          char            shr_access_rw[MAXPATHLEN];
+         smb_cfg_val_t   shr_encrypt;
  } smb_share_t;
  
  typedef struct smb_shriter {
          smb_share_t     si_share;
          HT_ITERATOR     si_hashiter;
*** 239,248 ****
--- 259,270 ----
   * CIFS share management functions exported by libmlsvc
   */
  int smb_shr_start(void);
  void smb_shr_stop(void);
  void *smb_shr_load(void *);
+ void smb_shr_load_execinfo(void);
+ void smb_shr_unload(void);
  void smb_shr_iterinit(smb_shriter_t *);
  smb_share_t *smb_shr_iterate(smb_shriter_t *);
  void smb_shr_list(int, smb_shrlist_t *);
  int smb_shr_count(void);
  uint32_t smb_shr_add(smb_share_t *);