Details
-
Bug
-
Resolution: Fixed
-
Minor
-
None
-
Linux 2.6.18-238.12.1.el5
Lustre 2.0.65
-
3
-
4919
Description
Trying to open a non-existent file does not cause a negative dentry to be cached, even
when parent ctime is more than ctime_age_limit (10) seconds old, or even when MDS_INODELOCK_UPDATE is held.
To reproduce:
/usr/lib64/lustre/tests/llmount.sh
echo +dentry +inode +dlmtrace +vfstrace +rpctrace > /proc/sys/lnet/debug
lctl clear
mkdir /mnt/lustre/DDD
sleep 20 # Twice ctime_age_limit.
cat /mnt/lustre/DDD/XXX
cat /mnt/lustre/DDD/XXX
lctl dk negative-dentry-not-cached.log
Then negative-dentry-not-cached.log shows an LDLM_ENQUEUE being sent for each open.
Alternatively, stating a non-existent file will cache a negative dentry, but opens on other non-existent files in the same directory will not cache negative dentries, see stat-vs-open.txt.