Re: [PATCH] protect remove_proc_entry
- From: Steven Rostedt <rostedt@xxxxxxxxxxx>
- Date: Fri, 30 Dec 2005 17:09:02 -0500
On Fri, 2005-12-30 at 13:55 -0800, Mitchell Blank Jr wrote:
> Steven Rostedt wrote:
> > I've added a global remove_proc_lock to protect this section of code. I
> > was going to add a lock to proc_dir_entry so that the locking is only
> > cut down to the same parent, but since this function is called so
> > infrequently, why waste more memory then is needed. One global lock
> > should not cause too much of a headache here.
>
> Are you sure that it's the only place where we need guard ->subdir? It
> looks like proc_lookup() and proc_readdir() use the BLK when walking that
> list, so probably the best fix would be to use that lock everywhere else
> ->subdir is touched
Good point.
God, we should be getting rid of the stupid BKL, not add more. But
seeing that this is what is used to protect that list, I guess I'll add
it.
I'm also assuming that interrupt context wont use this.
-- Steve
Index: linux-2.6.15-rc7/fs/proc/generic.c
===================================================================
--- linux-2.6.15-rc7.orig/fs/proc/generic.c 2005-12-30 14:19:39.000000000 -0500
+++ linux-2.6.15-rc7/fs/proc/generic.c 2005-12-30 17:05:56.000000000 -0500
@@ -693,6 +693,8 @@
if (!parent && xlate_proc_name(name, &parent, &fn) != 0)
goto out;
len = strlen(fn);
+
+ lock_kernel();
for (p = &parent->subdir; *p; p=&(*p)->next ) {
if (!proc_match(len, fn, *p))
continue;
@@ -713,6 +715,7 @@
}
break;
}
+ unlock_kernel();
out:
return;
}
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
- Follow-Ups:
- Re: [PATCH] protect remove_proc_entry
- From: Steven Rostedt
- Re: [PATCH] protect remove_proc_entry
- References:
- [Question] race condition with remove_proc_entry
- From: Steven Rostedt
- [PATCH] protect remove_proc_entry
- From: Steven Rostedt
- Re: [PATCH] protect remove_proc_entry
- From: Mitchell Blank Jr
- [Question] race condition with remove_proc_entry
- Prev by Date: Re: system keeps freezing once every 24 hours / random apps crashing
- Next by Date: Re: system keeps freezing once every 24 hours / random apps crashing
- Previous by thread: Re: [PATCH] protect remove_proc_entry
- Next by thread: Re: [PATCH] protect remove_proc_entry
- Index(es):
Relevant Pages
- Re: [PATCH] protect remove_proc_entry
... why waste more memory then is needed. ... One global lock ...
(Linux-Kernel) - Re: Efficient IPC mechanism on Linux
... >> because you have to hold some global lock all the time. ... > You
don't need a global lock to copy memory. ... The current API leaves data also owned
by the source. ... send the line "unsubscribe linux-kernel" in ... (Linux-Kernel)