1*5331Samw #!/usr/sbin/dtrace -qs 2*5331Samw /* 3*5331Samw * CDDL HEADER START 4*5331Samw * 5*5331Samw * The contents of this file are subject to the terms of the 6*5331Samw * Common Development and Distribution License (the "License"). 7*5331Samw * You may not use this file except in compliance with the License. 8*5331Samw * 9*5331Samw * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10*5331Samw * or http://www.opensolaris.org/os/licensing. 11*5331Samw * See the License for the specific language governing permissions 12*5331Samw * and limitations under the License. 13*5331Samw * 14*5331Samw * When distributing Covered Code, include this CDDL HEADER in each 15*5331Samw * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16*5331Samw * If applicable, add the following below this CDDL HEADER, with the 17*5331Samw * fields enclosed by brackets "[]" replaced with your own identifying 18*5331Samw * information: Portions Copyright [yyyy] [name of copyright owner] 19*5331Samw * 20*5331Samw * CDDL HEADER END 21*5331Samw */ 22*5331Samw /* 23*5331Samw * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 24*5331Samw * Use is subject to license terms. 25*5331Samw */ 26*5331Samw 27*5331Samw #pragma ident "%Z%%M% %I% %E% SMI" 28*5331Samw 29*5331Samw BEGIN 30*5331Samw { 31*5331Samw printf("-->SMB Server Node Trace Started"); 32*5331Samw printf("\n\n"); 33*5331Samw } 34*5331Samw 35*5331Samw END 36*5331Samw { 37*5331Samw printf("<--SMB Server Node Trace Ended"); 38*5331Samw printf("\n\n"); 39*5331Samw } 40*5331Samw 41*5331Samw sdt:smbsrv:smb_node_lookup:smb_node_lookup_hit 42*5331Samw /((smb_node_t *)arg0)->n_state == SMB_NODE_STATE_AVAILABLE/ 43*5331Samw { 44*5331Samw printf("\nSMB Node lookup hit/SMB_NODE_STATE_AVAILABLE"); 45*5331Samw printf("\n\tNode: %p", arg0); 46*5331Samw printf("\n\tRefCnt: %d", ((smb_node_t *)arg0)->n_refcnt); 47*5331Samw printf("\n\tName: %s", (string)((vnode_t *)((smb_node_t *)arg0)->vp)->v_path); 48*5331Samw stack(); 49*5331Samw } 50*5331Samw 51*5331Samw sdt:smbsrv:smb_node_lookup:smb_node_lookup_hit 52*5331Samw /((smb_node_t *)arg0)->n_state == SMB_NODE_STATE_DESTROYING/ 53*5331Samw { 54*5331Samw printf("\nSMB Node lookup hit/SMB_NODE_STATE_DESTROYING"); 55*5331Samw printf("\n\tNode: %p", arg0); 56*5331Samw printf("\n\tRefCnt: %d", ((smb_node_t *)arg0)->n_refcnt); 57*5331Samw printf("\n\tName: %s", (string)((vnode_t *)((smb_node_t *)arg0)->vp)->v_path); 58*5331Samw stack(); 59*5331Samw } 60*5331Samw 61*5331Samw sdt:smbsrv:smb_node_lookup:smb_node_lookup_hit 62*5331Samw /(((smb_node_t *)arg0)->n_state != SMB_NODE_STATE_DESTROYING) && 63*5331Samw (((smb_node_t *)arg0)->n_state != SMB_NODE_STATE_AVAILABLE)/ 64*5331Samw { 65*5331Samw printf("\nSMB Node lookup hit/Unknown State"); 66*5331Samw printf("\n\tNode: %p", arg0); 67*5331Samw printf("\n\tRefCnt: %d", ((smb_node_t *)arg0)->n_refcnt); 68*5331Samw printf("\n\tName: %s", (string)((vnode_t *)((smb_node_t *)arg0)->vp)->v_path); 69*5331Samw stack(); 70*5331Samw } 71*5331Samw 72*5331Samw sdt:smbsrv:smb_node_lookup:smb_node_lookup_miss 73*5331Samw { 74*5331Samw printf("\nSMB Node lookup miss"); 75*5331Samw printf("\n\tNode: %p", arg0); 76*5331Samw printf("\n\tRefCnt: %d", ((smb_node_t *)arg0)->n_refcnt); 77*5331Samw printf("\n\tName: %s", (string)((vnode_t *)((smb_node_t *)arg0)->vp)->v_path); 78*5331Samw stack(); 79*5331Samw } 80*5331Samw 81*5331Samw sdt:smbsrv:smb_node_ref:smb_node_ref_exit 82*5331Samw { 83*5331Samw printf("\nSMB Node reference taken"); 84*5331Samw printf("\n\tNode: %p", arg0); 85*5331Samw printf("\n\tRefCnt: %d", ((smb_node_t *)arg0)->n_refcnt); 86*5331Samw printf("\n\tName: %s", (string)((vnode_t *)((smb_node_t *)arg0)->vp)->v_path); 87*5331Samw stack(); 88*5331Samw } 89*5331Samw 90*5331Samw sdt:smbsrv:smb_node_release:smb_node_release 91*5331Samw /((smb_node_t *)arg0)->n_refcnt == 1/ 92*5331Samw { 93*5331Samw printf("\nSMB Node release(will be destroyed)"); 94*5331Samw printf("\n\tNode: %p", arg0); 95*5331Samw printf("\n\tName: %s", (string)((vnode_t *)((smb_node_t *)arg0)->vp)->v_path); 96*5331Samw stack(); 97*5331Samw } 98*5331Samw 99*5331Samw sdt:smbsrv:smb_node_release:smb_node_release 100*5331Samw /((smb_node_t *)arg0)->n_refcnt > 1/ 101*5331Samw { 102*5331Samw printf("\nSMB Node release"); 103*5331Samw printf("\n\tNode: %p", arg0); 104*5331Samw printf("\n\tRefCnt: %d", ((smb_node_t *)arg0)->n_refcnt); 105*5331Samw printf("\n\tName: %s", (string)((vnode_t *)((smb_node_t *)arg0)->vp)->v_path); 106*5331Samw stack(); 107*5331Samw } 108*5331Samw 109*5331Samw sdt:smbsrv:smb_node_delete_on_close:smb_node_delete_on_close 110*5331Samw /(int)arg0 == 0/ 111*5331Samw { 112*5331Samw printf("\nSMB Node delete on close successful"); 113*5331Samw printf("\n\tNode: %p", arg1); 114*5331Samw printf("\n\tName: %s", (string)((vnode_t *)((smb_node_t *)arg1)->vp)->v_path); 115*5331Samw stack(); 116*5331Samw } 117*5331Samw 118*5331Samw sdt:smbsrv:smb_node_delete_on_close:smb_node_delete_on_close 119*5331Samw /(int)arg0 == 0/ 120*5331Samw { 121*5331Samw printf("\nSMB Node delete on close failed (%d)", (int)arg0); 122*5331Samw printf("\n\tNode: %p", arg1); 123*5331Samw printf("\n\tName: %s", (string)((vnode_t *)((smb_node_t *)arg1)->vp)->v_path); 124*5331Samw stack(); 125*5331Samw } 126*5331Samw 127*5331Samw 128