From: Zhang Rui <rui.zhang@intel.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Oliver Neukum <oliver@neukum.org>,
linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-acpi@vger.kernel.org
Subject: Re: [PATCH] [-mm] FS: file name must be unique in the same dir in procfs
Date: Tue, 11 Sep 2007 14:43:23 +0800 [thread overview]
Message-ID: <1189493003.22038.30.camel@localhost.localdomain> (raw)
In-Reply-To: <20070910004927.323763ad.akpm@linux-foundation.org>
On Mon, 2007-09-10 at 15:49 +0800, Andrew Morton wrote:
> On Mon, 20 Aug 2007 23:50:05 +0800 Zhang Rui <rui.zhang@intel.com>
> wrote:
>
> > Hi, Oliver,
> > Thanks for your comments,
> >
> > On Mon, 2007-08-20 at 18:45 +0800, Oliver Neukum wrote:
> > > Am Montag 20 August 2007 schrieb Zhang Rui:
> > > > Files name must be unique in the same directory.
> > > >
> > > > Bug is reported here:
> > > > http://bugzilla.kernel.org/show_bug.cgi?id=8798
> > >
> > > Then I'd say fix the callers.
> > But at least the callers need to be told that something is wrong
> first.
> >
> > > This will paper over bugs.
> > Hmm, what kind of bugs?
> > callers always need to check the return value when calling
> > proc_mkdir/create_proc_entry, don't they?
> >
>
> Yes, but there's some risk that such a change will cause a
> presently-working system to stop working. It's quite likely, if that
> system is checking the procfs-creation return value.
Yes, that's true.
I checked several systems and didn't find any similar problems.
I think this situation is rare.
Besides, duplicate names are totally unusable for user space.
We should fix this kind of bugs ASAP if there are any.
> So I think it'd be best if we were to detect the duplication and print
> a
> warning (which should include, if possible, the full pathname and a
> dump_stack()) and then the code should proceed as normal: permit the
> duplicated entry and return success.
> Then, when such duplicates are reported, we can work out what to do
> about
> them on a case-by-case basis.
Please review the patch below. :)
dump_stack is enough to debug the problem, so only the current duplicate
file names are printed out instead of the full pathname.
From: Zhang Rui <rui.zhang@intel.com>
File name should be unique in the same directory.
In order to keep the back-compatibility, only a warning is given
currently, but actions must be taken to fix it when such duplicates
are detected.
Bug report and a simple fix can be found here:
http://bugzilla.kernel.org/show_bug.cgi?id=8798
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
---
fs/proc/generic.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
Index: linux-2.6/fs/proc/generic.c
===================================================================
--- linux-2.6.orig/fs/proc/generic.c
+++ linux-2.6/fs/proc/generic.c
@@ -523,6 +523,7 @@ static const struct inode_operations pro
static int proc_register(struct proc_dir_entry * dir, struct
proc_dir_entry * dp)
{
+ struct proc_dir_entry *tmp = NULL;
unsigned int i;
i = get_inode_number();
@@ -547,11 +548,22 @@ static int proc_register(struct proc_dir
}
spin_lock(&proc_subdir_lock);
+
+ for (tmp = dir->subdir, i = 0; tmp && !i; tmp = tmp->next)
+ if (!strcmp(dp->name, tmp->name))
+ i = 1;
+
dp->next = dir->subdir;
dp->parent = dir;
dir->subdir = dp;
spin_unlock(&proc_subdir_lock);
+ if (i) {
+ printk(KERN_WARNING
+ "Duplicate file names \"%s\" detected.", dp->name);
+ dump_stack();
+ }
+
return 0;
}
next prev parent reply other threads:[~2007-09-11 6:43 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-08-20 10:28 [PATCH] [-mm] FS: file name must be unique in the same dir in procfs Zhang Rui
2007-08-20 10:45 ` Oliver Neukum
2007-08-20 15:50 ` Zhang Rui
2007-09-10 7:49 ` Andrew Morton
2007-09-11 6:43 ` Zhang Rui [this message]
2007-09-14 1:37 ` Andrew Morton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1189493003.22038.30.camel@localhost.localdomain \
--to=rui.zhang@intel.com \
--cc=akpm@linux-foundation.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=oliver@neukum.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).