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