Print this page
NEX-6308 namespace collision for per-share kstats when changing sharesmb property
Reviewed by: Gordon Ross <gordon.ross@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
NEX-6266 SMB kstats namespace collision for share names longer than 28 characters
Reviewed by: Roman Strashkin <roman.strashkin@nexenta.com>
Reviewed by: Gordon Ross <gordon.ross@nexenta.com>
SMB-50 User-mode SMB server
Includes work by these authors:
Thomas Keiser <thomas.keiser@nexenta.com>
Albert Lee <trisk@nexenta.com>
| Split |
Close |
| Expand all |
| Collapse all |
--- old/usr/src/lib/libfakekernel/common/kstat.c
+++ new/usr/src/lib/libfakekernel/common/kstat.c
1 1 /*
2 2 * This file and its contents are supplied under the terms of the
|
↓ open down ↓ |
2 lines elided |
↑ open up ↑ |
3 3 * Common Development and Distribution License ("CDDL"), version 1.0.
4 4 * You may only use this file in accordance with the terms of version
5 5 * 1.0 of the CDDL.
6 6 *
7 7 * A full copy of the text of the CDDL should have accompanied this
8 8 * source. A copy of the CDDL is also available via the Internet at
9 9 * http://www.illumos.org/license/CDDL.
10 10 */
11 11
12 12 /*
13 - * Copyright 2013 Nexenta Systems, Inc. All rights reserved.
13 + * Copyright 2016 Nexenta Systems, Inc. All rights reserved.
14 14 * Copyright 2017 RackTop Systems.
15 15 */
16 16
17 17 #include <sys/types.h>
18 18 #include <sys/kstat.h>
19 19 #include <sys/systm.h>
20 20
21 21 /*ARGSUSED*/
22 22 kstat_t *
23 +kstat_create(const char *ks_module, int ks_instance, const char *ks_name,
24 + const char *ks_class, uchar_t ks_type, uint_t ks_ndata, uchar_t ks_flags)
25 +{
26 + return (NULL);
27 +}
28 +
29 +/*ARGSUSED*/
30 +kstat_t *
23 31 kstat_create_zone(const char *ks_module, int ks_instance, const char *ks_name,
24 32 const char *ks_class, uchar_t ks_type, uint_t ks_ndata, uchar_t ks_flags,
25 33 zoneid_t ks_zoneid)
26 34 {
27 35 return (NULL);
28 36 }
29 37
30 38 /*ARGSUSED*/
39 +void
40 +kstat_delete(kstat_t *ksp)
41 +{}
42 +
43 +/*ARGSUSED*/
31 44 kstat_t *
32 -kstat_create(const char *ks_module, int ks_instance, const char *ks_name,
33 - const char *ks_class, uchar_t ks_type, uint_t ks_ndata, uchar_t ks_flags)
45 +kstat_hold_byname(const char *ks_module, int ks_instance, const char *ks_name,
46 + zoneid_t ks_zoneid)
34 47 {
35 48 return (NULL);
36 49 }
37 50
38 51 /*ARGSUSED*/
39 52 void
40 -kstat_named_init(kstat_named_t *knp, const char *name, uchar_t type)
53 +kstat_install(kstat_t *ksp)
41 54 {}
42 55
43 56 /*ARGSUSED*/
44 57 void
45 -kstat_install(kstat_t *ksp)
58 +kstat_named_init(kstat_named_t *knp, const char *name, uchar_t type)
46 59 {}
47 60
48 61 /*ARGSUSED*/
49 62 void
50 -kstat_delete(kstat_t *ksp)
63 +kstat_named_setstr(kstat_named_t *knp, const char *src)
51 64 {}
52 65
53 66 /*ARGSUSED*/
54 67 void
55 -kstat_waitq_enter(kstat_io_t *kiop)
68 +kstat_rele(kstat_t *ksp)
56 69 {}
57 70
58 71 /*ARGSUSED*/
59 72 void
60 -kstat_waitq_exit(kstat_io_t *kiop)
73 +kstat_runq_back_to_waitq(kstat_io_t *kiop)
61 74 {}
62 75
63 76 /*ARGSUSED*/
64 77 void
65 78 kstat_runq_enter(kstat_io_t *kiop)
66 79 {}
67 80
68 81 /*ARGSUSED*/
69 82 void
83 +kstat_runq_enter_time(kstat_io_t *kiop, hrtime_t t)
84 +{}
85 +
86 +/*ARGSUSED*/
87 +void
70 88 kstat_runq_exit(kstat_io_t *kiop)
71 89 {}
72 90
73 91 /*ARGSUSED*/
74 92 void
75 -kstat_waitq_to_runq(kstat_io_t *kiop)
93 +kstat_runq_exit_time(kstat_io_t *kiop, hrtime_t t)
76 94 {}
77 95
78 96 /*ARGSUSED*/
79 97 void
80 -kstat_runq_back_to_waitq(kstat_io_t *kiop)
98 +kstat_waitq_enter(kstat_io_t *kiop)
99 +{}
100 +
101 +/*ARGSUSED*/
102 +void
103 +kstat_waitq_enter_time(kstat_io_t *kiop, hrtime_t t)
104 +{}
105 +
106 +/*ARGSUSED*/
107 +void
108 +kstat_waitq_exit(kstat_io_t *kiop)
109 +{}
110 +
111 +/*ARGSUSED*/
112 +void
113 +kstat_waitq_exit_time(kstat_io_t *kiop, hrtime_t t)
114 +{}
115 +
116 +/*ARGSUSED*/
117 +void
118 +kstat_waitq_to_runq(kstat_io_t *kiop)
81 119 {}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX