Print this page
NEX-1643 dtrace provider for smbsrv
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Matt Barden <matt.barden@nexenta.com>
NEX-6041 Should pass the smbtorture lock tests
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Kevin Crowe <kevin.crowe@nexenta.com>
re #7815 SMB server delivers old modification time...

@@ -20,11 +20,11 @@
  */
 /*
  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  *
- * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
+ * Copyright 2017 Nexenta Systems, Inc.  All rights reserved.
  */
 
 #include <smbsrv/smb_kproto.h>
 
 /*

@@ -43,18 +43,18 @@
 {
         int rc;
 
         rc = smbsr_decode_vwv(sr, "wl", &sr->smb_fid, &sr->arg.timestamp);
 
-        DTRACE_SMB_1(op__Close__start, smb_request_t *, sr);
+        DTRACE_SMB_START(op__Close, smb_request_t *, sr);
         return ((rc == 0) ? SDRC_SUCCESS : SDRC_ERROR);
 }
 
 void
 smb_post_close(smb_request_t *sr)
 {
-        DTRACE_SMB_1(op__Close__done, smb_request_t *, sr);
+        DTRACE_SMB_DONE(op__Close, smb_request_t *, sr);
 }
 
 smb_sdrc_t
 smb_com_close(smb_request_t *sr)
 {

@@ -84,18 +84,18 @@
 {
         int rc;
 
         rc = smbsr_decode_vwv(sr, "wl", &sr->smb_fid, &sr->arg.timestamp);
 
-        DTRACE_SMB_1(op__CloseAndTreeDisconnect__start, smb_request_t *, sr);
+        DTRACE_SMB_START(op__CloseAndTreeDisconnect, smb_request_t *, sr);
         return ((rc == 0) ? SDRC_SUCCESS : SDRC_ERROR);
 }
 
 void
 smb_post_close_and_tree_disconnect(smb_request_t *sr)
 {
-        DTRACE_SMB_1(op__CloseAndTreeDisconnect__done, smb_request_t *, sr);
+        DTRACE_SMB_DONE(op__CloseAndTreeDisconnect, smb_request_t *, sr);
 }
 
 smb_sdrc_t
 smb_com_close_and_tree_disconnect(smb_request_t *sr)
 {

@@ -107,12 +107,13 @@
                 return (SDRC_ERROR);
         }
 
         mtime = smb_time_local_to_gmt(sr, sr->arg.timestamp);
         smb_ofile_close(sr->fid_ofile, mtime);
-        smb_session_cancel_requests(sr->session, sr->tid_tree, sr);
+
         smb_tree_disconnect(sr->tid_tree, B_TRUE);
+        smb_session_cancel_requests(sr->session, sr->tid_tree, sr);
 
         if (smbsr_encode_empty_result(sr) != 0)
                 return (SDRC_ERROR);
 
         return (SDRC_SUCCESS);