Re: find: WARNING: Hard link count is wrong for /proc/1

From: Andrew Morton
Date: Mon Jun 02 2008 - 22:10:30 EST


On Mon, 02 Jun 2008 18:59:46 -0700 ebiederm@xxxxxxxxxxxx (Eric W. Biederman) wrote:

>
> From: Vegard Nossum <vegard.nossum@xxxxxxxxx>
> Date: Mon, 2 Jun 2008 08:57:45 +0200
> Subject: [PATCH] proc: fix /proc/<pid> link count
>
> commit e9720acd728a46cb40daa52c99a979f7c4ff195c
> Author: Pavel Emelyanov <xemul@xxxxxxxxxx>
> Date: Fri Mar 7 11:08:40 2008 -0800
>
> [NET]: Make /proc/net a symlink on /proc/self/net (v3)
>
> introduced /proc/net without bumping the link count on /proc/self.
>
> Signed-off-by: Vegard Nossum <vegard.nossum@xxxxxxxxx>
> Acked-by: "Eric W. Biederman" <ebiederm@xxxxxxxxxxxx>
>
> ---
> fs/proc/base.c | 3 +++
> 1 files changed, 3 insertions(+), 0 deletions(-)
>
> diff --git a/fs/proc/base.c b/fs/proc/base.c
> index c447e07..10ee4a2 100644
> --- a/fs/proc/base.c
> +++ b/fs/proc/base.c
> @@ -2589,6 +2589,9 @@ static struct dentry
> *proc_pid_instantiate(struct inode *dir,
> #ifdef CONFIG_SECURITY
> inode->i_nlink += 1;
> #endif
> +#ifdef CONFIG_NET
> + inode->i_nlink += 1;
> +#endif
>
> dentry->d_op = &pid_dentry_operations;

A bit more explanation would be nice.

I assume that here we're accounting for a reference which net applies
to this dentry. But it would be clearer and more robust to do that at
the site where that reference is really taken, not over in
proc_pid_instantiate(). Possible?


--
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/