Print this page
NEX-16818 Add fksmbcl development tool
NEX-17264 SMB client test tp_smbutil_013 fails after NEX-14666
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Matt Barden <matt.barden@nexenta.com>
and: (fix ref leaks)
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-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>
SMB-50 User-mode SMB server
 Includes work by these authors:
 Thomas Keiser <thomas.keiser@nexenta.com>
 Albert Lee <trisk@nexenta.com>

@@ -8,11 +8,11 @@
  * source.  A copy of the CDDL is also available via the Internet at
  * http://www.illumos.org/license/CDDL.
  */
 
 /*
- * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
+ * Copyright 2017 Nexenta Systems, Inc.  All rights reserved.
  */
 
 /*
  * rwlock(9f)
  */

@@ -21,11 +21,10 @@
 #include <sys/rwlock.h>
 
 #include <sys/errno.h>
 #include <sys/debug.h>
 #include <sys/param.h>
-#include <sys/synch32.h>
 #include <sys/thread.h>
 
 /* avoiding synch.h */
 int     rwlock_init(lwp_rwlock_t *, int, void *);
 int     rwlock_destroy(lwp_rwlock_t *);

@@ -70,10 +69,12 @@
 rw_exit(krwlock_t *rwlp)
 {
         if (_rw_write_held(&rwlp->rw_lock)) {
                 ASSERT(rwlp->rw_owner == _curthread());
                 rwlp->rw_owner = _KTHREAD_INVALID;
+        } else {
+                ASSERT(_rw_read_held(&rwlp->rw_lock));
         }
         (void) rw_unlock(&rwlp->rw_lock);
 }
 
 int