diff options
author | Eric W. Biederman <ebiederm@xmission.com> | 2007-02-14 03:33:58 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-02-14 11:09:58 -0500 |
commit | 39732acd968a007036ff3c504f1e6748024ef548 (patch) | |
tree | 91d3ecdd8579559daa6b9d4b25eb688d1bb909a8 /kernel/sysctl.c | |
parent | b04c3afb2b6e2f902b41bb62b73684d92d7e6c34 (diff) |
[PATCH] sysctl: move utsname sysctls to their own file
This is just a simple cleanup to keep kernel/sysctl.c from getting to crowded
with special cases, and by keeping all of the utsname logic to together it
makes the code a little more readable.
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Cc: Serge E. Hallyn <serue@us.ibm.com>
Cc: Herbert Poetzl <herbert@13thfloor.at>
Cc: Kirill Korotaev <dev@sw.ru>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel/sysctl.c')
-rw-r--r-- | kernel/sysctl.c | 117 |
1 files changed, 0 insertions, 117 deletions
diff --git a/kernel/sysctl.c b/kernel/sysctl.c index 7ba4b0c16d6a..eff1d36c0687 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c | |||
@@ -135,13 +135,6 @@ static int parse_table(int __user *, int, void __user *, size_t __user *, | |||
135 | void __user *, size_t, ctl_table *); | 135 | void __user *, size_t, ctl_table *); |
136 | #endif | 136 | #endif |
137 | 137 | ||
138 | static int proc_do_uts_string(ctl_table *table, int write, struct file *filp, | ||
139 | void __user *buffer, size_t *lenp, loff_t *ppos); | ||
140 | |||
141 | static int sysctl_uts_string(ctl_table *table, int __user *name, int nlen, | ||
142 | void __user *oldval, size_t __user *oldlenp, | ||
143 | void __user *newval, size_t newlen); | ||
144 | |||
145 | #ifdef CONFIG_SYSVIPC | 138 | #ifdef CONFIG_SYSVIPC |
146 | static int sysctl_ipc_data(ctl_table *table, int __user *name, int nlen, | 139 | static int sysctl_ipc_data(ctl_table *table, int __user *name, int nlen, |
147 | void __user *oldval, size_t __user *oldlenp, | 140 | void __user *oldval, size_t __user *oldlenp, |
@@ -176,29 +169,6 @@ extern ctl_table inotify_table[]; | |||
176 | int sysctl_legacy_va_layout; | 169 | int sysctl_legacy_va_layout; |
177 | #endif | 170 | #endif |
178 | 171 | ||
179 | |||
180 | static void *get_uts(ctl_table *table, int write) | ||
181 | { | ||
182 | char *which = table->data; | ||
183 | #ifdef CONFIG_UTS_NS | ||
184 | struct uts_namespace *uts_ns = current->nsproxy->uts_ns; | ||
185 | which = (which - (char *)&init_uts_ns) + (char *)uts_ns; | ||
186 | #endif | ||
187 | if (!write) | ||
188 | down_read(&uts_sem); | ||
189 | else | ||
190 | down_write(&uts_sem); | ||
191 | return which; | ||
192 | } | ||
193 | |||
194 | static void put_uts(ctl_table *table, int write, void *which) | ||
195 | { | ||
196 | if (!write) | ||
197 | up_read(&uts_sem); | ||
198 | else | ||
199 | up_write(&uts_sem); | ||
200 | } | ||
201 | |||
202 | #ifdef CONFIG_SYSVIPC | 172 | #ifdef CONFIG_SYSVIPC |
203 | static void *get_ipc(ctl_table *table, int write) | 173 | static void *get_ipc(ctl_table *table, int write) |
204 | { | 174 | { |
@@ -278,51 +248,6 @@ static ctl_table root_table[] = { | |||
278 | 248 | ||
279 | static ctl_table kern_table[] = { | 249 | static ctl_table kern_table[] = { |
280 | { | 250 | { |
281 | .ctl_name = KERN_OSTYPE, | ||
282 | .procname = "ostype", | ||
283 | .data = init_uts_ns.name.sysname, | ||
284 | .maxlen = sizeof(init_uts_ns.name.sysname), | ||
285 | .mode = 0444, | ||
286 | .proc_handler = &proc_do_uts_string, | ||
287 | .strategy = &sysctl_uts_string, | ||
288 | }, | ||
289 | { | ||
290 | .ctl_name = KERN_OSRELEASE, | ||
291 | .procname = "osrelease", | ||
292 | .data = init_uts_ns.name.release, | ||
293 | .maxlen = sizeof(init_uts_ns.name.release), | ||
294 | .mode = 0444, | ||
295 | .proc_handler = &proc_do_uts_string, | ||
296 | .strategy = &sysctl_uts_string, | ||
297 | }, | ||
298 | { | ||
299 | .ctl_name = KERN_VERSION, | ||
300 | .procname = "version", | ||
301 | .data = init_uts_ns.name.version, | ||
302 | .maxlen = sizeof(init_uts_ns.name.version), | ||
303 | .mode = 0444, | ||
304 | .proc_handler = &proc_do_uts_string, | ||
305 | .strategy = &sysctl_uts_string, | ||
306 | }, | ||
307 | { | ||
308 | .ctl_name = KERN_NODENAME, | ||
309 | .procname = "hostname", | ||
310 | .data = init_uts_ns.name.nodename, | ||
311 | .maxlen = sizeof(init_uts_ns.name.nodename), | ||
312 | .mode = 0644, | ||
313 | .proc_handler = &proc_do_uts_string, | ||
314 | .strategy = &sysctl_uts_string, | ||
315 | }, | ||
316 | { | ||
317 | .ctl_name = KERN_DOMAINNAME, | ||
318 | .procname = "domainname", | ||
319 | .data = init_uts_ns.name.domainname, | ||
320 | .maxlen = sizeof(init_uts_ns.name.domainname), | ||
321 | .mode = 0644, | ||
322 | .proc_handler = &proc_do_uts_string, | ||
323 | .strategy = &sysctl_uts_string, | ||
324 | }, | ||
325 | { | ||
326 | .ctl_name = KERN_PANIC, | 251 | .ctl_name = KERN_PANIC, |
327 | .procname = "panic", | 252 | .procname = "panic", |
328 | .data = &panic_timeout, | 253 | .data = &panic_timeout, |
@@ -1759,21 +1684,6 @@ int proc_dostring(ctl_table *table, int write, struct file *filp, | |||
1759 | buffer, lenp, ppos); | 1684 | buffer, lenp, ppos); |
1760 | } | 1685 | } |
1761 | 1686 | ||
1762 | /* | ||
1763 | * Special case of dostring for the UTS structure. This has locks | ||
1764 | * to observe. Should this be in kernel/sys.c ???? | ||
1765 | */ | ||
1766 | |||
1767 | static int proc_do_uts_string(ctl_table *table, int write, struct file *filp, | ||
1768 | void __user *buffer, size_t *lenp, loff_t *ppos) | ||
1769 | { | ||
1770 | int r; | ||
1771 | void *which; | ||
1772 | which = get_uts(table, write); | ||
1773 | r = _proc_do_string(which, table->maxlen,write,filp,buffer,lenp, ppos); | ||
1774 | put_uts(table, write, which); | ||
1775 | return r; | ||
1776 | } | ||
1777 | 1687 | ||
1778 | static int do_proc_dointvec_conv(int *negp, unsigned long *lvalp, | 1688 | static int do_proc_dointvec_conv(int *negp, unsigned long *lvalp, |
1779 | int *valp, | 1689 | int *valp, |
@@ -2410,12 +2320,6 @@ int proc_dostring(ctl_table *table, int write, struct file *filp, | |||
2410 | return -ENOSYS; | 2320 | return -ENOSYS; |
2411 | } | 2321 | } |
2412 | 2322 | ||
2413 | static int proc_do_uts_string(ctl_table *table, int write, struct file *filp, | ||
2414 | void __user *buffer, size_t *lenp, loff_t *ppos) | ||
2415 | { | ||
2416 | return -ENOSYS; | ||
2417 | } | ||
2418 | |||
2419 | #ifdef CONFIG_SYSVIPC | 2323 | #ifdef CONFIG_SYSVIPC |
2420 | static int proc_do_ipc_string(ctl_table *table, int write, struct file *filp, | 2324 | static int proc_do_ipc_string(ctl_table *table, int write, struct file *filp, |
2421 | void __user *buffer, size_t *lenp, loff_t *ppos) | 2325 | void __user *buffer, size_t *lenp, loff_t *ppos) |
@@ -2645,21 +2549,6 @@ int sysctl_ms_jiffies(ctl_table *table, int __user *name, int nlen, | |||
2645 | } | 2549 | } |
2646 | 2550 | ||
2647 | 2551 | ||
2648 | /* The generic string strategy routine: */ | ||
2649 | static int sysctl_uts_string(ctl_table *table, int __user *name, int nlen, | ||
2650 | void __user *oldval, size_t __user *oldlenp, | ||
2651 | void __user *newval, size_t newlen) | ||
2652 | { | ||
2653 | struct ctl_table uts_table; | ||
2654 | int r, write; | ||
2655 | write = newval && newlen; | ||
2656 | memcpy(&uts_table, table, sizeof(uts_table)); | ||
2657 | uts_table.data = get_uts(table, write); | ||
2658 | r = sysctl_string(&uts_table, name, nlen, | ||
2659 | oldval, oldlenp, newval, newlen); | ||
2660 | put_uts(table, write, uts_table.data); | ||
2661 | return r; | ||
2662 | } | ||
2663 | 2552 | ||
2664 | #ifdef CONFIG_SYSVIPC | 2553 | #ifdef CONFIG_SYSVIPC |
2665 | /* The generic sysctl ipc data routine. */ | 2554 | /* The generic sysctl ipc data routine. */ |
@@ -2766,12 +2655,6 @@ int sysctl_ms_jiffies(ctl_table *table, int __user *name, int nlen, | |||
2766 | return -ENOSYS; | 2655 | return -ENOSYS; |
2767 | } | 2656 | } |
2768 | 2657 | ||
2769 | static int sysctl_uts_string(ctl_table *table, int __user *name, int nlen, | ||
2770 | void __user *oldval, size_t __user *oldlenp, | ||
2771 | void __user *newval, size_t newlen) | ||
2772 | { | ||
2773 | return -ENOSYS; | ||
2774 | } | ||
2775 | #ifdef CONFIG_SYSVIPC | 2658 | #ifdef CONFIG_SYSVIPC |
2776 | static int sysctl_ipc_data(ctl_table *table, int __user *name, int nlen, | 2659 | static int sysctl_ipc_data(ctl_table *table, int __user *name, int nlen, |
2777 | void __user *oldval, size_t __user *oldlenp, | 2660 | void __user *oldval, size_t __user *oldlenp, |