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-11 SMB2 message parse & dispatch
SMB-12 SMB2 Negotiate Protocol
SMB-13 SMB2 Session Setup
SMB-14 SMB2 Logoff
SMB-15 SMB2 Tree Connect
SMB-16 SMB2 Tree Disconnect
SMB-17 SMB2 Create
SMB-18 SMB2 Close
SMB-19 SMB2 Flush
SMB-20 SMB2 Read
SMB-21 SMB2 Write
SMB-22 SMB2 Lock/Unlock
SMB-23 SMB2 Ioctl
SMB-24 SMB2 Cancel
SMB-25 SMB2 Echo
SMB-26 SMB2 Query Dir
SMB-27 SMB2 Change Notify
SMB-28 SMB2 Query Info
SMB-29 SMB2 Set Info
SMB-30 SMB2 Oplocks
SMB-53 SMB2 Create Context options
(SMB2 code review cleanup 1, 2, 3)
SMB-63 taskq_create_proc ... TQ_DYNAMIC puts tasks in p0
re #11974 CIFS Share - Tree connect fails from Windows 7 Clients
re #10733 Windows 7 directory listing keeps restarting
        
*** 18,28 ****
   *
   * CDDL HEADER END
   */
  /*
   * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
!  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
   */
  
  #include <smbsrv/smb_kproto.h>
  
  /*
--- 18,28 ----
   *
   * CDDL HEADER END
   */
  /*
   * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
!  * Copyright 2017 Nexenta Systems, Inc.  All rights reserved.
   */
  
  #include <smbsrv/smb_kproto.h>
  
  /*
*** 201,218 ****
  /* *** smb_com_search *** */
  
  smb_sdrc_t
  smb_pre_search(smb_request_t *sr)
  {
!         DTRACE_SMB_1(op__Search__start, smb_request_t *, sr);
          return (SDRC_SUCCESS);
  }
  
  void
  smb_post_search(smb_request_t *sr)
  {
!         DTRACE_SMB_1(op__Search__done, smb_request_t *, sr);
  }
  
  smb_sdrc_t
  smb_com_search(smb_request_t *sr)
  {
--- 201,218 ----
  /* *** smb_com_search *** */
  
  smb_sdrc_t
  smb_pre_search(smb_request_t *sr)
  {
!         DTRACE_SMB_START(op__Search, smb_request_t *, sr);
          return (SDRC_SUCCESS);
  }
  
  void
  smb_post_search(smb_request_t *sr)
  {
!         DTRACE_SMB_DONE(op__Search, smb_request_t *, sr);
  }
  
  smb_sdrc_t
  smb_com_search(smb_request_t *sr)
  {
*** 298,307 ****
--- 298,308 ----
                          if (status == NT_STATUS_ACCESS_DENIED)
                                  smbsr_warn(sr, NT_STATUS_NO_MORE_FILES,
                                      ERRDOS, ERROR_NO_MORE_FILES);
                          return (SDRC_ERROR);
                  }
+                 odid = od->d_odid;
          } else {
                  if (smb_mbc_decodef(&sr->smb_data, "b12.wwl",
                      &resume_char, &index, &odid, &client_key) != 0) {
                          return (SDRC_ERROR);
                  }
*** 392,409 ****
  /* *** smb_com_find *** */
  
  smb_sdrc_t
  smb_pre_find(smb_request_t *sr)
  {
!         DTRACE_SMB_1(op__Find__start, smb_request_t *, sr);
          return (SDRC_SUCCESS);
  }
  
  void
  smb_post_find(smb_request_t *sr)
  {
!         DTRACE_SMB_1(op__Find__done, smb_request_t *, sr);
  }
  
  smb_sdrc_t
  smb_com_find(smb_request_t *sr)
  {
--- 393,410 ----
  /* *** smb_com_find *** */
  
  smb_sdrc_t
  smb_pre_find(smb_request_t *sr)
  {
!         DTRACE_SMB_START(op__Find, smb_request_t *, sr);
          return (SDRC_SUCCESS);
  }
  
  void
  smb_post_find(smb_request_t *sr)
  {
!         DTRACE_SMB_DONE(op__Find, smb_request_t *, sr);
  }
  
  smb_sdrc_t
  smb_com_find(smb_request_t *sr)
  {
*** 453,462 ****
--- 454,464 ----
                  status = smb_odir_openpath(sr, pn->pn_path, sattr, 0, &od);
                  if (status != 0) {
                          smbsr_error(sr, status, 0, 0);
                          return (SDRC_ERROR);
                  }
+                 odid = od->d_odid;
          } else {
                  if (smb_mbc_decodef(&sr->smb_data, "b12.wwl",
                      &resume_char, &index, &odid, &client_key) != 0) {
                          return (SDRC_ERROR);
                  }
*** 545,562 ****
  /* *** smb_com_find_close *** */
  
  smb_sdrc_t
  smb_pre_find_close(smb_request_t *sr)
  {
!         DTRACE_SMB_1(op__FindClose__start, smb_request_t *, sr);
          return (SDRC_SUCCESS);
  }
  
  void
  smb_post_find_close(smb_request_t *sr)
  {
!         DTRACE_SMB_1(op__FindClose__done, smb_request_t *, sr);
  }
  
  smb_sdrc_t
  smb_com_find_close(smb_request_t *sr)
  {
--- 547,564 ----
  /* *** smb_com_find_close *** */
  
  smb_sdrc_t
  smb_pre_find_close(smb_request_t *sr)
  {
!         DTRACE_SMB_START(op__FindClose, smb_request_t *, sr);
          return (SDRC_SUCCESS);
  }
  
  void
  smb_post_find_close(smb_request_t *sr)
  {
!         DTRACE_SMB_DONE(op__FindClose, smb_request_t *, sr);
  }
  
  smb_sdrc_t
  smb_com_find_close(smb_request_t *sr)
  {
*** 611,628 ****
  /* *** smb_com_find_unique *** */
  
  smb_sdrc_t
  smb_pre_find_unique(smb_request_t *sr)
  {
!         DTRACE_SMB_1(op__FindUnique__start, smb_request_t *, sr);
          return (SDRC_SUCCESS);
  }
  
  void
  smb_post_find_unique(smb_request_t *sr)
  {
!         DTRACE_SMB_1(op__FindUnique__done, smb_request_t *, sr);
  }
  
  smb_sdrc_t
  smb_com_find_unique(struct smb_request *sr)
  {
--- 613,630 ----
  /* *** smb_com_find_unique *** */
  
  smb_sdrc_t
  smb_pre_find_unique(smb_request_t *sr)
  {
!         DTRACE_SMB_START(op__FindUnique, smb_request_t *, sr);
          return (SDRC_SUCCESS);
  }
  
  void
  smb_post_find_unique(smb_request_t *sr)
  {
!         DTRACE_SMB_DONE(op__FindUnique, smb_request_t *, sr);
  }
  
  smb_sdrc_t
  smb_com_find_unique(struct smb_request *sr)
  {
*** 689,700 ****
                              SMB_SHORTNAMELEN - 1);
                  }
                  smb_name83(fileinfo.fi_shortname, name83, SMB_SHORTNAMELEN);
  
                  (void) smb_mbc_encodef(&sr->reply, "b11c.wwlbYl13c",
!                     resume_char, name83, index, od->d_odid,
!                     client_key, fileinfo.fi_dosattr & 0xff,
                      smb_time_gmt_to_local(sr, fileinfo.fi_mtime.tv_sec),
                      (int32_t)fileinfo.fi_size,
                      fileinfo.fi_shortname);
  
                  count++;
--- 691,702 ----
                              SMB_SHORTNAMELEN - 1);
                  }
                  smb_name83(fileinfo.fi_shortname, name83, SMB_SHORTNAMELEN);
  
                  (void) smb_mbc_encodef(&sr->reply, "b11c.wwlbYl13c",
!                     resume_char, name83, index, od->d_odid, client_key,
!                     fileinfo.fi_dosattr & 0xff,
                      smb_time_gmt_to_local(sr, fileinfo.fi_mtime.tv_sec),
                      (int32_t)fileinfo.fi_size,
                      fileinfo.fi_shortname);
  
                  count++;