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


 209         (void) smbsr_encode_result(sr, 18+n_setup, total_bytes,
 210             "b3.llllllllbCw#.C#.C",
 211             18 + n_setup,       /* wct */
 212             n_param,            /* Total Parameter Bytes */
 213             n_data,             /* Total Data Bytes */
 214             n_param,            /* Total Parameter Bytes this buffer */
 215             param_off,          /* Param offset from header start */
 216             0,                  /* Param displacement */
 217             n_data,             /* Total Data Bytes this buffer */
 218             data_off,           /* Data offset from header start */
 219             0,                  /* Data displacement */
 220             n_setup,            /* suwcnt */
 221             &xa->rep_setup_mb,   /* setup[] */
 222             total_bytes,        /* Total data bytes */
 223             param_pad,
 224             &sr->raw_data,       /* output mbc */
 225             data_pad,
 226             &xa->rep_data_mb);
 227 
 228 sendit:


 229         sds = &sr->sr_server->sv_disp_stats1[sr->smb_com];
 230         atomic_add_64(&sds->sdt_txb, (int64_t)sr->reply.chain_offset);
 231 
 232         smbsr_send_reply(sr);   /* also puts the SMB header. */
 233         smbsr_cleanup(sr);
 234 
 235         mutex_enter(&sr->sr_mutex);
 236         sr->sr_state = SMB_REQ_STATE_COMPLETED;
 237         mutex_exit(&sr->sr_mutex);
 238 
 239         smb_request_free(sr);
 240 }


 209         (void) smbsr_encode_result(sr, 18+n_setup, total_bytes,
 210             "b3.llllllllbCw#.C#.C",
 211             18 + n_setup,       /* wct */
 212             n_param,            /* Total Parameter Bytes */
 213             n_data,             /* Total Data Bytes */
 214             n_param,            /* Total Parameter Bytes this buffer */
 215             param_off,          /* Param offset from header start */
 216             0,                  /* Param displacement */
 217             n_data,             /* Total Data Bytes this buffer */
 218             data_off,           /* Data offset from header start */
 219             0,                  /* Data displacement */
 220             n_setup,            /* suwcnt */
 221             &xa->rep_setup_mb,   /* setup[] */
 222             total_bytes,        /* Total data bytes */
 223             param_pad,
 224             &sr->raw_data,       /* output mbc */
 225             data_pad,
 226             &xa->rep_data_mb);
 227 
 228 sendit:
 229         DTRACE_SMB_1(op__NtTransactNotify__done2, smb_request_t *, sr);
 230 
 231         sds = &sr->sr_server->sv_disp_stats1[sr->smb_com];
 232         atomic_add_64(&sds->sdt_txb, (int64_t)sr->reply.chain_offset);
 233 
 234         smbsr_send_reply(sr);   /* also puts the SMB header. */
 235         smbsr_cleanup(sr);
 236 
 237         mutex_enter(&sr->sr_mutex);
 238         sr->sr_state = SMB_REQ_STATE_COMPLETED;
 239         mutex_exit(&sr->sr_mutex);
 240 
 241         smb_request_free(sr);
 242 }