Print this page
NEX-1643 dtrace provider for smbsrv
Also illumos 1841:
 DTrace smb provider was mis-implemented, doesn't exist.
Add back handlers for read/write raw, so that
 legacy dtrace consumers can find the probes.
Kill extra arg in smb_negotiate
Fix missing "done" probe with smb_notify
Add example consumer: smb-trace.d
fix soi_pid

@@ -193,14 +193,16 @@
         { "Invalid", SMB_SDT_OPS(invalid), 0x15, 0 },           /* 0x15 021 */
         { "Invalid", SMB_SDT_OPS(invalid), 0x16, 0 },           /* 0x16 022 */
         { "Invalid", SMB_SDT_OPS(invalid), 0x17, 0 },           /* 0x17 023 */
         { "Invalid", SMB_SDT_OPS(invalid), 0x18, 0 },           /* 0x18 024 */
         { "Invalid", SMB_SDT_OPS(invalid), 0x19, 0 },           /* 0x19 025 */
-        { "SmbReadRaw", SMB_SDT_OPS(invalid), 0x1A, 0 },        /* 0x1A 026 */
+        { "SmbReadRaw", SMB_SDT_OPS(read_raw),                  /* 0x1A 026 */
+            0x1A, LANMAN1_0 },
         { "Invalid", SMB_SDT_OPS(invalid), 0x1B, 0 },           /* 0x1B 027 */
         { "Invalid", SMB_SDT_OPS(invalid), 0x1C, 0 },           /* 0x1C 028 */
-        { "SmbWriteRaw", SMB_SDT_OPS(invalid), 0x1D, 0 },       /* 0x1D 029 */
+        { "SmbWriteRaw", SMB_SDT_OPS(write_raw),                /* 0x1D 029 */
+            0x1D, LANMAN1_0 },
         { "Invalid", SMB_SDT_OPS(invalid), 0x1E, 0 },           /* 0x1E 030 */
         { "Invalid", SMB_SDT_OPS(invalid), 0x1F, 0 },           /* 0x1F 031 */
         { "Invalid", SMB_SDT_OPS(invalid), 0x20, 0 },           /* 0x20 032 */
         { "Invalid", SMB_SDT_OPS(invalid), 0x21, 0 },           /* 0x21 033 */
         { "SmbSetInformation2", SMB_SDT_OPS(set_information2),  /* 0x22 034 */

@@ -831,13 +833,12 @@
         }
 
         sr->sr_time_start = gethrtime();
         if ((sdrc = (*sdd->sdt_pre_op)(sr)) == SDRC_SUCCESS)
                 sdrc = (*sdd->sdt_function)(sr);
-
-        if (sdrc != SDRC_SR_KEPT) {
                 (*sdd->sdt_post_op)(sr);
+        if (sdrc != SDRC_SR_KEPT) {
                 smbsr_cleanup(sr);
         }
 
         /* Record latency and rx/tx bytes per:  server, session, share. */
         {