2005-09-01 08:00:36

by Kirill Korotaev

[permalink] [raw]
Subject: [PATCH] replace hack with dget/mntget usage in fs/dcookies.c

--- linux-2.6.8.1-t032/fs/dcookies.c.dget 2004-08-14 14:54:46.000000000 +0400
+++ linux-2.6.8.1-t032/fs/dcookies.c 2005-08-23 14:09:00.000000000 +0400
@@ -93,12 +93,10 @@ static struct dcookie_struct * alloc_dco
if (!dcs)
return NULL;

- atomic_inc(&dentry->d_count);
- atomic_inc(&vfsmnt->mnt_count);
dentry->d_cookie = dcs;

- dcs->dentry = dentry;
- dcs->vfsmnt = vfsmnt;
+ dcs->dentry = dget(dentry);
+ dcs->vfsmnt = mntget(vfsmnt);
hash_dcookie(dcs);

return dcs;


Attachments:
diff-fs-dcookie-20050823 (483.00 B)

2005-09-01 08:40:50

by Andrew Morton

[permalink] [raw]
Subject: Re: [PATCH] replace hack with dget/mntget usage in fs/dcookies.c

Kirill Korotaev <[email protected]> wrote:
>
> This patch replaces manual incrementing of refcounters on dentry/mnt in
> fs/dcookie.c with calls to dget()/mntget().
>
> ...
>
> --- linux-2.6.8.1-t032/fs/dcookies.c.dget 2004-08-14 14:54:46.000000000 +0400
> +++ linux-2.6.8.1-t032/fs/dcookies.c 2005-08-23 14:09:00.000000000 +0400

Whoa. Medieval kernel.

> @@ -93,12 +93,10 @@ static struct dcookie_struct * alloc_dco
> if (!dcs)
> return NULL;
>
> - atomic_inc(&dentry->d_count);
> - atomic_inc(&vfsmnt->mnt_count);
> dentry->d_cookie = dcs;
>
> - dcs->dentry = dentry;
> - dcs->vfsmnt = vfsmnt;
> + dcs->dentry = dget(dentry);
> + dcs->vfsmnt = mntget(vfsmnt);
> hash_dcookie(dcs);
>
> return dcs;

That's already there.