Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:fs\dcache.c Create Date:2022-07-28 20:07:26
Last Modify:2020-03-18 10:27:32 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:Finish off a dentry we've decided to kill.* Returns dentry requiring refcount drop, or NULL if we're done.

Proto:static struct dentry *dentry_kill(struct dentry *dentry)__releases(dentry->d_lock)

Type:struct dentry

Parameter:

TypeParameterName
struct dentry *dentry>d_lock must be held, returns with it unlocked.
667  inode = Where the name belongs to - NULL is * negative
668  struct dentry * parent = NULL
670  If inode && Value for the false possibility is greater at compile time(!spin_trylock( & _blocks, i_bytes, maybe i_size )) Then Go to slow_positive
673  If Not linux/include/linux/dcache.h* Dirent cache data structures* (C) Copyright 1997 Thomas Schoebel-Theuer,* with heavy changes by Linus Torvalds(>d_lock must be held, returns with it unlocked.) Then
674  parent = parent directory
680  If parent Then spin_unlock( & d_lock)
683  Go to slow_positive
686  __dentry_kill(>d_lock must be held, returns with it unlocked.)
687  Return parent
689  slow_positive :
690  spin_unlock( & d_lock)
691  spin_lock( & _blocks, i_bytes, maybe i_size )
692  spin_lock( & d_lock)
693  parent = lock_parent(>d_lock must be held, returns with it unlocked.)
694  got_locks :
695  If Value for the false possibility is greater at compile time(count != 1) Then
696  count--
697  Else if Value is more likely to compile time(!retain_dentry(>d_lock must be held, returns with it unlocked.)) Then
698  __dentry_kill(>d_lock must be held, returns with it unlocked.)
699  Return parent
702  If inode Then spin_unlock( & _blocks, i_bytes, maybe i_size )
704  If parent Then spin_unlock( & d_lock)
706  spin_unlock( & d_lock)
707  Return NULL
Caller
NameDescribe
dputdput - release a dentry*@dentry: dentry to release * Release a dentry. This will drop the usage count and if appropriate* call the dentry unlink method as well as removing it from the queues and* releasing its resources