Negative dentries on Linux SMB filesystems

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

Negative dentry is a VFS concept where it maintains a cache of
dentries even for files that do not exist. This can come in handy for
situations where they are looked up. For example, many applications
first check the existence of a file before creating it.

Ideally, negative dentries should allow a filename lookup to happen
entirely from the dentry cache if the lookup had happened once
already. But I noticed that the SMB client goes to the server every
time we do a stat of a file that does not exist.

I investigated this more and it looks like vfs_getattr does make use
of negative dentry, but the revalidate always comes to
cifs_d_revalidate even for negative dentries. And we do not have the
code necessary to deal with it. We do use d_really_is_positive before
we do the dentry validation, but it looks like that comes to us as
success, even in case of non-existent dentries. Is this expected?

I compared the revalidate code on the NFS client, and it does look
like nfs_neg_need_reval deals with this situation based on some
heuristics.

-- 
Regards,
Shyam




[Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux