Blame view
fs/xfs/xfs_sysctl.c
6.42 KB
1da177e4c Linux-2.6.12-rc2 |
1 |
/* |
7b7187698 [XFS] Update lice... |
2 3 |
* Copyright (c) 2001-2005 Silicon Graphics, Inc. * All Rights Reserved. |
1da177e4c Linux-2.6.12-rc2 |
4 |
* |
7b7187698 [XFS] Update lice... |
5 6 |
* This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as |
1da177e4c Linux-2.6.12-rc2 |
7 8 |
* published by the Free Software Foundation. * |
7b7187698 [XFS] Update lice... |
9 10 11 12 |
* This program is distributed in the hope that it would be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. |
1da177e4c Linux-2.6.12-rc2 |
13 |
* |
7b7187698 [XFS] Update lice... |
14 15 16 |
* You should have received a copy of the GNU General Public License * along with this program; if not, write the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
1da177e4c Linux-2.6.12-rc2 |
17 |
*/ |
1da177e4c Linux-2.6.12-rc2 |
18 |
#include "xfs.h" |
1da177e4c Linux-2.6.12-rc2 |
19 20 |
#include <linux/sysctl.h> #include <linux/proc_fs.h> |
73efe4a4d xfs: prevent NMI ... |
21 |
#include "xfs_error.h" |
1da177e4c Linux-2.6.12-rc2 |
22 |
|
1da177e4c Linux-2.6.12-rc2 |
23 |
static struct ctl_table_header *xfs_table_header; |
1da177e4c Linux-2.6.12-rc2 |
24 25 26 |
#ifdef CONFIG_PROC_FS STATIC int xfs_stats_clear_proc_handler( |
b2410e92b xfs: Convert use ... |
27 28 29 30 31 |
struct ctl_table *ctl, int write, void __user *buffer, size_t *lenp, loff_t *ppos) |
1da177e4c Linux-2.6.12-rc2 |
32 33 34 |
{ int c, ret, *valp = ctl->data; __uint32_t vn_active; |
8d65af789 sysctl: remove "s... |
35 |
ret = proc_dointvec_minmax(ctl, write, buffer, lenp, ppos); |
1da177e4c Linux-2.6.12-rc2 |
36 37 |
if (!ret && write && *valp) { |
4f10700a2 xfs: Convert linu... |
38 |
xfs_notice(NULL, "Clearing xfsstats"); |
6f0419e06 [PATCH] for_each_... |
39 |
for_each_possible_cpu(c) { |
1da177e4c Linux-2.6.12-rc2 |
40 41 42 43 44 45 46 47 48 49 50 51 52 |
preempt_disable(); /* save vn_active, it's a universal truth! */ vn_active = per_cpu(xfsstats, c).vn_active; memset(&per_cpu(xfsstats, c), 0, sizeof(struct xfsstats)); per_cpu(xfsstats, c).vn_active = vn_active; preempt_enable(); } xfs_stats_clear = 0; } return ret; } |
73efe4a4d xfs: prevent NMI ... |
53 54 55 |
STATIC int xfs_panic_mask_proc_handler( |
b2410e92b xfs: Convert use ... |
56 57 58 59 60 |
struct ctl_table *ctl, int write, void __user *buffer, size_t *lenp, loff_t *ppos) |
73efe4a4d xfs: prevent NMI ... |
61 62 63 64 65 66 67 68 69 70 71 72 |
{ int ret, *valp = ctl->data; ret = proc_dointvec_minmax(ctl, write, buffer, lenp, ppos); if (!ret && write) { xfs_panic_mask = *valp; #ifdef DEBUG xfs_panic_mask |= (XFS_PTAG_SHUTDOWN_CORRUPT | XFS_PTAG_LOGRES); #endif } return ret; } |
1da177e4c Linux-2.6.12-rc2 |
73 |
#endif /* CONFIG_PROC_FS */ |
b2410e92b xfs: Convert use ... |
74 |
static struct ctl_table xfs_table[] = { |
3a68cbfe0 [XFS] XFS sysctl ... |
75 |
{ |
3a68cbfe0 [XFS] XFS sysctl ... |
76 77 78 79 |
.procname = "irix_sgid_inherit", .data = &xfs_params.sgid_inherit.val, .maxlen = sizeof(int), .mode = 0644, |
6d4561110 sysctl: Drop & in... |
80 |
.proc_handler = proc_dointvec_minmax, |
3a68cbfe0 [XFS] XFS sysctl ... |
81 82 83 84 |
.extra1 = &xfs_params.sgid_inherit.min, .extra2 = &xfs_params.sgid_inherit.max }, { |
3a68cbfe0 [XFS] XFS sysctl ... |
85 86 87 88 |
.procname = "irix_symlink_mode", .data = &xfs_params.symlink_mode.val, .maxlen = sizeof(int), .mode = 0644, |
6d4561110 sysctl: Drop & in... |
89 |
.proc_handler = proc_dointvec_minmax, |
3a68cbfe0 [XFS] XFS sysctl ... |
90 91 92 93 |
.extra1 = &xfs_params.symlink_mode.min, .extra2 = &xfs_params.symlink_mode.max }, { |
3a68cbfe0 [XFS] XFS sysctl ... |
94 95 96 97 |
.procname = "panic_mask", .data = &xfs_params.panic_mask.val, .maxlen = sizeof(int), .mode = 0644, |
73efe4a4d xfs: prevent NMI ... |
98 |
.proc_handler = xfs_panic_mask_proc_handler, |
3a68cbfe0 [XFS] XFS sysctl ... |
99 100 101 |
.extra1 = &xfs_params.panic_mask.min, .extra2 = &xfs_params.panic_mask.max }, |
d3446eac3 [XFS] Add degfram... |
102 |
|
3a68cbfe0 [XFS] XFS sysctl ... |
103 |
{ |
3a68cbfe0 [XFS] XFS sysctl ... |
104 105 106 107 |
.procname = "error_level", .data = &xfs_params.error_level.val, .maxlen = sizeof(int), .mode = 0644, |
6d4561110 sysctl: Drop & in... |
108 |
.proc_handler = proc_dointvec_minmax, |
3a68cbfe0 [XFS] XFS sysctl ... |
109 110 111 112 |
.extra1 = &xfs_params.error_level.min, .extra2 = &xfs_params.error_level.max }, { |
3a68cbfe0 [XFS] XFS sysctl ... |
113 114 115 116 |
.procname = "xfssyncd_centisecs", .data = &xfs_params.syncd_timer.val, .maxlen = sizeof(int), .mode = 0644, |
6d4561110 sysctl: Drop & in... |
117 |
.proc_handler = proc_dointvec_minmax, |
3a68cbfe0 [XFS] XFS sysctl ... |
118 119 120 121 |
.extra1 = &xfs_params.syncd_timer.min, .extra2 = &xfs_params.syncd_timer.max }, { |
3a68cbfe0 [XFS] XFS sysctl ... |
122 123 124 125 |
.procname = "inherit_sync", .data = &xfs_params.inherit_sync.val, .maxlen = sizeof(int), .mode = 0644, |
6d4561110 sysctl: Drop & in... |
126 |
.proc_handler = proc_dointvec_minmax, |
3a68cbfe0 [XFS] XFS sysctl ... |
127 128 129 130 |
.extra1 = &xfs_params.inherit_sync.min, .extra2 = &xfs_params.inherit_sync.max }, { |
3a68cbfe0 [XFS] XFS sysctl ... |
131 132 133 134 |
.procname = "inherit_nodump", .data = &xfs_params.inherit_nodump.val, .maxlen = sizeof(int), .mode = 0644, |
6d4561110 sysctl: Drop & in... |
135 |
.proc_handler = proc_dointvec_minmax, |
3a68cbfe0 [XFS] XFS sysctl ... |
136 137 138 139 |
.extra1 = &xfs_params.inherit_nodump.min, .extra2 = &xfs_params.inherit_nodump.max }, { |
3a68cbfe0 [XFS] XFS sysctl ... |
140 141 142 143 |
.procname = "inherit_noatime", .data = &xfs_params.inherit_noatim.val, .maxlen = sizeof(int), .mode = 0644, |
6d4561110 sysctl: Drop & in... |
144 |
.proc_handler = proc_dointvec_minmax, |
3a68cbfe0 [XFS] XFS sysctl ... |
145 146 147 148 |
.extra1 = &xfs_params.inherit_noatim.min, .extra2 = &xfs_params.inherit_noatim.max }, { |
3a68cbfe0 [XFS] XFS sysctl ... |
149 150 151 152 |
.procname = "xfsbufd_centisecs", .data = &xfs_params.xfs_buf_timer.val, .maxlen = sizeof(int), .mode = 0644, |
6d4561110 sysctl: Drop & in... |
153 |
.proc_handler = proc_dointvec_minmax, |
3a68cbfe0 [XFS] XFS sysctl ... |
154 155 156 157 |
.extra1 = &xfs_params.xfs_buf_timer.min, .extra2 = &xfs_params.xfs_buf_timer.max }, { |
3a68cbfe0 [XFS] XFS sysctl ... |
158 159 160 161 |
.procname = "age_buffer_centisecs", .data = &xfs_params.xfs_buf_age.val, .maxlen = sizeof(int), .mode = 0644, |
6d4561110 sysctl: Drop & in... |
162 |
.proc_handler = proc_dointvec_minmax, |
3a68cbfe0 [XFS] XFS sysctl ... |
163 164 165 166 |
.extra1 = &xfs_params.xfs_buf_age.min, .extra2 = &xfs_params.xfs_buf_age.max }, { |
3a68cbfe0 [XFS] XFS sysctl ... |
167 168 169 170 |
.procname = "inherit_nosymlinks", .data = &xfs_params.inherit_nosym.val, .maxlen = sizeof(int), .mode = 0644, |
6d4561110 sysctl: Drop & in... |
171 |
.proc_handler = proc_dointvec_minmax, |
3a68cbfe0 [XFS] XFS sysctl ... |
172 173 174 175 |
.extra1 = &xfs_params.inherit_nosym.min, .extra2 = &xfs_params.inherit_nosym.max }, { |
3a68cbfe0 [XFS] XFS sysctl ... |
176 177 178 179 |
.procname = "rotorstep", .data = &xfs_params.rotorstep.val, .maxlen = sizeof(int), .mode = 0644, |
6d4561110 sysctl: Drop & in... |
180 |
.proc_handler = proc_dointvec_minmax, |
3a68cbfe0 [XFS] XFS sysctl ... |
181 182 183 184 |
.extra1 = &xfs_params.rotorstep.min, .extra2 = &xfs_params.rotorstep.max }, { |
3a68cbfe0 [XFS] XFS sysctl ... |
185 186 187 188 |
.procname = "inherit_nodefrag", .data = &xfs_params.inherit_nodfrg.val, .maxlen = sizeof(int), .mode = 0644, |
6d4561110 sysctl: Drop & in... |
189 |
.proc_handler = proc_dointvec_minmax, |
3a68cbfe0 [XFS] XFS sysctl ... |
190 191 192 |
.extra1 = &xfs_params.inherit_nodfrg.min, .extra2 = &xfs_params.inherit_nodfrg.max }, |
2a82b8be8 [XFS] Concurrent ... |
193 |
{ |
2a82b8be8 [XFS] Concurrent ... |
194 195 196 197 |
.procname = "filestream_centisecs", .data = &xfs_params.fstrm_timer.val, .maxlen = sizeof(int), .mode = 0644, |
6d4561110 sysctl: Drop & in... |
198 |
.proc_handler = proc_dointvec_minmax, |
2a82b8be8 [XFS] Concurrent ... |
199 200 201 |
.extra1 = &xfs_params.fstrm_timer.min, .extra2 = &xfs_params.fstrm_timer.max, }, |
579b62faa xfs: add backgrou... |
202 203 204 205 206 207 208 209 210 |
{ .procname = "speculative_prealloc_lifetime", .data = &xfs_params.eofb_timer.val, .maxlen = sizeof(int), .mode = 0644, .proc_handler = proc_dointvec_minmax, .extra1 = &xfs_params.eofb_timer.min, .extra2 = &xfs_params.eofb_timer.max, }, |
1da177e4c Linux-2.6.12-rc2 |
211 212 |
/* please keep this the last entry */ #ifdef CONFIG_PROC_FS |
3a68cbfe0 [XFS] XFS sysctl ... |
213 |
{ |
3a68cbfe0 [XFS] XFS sysctl ... |
214 215 216 217 |
.procname = "stats_clear", .data = &xfs_params.stats_clear.val, .maxlen = sizeof(int), .mode = 0644, |
6d4561110 sysctl: Drop & in... |
218 |
.proc_handler = xfs_stats_clear_proc_handler, |
3a68cbfe0 [XFS] XFS sysctl ... |
219 220 221 |
.extra1 = &xfs_params.stats_clear.min, .extra2 = &xfs_params.stats_clear.max }, |
1da177e4c Linux-2.6.12-rc2 |
222 |
#endif /* CONFIG_PROC_FS */ |
3a68cbfe0 [XFS] XFS sysctl ... |
223 |
{} |
1da177e4c Linux-2.6.12-rc2 |
224 |
}; |
b2410e92b xfs: Convert use ... |
225 |
static struct ctl_table xfs_dir_table[] = { |
3a68cbfe0 [XFS] XFS sysctl ... |
226 |
{ |
3a68cbfe0 [XFS] XFS sysctl ... |
227 228 229 230 231 |
.procname = "xfs", .mode = 0555, .child = xfs_table }, {} |
1da177e4c Linux-2.6.12-rc2 |
232 |
}; |
b2410e92b xfs: Convert use ... |
233 |
static struct ctl_table xfs_root_table[] = { |
3a68cbfe0 [XFS] XFS sysctl ... |
234 |
{ |
3a68cbfe0 [XFS] XFS sysctl ... |
235 236 237 238 239 |
.procname = "fs", .mode = 0555, .child = xfs_dir_table }, {} |
1da177e4c Linux-2.6.12-rc2 |
240 |
}; |
9f8868ffb [XFS] streamline ... |
241 |
int |
1da177e4c Linux-2.6.12-rc2 |
242 243 |
xfs_sysctl_register(void) { |
0b4d41471 [PATCH] sysctl: r... |
244 |
xfs_table_header = register_sysctl_table(xfs_root_table); |
9f8868ffb [XFS] streamline ... |
245 246 247 |
if (!xfs_table_header) return -ENOMEM; return 0; |
1da177e4c Linux-2.6.12-rc2 |
248 249 250 251 252 |
} void xfs_sysctl_unregister(void) { |
9f8868ffb [XFS] streamline ... |
253 |
unregister_sysctl_table(xfs_table_header); |
1da177e4c Linux-2.6.12-rc2 |
254 |
} |