patch-2.3.41 linux/kernel/sysctl.c
Next file: linux/lib/vsprintf.c
Previous file: linux/kernel/sys.c
Back to the patch index
Back to the overall index
- Lines: 29
- Date:
Thu Jan 27 06:32:14 2000
- Orig file:
v2.3.40/linux/kernel/sysctl.c
- Orig date:
Tue Jan 11 22:31:45 2000
diff -u --recursive --new-file v2.3.40/linux/kernel/sysctl.c linux/kernel/sysctl.c
@@ -43,7 +43,7 @@
extern int max_threads;
extern int nr_queued_signals, max_queued_signals;
-/* this is needed for the proc_dointvec_minmax for overflow UID and GID */
+/* this is needed for the proc_dointvec_minmax for [fs_]overflow UID and GID */
static int maxolduid = 65535;
static int minolduid = 0;
@@ -722,9 +722,16 @@
void *buffer, size_t *lenp)
{
int r;
- down(&uts_sem);
- r=proc_dostring(table,write,filp,buffer,lenp);
- up(&uts_sem);
+
+ if (!write) {
+ down_read(&uts_sem);
+ r=proc_dostring(table,0,filp,buffer,lenp);
+ up_read(&uts_sem);
+ } else {
+ down_write(&uts_sem);
+ r=proc_dostring(table,1,filp,buffer,lenp);
+ up_write(&uts_sem);
+ }
return r;
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)