Print this page
NEX-4820 intended nbmand locking functionality is confused
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Yuri Pankov <yuri.pankov@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-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-3620 need upstream cleanups for smbsrv
Reviewed by: Hans Rosenfeld <hans.rosenfeld@nexenta.com>
NEX-2485 SMB authentication flood handled poorly
SUP-866 smbd lwps stuck in libsocket recv() for no apparent reason
SMB-74 Process oplock breaks as session requests
SMB-69 read-raw, write-raw are dead code
SMB-50 User-mode SMB server
 Includes work by these authors:
 Thomas Keiser <thomas.keiser@nexenta.com>
 Albert Lee <trisk@nexenta.com>
SUP-694 panic on bad mutex in smb_event_wait() - nits
SMB-65 SMB server in non-global zones (kmem_caches)
common kmem_cache instances across zones
separate GZ-only init from NGZ init
SMB-64 smbsrv workers run at excessively high priority
re #6811 rb1752 backport illumos 1603 smbsrv raw mode is ill-advised
        
@@ -62,13 +62,10 @@
  * with Windows NT4.0. Previous experiments with NT4.0 resulted in directory
  * listing problems so this buffer size is configurable based on the end-user
  * environment. When in doubt use 37KB.
  */
 int     smb_maxbufsize = SMB_NT_MAXBUF;
-int     smb_oplock_levelII = 1;
-int     smb_oplock_timeout = OPLOCK_STD_TIMEOUT;
-int     smb_oplock_min_timeout = OPLOCK_MIN_TIMEOUT;
 int     smb_flush_required = 1;
 int     smb_dirsymlink_enable = 1;
 int     smb_sign_debug = 0;
 int     smb_shortnames = 1;
 uint_t  smb_audit_flags =
@@ -76,10 +73,12 @@
     SMB_AUDIT_NODE;
 #else
     0;
 #endif
 
+int smb_allow_advisory_locks = 0;       /* See smb_vops.c */
+
 /*
  * Maximum number of simultaneous authentication, share mapping, pipe open
  * requests to be processed.
  */
 int     smb_ssetup_threshold = SMB_AUTHSVC_MAXTHREAD;
@@ -246,11 +245,18 @@
 
 /* ARGSUSED */
 static int
 smb_drv_close(dev_t dev, int flag, int otyp, cred_t *credp)
 {
-        return (smb_server_delete());
+        smb_server_t    *sv;
+        int             rc;
+
+        rc = smb_server_lookup(&sv);
+        if (rc == 0)
+                rc = smb_server_delete(sv);
+
+        return (rc);
 }
 
 /* ARGSUSED */
 static int
 smb_drv_ioctl(dev_t drv, int cmd, intptr_t argp, int flags, cred_t *cred,