Print this page
11083 support NFS server in zone
Portions contributed by: Dan Kruchinin <dan.kruchinin@nexenta.com>
Portions contributed by: Stepan Zastupov <stepan.zastupov@gmail.com>
Portions contributed by: Joyce McIntosh <joyce.mcintosh@nexenta.com>
Portions contributed by: Mike Zeller <mike@mikezeller.net>
Portions contributed by: Dan McDonald <danmcd@joyent.com>
Portions contributed by: Gordon Ross <gordon.w.ross@gmail.com>
Portions contributed by: Vitaliy Gusev <gusev.vitaliy@gmail.com>
Reviewed by: Rick McNeal <rick.mcneal@nexenta.com>
Reviewed by: Rob Gittins <rob.gittins@nexenta.com>
Reviewed by: Sanjay Nadkarni <sanjay.nadkarni@nexenta.com>
Reviewed by: Jason King <jbk@joyent.com>
Reviewed by: C Fraire <cfraire@me.com>
Change-Id: I22f289d357503f9b48a0bc2482cc4328a6d43d16
| Split |
Close |
| Expand all |
| Collapse all |
--- old/usr/src/lib/libdtrace/common/smb.d
+++ new/usr/src/lib/libdtrace/common/smb.d
1 1 /*
2 2 * CDDL HEADER START
3 3 *
4 4 * The contents of this file are subject to the terms of the
5 5 * Common Development and Distribution License (the "License").
6 6 * You may not use this file except in compliance with the License.
7 7 *
8 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 9 * or http://www.opensolaris.org/os/licensing.
10 10 * See the License for the specific language governing permissions
11 11 * and limitations under the License.
12 12 *
13 13 * When distributing Covered Code, include this CDDL HEADER in each
14 14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 15 * If applicable, add the following below this CDDL HEADER, with the
|
↓ open down ↓ |
15 lines elided |
↑ open up ↑ |
16 16 * fields enclosed by brackets "[]" replaced with your own identifying
17 17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 18 *
19 19 * CDDL HEADER END
20 20 */
21 21
22 22 /*
23 23 * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
24 24 * Use is subject to license terms.
25 25 *
26 - * Copyright 2017 Nexenta Systems, Inc. All rights reserved.
26 + * Copyright 2018 Nexenta Systems, Inc. All rights reserved.
27 27 */
28 28
29 29 #pragma D depends_on library ip.d
30 30 #pragma D depends_on library net.d
31 31 #pragma D depends_on module genunix
32 32 #pragma D depends_on module smbsrv
33 33
34 34 #pragma D binding "1.5" translator
35 35 translator conninfo_t < struct smb_request *P > {
36 36 ci_protocol =
37 37 P->session->ipaddr.a_family == AF_INET6 ? "tcp6" :
38 38 P->session->ipaddr.a_family == AF_INET ? "tcp" :
39 39 "<unknown>";
40 40 ci_local = "<any>"; /* not interesting */
41 41 ci_remote = P->session->ip_addr_str;
42 42 };
43 43
44 44 /*
45 45 * The smbopinfo_t structure describes the internal form of a
46 46 * single SMB request (SMB v1).
47 47 */
48 48 typedef struct smbopinfo {
49 49 cred_t *soi_cred; /* credentials for operation */
50 50 string soi_share; /* share name */
|
↓ open down ↓ |
14 lines elided |
↑ open up ↑ |
51 51 string soi_curpath; /* file handle path (if any) */
52 52 uint64_t soi_sid; /* session id */
53 53 uint32_t soi_pid; /* process id */
54 54 uint32_t soi_status; /* status */
55 55 uint16_t soi_tid; /* tree id */
56 56 uint16_t soi_uid; /* user id */
57 57 uint16_t soi_mid; /* request id */
58 58 uint16_t soi_fid; /* file id */
59 59 uint16_t soi_flags2; /* flags2 */
60 60 uint8_t soi_flags; /* flags */
61 + zoneid_t soi_zoneid; /* zone identifier */
61 62 } smbopinfo_t;
62 63
63 64 #pragma D binding "1.5" translator
64 65 translator smbopinfo_t < struct smb_request *P > {
65 66 soi_cred = (cred_t *)P->user_cr;
66 67 soi_sid = P->session->s_kid;
67 68 soi_pid = P->smb_pid;
68 69 soi_status = P->smb_error.status;
69 70 soi_tid = P->smb_tid;
70 71 soi_uid = P->smb_uid;
71 72 soi_mid = P->smb_mid;
72 73 soi_fid = P->smb_fid;
73 74 soi_flags2 = P->smb_flg2;
74 75 soi_flags = P->smb_flg;
76 + soi_zoneid = P->sr_server->sv_zid;
75 77
76 78 soi_share = (P->tid_tree == NULL) ? "<NULL>" :
77 79 P->tid_tree->t_sharename;
78 80
79 81 soi_curpath = (P->fid_ofile == NULL ||
80 82 P->fid_ofile->f_node == NULL ||
81 83 P->fid_ofile->f_node->vp == NULL ||
82 84 P->fid_ofile->f_node->vp->v_path == NULL) ? "<NULL>" :
83 85 P->fid_ofile->f_node->vp->v_path;
84 86 };
85 87
86 88 typedef struct smb_rw_args {
87 89 off_t soa_offset;
88 90 uint_t soa_count;
89 91 } smb_rw_args_t;
90 92
91 93 #pragma D binding "1.5" translator
92 94 translator smb_rw_args_t < smb_request_t *P > {
93 95 soa_offset = P->arg.rw->rw_offset;
94 96 soa_count = P->arg.rw->rw_count;
95 97 };
96 98
97 99 typedef struct smb_name_args {
98 100 string soa_name;
99 101 } smb_name_args_t;
100 102
101 103 #pragma D binding "1.5" translator
102 104 translator smb_name_args_t < smb_request_t *P > {
103 105 soa_name = (P->arg.dirop.fqi.fq_path.pn_path == NULL) ? "<NULL>" :
104 106 P->arg.dirop.fqi.fq_path.pn_path;
105 107 };
106 108
107 109 typedef struct smb_open_args {
108 110 string soa_name;
109 111 uint32_t soa_desired_access;
110 112 uint32_t soa_share_access;
111 113 uint32_t soa_create_options;
112 114 uint32_t soa_create_disposition;
113 115 } smb_open_args_t;
114 116
115 117 #pragma D binding "1.5" translator
116 118 translator smb_open_args_t < smb_request_t *P > {
117 119 soa_name = (P->arg.open.fqi.fq_path.pn_path == NULL) ? "<NULL>" :
118 120 P->arg.open.fqi.fq_path.pn_path;
119 121 soa_desired_access = P->arg.open.desired_access;
120 122 soa_share_access = P->arg.open.share_access;
121 123 soa_create_options = P->arg.open.create_options;
122 124 soa_create_disposition = P->arg.open.create_disposition;
123 125 };
124 126
125 127 /*
126 128 * The smb2opinfo_t structure describes the internal form of a
127 129 * single SMB2 request (SMB v2 and later).
128 130 */
129 131 typedef struct smb2opinfo {
|
↓ open down ↓ |
45 lines elided |
↑ open up ↑ |
130 132 cred_t *soi_cred; /* credentials for operation */
131 133 string soi_share; /* share name */
132 134 string soi_curpath; /* file handle path (if any) */
133 135 uint64_t soi_sid; /* (internal) session ID */
134 136 uint64_t soi_mid; /* Message ID */
135 137 uint64_t soi_asyncid; /* Message ID (when async) */
136 138 uint64_t soi_uid; /* user ID (SMB2 Session ID) */
137 139 uint32_t soi_tid; /* tree ID */
138 140 uint32_t soi_status;
139 141 uint32_t soi_flags;
142 + zoneid_t soi_zoneid; /* zone identifier */
140 143 } smb2opinfo_t;
141 144
142 145 #pragma D binding "1.5" translator
143 146 translator smb2opinfo_t < struct smb_request *P > {
144 147 soi_cred = (cred_t *)P->user_cr;
145 148 soi_sid = P->session->s_kid;
146 149 soi_mid = P->smb2_messageid;
147 150 soi_asyncid = P->smb2_async_id;
148 151 soi_uid = P->smb2_ssnid;
149 152 soi_tid = P->smb_tid;
150 153 soi_status = P->smb2_status;
151 154 soi_flags = P->smb2_hdr_flags;
155 + soi_zoneid = P->sr_server->sv_zid;
152 156
153 157 soi_share = (P->tid_tree == NULL) ? "<NULL>" :
154 158 P->tid_tree->t_sharename;
155 159
156 160 soi_curpath = (P->fid_ofile == NULL ||
157 161 P->fid_ofile->f_node == NULL ||
158 162 P->fid_ofile->f_node->vp == NULL ||
159 163 P->fid_ofile->f_node->vp->v_path == NULL) ? "<NULL>" :
160 164 P->fid_ofile->f_node->vp->v_path;
161 165 };
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX