> Hi,
>
> On Thu, 29 Oct 1998 19:26:00 -0500 (EST), Alexander Viro
> <viro@math.psu.edu> said:
>
> > Stephen, I also did hit it. In 2.1.126. Couldn't reproduce it yet. I've
> > poked in /dev/kmem and it turned out that ->s_root->d_count was 2 without
> > any obvious holders. So it sounds like dentry leak. And no, I don't know
> > how I got there. _Not_ the way that Chris described, that's for sure.
>
> OK, I'll file this for now and keep my eyes open for other reports:
> can _anybody_ reliably reproduce this?
Me. Recipe: rename(foo,bar) for non-existant foo. You'll get ENOENT,
sure, but in addition you'll have a lost reference to dentry of foo. Looks
like the bug happened in 2.1.123.
Linus, could you apply the following fix?
--- linux/fs/namei.c.orig Sat Oct 24 22:36:27 1998
+++ linux/fs/namei.c Thu Nov 5 02:41:01 1998
@@ -1195,7 +1195,7 @@
error = -ENOENT;
if (!old_dentry->d_inode)
- goto exit;
+ goto exit_old;
{
unsigned int flags = 0;
HTH. HAND.
Al
-- There are no "civil aviation for dummies" books out there and most of you would probably be scared and spend a lot of your time looking up if there was one. :-) Jordan Hubbard in c.u.b.f.m
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/