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>
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-3550 Replace smb2_enable with max_protocol (fix fksmbd noise)
NEX-4083 Upstream changes from illumos 5917 and 5995
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Kevin Crowe <kevin.crowe@nexenta.com>
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>
NEX-3611 CLONE NEX-3550 Replace smb2_enable with max_protocol
Reviewed by: Yuri Pankov <Yuri.Pankov@nexenta.com>
NEX-2346 SMB server debug logging cleanup after NEX-2314
NEX-2314 SMB server debug logging needs improvement
NEX-2188 Browsing top level share produces RPC error 1728
NEX-1810 extended security Kerberos (inbound)
SMB-72 Improve startup/shudown debug features
SMB-70 Hang during boot after SMB-50 (fix elfchk noise)
SMB-70 Hang during boot after SMB-50
SMB-50 User-mode SMB server (missed some things)
SMB-56 extended security NTLMSSP, inbound
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>
SMB-65 SMB server in non-global zones (data structure changes)
Many things move to the smb_server_t object, and
many functions gain an sv arg (which server).
re #6812 rb1753 backport illumos 1604 smbd print_enable doesn't really work

@@ -18,11 +18,11 @@
  *
  * CDDL HEADER END
  */
 /*
  * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
- * Copyright 2015 Nexenta Systems, Inc.  All rights reserved.
+ * Copyright 2018 Nexenta Systems, Inc.  All rights reserved.
  */
 
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <sys/ioccom.h>

@@ -400,10 +400,11 @@
 
         /* list of privileges for smbd */
         (void) priv_addset(pset, PRIV_NET_MAC_AWARE);
         (void) priv_addset(pset, PRIV_NET_PRIVADDR);
         (void) priv_addset(pset, PRIV_PROC_AUDIT);
+        (void) priv_addset(pset, PRIV_SYS_CONFIG);
         (void) priv_addset(pset, PRIV_SYS_DEVICES);
         (void) priv_addset(pset, PRIV_SYS_SMB);
         (void) priv_addset(pset, PRIV_SYS_MOUNT);
 
         priv_inverse(pset);

@@ -574,10 +575,11 @@
         smbd_door_stop();
         smbd_authsvc_stop();
         smbd_spool_stop();
         smbd_kernel_unbind();
         smbd_share_stop();
+        smb_shr_unload();
         smb_shr_stop();
         dyndns_stop();
         smbd_nicmon_stop();
         smb_ccache_remove(SMB_CCACHE_PATH);
         smb_pwd_fini();

@@ -628,11 +630,13 @@
         dyndns_update_zones();
 
         /* This reloads the in-kernel config. */
         (void) smbd_kernel_bind();
 
-        smbd_load_shares();
+        /* On refresh load share properties only, not the shares themselves */
+        smb_shr_load_execinfo();
+
         smbd_load_printers();
         smbd_spool_start();
 }
 
 void

@@ -831,10 +835,14 @@
 
         if (rc != 0)
                 smbd_report("unable to load disk shares: %s", strerror(errno));
 }
 
+/*
+ * This wrapper function is used to avoid casting smb_shr_load() in
+ * pthread_create() above. It is called very infrequently.
+ */
 static void *
 smbd_share_loader(void *args)
 {
         (void) smb_shr_load(args);
         return (NULL);