patch-2.1.23 linux/kernel/sysctl.c
Next file: linux/kernel/time.c
Previous file: linux/kernel/sys.c
Back to the patch index
Back to the overall index
- Lines: 39
- Date:
Sun Jan 26 12:07:49 1997
- Orig file:
v2.1.22/linux/kernel/sysctl.c
- Orig date:
Wed Dec 18 15:59:03 1996
diff -u --recursive --new-file v2.1.22/linux/kernel/sysctl.c linux/kernel/sysctl.c
@@ -20,6 +20,8 @@
#include <linux/ctype.h>
#include <linux/utsname.h>
#include <linux/swapctl.h>
+#include <linux/smp.h>
+#include <linux/smp_lock.h>
#include <asm/bitops.h>
#include <asm/uaccess.h>
@@ -59,7 +61,7 @@
proc_readsys, /* read */
proc_writesys, /* write */
NULL, /* readdir */
- NULL, /* select */
+ NULL, /* poll */
NULL, /* ioctl */
NULL, /* mmap */
NULL, /* no special open code */
@@ -226,12 +228,17 @@
{
struct __sysctl_args tmp;
int error;
+
+ lock_kernel();
error = verify_area(VERIFY_READ, args, sizeof(*args));
if (error)
- return error;
+ goto out;
copy_from_user(&tmp, args, sizeof(tmp));
- return do_sysctl(tmp.name, tmp.nlen, tmp.oldval, tmp.oldlenp,
- tmp.newval, tmp.newlen);
+ error = do_sysctl(tmp.name, tmp.nlen, tmp.oldval, tmp.oldlenp,
+ tmp.newval, tmp.newlen);
+out:
+ unlock_kernel();
+ return error;
}
/* Like in_group_p, but testing against egid, not fsgid */
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov