On Fri, 20 Oct 2000, Trond Myklebust wrote:
> >>>>> " " == David S Miller <davem@redhat.com> writes:
>
> > Actually, judging by the trace you provided Russell, I'd say
> > this is some peculiarity with NFS silly rename handling, and
> > it'd be best to look for the bug in that code (early inode
> > reference loss, for example?)
>
> Russel's trace indicates that the unlink actually has completed and
> has become a negative dentry since the file is labelled '(deleted)'.
No, it doesn't. Proof:
exec 3>/tmp/foo
rm /tmp/foo
ls -l /proc/$$/fd/3
and dentry is _not_ negative.
> That means that the dentry count must have been zero, so that
> dentry_iput() was called.
It doesn't and it wasn't.
> I don't see how dentry_iput() can be called on an open file. In
> principle the dentry count should always be >= 1, so unless there is
> some place where we're calling d_delete() without get()ing the dentry
> first, there should be no path for early inode loss.
d_delete() will not make dentry negative if there are other
users. However, it will make it unhashed in such case, ergo
(deleted) thing.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Mon Oct 23 2000 - 21:00:17 EST