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,30 ****
   */
  /*
   * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
   * Use is subject to license terms.
   *
!  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
   */
  
  #include <smbsrv/smb_kproto.h>
  #include <smbsrv/smbinfo.h>
  #include <smbsrv/smb_fsops.h>
--- 20,30 ----
   */
  /*
   * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
   * Use is subject to license terms.
   *
!  * Copyright 2017 Nexenta Systems, Inc.  All rights reserved.
   */
  
  #include <smbsrv/smb_kproto.h>
  #include <smbsrv/smbinfo.h>
  #include <smbsrv/smb_fsops.h>
*** 57,76 ****
          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);
  
          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);
  }
  
  smb_sdrc_t
  smb_com_create_directory(smb_request_t *sr)
  {
--- 57,75 ----
          int rc;
  
          rc = smbsr_decode_data(sr, "%S", sr,
              &sr->arg.dirop.fqi.fq_path.pn_path);
  
!         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_DONE(op__CreateDirectory, smb_request_t *, sr);
  }
  
  smb_sdrc_t
  smb_com_create_directory(smb_request_t *sr)
  {
*** 204,223 ****
          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);
  
          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);
  }
  
  smb_sdrc_t
  smb_com_delete_directory(smb_request_t *sr)
  {
--- 203,221 ----
          int rc;
  
          rc = smbsr_decode_data(sr, "%S", sr,
              &sr->arg.dirop.fqi.fq_path.pn_path);
  
!         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_DONE(op__DeleteDirectory, smb_request_t *, sr);
  }
  
  smb_sdrc_t
  smb_com_delete_directory(smb_request_t *sr)
  {
*** 250,263 ****
          }
  
          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);
          }
  
--- 248,257 ----
*** 359,378 ****
          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);
  
          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);
  }
  
  smb_sdrc_t
  smb_com_check_directory(smb_request_t *sr)
  {
--- 353,371 ----
          int rc;
  
          rc = smbsr_decode_data(sr, "%S", sr,
              &sr->arg.dirop.fqi.fq_path.pn_path);
  
!         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_DONE(op__CheckDirectory, smb_request_t *, sr);
  }
  
  smb_sdrc_t
  smb_com_check_directory(smb_request_t *sr)
  {
*** 415,428 ****
  
          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;
--- 408,417 ----