Print this page
NEX-15069 smtorture smb2.create.blob is failed
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
NEX-15069 smtorture smb2.create.blob is failed
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
NEX-1643 dtrace provider for smbsrv
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Matt Barden <matt.barden@nexenta.com>
SMB-65 SMB server in non-global zones (use zone_kcred())
re #14152 Race between ipmi_submit_driver_request() and kcs_loop() (sync with illumos fix 3902)
SMB-46 File handle leaks exposed by mtime fixes (rm 7815)
re #7815 SMB server delivers old modification time...

@@ -20,11 +20,11 @@
  */
 /*
  * Copyright 2010 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>
 #include <smbsrv/smbinfo.h>
 #include <smbsrv/smb_fsops.h>

@@ -57,20 +57,19 @@
         int rc;
 
         rc = smbsr_decode_data(sr, "%S", sr,
             &sr->arg.dirop.fqi.fq_path.pn_path);
 
-        DTRACE_SMB_2(op__CreateDirectory__start, smb_request_t *, sr,
-            struct dirop *, &sr->arg.dirop);
+        DTRACE_SMB_START(op__CreateDirectory, smb_request_t *, sr);
 
         return ((rc == 0) ? SDRC_SUCCESS : SDRC_ERROR);
 }
 
 void
 smb_post_create_directory(smb_request_t *sr)
 {
-        DTRACE_SMB_1(op__CreateDirectory__done, smb_request_t *, sr);
+        DTRACE_SMB_DONE(op__CreateDirectory, smb_request_t *, sr);
 }
 
 smb_sdrc_t
 smb_com_create_directory(smb_request_t *sr)
 {

@@ -204,20 +203,19 @@
         int rc;
 
         rc = smbsr_decode_data(sr, "%S", sr,
             &sr->arg.dirop.fqi.fq_path.pn_path);
 
-        DTRACE_SMB_2(op__DeleteDirectory__start, smb_request_t *, sr,
-            struct dirop *, &sr->arg.dirop);
+        DTRACE_SMB_START(op__DeleteDirectory, smb_request_t *, sr);
 
         return ((rc == 0) ? SDRC_SUCCESS : SDRC_ERROR);
 }
 
 void
 smb_post_delete_directory(smb_request_t *sr)
 {
-        DTRACE_SMB_1(op__DeleteDirectory__done, smb_request_t *, sr);
+        DTRACE_SMB_DONE(op__DeleteDirectory, smb_request_t *, sr);
 }
 
 smb_sdrc_t
 smb_com_delete_directory(smb_request_t *sr)
 {

@@ -250,14 +248,10 @@
         }
 
         rc = smb_fsop_lookup(sr, sr->user_cr, SMB_FOLLOW_LINKS,
             tnode, fqi->fq_dnode, fqi->fq_last_comp, &fqi->fq_fnode);
         if (rc != 0) {
-                if (rc == ENOENT)
-                        smbsr_error(sr, NT_STATUS_OBJECT_NAME_NOT_FOUND,
-                            ERRDOS, ERROR_FILE_NOT_FOUND);
-                else
                         smbsr_errno(sr, rc);
                 smb_node_release(fqi->fq_dnode);
                 return (SDRC_ERROR);
         }
 

@@ -359,20 +353,19 @@
         int rc;
 
         rc = smbsr_decode_data(sr, "%S", sr,
             &sr->arg.dirop.fqi.fq_path.pn_path);
 
-        DTRACE_SMB_2(op__CheckDirectory__start, smb_request_t *, sr,
-            struct dirop *, &sr->arg.dirop);
+        DTRACE_SMB_START(op__CheckDirectory, smb_request_t *, sr);
 
         return ((rc == 0) ? SDRC_SUCCESS : SDRC_ERROR);
 }
 
 void
 smb_post_check_directory(smb_request_t *sr)
 {
-        DTRACE_SMB_1(op__CheckDirectory__done, smb_request_t *, sr);
+        DTRACE_SMB_DONE(op__CheckDirectory, smb_request_t *, sr);
 }
 
 smb_sdrc_t
 smb_com_check_directory(smb_request_t *sr)
 {

@@ -415,14 +408,10 @@
 
         rc = smb_fsop_lookup(sr, sr->user_cr, SMB_FOLLOW_LINKS,
             tnode, fqi->fq_dnode, fqi->fq_last_comp, &fqi->fq_fnode);
         smb_node_release(fqi->fq_dnode);
         if (rc != 0) {
-                if (rc == ENOENT)
-                        smbsr_error(sr, NT_STATUS_OBJECT_NAME_NOT_FOUND,
-                            ERRDOS, ERROR_PATH_NOT_FOUND);
-                else
                         smbsr_errno(sr, rc);
                 return (SDRC_ERROR);
         }
 
         node = fqi->fq_fnode;