projects
/
powerpc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge master.kernel.org:/pub/scm/linux/kernel/git/sfrench/cifs-2.6
[powerpc.git]
/
kernel
/
sysctl.c
diff --git
a/kernel/sysctl.c
b/kernel/sysctl.c
index
de2d910
..
e82726f
100644
(file)
--- a/
kernel/sysctl.c
+++ b/
kernel/sysctl.c
@@
-50,6
+50,9
@@
#include <asm/uaccess.h>
#include <asm/processor.h>
#include <asm/uaccess.h>
#include <asm/processor.h>
+extern int proc_nr_files(ctl_table *table, int write, struct file *filp,
+ void __user *buffer, size_t *lenp, loff_t *ppos);
+
#if defined(CONFIG_SYSCTL)
/* External variables not in a header file. */
#if defined(CONFIG_SYSCTL)
/* External variables not in a header file. */
@@
-739,18
+742,18
@@
static ctl_table vm_table[] = {
{
.ctl_name = VM_DIRTY_WB_CS,
.procname = "dirty_writeback_centisecs",
{
.ctl_name = VM_DIRTY_WB_CS,
.procname = "dirty_writeback_centisecs",
- .data = &dirty_writeback_
centisecs
,
- .maxlen = sizeof(dirty_writeback_
centisecs
),
+ .data = &dirty_writeback_
interval
,
+ .maxlen = sizeof(dirty_writeback_
interval
),
.mode = 0644,
.proc_handler = &dirty_writeback_centisecs_handler,
},
{
.ctl_name = VM_DIRTY_EXPIRE_CS,
.procname = "dirty_expire_centisecs",
.mode = 0644,
.proc_handler = &dirty_writeback_centisecs_handler,
},
{
.ctl_name = VM_DIRTY_EXPIRE_CS,
.procname = "dirty_expire_centisecs",
- .data = &dirty_expire_
centisecs
,
- .maxlen = sizeof(dirty_expire_
centisecs
),
+ .data = &dirty_expire_
interval
,
+ .maxlen = sizeof(dirty_expire_
interval
),
.mode = 0644,
.mode = 0644,
- .proc_handler = &proc_dointvec,
+ .proc_handler = &proc_dointvec
_userhz_jiffies
,
},
{
.ctl_name = VM_NR_PDFLUSH_THREADS,
},
{
.ctl_name = VM_NR_PDFLUSH_THREADS,
@@
-845,9
+848,8
@@
static ctl_table vm_table[] = {
.data = &laptop_mode,
.maxlen = sizeof(laptop_mode),
.mode = 0644,
.data = &laptop_mode,
.maxlen = sizeof(laptop_mode),
.mode = 0644,
- .proc_handler = &proc_dointvec,
- .strategy = &sysctl_intvec,
- .extra1 = &zero,
+ .proc_handler = &proc_dointvec_jiffies,
+ .strategy = &sysctl_jiffies,
},
{
.ctl_name = VM_BLOCK_DUMP,
},
{
.ctl_name = VM_BLOCK_DUMP,
@@
-943,7
+945,7
@@
static ctl_table fs_table[] = {
.data = &files_stat,
.maxlen = 3*sizeof(int),
.mode = 0444,
.data = &files_stat,
.maxlen = 3*sizeof(int),
.mode = 0444,
- .proc_handler = &proc_
dointvec
,
+ .proc_handler = &proc_
nr_files
,
},
{
.ctl_name = FS_MAXFILE,
},
{
.ctl_name = FS_MAXFILE,
@@
-2051,6
+2053,8
@@
static int do_proc_dointvec_jiffies_conv(int *negp, unsigned long *lvalp,
int write, void *data)
{
if (write) {
int write, void *data)
{
if (write) {
+ if (*lvalp > LONG_MAX / HZ)
+ return 1;
*valp = *negp ? -(*lvalp*HZ) : (*lvalp*HZ);
} else {
int val = *valp;
*valp = *negp ? -(*lvalp*HZ) : (*lvalp*HZ);
} else {
int val = *valp;
@@
-2072,6
+2076,8
@@
static int do_proc_dointvec_userhz_jiffies_conv(int *negp, unsigned long *lvalp,
int write, void *data)
{
if (write) {
int write, void *data)
{
if (write) {
+ if (USER_HZ < HZ && *lvalp > (LONG_MAX / HZ) * USER_HZ)
+ return 1;
*valp = clock_t_to_jiffies(*negp ? -*lvalp : *lvalp);
} else {
int val = *valp;
*valp = clock_t_to_jiffies(*negp ? -*lvalp : *lvalp);
} else {
int val = *valp;