On 08/18/2017 05:59 AM, Wangkai (Kevin,C) wrote: > >>> In my patch the DCACHE_FILE_REMOVED flag was to distinguish the >>> removed file and The closed file, I found there was no difference of a >>> dentry between the removed file and the closed File, they all on the lru list. >> There is a difference between removed file and closed file. The type field of >> d_flags will be empty for a removed file which indicate a negative dentry. >> Anything else is a positive dentry. Look at the inline function d_is_negative() >> [d_is_miss()] and you will see how it is done. > After the file was removed, the dentry flag was not MISS, the flag was: > DCACHE_REFERENCED | DCACHE_RCUACCESS | DCACHE_LRU_LIST | DCACHE_REGULAR_TYPE > So, the dentry never be freed, until the kernel reclaim the slab memory. The dentry_unlink_inode() function will clear DCACHE_REGULAR_TYPE. Cheers, Longman