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
        
*** 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 <sys/synch.h>
  #include <smbsrv/smb_kproto.h>
  #include <smbsrv/smb_fsops.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 <sys/synch.h>
  #include <smbsrv/smb_kproto.h>
  #include <smbsrv/smb_fsops.h>
*** 70,89 ****
                      &dst_fqi->fq_path.pn_path);
  
                  dst_fqi->fq_sattr = 0;
          }
  
!         DTRACE_SMB_2(op__Rename__start, smb_request_t *, sr,
!             struct dirop *, &sr->arg.dirop);
  
          return ((rc == 0) ? SDRC_SUCCESS : SDRC_ERROR);
  }
  
  void
  smb_post_rename(smb_request_t *sr)
  {
!         DTRACE_SMB_1(op__Rename__done, smb_request_t *, sr);
  }
  
  smb_sdrc_t
  smb_com_rename(smb_request_t *sr)
  {
--- 70,88 ----
                      &dst_fqi->fq_path.pn_path);
  
                  dst_fqi->fq_sattr = 0;
          }
  
!         DTRACE_SMB_START(op__Rename, smb_request_t *, sr); /* arg.dirop */
  
          return ((rc == 0) ? SDRC_SUCCESS : SDRC_ERROR);
  }
  
  void
  smb_post_rename(smb_request_t *sr)
  {
!         DTRACE_SMB_DONE(op__Rename, smb_request_t *, sr);
  }
  
  smb_sdrc_t
  smb_com_rename(smb_request_t *sr)
  {
*** 144,163 ****
                      &src_fqi->fq_path.pn_path, &dst_fqi->fq_path.pn_path);
  
                  dst_fqi->fq_sattr = 0;
          }
  
!         DTRACE_SMB_2(op__NtRename__start, smb_request_t *, sr,
!             struct dirop *, &sr->arg.dirop);
  
          return ((rc == 0) ? SDRC_SUCCESS : SDRC_ERROR);
  }
  
  void
  smb_post_nt_rename(smb_request_t *sr)
  {
!         DTRACE_SMB_1(op__NtRename__done, smb_request_t *, sr);
  }
  
  smb_sdrc_t
  smb_com_nt_rename(smb_request_t *sr)
  {
--- 143,161 ----
                      &src_fqi->fq_path.pn_path, &dst_fqi->fq_path.pn_path);
  
                  dst_fqi->fq_sattr = 0;
          }
  
!         DTRACE_SMB_START(op__NtRename, smb_request_t *, sr); /* arg.dirop */
  
          return ((rc == 0) ? SDRC_SUCCESS : SDRC_ERROR);
  }
  
  void
  smb_post_nt_rename(smb_request_t *sr)
  {
!         DTRACE_SMB_DONE(op__NtRename, smb_request_t *, sr);
  }
  
  smb_sdrc_t
  smb_com_nt_rename(smb_request_t *sr)
  {