On 14-Apr-2000 Linus Torvalds wrote:
> You do have the dentry flags, but not much else, I agree.
>
> There's nothing fundamentally wrong in pinning even a negative dentry -
> you could pin a negative dentry and have a timeout, and mark it some
> special way in the dentry flags during the timeout. Or something..
That doesn't always help, because the dentry can be unhashed as part of
the failure, depending on when the failure happened.
A concrete example:
Case 1:
user$ cd /net/bar
check dcache for bar - not there
call autofs_lookup
look up host bar - not found
return ENOENT (leave /net/bar -ve)
bar: no such file or directory
user$ cd /net/bar
check dcache for bar - found
failed recently
bar: no such file or directory
Case 2:
user$ cd /net/foo
check dcache for foo - not there
call autofs_lookup - blocks
look up host foo - OK
mkdir /net/foo - OK
mount foo:/ /net/foo - failed
rmdir /net/foo - d_drops /net/foo
return ENOENT
foo: no such file or directory
user$ cd /net/foo
check dcache for foo - not there
call autofs_lookup...
ditto
The rmdir has to d_drop because you can't turn a +ve into a -ve.
J
-
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/
This archive was generated by hypermail 2b29 : Sat Apr 15 2000 - 21:00:25 EST