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>
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-50 User-mode SMB server
 Includes work by these authors:
 Thomas Keiser <thomas.keiser@nexenta.com>
 Albert Lee <trisk@nexenta.com>
SMB-65 SMB server in non-global zones (use zone_kcred())
SUP-599 smb_oplock_acquire thread deadlock
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...
re #11215 rb3676 sesctl to SGI JBOD hangs in biowait() with a command stuck in mptsas driver
re #10734 NT Trans. Notify returning too quickly

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/fs/smbsrv/smb_rename.c
          +++ new/usr/src/uts/common/fs/smbsrv/smb_rename.c
↓ open down ↓ 12 lines elided ↑ open up ↑
  13   13   * When distributing Covered Code, include this CDDL HEADER in each
  14   14   * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15   15   * If applicable, add the following below this CDDL HEADER, with the
  16   16   * fields enclosed by brackets "[]" replaced with your own identifying
  17   17   * information: Portions Copyright [yyyy] [name of copyright owner]
  18   18   *
  19   19   * CDDL HEADER END
  20   20   */
  21   21  /*
  22   22   * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
  23      - * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
       23 + * Copyright 2017 Nexenta Systems, Inc.  All rights reserved.
  24   24   */
  25   25  
  26   26  #include <sys/synch.h>
  27   27  #include <smbsrv/smb_kproto.h>
  28   28  #include <smbsrv/smb_fsops.h>
  29   29  #include <sys/nbmlock.h>
  30   30  
  31   31  /*
  32   32   * NT_RENAME InformationLevels:
  33   33   *
↓ open down ↓ 31 lines elided ↑ open up ↑
  65   65          smb_fqi_t *dst_fqi = &sr->arg.dirop.dst_fqi;
  66   66          int rc;
  67   67  
  68   68          if ((rc = smbsr_decode_vwv(sr, "w", &src_fqi->fq_sattr)) == 0) {
  69   69                  rc = smbsr_decode_data(sr, "%SS", sr, &src_fqi->fq_path.pn_path,
  70   70                      &dst_fqi->fq_path.pn_path);
  71   71  
  72   72                  dst_fqi->fq_sattr = 0;
  73   73          }
  74   74  
  75      -        DTRACE_SMB_2(op__Rename__start, smb_request_t *, sr,
  76      -            struct dirop *, &sr->arg.dirop);
       75 +        DTRACE_SMB_START(op__Rename, smb_request_t *, sr); /* arg.dirop */
  77   76  
  78   77          return ((rc == 0) ? SDRC_SUCCESS : SDRC_ERROR);
  79   78  }
  80   79  
  81   80  void
  82   81  smb_post_rename(smb_request_t *sr)
  83   82  {
  84      -        DTRACE_SMB_1(op__Rename__done, smb_request_t *, sr);
       83 +        DTRACE_SMB_DONE(op__Rename, smb_request_t *, sr);
  85   84  }
  86   85  
  87   86  smb_sdrc_t
  88   87  smb_com_rename(smb_request_t *sr)
  89   88  {
  90   89          smb_fqi_t       *src_fqi = &sr->arg.dirop.fqi;
  91   90          smb_fqi_t       *dst_fqi = &sr->arg.dirop.dst_fqi;
  92   91          smb_pathname_t  *src_pn = &src_fqi->fq_path;
  93   92          smb_pathname_t  *dst_pn = &dst_fqi->fq_path;
  94   93          uint32_t        status;
↓ open down ↓ 44 lines elided ↑ open up ↑
 139  138  
 140  139          rc = smbsr_decode_vwv(sr, "wwl", &src_fqi->fq_sattr,
 141  140              &sr->arg.dirop.info_level, &clusters);
 142  141          if (rc == 0) {
 143  142                  rc = smbsr_decode_data(sr, "%SS", sr,
 144  143                      &src_fqi->fq_path.pn_path, &dst_fqi->fq_path.pn_path);
 145  144  
 146  145                  dst_fqi->fq_sattr = 0;
 147  146          }
 148  147  
 149      -        DTRACE_SMB_2(op__NtRename__start, smb_request_t *, sr,
 150      -            struct dirop *, &sr->arg.dirop);
      148 +        DTRACE_SMB_START(op__NtRename, smb_request_t *, sr); /* arg.dirop */
 151  149  
 152  150          return ((rc == 0) ? SDRC_SUCCESS : SDRC_ERROR);
 153  151  }
 154  152  
 155  153  void
 156  154  smb_post_nt_rename(smb_request_t *sr)
 157  155  {
 158      -        DTRACE_SMB_1(op__NtRename__done, smb_request_t *, sr);
      156 +        DTRACE_SMB_DONE(op__NtRename, smb_request_t *, sr);
 159  157  }
 160  158  
 161  159  smb_sdrc_t
 162  160  smb_com_nt_rename(smb_request_t *sr)
 163  161  {
 164  162          smb_fqi_t       *src_fqi = &sr->arg.dirop.fqi;
 165  163          smb_fqi_t       *dst_fqi = &sr->arg.dirop.dst_fqi;
 166  164          smb_pathname_t  *src_pn = &src_fqi->fq_path;
 167  165          smb_pathname_t  *dst_pn = &dst_fqi->fq_path;
 168  166          uint32_t        status;
↓ open down ↓ 66 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX