linux/fs/dcache.c
<<
"v4.opt/spa v opt/form v opta "v4.op href="../linux+v3 8/fs/dcache.c">"v4.optimg src="../.static/gfx/right.png" alt=">>">"vt/spa v"vtspa class="lxr_search">"v4. ="+search" method="post" onsubmit="return do_search(this);">"v4.optinput typptihidden" namptinavtarget" "v4.optinput typptitext" namptisearch" idtisearch">"v4.optbutt typptisubmit">Search"v4.opPrefsv opt/a>"vt/spa v4.op pt/div v4.op ptform ac > ="ajax+*" method="post" onsubmit="return false;">"vtinput typptihidden" namptiajax_lookup" idtiajax_lookup" "4.op pt/form v"4.op ptdiv class="headingbott m">
v tdiv idtifile_contents"
p p1t/a>tspa  class="comment">/*t/spa  vp p2t/a>tspa  class="comment"> * fs/dcache.ct/spa  vp p3t/a>tspa  class="comment"> *t/spa  vp p4t/a>tspa  class="comment"> * Complete reimplementa >
 t/spa  vp p5t/a>tspa  class="comment"> * (C) 1997 Thomas Schoebel-Theuer,t/spa  vp p6t/a>tspa  class="comment"> * with heavy changes by Linus Tor
  dst/spa  vp p7t/a>tspa  class="comment"> */t/spa  vp p8t/a>"p p9t/a>tspa  class="comment">/*t/spa  vp la va>tspa  class="comment"> * Notes 
  the alloca >
  strategy:t/spa  vp 11t/a>tspa  class="comment"> *t/spa  vp 12t/a>tspa  class="comment"> * The dcache is a master of the icache - whenever a dcache entryt/spa  vp 13t/a>tspa  class="comment"> * exists, the inode will always exist. "iput()" is done either whent/spa  vp 14t/a>tspa  class="comment"> * the dcache entry is deleted or garbage collected.t/spa  vp 15t/a>tspa  class="comment"> */t/spa  vp 16t/a>"p 17t/a>#include <linux/syscalls.ht/a>>"p 18t/a>#include <linux/string.ht/a>>"p 19t/a>#include <linux/mm.ht/a>>"p 20t/a>#include <linux/fs.ht/a>>"p 21t/a>#include <linux/fsnotify.ht/a>>"p 22t/a>#include <linux/slab.ht/a>>"p 23t/a>#include <linux/init.ht/a>>"p 24t/a>#include <linux/hash.ht/a>>"p 25t/a>#include <linux/cache.ht/a>>"p 26t/a>#include <linux/export.ht/a>>"p 27t/a>#include <linux/mount.ht/a>>"p 28t/a>#include <linux/file.ht/a>>"p 29t/a>#include <asm/uaccess.ht/a>>"p 30t/a>#include <linux/security.ht/a>>"p 31t/a>#include <linux/seqlock.ht/a>>"p 32t/a>#include <linux/swap.ht/a>>"p 33t/a>#include <linux/bootmem.ht/a>>"p 34t/a>#include <linux/fs_struct.ht/a>>"p 35t/a>#include <linux/hardirq.ht/a>>"p 36t/a>#include <linux/bit_spinlock.ht/a>>"p 37t/a>#include <linux/rculist_bl.ht/a>>"p 38t/a>#include <linux/prefetch.ht/a>>"p 39t/a>#include <linux/ratelimit.ht/a>>"p 40t/a>#include "internal.ht/a>""p 41t/a>#include "mount.ht/a>""p 42t/a>"p 43t/a>tspa  class="comment">/*t/spa  vp 44t/a>tspa  class="comment"> * Usage:t/spa  vp 45t/a>tspa  class="comment"> * dcache->d_inode->i_lock protects:t/spa  vp 46t/a>tspa  class="comment"> *   - i_dentry, d_alias, d_inode of aliasest/spa  vp 47t/a>tspa  class="comment"> * dcache_hash_bucket lock protects:t/spa  vp 48t/a>tspa  class="comment"> *   - the dcache hash tablet/spa  vp 49t/a>tspa  class="comment"> * s_anon bl list spinlock protects:t/spa  vp 5a va>tspa  class="comment"> *   - the s_anon list (see __d_drop)t/spa  vp 51t/a>tspa  class="comment"> * dcache_lru_lock protects:t/spa  vp 52t/a>tspa  class="comment"> *   - the dcache lru lists and counterst/spa  vp 53t/a>tspa  class="comment"> * d_lock protects:t/spa  vp 54t/a>tspa  class="comment"> *   - d_flagst/spa  vp 55t/a>tspa  class="comment"> *   - d_nampt/spa  vp 56t/a>tspa  class="comment"> *   - d_lrut/spa  vp 57t/a>tspa  class="comment"> *   - d_countt/spa  vp 58t/a>tspa  class="comment"> *   - d_unhashed()t/spa  vp 59t/a>tspa  class="comment"> *   - d_parent and d_subdirst/spa  vp 6a va>tspa  class="comment"> *   - childrens' d_child and d_parentt/spa  vp 61t/a>tspa  class="comment"> *   - d_alias, d_inodet/spa  vp 62t/a>tspa  class="comment"> *t/spa  vp 63t/a>tspa  class="comment"> * Ordering:t/spa  vp 64t/a>tspa  class="comment"> * dentry->d_inode->i_lockt/spa  vp 65t/a>tspa  class="comment"> *   dentry->d_lockt/spa  vp 66t/a>tspa  class="comment"> *     dcache_lru_lockt/spa  vp 67t/a>tspa  class="comment"> *     dcache_hash_bucket lockt/spa  vp 68t/a>tspa  class="comment"> *     s_anon lockt/spa  vp 69t/a>tspa  class="comment"> *t/spa  vp 7a va>tspa  class="comment"> * If there is an ancestor rela >
 ship:t/spa  vp 71t/a>tspa  class="comment"> * dentry->d_parent->...->d_parent->d_lockt/spa  vp 72t/a>tspa  class="comment"> *   ...t/spa  vp 73t/a>tspa  class="comment"> *     dentry->d_parent->d_lockt/spa  vp 74t/a>tspa  class="comment"> *       dentry->d_lockt/spa  vp 75t/a>tspa  class="comment"> *t/spa  vp 76t/a>tspa  class="comment"> * If no ancestor rela >
 ship:t/spa  vp 77t/a>tspa  class="comment"> * if (dentry1 < dentry2)t/spa  vp 78t/a>tspa  class="comment"> *   dentry1->d_lockt/spa  vp 79t/a>tspa  class="comment"> *     dentry2->d_lockt/spa  vp 8a va>tspa  class="comment"> */t/spa  vp 81t/a>int sysctl_vfs_cache_pressuret/a> __read_mostlyt/a> = 100;"p 82t/a>ta href="+code=EXPORT_SYMBOL_GPL" class="sref">EXPORT_SYMBOL_GPLt/a>(sysctl_vfs_cache_pressuret/a>);"p 83t/a>"p 84t/a>static __cacheline_aligned_in_smpt/a> DEFINE_SPINLOCKt/a>(dcache_lru_lockt/a>);"p 85t/a>ta href="+code=__cacheline_aligned_in_smp" class="sref">__cacheline_aligned_in_smpt/a> DEFINE_SEQLOCKt/a>(renamp_lockt/a>);"p 86t/a>"p 87t/a>ta href="+code=EXPORT_SYMBOL" class="sref">EXPORT_SYMBOLt/a>(renamp_lockt/a>);"p 88t/a>"p 89t/a>static struct kmem_cachet/a> *dentry_cachet/a> __read_mostlyt/a>;"p 90t/a>"p 91t/a>tspa  class="comment">/*t/spa  vp 92t/a>tspa  class="comment"> * This is the single most critical data structure when it comest/spa  vp 93t/a>tspa  class="comment"> * to the dcache: the hashtable for lookups. Somebody should tryt/spa  vp 94t/a>tspa  class="comment"> * to make this good - I've just made it work.t/spa  vp 95t/a>tspa  class="comment"> *t/spa  vp 96t/a>tspa  class="comment"> * This hash-func >
  tries to avoid losing too many bits of hasht/spa  vp 97t/a>tspa  class="comment"> * informa >
 , yet avoid using a prime hash-size or similar.t/spa  vp 98t/a>tspa  class="comment"> */t/spa  vp 99t/a>#define D_HASHBITSt/a> op pta href="+code=d_hash_shift" class="sref">d_hash_shiftt/a>"p100t/a>#define D_HASHMASKt/a> op pta href="+code=d_hash_mask" class="sref">d_hash_maskt/a>"p101t/a>"p102t/a>static unsigned int d_hash_maskt/a> __read_mostlyt/a>;"p103t/a>static unsigned int d_hash_shiftt/a> __read_mostlyt/a>;"p104t/a>"p105t/a>static struct hlist_bl_headt/a> *dentry_hashtablet/a> __read_mostlyt/a>;"p106t/a>"p107t/a>static inlinet/a> struct hlist_bl_headt/a> *d_hasht/a>(const struct dentryt/a> *parentt/a>,"p108t/a> op ppppppppppppppppppppppppppppppppppppunsigned int hasht/a>)"p109t/a>{vp1la va>pppppppphasht/a> += (unsigned long)pparentt/a> /pL1_CACHE_BYTESt/a>;"p111t/a>pppppppphasht/a> =phasht/a> + (hasht/a> >> D_HASHBITSt/a>);"p112t/a>ppppppppreturn dentry_hashtablet/a> + (hasht/a> & D_HASHMASKt/a>);"p113t/a>}"p114t/a>"p115t/a>tspa  class="comment">/* Statistics gathering. */t/spa  vp116t/a>struct dentry_stat_tt/a> dentry_statt/a> =p{vp117t/a>pppppppp.age_limitt/a> =p45,"p118t/a>};"p119t/a>vp120t/a>static DEFINE_PER_CPUt/a>(unsigned int, nr_dentryt/a>);"p121t/a>"p122t/a>#if definedt/a>(CONFIG_SYSCTLt/a>) && definedt/a>(CONFIG_PROC_FSt/a>)"p123t/a>static int get_nr_dentryt/a>(void)"p124t/a>{vp125t/a>ppppppppint it/a>;"p126t/a>ppppppppint sumt/a> =p0;"p127t/a>ppppppppfor_each_possible_cput/a>(it/a>.c#L123" idtiL123" class="8" idtiL1 class="fref">linux/bit_1t/a>&128t/a> op ppppppppppppsumt/a> +=pper_cput/a>(nr_dentryt/a>, it/a>.;"p129t/a>ppppppppreturn sumt/a> < 0 ? 0 : sumt/a>;"p130t/a>}"p131t/a>"p132t/a>int proc_nr_dentryt/a>(ctl_tablet/a> *tablet/a>,pint writet/a>,pvoid __usert/a> *buffert/a>,"p133t/a>pppppppppppppppppppsize_tt/a> *lenpt/a>, lofb_tccache.c#L132" idtiL132" class="line" namptiL132">p132t/a>int nr_den5a  class="comment"> *   ...t/spa  vage_limitt/a> =p45,"ppppppppreturn );"p125thref="+code=sum" class="srf="fs/dca1che.c#L37" idtiL37" clas1s="li136iL130" class="line" namptiL130">p1classdot/avec="+code=write" classdot/avecritet/a>,pvoid buffer,"size_tt/a> *nr_.c#L175ef="+code=nr_dentry" class="sref">nr"fs/dcache.c#Ldentryt/a>(pendif sumt/aL40" idtiL40" class="lin1e" na13(unsigned int, p1 41t/14sure" class="sref">sysctl_v href="fs/dcache.c#L11" idtiL11" " class="1line" namptiL42">p 42t/a1>"p 72t/a>tspa  class="commenl-Thare 2>p 42 mm.ht/s,s="line"0kt/sthey match, o_stawise non-zerolass="line" namptiL16">p 16t/a>"p 13t/a>tspa  class=mm.ht/s are bo_sdcache by="fs idt,"fs/dcachecommnon-zerolass="line" namptiL16">p 16t/a>"<">lenpt/as="comment"> * Usage:t/s1pa  v1a href="fs/dcache.c#L45" idt/a> tsp1a  class="comment"> * dc1ache-14tiL35">f>st class="sref">nret_nr_dDef="+cWORD_ACCES" class="sref">get_nr_dDef="+cWORD_ACCES"unsigned int, p 146t/a1tspa  gned int, 1p 47t14" namptiL37">p 37t/a>#incluh|include/asm-frv/uaccessword-at-a-timeude/asm-generic/uacword-at-a-timeude/asm-generic/0/uacword-at-a-timeude/asm-generic6/uaccessword-at-a-timeude/asm-genericccessword-at-a-timeude/asm-genericccesword-at-a-timeude/asm-genericaccess.hword-at-a-timeude/asm-generic/uacceword-at-a-timeude/asm-genericuacceword-at-a-timeude/asm-genericu/uacword-at-a-timeude/asm-genericisc/uword-at-a-timeude/asm-genericiwerpword-at-a-timeude/asm-genericiwerc/uaccword-at-a-timeude/asm-genericiuaccword-at-a-timeude/asm-genericiuacuacword-at-a-timeude/asm-genericcess.h|word-at-a-timeude/asm-genericcss.h|inword-at-a-timeude/asm-genericc|inword-at-a-timeude/asm-genericss.h|word-at-a-timeude/asm-genericsh|word-at-a-timeude/asm-genericshuacword-at-a-timeude/asm-genericccess.word-at-a-timeude/asm-genericccessuacword-at-a-timeude/asm-genericuacword-at-a-timeude/asm-generics/dcaword-at-a-timeude/asm-genericxcceword-at-a-timeude/asm-generict/a>#inword-at-a-timeude/asm-generictude/liword-at-a-timeudass="lineass="fref"word-at-a-timeud nam"p 48t/a>1tspa 1class="comment"> *   - the d href="fs/dcache.c#L11" idtiL11" "r_cput/a>ptiL49">p 49t/a>tspa  cl1ass="1omment"> * s_anon bl list spinlNOTE! dcachcdet/spafs/det/spscacheet/spa. So fromexis_bucketsoiL96has aref="fs/dcache.c#L11" idtiL11" "f">sumt/aine" namptiL50">p 5a va>1tspa 1class="comment"> *   - the s_anref="fse.c#L12" idtgoodvp 51t/a1>tspa1 class="comment"> * dcache_lru_mm.h"sry nefse to loavp 52t/a>tspa  cl1ass="1omment"> *   - the dcache lru lioesget/sph hurtrbage class="line" namptiL16">p 16t/a>"p 531t/a>t1pa  class="comment"> * d_lock ass="line" namptiL16">p 16t/a>"<">lenpt/a 54t/a>tspa  class="comm1ent">1*   - d_flagst/spa  vp 16t/a>"<5t/a>tsp1a>tspa  class="comment">1 *   1 d_nampt/spa  vp 16t/a>"tspa  class="comment"> 1*   -1d_lrut/spa  vp 57t/a>1tspa  class="comment"> *1   - 156ash" class="sref">d_hasht/a>(const struct  =p.ht/_c"sref">renamp_locatt/a> =p.ht/_c"sL108" classef="fs/dccharat/spa  vage_limchash" sef="fs/dc/a>,pvoid p 58t/1a>tspa  class="comment">1 *   1 d_unh26" idtiL126" class="lineptiL59">p1 59t/a>tspa  class="comm1ent">15="sref">nr_dee.c#L111" idtc/a>,pvoid size_tt/aash" "+code=size_t" " namptiL103">p103tic unsig href="fs/dcache.c#L20" i"line" na1mptiL60">p 6a va>tspa  c1lass=15(unsigned int, p 161t/a16HE_BYTES" clagood(;;)ref="fs/dcache.c#L118" idt namptiL612">p 62t/a>tspa  class="1comme16> >>  * Ordering:1t/spa162 >> size_tt/aash"SHBITSt/a>);"age_limchash" ref="+code=sum" class="sr>p 64t/a>1tspa  class="comment"> *1 dent16"sref">lofb_tccache.ct/sp/a>,pvoid pofhe.c#L111" idti href="+code=ctl_table" p 65t/a>tspa1  cla1s="com">lofb_tccache.c#L111111breakref="+code=sum" class="sr>e.c#L36"1">p 66t/a>tspa  class="c1ommen165sref">lofb_tccache.ct/sp/a>,pvoid );"size_tt/aash"i href="+code=ctl_table" linux/  - 166"com">lofb_tccache.c#L111111="line"1ref="+code=sum" class="sr>">p 58t/1amptiL68">p 68t/a>tspa  1class167 >> pofhe.c#L111" idtiref="+code=sum" class="sr>tiL59">p169t/a>tspa  class="comme1nt"> 16="sref">nr_dentryt/a>, age_limchash""pofhe.c#L111" idtiref="+code=sum" class="sr>line" na1s="comment"> * If there 1is an169"sref">nr_dentryt/a>, pofhe.c#L111" idtiref="+code=sum" class="srL71" clas1s="line" namptiL71">p 711t/a>t170sref">lofb_tccache.ct/sp!/a>,pvoid  >> ( *    1 dent172 >> p 74t/a1>tspa17"sref">lofb_t"+code=size_t" " namptiL103">p103tic unsigSHB~(~0ul .c#L.c#L1/a>,pvoid p 75t/a>tspa  clas1s="co17="com">lofb_t="line" namptiL130">p1uf="kelass="line" namptuf="kelaritet!!(t/a>,pvoid );"size_tt/aash"ifs/dcache.c#L114" idti" namptiL103">p103tic unsig)iref="+code=sum" class="srLe.c#L36"1s="comment"> * If no anc1estor1rela >t p 77t/a>tspa 1 clas17lls.ht/a>>">"p19">p 79t/a>tspa  class="1comme17 href="+code=dentry_cache" c1e" nampti1L80">p 8a va>tspa  class1="com17ode=__read_m"sref">d_hasht/a>(const struct  =p.ht/_c"sref">renamp_locatt/a> =p.ht/_c"sL108" classef="fs/dccharat/spa  vage_limchash" sef="fs/dc/a>,pvoid _1_read18> >> sysctl_vf1s_cac182 >> age_limchash" href="+code=ctl_table" __1cache18"sref">lofb_tccache.c#L1ofb_t="line"1ref="+code=sum" class="srf="+code=1DEFINE_SPINLOCK" class="1sref"18="com">lofb_tccache.c/spa  vDE1FINE_185sref">lofb_tccache.c/spa  vage_limchash"++ref="+code=sum" class="srfux/syscal">EXPORT_SYMBOLt/a>(lofb_tccache.c/a>,pvoid kmem_cachet1/a> *188"com">lofb_t="line"ible_cput/a>(dentry_cachet/a> p 92t/a>t1spa  clas1s="comment"> * This is t1he si1gle mopendif p 44t/a>t1f="fs/dca1che.c#L94" idtiL94" clas1s="li193de=__read_m"sref">d_hasht/a>(const struct  c"sref">renamp_locatt/a> c"sL108" class="line" namptiL108">p108t/a> op ppppppppppppppppppppppppppppppppppppun08t/a> op ppppppppppppppppppppp"  classef="fs/dccharat/spa  vage_limchash" sef="fs/dc/a>,pvoid  * This hash1-func195sref">lofb_t classef="fs/dccharat/spa  vlofb_t"comment"> *   - the d href="fs/dcache.c#L11" idtiL11" fs/dcache1.c#L98" idtiL98" class="1line"1namptiL98">p 98t/a>tspa  classsssssss* Bo careful about RCU walk racref=ref="p 89t/ass="line" namptiL12">p 12t/a>ts#define <1a href="+code=D_HASHBITS1" cla1s="sref">D_HASHBITSt/a> op ptssssssss* use ACCES"_ONCE >
 linuxe to p 42 po/a>&qtass="line" namptiL16">p 16t/a>"s="sref">1d_hash_shiftt/a>" *   - the s_ssssssss*L3" class="line" namptiL3">p p3ss="sref"2d_hash_maskt/a>" * dcache_lrssssssss* NOTE! Evookuf a"p 89t/"commemeadcacate to lengtze or similar.t/spa  v2_hash20mment"> *   - the dcache lrussssssss* wammnot loavfse.tome: tly, weor get/sph care.lasse or similar.t/spa  v__read_mostl2t/a>;20a  class="comment"> * d_lockssssssss* RCU walk comme hrckment">equencedcachecevootu tly,e or similar.t/spa  v__read_mos2lyt/a20   - d_flagst/spa  v *hlis2_bl_h20d_nampt/spa  v&qe.tome: tly,e or similar.t/spa  v * This hash2table20_lrut/spa  vinlinet/a> struct 2a hre20e" namptiL97">p 97t/a>tspa  ssssssss* >&qminadcacref="a NUL by="tass="line" namptiL16">p 16t/a>2sref">hli2t_bl_headt/a> *p 98t/a>tspa  classsssssss*ass="line" namptiL16">p 16t/a>2s9" idtiL2/dcache.c#L109" idtiL1092 clas20="sref">D_HASHBITSt/a> op ptssssssss* Es/dref="f:cevookuf et/splenet/spaa hwridt,"weet/spmmeexohe.c#L62" idtiL62" class="line"2h" class=2sref">hasht/a> += (unsig2ed lo20lass="comment"> *   - the s_ssssssss* earlr because "comm hascannot match (d_parecane.c#L62" idtiL62" class="line"2="sref">p2rentt/a> /p *t/spa  v hasht/a> &2 ,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid p1121"sref">lofb_t"+code=size_t" smpL107">barrietiL1pend/dcache.c#LdentrsmpL107">barrietiL1pend/ritetiref="+code=sum" class="s2"5" idtiL2athering. */t/spa  vlofb_t="line" namptiL130">p1att/a> =p.ht/_c"sref">renamp_locatt/a> =p.ht/_c"sL108"/spa  vage_limchash" s/a>,pvoid p116t/a>struc2 t dentry_statt/a> =p{vp128t/a>21hash" class=line" namptiL133">p133d_fred op ppppppppppp33d_fredL108"="line" namptiL108">p1rcu *p120t/a>s26" idtiL126" class="lin2E_PER_CPU2 class="sref">DEFINE_PER2CPUt/219"sref">nr_de="line" namptiL108">p108t/a> op ppppppppppppppppppppppppppppppppppppun08t/a> op ppppppppppppppppppppp HBITSt/a>);"Dr_of="sref">age_limcobua">Dr_ofL108"/spa  vp108t/a> op ppppppppppppppppppppp s/a>,pvoid p/a>);22="line" namptiL92">p 92t/a>t2ache.c#L222" idtiL22" class="line" +code22> >> "ritet/a>,pvoid  op pppppppppppppppppppppi href="+code=ctl_table" 224" idtiL224" class="line" namptiL2iL12422"sref">lofb_tccache.c/a>,pvoid ,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid ,pvoid e" namptiL90">p 90t/a>"t >" *   - the d href="fs/dcache.c#L11" idtiL11"229" idtiL229" class="line" namptiL2" cla22mment"> * s_anon bl list spinltry>stas, pleas"tass="line" namptiL16">p 16t/a>2/uaccess.hh|include/asm-blackfin/ua130" 22lass="comment"> *   - the s_a> p1323a href="fs/dline" namptiL133">p1d_fred op pppppppppppd_fredL108"="line" namptiL108">p108t/a> op ppppppppppppppppppppppppppppppppppppun08t/a> op ppppppppppppppppppppp href="+code=ctl_table" 2dentry" c2ass="sref">proc_nr_dentr2t/a>(2a href26" idtiL126" class="lin2="sref">c2l_tablet/a> *,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid lenpt/2>, lofb_t"+code=size_t" v,pvoid p122t/a>#if renamp_loca7os="+coL123" idtiL123" class="line"t/a> op pppppppppppppppppppppidtiL/a>,pvoid renamp_loca7os="+cidtiL/a>,pvoid lofb_tccache.c/spa  v op pppppppppppppppppppppidtiL/a>,pvoid renamp_loca7os="+cidtiL/a>,pvoid ,pvoid  op pppppppppppppppppppppif  gLef="+cRCUACCES"ppppi href="+code=ctl_table" 2df">sumt/2L40" idtiL40" class="lin2e" na239"sref">nr_dentryt/a>, ,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid p2 41t/240sref">lofb_telset/a>>"p 42t/a2>" >> ,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid ,pvoid c2fs/dcache.c#L44" idtiL442" cla24e" nat lenpt/2s="comment"> * Usage:t/s2pa  v24ne_aligned_in_smpt/a> tsp2a  class="comment"> * dc2ache-2gt;d_inode->i_lock protec/*href="fs/dcache.c#L11" idtiL11"2de.c#L36"2ass="line" namptiL46">p 246t/a2tspa  class="comment"> *   - i_d"barriete_hanvalidato in-progt/a> rcu-walk  - Iref="fs/dcache.c#L11" idtiL11"2dc#L27" idclass="line" namptiL47">2p 47t2a>tspa  class="comment"> * dcac@d"p 48t/a>2tspa 2class="comment"> *   - the dcacAf>&qev rcu-walk path  - I&# commefail.lass=ppf="fs/dcache.c#L11" idtiL11"2d9" idtiL2ptiL49">p 49t/a>tspa  cl2ass="2omment"> * s_anon bl list spinlade it beh: tlfse.f>&qea hrefidt,"fs/d.f>&qechangs" etects:t/(ifppf="fs/dcache.c#L11" idtiL11"2df">sumt/2ine" namptiL50">p 5a va>2tspa 2class="comment"> *   - the s_an"comm_buck hammnot al107"r been a href=")tass="line" namptiL16">p 16t/a>2" class="2line" namptiL51">p 51t/a2>tspa2 class="comment"> * dcache_lru> p 52t/a>tspa  cl2ass="2omment_read_m"sref">d_hasht/a>(const struct p1d"barrietptiL90">p 90t/a>"barrietL108"="line" namptiL108">p108t/a> op ppppppppppppppppppppppppppppppppppppun08t/a> op ppppppppppppppppppppp href="+code=ctl_table" 2p 532t/a>t2pa  cl26" idtiL126" class="lin2<">lenpt/2 54t/a>tspa  class="comm2ent">25"sref">lofb_t"+code=size_t" >tsert_d_dra>sta="href="+code=par>tsert_d_dra>sta="L108"s/dca/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid _a>static struct 2 *   254 >>  tspa  class="comment"> 2*   -255lass="8" idtiL1 class="fref33" c_seqhe.c#>barrietptiL90">p 90t/a33" c_seqhe.c#>barrietL108"s/dca/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid _aseqtic struct  *2   - 256ash"t p 58t/2a>tspa  class="comment">2 *   2 d_unh tspa  class="comm2ent">2*   - d_parent and d_subdirs href="fs/dcache.c#L11" idtiL11"2"line" na2mptiL60">p 6a va>tspa  c2lass=2comment"> *   - childrens' Releas"n"comm_bucket/sps cts:t,a href="comfilesystemref="fs/dcache.c#L11" idtiL11"2tiL61" cl2ass="line" namptiL61">p 261t/a2tspa  class="comment"> *   - d_tecput() oper2" idtt/ss_tatic. D_buck hammno he.he.c#L59" idtiL59" class="line" nam2 namptiL622">p 62t/a>tspa  class="2comme2t"> *t/spa  vp 16t/a>2spa  clas2s="comment"> * Ordering:2t/spa2 v p 64t/a>2tspa  class="comment"> *2 dent263de=__read_mline" namptiL133">p1d"p 90t/a>"p108t/a> op ppppppppppppppppppppppps/a>,pvoid  op pppppppppppppppppppppif="+code=dentry_stat" c2>5t/a>tsp2 namptiL65">p 65t/a>tspa2  cla264 >> ,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid _a>static sf="+code=dentry_stat" c2>e.c#L36"2">p 66t/a>tspa  class="c2ommen265lass="8" idtiL1 class="fref__releas"i op ppppppppppp__releas"iL108"/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid _a" classppidtiL/a>,pvoid ia>static sf="+code=dentry_stat" c2>c#L27" idlls.h" class="fref">linu2/  - 266"com26" idtiL126" class="lin2>">p 58t/2amptiL68">p 68t/a>tspa  2class267 >> p1cts:t" class="sref">" classpppppppppppppppppuncts:t" class="sref">" classpppHBITSt/a>);" op pppppppppppppppppppppidtiL/a>,pvoid _a" classpptruct p269t/a>tspa  class="comme2nt"> 268="+code=D_HAt/sppppppppppppppuncts:t" class="sref">" classpp)ref="fs/dcache.c#L118" id2>line" na2s="comment"> * If there 2is an269"sref">nr_dentryt/a>, _a" classpppHBITSt/a>);")"p 712t/a>t270sref">lofb_tccache.c/spa  v,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid  >> ,pvoid d_draun_smpL108"s/dca/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid _a>static struct  *    2 dent272 >> d_draun_smpL108"s/dca/a>,pvoid " classppidtiL/a>,pvoid ia>static struct p 74t/a2>tspa27"sref">lofb_tccache.ct/sp!/spa  v" classppidtiL/a>,pvoid iaf="+ptic sf="+code=dentry_stat" c2Ls="line"2iL75">p 75t/a>tspa  clas2s="co27="com">lofb_tccache.c="8" idtiL1 class="freffsnotifya" claremovt" class="sref">fsnotifya" claremovtL108"/a>,pvoid " classpp)truct  * If no anc2estor275sref">lofb_tccache.ct/sp/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid renamp_loca7os="+coL123" idtiL123" class="line"t/a> op pppppppppppppppppppppidtiL/a>,pvoid renamp_loca7os="+cidtiL/a>,pvoid p 90t/a>rcputL108sf="+code=dentry_stat" c2Lc#L27" idnamptiL77">p 77t/a>tspa 2 clas276"com">lofb_tccache.c#L111111123" class="line"t/a> op pppppppppppppppppppppidtiL/a>,pvoid renamp_loca7os="+cidtiL/a>,pvoid p 90t/a>rcputL108p/a>,pvoid  op ppppppppppppppppppppp class="sref">sumtts:t" class="sref">" classpp)truct p 58t/2"" idtiL18" class="line"2nlass277 >> >"p29">p 79t/a>tspa  class="2comme27"line" namptiL109">p109t/a>{vlass="sref">sumtputptiL90">p 90t/acputL108p/a>,pvoid " classpp)truct p 8a va>tspa  class2="com279"sref">nr_de}telseref="fs/dcache.c#L118" id2int lofb_tccache.c/spa  vd_draun_smpL108"s/dca/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid _a>static struct _2_read28> >> sysctl_vf2s_cac28e" nat __2cache28ne_aligned_in_smpt/a> DE2FINE_28spa  class="comment"> *   - i_Releas"n"comm_bucket/sps cts:t,a href="comfilesystemref="fs/dcache.c#L11" idtiL11"2fux/sysca2">EXPORT_SYMBOLt/a>( * dcactecput() oper2" idtt/ss_tatic. m_buck remains ct-us"tass="line" namptiL16">p 16t/a>2fche.c#L12lockt/a>);" *   - the dca> kmem_cachet2/a> *288"com_read_mline" namptiL133">p1d"_"p108t/a> op ppppppppppppppppppppppps/a>,pvoid  op pppppppppppppppppppppif="+code=dentry_stat" c2lass="sre2f">dentry_cachet/a> nr_de href="+code=D___releas"i op ppppppppppp__releas"iL108"/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid _a>static sf="+code=dentry_stat" c2L1_CA__releas"i op ppppppppppp__releas"iL108"/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid _a" classppidtiL/a>,pvoid ia>static sf="+code=dentry_stat" c2spa  clas2s="comment"> * This is t2he si29 href26" idtiL126" class="lin2f="fs/dca2che.c#L93" idtiL93" clas2s="li292 >> p1cts:t" class="sref">" classpppppppppppppppppuncts:t" class="sref">" classpppHBITSt/a>);" op pppppppppppppppppppppidtiL/a>,pvoid _a" classpptruct lofb_t"+code=size_t" 08t/a> op pppppppppppppppppppppidtiL/a>,pvoid _a" classpppHBITSt/a>);")",pvoid  op pppppppppppppppppppppidtiL/a>,pvoid  * This hash2-func295lass="8" idtiL1 class="frefd"barrietptiL90">p 90t/a>"barrietL108"/a>,pvoid  op pppppppppppppppppppppitruct lofb_t"spa  vd_draun_smpL108"s/dca/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid _a>static struct d_draun_smpL108"s/dca/a>,pvoid " classppidtiL/a>,pvoid ia>static struct " classppidtiL/a>,pvoid iaf="+ptic sf="+code=dentry_stat" c2s="sref">2d_hash_shiftt/a>"nr_dentryt/a>, fsnotifya" claremovtL108"/a>,pvoid " classpp)truct ",pvoid  op pppppppppppppppppppppidtiL/a>,pvoid renamp_loca7os="+coL123" idtiL123" class="line"t/a> op pppppppppppppppppppppidtiL/a>,pvoid renamp_loca7os="+cidtiL/a>,pvoid p 90t/a>rcputL108sf="+codehref="+code=kme3s1="sref"3d="comment"> * This is t3_hash30> >> ,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid renamp_loca7os="+cidtiL/a>,pvoid p 90t/a>rcputL108p/a>,pvoid  op ppppppppppppppppppppp class="sref">sumtts:t" class="sref">" classpp)truct __read_mostl3t/a>;302 >> >"__read_mos3lyt/a30"sref">lofb_tccache.c/a>,pvoid p 90t/acputL108p/a>,pvoid " classpp)truct hlis3_bl_h30d_namt  * This hash3table30spa  gned int, inlinet/a> struct 3a hre30e" namptiL97">p 97t/a>tspa /* hli3t_bl_headt/a> *p 98t/a>tspa  clasi_d"p 16t/a>3s9" idtiL3/dcache.c#L109" idtiL1093 clas30="sref">D_HASHBITSt/a> op pta> hasht/a> += (unsig3ed lo30ode=__read_mline" namptiL133">p1d"p 90t/a>"p108t/a> op ppppppppppppppppppppppp/a>,pvoid  op pppppppppppppppppppppif="+code=dentry_stat" c3="sref">p3rentt/a> /p op pppppppppppnt" cempt>L108"s/dca/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid hasht/a> &3 d_dra_smpL108"s/dca/a>,pvoid _cache_lru__smpsspp)truct p1131"sref">lofb_tccache.c/a>,pvoid p 90t/ant" caddL108"s/dca/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid ,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid size_tt/07scppppidtiL/a>,pvoid "d_>"lofb_tccache.c/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid size_tt/07scppppidtiL/a>,pvoid p122taunus="href="+code=pars_22">p122taunus="pppp++ref="+code=sum" class="s3s="line" 3amptiL116">p116t/a>struc3 lofb_tccache.c/spa  vclass="sref">age_limitt/a> =p45,"unus="href="+code=par/a>unus="pppp++ref="+code=sum" class="s3s" class=3>dentry_statt/a> =p{vlofb_tccache.c/a>,pvoid d_draun_smpL108"s/dca/a>,pvoid _cache_lru__smpsspp)truct hli3ss="line" namptiL118">p138t/a>317 >> p130t/a>s}ruct DEFINE_PER3CPUt/31(unsigned int, 3/a>);32a href="fs/dline" namptiL133">p1__>""p108t/a> op ppppppppppppppppppppppp/a>,pvoid  op pppppppppppppppppppppif="+code=dentry_stat" c3ache.c#L232" idtiL22" class="line"3+code32 href26" idtiL126" class="lin323" idtiL333" class="line" namptiL33,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid lofb_t"+code=size_t" 08t/a> op pppppppppppppppppppppidtiL/a>,pvoid size_tt/07scppppidtiL/a>,pvoid p122taunus="href="+code=pars_22">p122taunus="pppp--ref="+code=sum" class="s32="line" 3iL26" class="line" nampt3a hre325lass="8" idtiL1 class="frefd"age_limitt/a> =p45,"unus="href="+code=par/a>unus="pppp--ref="+code=sum" class="s32" class=3dtiL27" class="line" nam3ppp * s_anon bl list sp/*  *   - the s_a Removtdxis_buck ref="p ferences frome"comLRUtass="line" namptiL16">p 16t/a>3" idtiL133" class="line" namptiL133">p1333class="comment"> * dcache_lru> proc_nr_dentr3t/a>(331 href="fs/dline" namptiL133">p1>""p108t/a> op ppppppppppppppppppppppp/a>,pvoid  op pppppppppppppppppppppif="+code=dentry_stat" c3="sref">c3l_tablet/a> *lenpt/3>, lofb_tt/sp!/spa  v op pppppppppppnt" cempt>L108"s/dca/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid lofb_tccache.c/a>,pvoid d_dra_smpL108"s/dca/a>,pvoid _cache_lru__smpsspp)truct lofb_tccache.c/spa  v"",pvoid  op pppppppppppppppppppppitruct lofb_tccache.c/a>,pvoid d_draun_smpL108"s/dca/a>,pvoid _cache_lru__smpsspp)truct s}ruct sumt/3L40" idtiL40" class="lin3e" na33(unsigned int, p3 41t/34class="comment"> * dcache_l/* p 42t/a3>" *t/spa  vc3fs/dcache.c#L44" idtiL443" cla34vp 16t/a>3<">lenpt/3s="comment"> * Usage:t/s3pa  v34   - d_flagst/spa  vp 16t/a>3< href="f3a  class="comment"> * dc3ache-3gt;d_inode->i_lock protecru> p 346t/a3tspa  f="fs/dline" namptiL133">p1>""p108t/a> op ppppppppppppppppppppppp/a>,pvoid  op pppppppppppppppppppppif="+code=dentry_stat" c3dc#L27" i3class="line" namptiL47">3p 47t346"com26" idtiL126" class="lin3d=i" clas3ine" namptiL48">p 48t/a>3tspa 347sref">lofb_tt/sp!/spa  v op pppppppppppnt" cempt>L108"s/dca/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid p 49t/a>tspa  cl3ass="34"line" namptiL109">p1t/sp/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid sumt/3ine" namptiL50">p 5a va>3tspa 349"sref">nr_dentryt/a>;> renamp_loca7os="+cidtiL/a>,pvoid cprun=L108"/a>,pvoid  op pppppppppppppppppppppitruct p 51t/a3>tspa35="line" namptiL92">p 92t/a>t3" class="3ptiL52">p 52t/a>tspa  cl3ass="35> >> ,pvoid d_dra_smpL108"s/dca/a>,pvoid _cache_lru__smpsspp)truct p 533t/a>t352 >> ",pvoid  op pppppppppppppppppppppitruct lenpt/3 54t/a>tspa  class="comm3ent">35"sref">lofb_tccache.c/a>,pvoid d_draun_smpL108"s/dca/a>,pvoid _cache_lru__smpsspp)truct 3 *   354 >> tspa  class="comment"> 3*   -35ela >t  *3   - 35lls.ht/a>>"p 58t/3a>tspa  class="comment">3 *   35hash" class=line" namptiL133">p1>""p108t/a> op ppppppppppppppppppppppp/a>,pvoid  op ppppppppppppppppppppp,e="line" namptiL108">p1nt" c*,pvoid tspa  class="comm3ent">35t/a>s26" idtiL126" class="lin3"line" na3mptiL60">p 6a va>tspa  c3lass=359"sref">nr_de href="+code=D_d_dra_smp" class="sref">d_dra_smpL108"s/dca/a>,pvoid _cache_lru__smpsspp)truct p 361t/a360="+code=D_HAt/sp/a>,pvoid  op pppppppppppnt" cempt>L108"s/dca/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid p 62t/a>tspa  class="3comme36> >> ,pvoid p 90t/ant" cadd_tailL108"s/dca/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid ,pvoid  * Ordering:3t/spa362 >> size_tt/07scppppidtiL/a>,pvoid p122taunus="href="+code=pars_22">p122taunus="pppp++ref="+code=sum" class="s3>p 64t/a>3tspa  class="comment"> *3 dent36"sref">lofb_tccache.c/a>,pvoid class="sref">age_limitt/a> =p45,"unus="href="+code=par/a>unus="pppp++ref="+code=sum" class="s3>5t/a>tsp3 namptiL65">p 65t/a>tspa3  cla364 >> e.c#L36"3">p 66t/a>tspa  class="c3ommen365sref">lofb_tccache.c/spa  vp 90t/ant" cmovt_tailL108"s/dca/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid ,pvoid linu3/  - 366"com">lofb_tt p 58t/3amptiL68">p 68t/a>tspa  3class36class="8" idtiL1 class="frefd_draun_smp" class="sref">d_draun_smpL108"s/dca/a>,pvoid _cache_lru__smpsspp)truct tspa  class="comme3nt"> 36t/a>s}ruct  * If there 3is an36(unsigned int, p 713t/a>t37class="comment"> * dcache_l/**  *t/spa  vtspa3  class="comment"> *    3 dent37v3line" namptiL74">p 74t/a3>tspa37   - d_flagst/spa  vp 75t/a>tspa  clas3s="co37t;d_inode->i_lock protecruppf="fs/dcache.c#L11" idtiL11"3Le.c#L36"3s="comment"> * If no anc3estor37spa  class="comment"> *   - i_Tcomm_buck must al107"r be a href=""fs/dremovtd frome"comLRUtass="line" namptiL16">p 16t/a>3Lc#L27" i3namptiL77">p 77t/a>tspa 3 clas37>tspa  class="comment"> * dcaass="line" namptiL16">p 16t/a>3L">p 58t/3"" idtiL18" class="line"3nlass37amptiL98">p 98t/a>tspa  clasi_Ifevp 16t/a>3L9" idtiL39">p 79t/a>tspa  class="3comme37="sref">D_HASHBITSt/a> op ptaass="line" namptiL16">p 16t/a>3Lline" na3L80">p 8a va>tspa  class3="com37lass="comment"> *   - the s_a m_buckidtiL_a>sta fs/dparec#idtiL_a>sta must behhel" byh: tlfr,"fs/d.rommroppe" byass="line" namptiL16">p 16t/a>3int  *   - d_tekommtass="line" namptiL16">p 16t/a>3ode=__rea3d_mostly" class="sref">_3_read38"> *t/spa  vsysctl_vf3s_cac38e" na class=="line" namptiL108">p108t/a> op ppppppppppppppppppppppp/a>,pvoid p108t/a> op ppppppppppppppppppppppp/a>,pvoid  op ppppppppppppppppppppp,e="line" namptiL108">p108t/a> op ppppppppppppppppppppppp/a>,pvoid __3cache38"sref">lofb_t"+code=size_t" __releas"i op ppppppppppp__releas"iL108"/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid _a>static sf="+code=dentry_stat" c3f="+code=3DEFINE_SPINLOCK" class="3sref"384 >> ,pvoid ,pvoid _a>static sf="+code=dentry_stat" c3fe.c#L36"3SEQLOCK" class="sref">DE3FINE_385lass="8" idtiL1 class="fref__releas"i op ppppppppppp__releas"iL108"/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid _a" classppidtiL/a>,pvoid ia>static sf="+code=dentry_stat" c3fux/sysca3">EXPORT_SYMBOLt/a>(p 90t/ant" cdelL108"s/dca/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid p 90t/a>_childsspp)truct kmem_cachet3/a> *38"line" nampti="comment"> * dcache_l/* dentry_cachet/a>  *   - the s_ssssssss* Inform="ry_to_ascend() acatewed.romtry>sng&qe.tt_stase ogt"fs/a href="+code=dentry_stat" c3 *t/spa  v * This is t3he si39master of the icache - whenessssssss*>  op pppppppppppppppppppppidtiL/a>,pvoid lofb_tt/sp/a>,pvoid lofb_tccache.c/a>,pvoid d_draun_smpL108"s/dca/a>,pvoid ,pvoid _a>static struct  * This hash3-func395lass="8" idtiL1 class="frefd"p 90t/a>",pvoid  op pppppppppppppppppppppitruct lofb_t""comment"> * dcache_l/* p 98t/a>tspa  classsssssss* m_buckrcputmmrop h"com>stas, atewhich pointmtrbo"r (excep#L59" idtiL59" class="line" nam3#define <3a href="+code=D_HASHBITS3" cla39="sref">D_HASHBITSt/a> op ptssssssss* transiec# RCU  - I)h: ndreineevp 16t/a>3s="sref">3d_hash_shiftt/a>" *   - the s_ssssssss*> "L1_CAd_fred op pppppppppppd_fredL108"/a>,pvoid  op pppppppppppppppppppppitruct  * This is t4_hash40> >> p1parec# op pppppppppppparec#L508truct ;40e" nat __read_mos4lyt/a40ne_aligned_in_smpt/a> hlis4_bl_h40t;d_inode->i_lock protec/*  * This hash4table40spa  class="comment"> *   - i_U hrefdxis_buck ref=out insertidtdxn RCU walk barrieteor stackref="ca#L59" idtiL59" class="line" nam4e" class=4sref">inlinet/a> struct 4a hre40e" namptiL97">p 97t/a>tspa _a m_buckidtiL_a>sta a h>sta=". _Tcom: tlfr must takom: romofn"cat, ifppf="fs/dcache.c#L11" idtiL11"4sref">hli4t_bl_headt/a> *p 98t/a>tspa  clasi_appropriatotass="line" namptiL16">p 16t/a>4s9" idtiL4/dcache.c#L109" idtiL1094 clas40="sref">D_HASHBITSt/a> op pta> hasht/a> += (unsig4ed lo40ode=__read_mline" namptiL133">p133d_shr"+p" class="sref">33d_shr"+pL508"="line" namptiL108">p108t/a> op ppppppppppppppppppppppp/a>,pvoid  op pppppppppppppppppppppif="+code=dentry_stat" c4="sref">p4rentt/a> /p,pvoid  op pppppppppppppppppppppi)ref="fs/dcache.c#L118" id4e=hash" c4ass="sref">hasht/a> &4 p1*nt" cblc*,pvoid size_tt/bL508truct p1141"sref">lofb_tccache.ct/sp/a>,pvoid L108"/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid lofb_tccache.cTES" class="sref">L1_CAc"sref">size_tt/bL508 = s/dca/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid size_tt/07scppppidtiL/a>,pvoid p116t/a>struc4 lofb_tccache.celset/a>>"dentry_statt/a> =p{vlofb_tccache.cTES" class="sref">L1_CAc"sref">size_tt/bL508 = /a>,pvoid size_tt/07hrefL108"/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid ,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid size_tt/hrefL108itruct hli4ss="line" namptiL118">p148t/a>41d_unh p141"line" namptiL109">p1 namptiL108">p1*nt" cblc_smp" class="sref">*nt" cblc_smpL108"/a>,pvoid size_tt/bL508itruct DEFINE_PER4CPUt/419"sref">nr_dentryt/a>, ,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid size_tt/07hrefL108itruct 4/a>);420sref">lofb_tccache.c/spa  v op pppppppppppppppppppppidtiL/a>,pvoid size_tt/07hrefL108dcache.c#L119" ipprev op ppppppppppppprevL508 = /a>,pvoid )" >> ,pvoid *nt" cblcun_smpL108"/a>,pvoid size_tt/bL508itruct  *   -/** tspa  class="comment"> * dcactemrop -mmropdxis_buck hli4iL28" class="line" nampt4iL12342amptiL98">p 98t/a>tspa  clasi_@d" * s_anon bl list sptaass="line" namptiL16">p 16t/a>4/uaccess.4h|include/asm-blackfin/u4130" 42lass="comment"> *   - the s_a temrop() a href= h"com_buck frome"comparec# pppppp href= , so acateat wonet/sp#L59" idtiL59" class="line" nam4" idtiL134" class="line" namptiL134">p1343class="comment"> * dcache_lru behfound="croug="a VFS  - I&# any more. Note acatevproc_nr_dentr4t/a>(43"> *t/spa  vc4l_tablet/a> *lenpt/4>, s I&# fail.L59" idtiL59" class="line" nam4f5" idtiL4/dcache.c#L27" idtiL27" 4la67443t;d_inode->i_lock protecruppf="fs/dcache.c#L11" idtiL11"4d="line" 4 idtiL36" class="line" n4ampti43spa  class="comment"> *   - i_demrop() a hased mainlk fort="uff acatewants ao anvalidato xis_buck fort=omes/a href="+code=dentry_stat" c4ac#L27" i4che.c#L37" idtiL37" clas4s="li43>tspa  class="comment"> * dcacreason (NFS timeouts ortautofsedeletes)tass="line" namptiL16">p 16t/a>4f=i" clas4c#L38" idtiL38" class="l4ine" 43amptiL98">p 98t/a>tspa  clasiass="line" namptiL16">p 16t/a>4f9" idtiL49" idtiL39" class="line"4 namp43mment"> * s_anon bl list spinl33d_mrop requires m_buckidtiL_a>statass="line" namptiL16">p 16t/a>4fuaccess.4L40" idtiL40" class="lin4e" na43lass="comment"> *   - the s_a> p4 41t/44classline" namptiL133">p133d_mrop" class="sref">33d_mrop <08"="line" namptiL108">p108t/a> op ppppppppppppppppppppppp/a>,pvoid  op pppppppppppppppppppppif="+code=dentry_stat" c4" class="4line" namptiL42">p 42t/a4>"c4fs/dcache.c#L44" idtiL444" cla44f="+code=D_HAt/sp!/spa  v,pvoid  op pppppppppppppppppppppi)ref="fs/dcache.c#L118" id4<">lenpt/4s="comment"> * Usage:t/s4pa  v44"sref">lofb_tccache.c/a>,pvoid 33d_shr"+pL508"/a>,pvoid  op pppppppppppppppppppppitruct  * dc4ache-44="com">lofb_tccache.c/a>,pvoid rrcuwalk>barrietptiL90">p 90t/a>"barrietL108"/a>,pvoid  op pppppppppppppppppppppitruct p 446t/a445="+code=D_HAt 4p 47t446ash"t p 48t/a>4tspa 447sref/a>,pvoid )",pvoid 33d_mrop <08itruct p 49t/a>tspa  cl4ass="44"lineruct p 5a va>4tspa 449"sreline" namptiL133">p1>_mrop" class="sref">d_mrop <08"="line" namptiL108">p108t/a> op ppppppppppppppppppppppp/a>,pvoid  op pppppppppppppppppppppif="+code=dentry_stat" c4" class="4line" namptiL51">p 51t/a4>tspa45sure"ef="fs/dcache.c#L118" id4" class="4ptiL52">p 52t/a>tspa  cl4ass="45> >> ,pvoid d_dra_smpL108"s/dca/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid _a>static struct p 534t/a>t45f="+code=D_HA/spa  v33d_mrop <08"/a>,pvoid  op pppppppppppppppppppppitruct lenpt/4 54t/a>tspa  class="comm4ent">45"sref">lofb_t"+code=size_t" d_draun_smp" class="sref">d_draun_smpL108"s/dca/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid _a>static struct 4 *   45d_namt tspa  class="comment"> 4*   -45ela >/a>,pvoid )",pvoid _mrop" class="sref">d_mrop <08struct  *4   - 45lls.ht/a>>"p 58t/4a>tspa  class="comment">4 *   45amptiL98">p 98t/a>tspa  cla/* tspa  class="comm4ent">45mment"> * s_anon bl list spinld_clear_nee_a>s I&# -mmropdxis_buck frome: ccomfs/dclearmtcomnee_m>s I&# flag p 6a va>tspa  c4lass=45lass="comment"> *   - the s_a @d"p 461t/a46class="comment"> * dcache_lru p 62t/a>tspa  class="4comme46"> *t/spa  v * Ordering:4t/spa46vs Iaseup. _Tcoms_buck ade it havegbeenehref=""in orderifortit  ogbo found=byass="line" namptiL16">p 16t/a>4>p 64t/a>4tspa  class="comment"> *4 dent46   - d_flagst/spa  vs I&#ass="line" namptiL16">p 16t/a>4>5t/a>tsp4 namptiL65">p 65t/a>tspa4  cla46t;d_inode->i_lock protecrumfs/dclearmtcomLef="+cNEED_LOOKUP flagtass="line" namptiL16">p 16t/a>4>e.c#L36"4">p 66t/a>tspa  class="c4ommen46spa  class="comment"> *   - i> linu4/  - 466"comline" namptiL133">p1>_clear_nee_a>s I&#" class="sref">d_clear_nee_a>s I&# <08"="line" namptiL108">p108t/a> op ppppppppppppppppppppppp/a>,pvoid  op pppppppppppppppppppppif="+code=dentry_stat" c4>">p 58t/4amptiL68">p 68t/a>tspa  4class46classef="fs/dcache.c#L118" id4t9" idtiL469t/a>tspa  class="comme4nt"> 468 >> ,pvoid d_dra_smpL108"s/dca/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid _a>static struct  * If there 4is an469"sref">nr_de href="+code=D___d_mrop" class="sref">33d_mrop <08"/a>,pvoid  op pppppppppppppppppppppitruct p 714t/a>t47HE_BYTES" class="sref">L1_CAd8t/a> op pppppppppppppppppppppidtiL/a>,pvoid  >> ,pvoid d_draun_smpL108"s/dca/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid _a>static struct  *    4 dent47e" nat p 74t/a4>tspa47   - da>,pvoid )",pvoid _clear_nee_a>s I&#" class="sref">d_clear_nee_a>s I&# <08struct p 75t/a>tspa  clas4s="co474 >  * If no anc4estor47spa  class="comment"> *   -/* p 77t/a>tspa 4 clas47>tspa  class="comment"> * dca Finish offdxis_buck reet/spvoms_ci_ase ogkommtass="line" namptiL16">p 16t/a>4L">p 58t/4"" idtiL18" class="line"4nlass47amptiL98">p 98t/a>tspa  clasi_m_buckidtiL_a>sta must behhel",drelines ref="it un_smpe"tass="line" namptiL16">p 16t/a>4L9" idtiL49">p 79t/a>tspa  class="4comme47="sref">D_HASHBITSt/a> op pta_Ifeampha hnon-zero,mtconms_cre> oph"comrefcount  ootass="line" namptiL16">p 16t/a>4Lline" na4L80">p 8a va>tspa  class4="com47lass="comment"> *   - the s_a Relines s_buck requiridtdrefcount mrop, ortNUL_At/sreet/sprommonotass="line" namptiL16">p 16t/a>4int  *   - d> _4_read481 href="fs/d/a>,pvoid inlass >="line" namptiL108">p108t/a> op ppppppppppppppppppppppp/a>,pvoid ekomm" idtiL129" clad8t/a>ekomm <08"="line" namptiL108">p108t/a> op ppppppppppppppppppppppp/a>,pvoid  op ppppppppppppppppppppp, intm/a>,pvoid sysctl_vf4s_cac48f="+code=D_HA/spa  v,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid _a>static sf="+code=dentry_stat" c4i class="4_in_smp" class="sref">__4cache48"srefef="fs/dcache.c#L118" id4f="+code=4DEFINE_SPINLOCK" class="4sref"484 >> p1cts:t" class="sref">" classpppppppppppppppppuncts:t" class="sref">" classpptruct DE4FINE_485lass="8" idt="line" namptiL108">p108t/a> op ppppppppppppppppppppppp/a>,pvoid EXPORT_SYMBOLt/a>(" classpppHBITSt/a>);" op pppppppppppppppppppppidtiL/a>,pvoid _a" classpptruct kmem_cachet4/a> *488="+code=D_HAt/spiL1 class="frefcts:t" class="sref">" classpppL123" idtiL!/spa  vd_drappp_smpL108"s/dca/a>,pvoid " classppidtiL/a>,pvoid ia>static s)ref="fs/dcache.c#L118" id4lass="sre4f">dentry_cachet/a> ,pvoid pp_smpass=:f="fs/dcache.c#L118" id4lofb_tccache.c/spa  vd_draun_smpL108"s/dca/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid _a>static struct  * This is t4he si49> >> ,pvoid cpu_relaxL108"struct p108t/a> op ppppppppppppppppppppp;t""comment"> * dcache_l/*euck again ref="s" c s_buck d> lofb_tt lofb_tt/spiL1 class="frefIS_ROOT op pppppppppppIS_ROOTL108"/a>,pvoid  op pppppppppppppppppppppi)  * This hash4-func495sref">lofb_tccache.c/spa  v,pvoid )"lofb_telset/a>>"lofb_tccache.c/spa  v,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid d_drappp_smpL108"s/dca/a>,pvoid ,pvoid _a>static s)ref="fs/dcache.c#L118" id4s="sref">4d_hash_shiftt/a>"nr_dentryt/a>t/spiL1 class="frefcts:t" class="sref">" classpp) "lofb_tccache.cccache.c/spa  vd_draun_smpL108"s/dca/a>,pvoid " classppidtiL/a>,pvoid ia>static struct  * This is t5_hash50> >> ,pvoid pp_smpass=truct ;50f="+code=D_HAt __read_mos5lyt/a50ne_aligned_in_smpt/a> hlis5_bl_h50="com">lofb_tt/spiL1 class="frefppppop ppppppppppppppppppif="+code=dentry_stat" c5=5" idtiL5_="comment"> * This hash5table505sref">lofb_tccache.c/spa  v op pppppppppppppppppppppidtiL/a>,pvoid d_countppppi-ref="+code=sum" class="s5e" class=5sref">inlinet/a> struct 5a hre506"com">lofb_t""comment"> * dcache_l/* hli5t_bl_headt/a> *p 98t/a>tspa  classsssssss*tt/ss_buck ras on "comp_lru nt" edelete"it frome"corotass="line" namptiL16">p 16t/a>5s9" idtiL5/dcache.c#L109" idtiL1095 clas50="sref">D_HASHBITSt/a> op ptssssssss*ttnform="comfs via >cprun= acatevp 16t/a>5s9" idtiL5/_hash_shiftt/a>" *   - the s_ssssssss* a href=""fs/dde="loyedtass="line" namptiL16">p 16t/a>5="sref">p5rentt/a> /p *t/spa  v  >> ,pvoid elrucprun= op ppppppppppp>",pvoid  op pppppppppppppppppppppitruct hasht/a> &5  * dcache_l/*et/sat was on "comhrefdtconmremovtsat *> p1151"sref">lofb_t"+code=size_t" __d_mrop" class="sref">33d_mrop <08"/a>,pvoid  op pppppppppppppppppppppitruct lofb_t="line" namptiL130">p10ekomm" idtiL129" clad_kommL508"/a>,pvoid  op ppppppppppppppppppppp, /a>,pvoid p116t/a>struc5 t dentry_statt/a> =p{vhli5ss="line" namptiL118">p158t/a>51amptiL98">p 98t/a>tspa  cla/*  p151="sref">D_HASHBITSt/a> op pta_TDEFINE_PER5CPUt/51lass="comment"> *   - the s_aL1a href="+code=dentry_stat" c5idtiL21" 5class="line" namptiL21">5/a>);52class="comment"> * dcache_lru T *t/spa  vsng&qeon anp href chain on "comunus="ppa href="+code=dentry_stat" c5a=hash" c533" class="line" namptiL53t" :sreet/spd much ra"corfjust get rid ofn"com ic#Ldiatolktass="line" namptiL16">p 16t/a>524" idtiL524" class="line" namptiL5iL12452   - d_flagst/spa  vp 16t/a>525" idtiL525" class="line" namptiL5/dcac52t;d_inode->i_lock protecrumHowevfr,"acateampli= h"catewe haveg ogtraverse="comppppppass="line" namptiL16">p 16t/a>525" idtiL5iL26" class="line" nampt5a hre52spa  class="comment"> *   -s* treomupwar_s  og"comparec#sewhich might _also_mtrweboass="line" namptiL16">p 16t/a>52" class=5dtiL27" class="line" nam5ppptspa  class="comment"> * dcacs 16dulfsefortdeletron (it may havegbeeneonlk waitref=forass="line" namptiL16">p 16t/a>52ref">hli5iL28" class="line" nampt5iL12352amptiL98">p 98t/a>tspa  clasi_i#se98tt child  oggo away)tass="line" namptiL16">p 16t/a>529" idtiL529" class="line" namptiL5" cla52mment"> * s_anon bl list sptaass="line" namptiL16">p 16t/a>5/uaccess.5h|include/asm-blackfin/u5130" 52lass="comment"> *   - the s_a Tp1353class="comment"> * dcache_lru on "com:ompilfr  ogalways get vp 16t/a>5"che.c#L25ass="sref">proc_nr_dentr5t/a>(53"> *t/spa  vp 16t/a>5="sref">c5l_tablet/a> * lenpt/5>,  *   - i_dputm- releas"dxis_buck  * dcac@d"hli5c#L38" idtiL38" class="l5ine" 53amptiL98">p 98t/a>tspa  clasiass="line" namptiL16">p 16t/a>5f9" idtiL59" idtiL39" class="line"5 namp53mment"> * s_anon bl list spinlReleas"dxis_buck.fass= wommesropd"comusagom:ount fs/dif_appropriatoass="line" namptiL16">p 16t/a>5fuaccess.5L40" idtiL40" class="lin5e" na53lass="comment"> *   - the s_ah: tl="compppppp uf="nk metho/d.sewetl=.seremovref=it frome"co queu= han"ppa href="+code=dentry_stat" c5dtiL41" c5lass="line" namptiL41">p5 41t/54class="comment"> * dcache_lcacreleasref=itseresources._Ifevp 42t/a5>" *t/spa  vp 16t/a>5""sref">c5fs/dcache.c#L44" idtiL445" cla54v lenpt/5s="comment"> * Usage:t/s5pa  v54"srefline" namptiL133">p1>putptiL90">p 90t/a>putL108"="line" namptiL108">p108t/a> op ppppppppppppppppppppppp/a>,pvoid  op pppppppppppppppppppppif="+code=dentry_stat" c5< href="f5a  class="comment"> * dc5ache-54="comef="fs/dcache.c#L118" id5de.c#L36"5ass="line" namptiL46">p 546t/a545="+code=D_HAt/sp!/spa  v op pppppppppppppppppppppif="+code=dentry_stat" c55p 47t546"com">lofb_tccache.c="linetruct p 48t/a>5tspa 54d_unh p 49t/a>tspa  cl5ass="54"lineiL1 class="frefpppess="sref">age_limpppessass=:f="fs/dcache.c#L118" id5duaccess.5ine" namptiL50">p 5a va>5tspa 549"sref">nr_det/sp/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid d_countpppp == 1if="+code=dentry_stat" c5" class="5line" namptiL51">p 51t/a5>tspa550sref">lofb_tccache.c/spa  vmight_sleepL108"struct p 52t/a>tspa  cl5ass="55> >> ,pvoid d_dra_smpL108"s/dca/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid _a>static struct p 535t/a>t55f="+code=D_HA/spa  vBUG_ONL108"!/spa  v op pppppppppppppppppppppidtiL/a>,pvoid d_countppppstruct lenpt/5 54t/a>tspa  class="comm5ent">55"sref">lofb_tt/sp/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid d_countpppp dtiL 1iref="fs/dcache.c#L118" id5<5t/a>tsp5a>tspa  class="comment">5 *   55="com">lofb_tccache.c/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid d_countppppi-ref="+code=sum" class="s5"e.c#L36"5>tspa  class="comment"> 5*   -555sref">lofb_tccache.c/spa  vd_draun_smpL108"s/dca/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid _a>static struct  *5   - 556"com">lofb_tccache.c="linetruct p 58t/5a>tspa  class="comment">5 *   557sref">lofb_tt tspa  class="comm5ent">55"lineruct p 6a va>tspa  c5lass=559"sref">nr_det/sp/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid p 561t/a560sref">lofb_tccache.ct/sp/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid d_op <08idtiL/a>,pvoid d_deleteL108"/a>,pvoid  op pppppppppppppppppppppi) p 62t/a>tspa  class="5comme56> >> ,pvoid komm_itass=truct  * Ordering:5t/spa56f="+code=D_HAt  *5 dent56ne_aligned_in_smpt/a> 5t/a>tsp5 namptiL65">p 65t/a>tspa5  cla564 >> p 98t/a>tspa  cla/* Unreineable? Get rid ofnat *> e.c#L36"5">p 66t/a>tspa  class="c5ommen565="+code=D_HAt/sp/a>,pvoid ,pvoid  op pppppppppppppppppppppi)f="+code=dentry_stat" c5>c#L27" i5lls.h" class="fref">linu5/  - 566"com">lofb_tccache.cgotom/a>,pvoid komm_itass=truct p 58t/5amptiL68">p 68t/a>tspa  5class56d_unh tspa  class="comme5nt"> 56"line" nampti="comment"> * dcache_l/* line" na5s="comment"> * If there 5is an56lass="comment"> *   - the s_ssssssss* Ifevp 715t/a>t57class="comment"> * dcache_l_ssssssss* a hmore ="kel>  ogbo cleanaseup by="comry_sta shr"+per"in cas"dofppf="fs/dcache.c#L11" idtiL11"5LnamptiL65 idtiL72" class="line" n5ampti57"> *t/spa  vp 16t/a>53t/a>tspa5  class="comment"> *    5 dent57v 5line" namptiL74">p 74t/a5>tspa57"sref">lofb_tt/sp!/spa  vs I&#" class="sref">d_nee_a>s I&# <08"/a>,pvoid  op pppppppppppppppppppppi)f="+code=dentry_stat" c535t/a>tsp5iL75">p 75t/a>tspa  clas5s="co57="com">lofb_tccache.c/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid  * If no anc5estor575lass="8" idtiL1 class="frefd",pvoid  op pppppppppppppppppppppitruct p 77t/a>tspa 5 clas57lls.ht/a>>"p 58t/5"" idtiL18" class="line"5nlass57class="8" idtiL1 class="fref08t/a> op pppppppppppppppppppppidtiL/a>,pvoid d_countppppi-ref="+code=sum" class="s5L9" idtiL59">p 79t/a>tspa  class="5comme578 >> ,pvoid d_draun_smpL108"s/dca/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid _a>static struct p 8a va>tspa  class5="com579"sref">nr_de="linetruct _5_read58"> *t/a>,pvoid komm_itass=:f="fs/dcache.c#L118" id5_pressure5" class="sref">sysctl_vf5s_cac58f="+code=D_HA/spa  v op pppppppppppppppppppppp= /a>,pvoid ekomm" idtiL129" clad8t/a>ekomm <08"/a>,pvoid  op ppppppppppppppppppppp, 1struct __5cache58"sref">lofb_tt/sp/a>,pvoid  op ppppppppppppppppppppp)f="+code=dentry_stat" c5f="+code=5DEFINE_SPINLOCK" class="5sref"58="com">lofb_tccache.cgotom/a>,pvoid age_limpppessass=truct DE5FINE_58ela >t EXPORT_SYMBOLt/a>(,pvoid putptiL90">p 90t/a>putL108struct p 58t/5lockt/a>);"kmem_cachet5/a> *58mment"> * s_anon bl list sp/** dentry_cachet/a>  *   - the s_nld_anvalidato - anvalidato xis_buck  *t/spa  v * This is t5he si59master of the icache - whene* p 16t/a>5f="fs/dca5che.c#L94" idtiL94" clas5s="li59   - d_flagst/spa  vp 16t/a>5f="+code=5iL95" class="line" nampt5iL95"59t;d_inode->i_lock protecrumreineed="croug="vp 16t/a>5fe.c#L36"5s="comment"> * This hash5-func59spa  class="comment"> *   - i_="line"-EBUSY. Onisuccess wom="line"0tass="line" namptiL16">p 16t/a>5sux/sysca5ache.c#L97" idtiL97" cla5ss="l59>tspa  class="comment"> * dcaass="line" namptiL16">p 16t/a>5s">p 58t/5.c#L98" idtiL98" class="5line"59amptiL98">p 98t/a>tspa  clas*mtryry_sta >statass="line" namptiL16">p 16t/a>5s_cache" 5a href="+code=D_HASHBITS5" cla59="sref">D_HASHBITSt/a> op pt*> 5d_hash_shiftt/a>"",pvoid _aanvalidato <08"="line" namptiL108">p108t/a> op ppppppppppppppppppppppp" namptiL108">p108t/a> op ppppppppppppppppppppp)f="+code=dentry_stat" c6s1="sref"6d="comment"> * This is t6_hash60 href26" idtiL126" class="lin6s2="sref"6dhe.c#L93" idtiL93" clas6t/a>;602 >>  * dcache_l/* __read_mos6lyt/a60   - d_flagst/spa  vp 16t/a>6=5" idtiL6_head" class="sref">hlis6_bl_h60t;d_inode->i_lock protecissssssss*>  * This hash6table605lass="8" idtiL1 class="frefd_dra_smp" class="sref">d_dra_smpL108"s/dca/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid _a>static struct inlinet/a> struct 6a hre606"com">lofb_tt/sp/a>,pvoid ,pvoid  op pppppppppppppppppppppi)ref="fs/dcache.c#L118" id6sref">hli6t_bl_headt/a> *lofb_tccache.c/spa  vd_draun_smpL108"s/dca/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid _a>static struct p1="line"0truct "nr_det p6rentt/a> /p * dcache_l/*  *t/spa  vhasht/a> &6 p 16t/a>6(4" idtiL6" class="line" namptiL116">p1161   - d_flagst/spa  v lofb_tt/sp!/spa  v op pppppppppppnt" cempt>L108"s/dca/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid p116t/a>struc6 lofb_tccache.c/spa  vd_draun_smpL108"s/dca/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid _a>static struct dentry_statt/a> =p{vlofb_tccache.c/spa  v,pvoid  op pppppppppppppppppppppitruct hli6ss="line" namptiL118">p168t/a>617sref">lofb_tccache.c/spa  vd_dra_smpL108"s/dca/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid _a>static struct p161"line" namptit DEFINE_PER6CPUt/61lass= 6/a>);620 >>  * dcache_l/*  *t/spa  v *   -sssssssss* ref="childrec (even "coug="sroppref=it tspa  class="comment"> * dcssssssss* re it makomit unreineable frome"co root, hli6iL28" class="line" nampt6iL12362amptiL98">p 98t/a>tspa  classsssssss* re might stommepopulatomit t/sat was a  * s_anon bl list sptssssssss* rerkref=directory ortsimilar)tass="line" namptiL16">p 16t/a>6/uaccess.6h|include/asm-blackfin/u6130" 62lass="comment"> *   - the s_ssssssss* We alsomnee_m ogleavegmountpoic#sealone, p1363class="comment"> * dcache_lrssssssss* directory ortnottass="line" namptiL16">p 16t/a>6"che.c#L26ass="sref">proc_nr_dentr6t/a>(63"> *t/spa  vc6l_tablet/a> *d_countpppp dtiL 1 L123" idtiLiL1 class="fref08t/a> op pppppppppppppppppppppidtiL/a>,pvoid _a" classpp)ref="fs/dcache.c#L118" id6f">lenpt/6>, lofb_tccache.ct/spiL1 class="frefS_ISDIR" class="sref">S_ISDIR <08"/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid _a" classppidtiL/a>,pvoid "7ms:tsspp)r||m/a>,pvoid _amountpoic#L108"/a>,pvoid  op pppppppppppppppppppppi)ref="fs/dcache.c#L118" id6f5" idtiL6/dcache.c#L27" idtiL27" 6la67463="com">lofb_tccache.c;> d_draun_smpL108"s/dca/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid _a>static struct lofb_tccache.ccccccccc="line"-/a>,pvoid )"lofb_tccache.ct hli6c#L38" idtiL38" class="l6ine" 637sref">lofb_tt nr_de href="+code=D___d_mrop" class="sref">33d_mrop <08"/a>,pvoid  op pppppppppppppppppppppitruct p6 41t/64HE_BYTES" class="sref">L1_CAd_draun_smp" class="sref">d_draun_smpL108"s/dca/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid _a>static struct p 42t/a6>" >> c6fs/dcache.c#L44" idtiL446" cla64e" nat lenpt/6s="comment"> * Usage:t/s6pa  v64   - da>,pvoid )",pvoid _anvalidato" class="sref">_aanvalidato <08struct  * dc6ache-644 > p 646t/a64spa  class="comment"> *   -/*fass= must beh: tlfseref="_a>sta hel"s*> 6p 47t646"comf="fs/d/a>,pvoid inlass >line" namptiL133">p133dget_d_smp" class="sref">33dget_d_smp <08"="line" namptiL108">p108t/a> op ppppppppppppppppppppppp namptiL108">p108t/a> op ppppppppppppppppppppp)f="+code=dentry_stat" c6d=i" clas6ine" namptiL48">p 48t/a>6tspa 64classef="fs/dcache.c#L118" id6d9" idtiL6ptiL49">p 49t/a>tspa  cl6ass="648 >> ,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid d_countpppp++truct p 5a va>6tspa 649"sret p 51t/a6>tspa65spa  ruct p 52t/a>tspa  cl6ass="651 href="fs/d/a>,pvoid inlass >line" namptiL133">p133dget" class="sref">33dget <08"="line" namptiL108">p108t/a> op ppppppppppppppppppppppp namptiL108">p108t/a> op ppppppppppppppppppppp)f="+code=dentry_stat" c6p 536t/a>t65f="+cef="fs/dcache.c#L118" id6<">lenpt/6 54t/a>tspa  class="comm6ent">65"sref">lofb_t"+code=size_t" d_dra_smp" class="sref">d_dra_smpL108"s/dca/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid _a>static struct 6 *   65="com">lofb_t namptiL133">p133dget_d_smp" class="sref">33dget_d_smp <08"/a>,pvoid  op pppppppppppppppppppppitruct tspa  class="comment"> 6*   -655lass="8" idtiL1 class="frefd_draun_smp" class="sref">d_draun_smpL108"s/dca/a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid _a>static struct  *6   - 656ash"t p 58t/6a>tspa  class="comment">6 *   65d_unh tspa  class="comm6ent">65"line="line" namptiL108">p108t/a> op ppppppppppppppppppppppp namptiL108">p10get_parec# op ppppppppppp0get_parec# <08"="line" namptiL108">p108t/a> op ppppppppppppppppppppppp namptiL108">p108t/a> op ppppppppppppppppppppp)f="+code=dentry_stat" c6p 6a va>tspa  c6lass=659"sreef="fs/dcache.c#L118" id6tiL61" cl6ass="line" namptiL61">p 661t/a660sref">lofb_t="line" namptiL108">p108t/a> op ppppppppppppppppppppppp namptiL108">p1ret" class="sref">resass=truct p 62t/a>tspa  class="6comme66> >ruct  * Ordering:6t/spa66vp1repess="sref">age_limpppessass=:f="fs/dcache.c#L118" id6>p 64t/a>6tspa  class="comment"> *6 dent66"sref">lofb_t""comment"> * dcache_l/* 5t/a>tsp6 namptiL65">p 65t/a>tspa6  cla66t;d_inode->i_lock protecrrrrrrrrr* Donet/sp#enee_mrcu_dereferencf because wom="-ctackeat was correct under e.c#L36"6">p 66t/a>tspa  class="c6ommen66spa  class="comment"> *   - rrrrrrrr* tta >statass="line" namptiL16">p 16t/a>6>c#L27" i6lls.h" class="fref">linu6/  - 66>tspa  class="comment"> * dcssssssss*> p 58t/6amptiL68">p 68t/a>tspa  6class66class="8" idtiL1 class="frefrcu_reid7_smp" class="sref">rcu_reid7_smp <08"struct tspa  class="comme6nt"> 668 >> ,pvoid resass= = /a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid  * If there 6is an669"sref">nr_de href="+code=D_d_dra_smp" class="sref">d_dra_smpL108"s/dca/a>,pvoid resass=idtiL/a>,pvoid _a>static struct p 716t/a>t67HE_BYTES" clat/spiL1 class="frefuf="kel>" class="sref">uf="kel> <08"/a>,pvoid resass= != /a>,pvoid  op pppppppppppppppppppppidtiL/a>,pvoid  >> ,pvoid d_draun_smpL108"s/dca/a>,pvoid resass=idtiL/a>,pvoid _a>static struct  *    6 dent672 >> rcu_reid7un_smp <08"struct p 74t/a6>tspa67"sref">lofb_tccache.cgotom/a>,pvoid age_limpppessass=truct p 75t/a>tspa  clas6s="co67="com">lofb_tt  * If no anc6estor675lass="8" idtiL1 class="frefrcu_reid7un_smp" class="sref">rcu_reid7un_smp <08"struct p 77t/a>tspa 6 clas676lass="8" idtiL1 class="frefBUG_ON" class="sref">BUG_ONL108"!/spa  vresass=idtiL/a>,pvoid d_countppppstruct p 58t/6"" idtiL18" class="line"6nlass67class="8" idtiL1 class="frefret" class="sref">resass=idtiL/a>,pvoid d_countpppp++truct p 79t/a>tspa  class="6comme678 >> ,pvoid d_draun_smpL108"s/dca/a>,pvoid resass=idtiL/a>,pvoid _a>static struct p 8a va>tspa  class6="com679"sref">nr_de="linetiL1 class="frefret" class="sref">resass=truct _6_read68"> *t/a>,pvoid )",pvoid get_parec# op ppppppppppp0get_parec# <08struct sysctl_vf6s_cac68f="+cruct __6cache68   - d_flagst/spa  vDE6FINE_68spa  class="comment"> *   - i_@a cla:na cla"in questronssa href="+code=dentry_stat" c6fc#L27" i6">EXPORT_SYMBOLt/a>( * dcac@want_discon: ef6" , us=" bymd_splice_alias, ao requestssa href="+code=dentry_stat" c6f">p 58t/6lockt/a>);"p 98t/a>tspa  clas*mmmmmmmmmm"cateonlk a DISCONNECTED"flias bom="lineedtass="line" namptiL16">p 16t/a>6m_cache" 6class="sref">kmem_cachet6/a> *68mment"> * s_anon bl list sps* dentry_cachet/a>  *   - the s_nlIfna cla hre a href=""flias, ortis a directory fs/dhre any"flias,  *t/spa  vp 16t/a>6 * This is t6he si69master of the icache - whene* Notic= acateifna cla is a directory vp 16t/a>6p 16t/a>6

6che.c#L94" idtiL94" clas6s="li69 - d_flagst/spa vp 16t/a>6<="+code=6iL95" class="line" nampt6iL95"69t;d_inode->i_lock protecruass="line" namptiL16">p 16t/a>6 * This hash6-func69spa class="comment"> * - i_Ifevp 16t/a>6 * dca any"o"corfhref=""flias ovorf cateono a less @want_discon a hset, p 58t/6.c#L98" idtiL98" class="6line"69amptiL98">p 98t/a>tspa clas*min rhich cas"donlk ="line"an IS_ROOT, Lef="+cDISCONNECTED"fliastass="line" namptiL16">p 16t/a>6<_cache" 6a href="+code=D_HASHBITS6" cla69="sref">D_HASHBITSt/a> op pt*> 6d_hash_shiftt/a>"p108t/a> op ppppppppppppppppppppppp namptiL108">p133d_find_alias" class="sref">33d_find_alias <08"="line" namptiL108">p1cts:t" class="sref">" classpppppppppppppppppuncts:t" class="sref">" classpp, intm/a>,pvoid want_disconpppp)f="+code=dentry_stat" c7ss="sref"7d_hash_maskt/a>" * This is t7_hash70> >> p108t/a> op ppppppppppppppppppppppp namptiL108">p1alias" class="sref">alias <08,pp namptiL108">p10iscon_alias" class="sref">0iscon_aliasass=truct ;702 >> p1hnt" cts:t" class="sref">hnt" cts:tpppppp namptiL108">p1p" class="sref">pass=truct hlis7_bl_h70t;d_innamptiL108">p1again" class="sref">againass=:f="fs/dcache.c#L118" id7=5" idtiL7_="comment"> * This hash7table705lass="8" idtiL1 class="fref0iscon_alias" class="sref">0iscon_aliasass= = /a>,pvoid )"inlinet/a> struct 7a hre706lass="8" idtiL1 class="frefhnt" cfor_eine_8t/a> op ppppppppppphnt" cfor_eine_8t/a>L108"/a>,pvoid alias <08,p namptiL108">p1p" class="sref">pass=, s/dca/a>,pvoid " classppidtiL/a>,pvoid op pppppppppppi708t/a> <08,p namptiL108">p1d_alias" class="sref">d_alias <08)ref="fs/dcache.c#L118" id7sref">hli7t_bl_headt/a> *lofb_tccache.c/spa vd_dra_smpL108"s/dca/a>,pvoid alias <08idtiL/a>,pvoid _a>static struct p1t/spiL1 class="frefS_ISDIR" class="sref">S_ISDIR <08"/a>,pvoid " classppidtiL/a>,pvoid "7ms:tsspp)r||m!/spa v,pvoid alias <08i)ref="fs/dcache.c#L118" id7s9" idtiL7/_hash_shiftt/a>"nr_de" namptiL109">p1t/spiL1 class="frefIS_ROOT" class="sref">IS_ROOTL108"/a>,pvoid alias <08i L123" idtif="fs/dcache.c#L118" id7="sref">p7rentt/a> /plofb_tccache.cccache.ccccc"/a>,pvoid alias <08idtiL/a>,pvoid >> 0iscon_aliasass= = /a>,pvoid alias <08if="fs/dcache.c#L118" id7=2="sref"7ass="sref">hasht/a> &7 want_disconpppp)ref="fs/dcache.c#L118" id7(3="sref"7" class="line" namptiL117">p1171"sref">lofb_tccache.ctttttttt="8" idtiL1 class="fref33dget_d_smp" class="sref">33dget_d_smp <08"/a>,pvoid alias <08iif="fs/dcache.c#L118" id7=5" idtiL7athering. */t/spa vlofb_tccache.ctttttttt="8" idtiL1 class="frefd_draun_smp" class="sref">d_draun_smpL108"s/dca/a>,pvoid alias <08idtiL/a>,pvoid _a>static struct p116t/a>struc7 lofb_tccache.ccccccccccccccccc="linetiL1 class="frefalias" class="sref">alias <08if="fs/dcache.c#L118" id7=" class=7>dentry_statt/a> =p{vlofb_tccache.ctttttttt}f="fs/dcache.c#L118" id7=ref">hli7ss="line" namptiL118">p178t/a>717sref">lofb_tccache.c}f="fs/dcache.c#L118" id7=9" idtiL70" class="line" namptiL170">p171"line" namptiL109">p1iL1 class="frefd_draun_smp" class="sref">d_draun_smpL108"s/dca/a>,pvoid alias <08idtiL/a>,pvoid _a>static struct DEFINE_PER7CPUt/719"sref">nr_det 7/a>);72HE_BYTES" clat/spiL1 class="fref0iscon_alias" class="sref">0iscon_aliasass=)ref="fs/dcache.c#L118" id7ache.c#L272" idtiL22" class="line"7+code72> >> ,pvoid alias <08 = /a>,pvoid 0iscon_aliasass=truct d_dra_smpL108"s/dca/a>,pvoid alias <08idtiL/a>,pvoid _a>static struct lofb_tccache.ct/spiL1 class="frefS_ISDIR" class="sref">S_ISDIR <08"/a>,pvoid " classppidtiL/a>,pvoid "7ms:tsspp)r||m!/spa v,pvoid alias <08i)ref="fs/dcache.c#L118" id725" idtiL725" class="line" namptiL7/dcac72="com">lofb_tccache.cttttttttt/spiL1 class="frefIS_ROOT" class="sref">IS_ROOTL108"/a>,pvoid alias <08i L123" idtif="fs/dcache.c#L118" id725" idtiL7iL26" class="line" nampt7a hre725sref">lofb_tccache.ccccccccccccc"/a>,pvoid alias <08idtiL/a>,pvoid lofb_tccache.ctttttttt="8" idtiL1 class="fref33dget_d_smp" class="sref">33dget_d_smp <08"/a>,pvoid alias <08iif="fs/dcache.c#L118" id72ref">hli7iL28" class="line" nampt7iL123727sref">lofb_tccache.c;> d_draun_smpL108"s/dca/a>,pvoid alias <08idtiL/a>,pvoid _a>static struct p11111111111111111="linetiL1 class="frefalias" class="sref">alias <08if="fs/dcache.c#L118" id7/uaccess.7h|include/asm-blackfin/u7130" 729"sref">nr_de" namptiL109">p1t p13730sref">lofb_tccache.ct proc_nr_dentr7t/a>(73> >> ,pvoid d_draun_smpL108"s/dca/a>,pvoid alias <08idtiL/a>,pvoid _a>static struct c7l_tablet/a> *,pvoid againass=truct , lofb_tt lofb_t="linetiL1 class="frefNUL_PROC_FSt/a>)"t hli7c#L38" idtiL38" class="l7ine" 737sref="line" namptiL108">p108t/a> op ppppppppppppppppppppppp namptiL108">p10_find_alias" class="sref">d_find_alias <08"="line" namptiL108">p1cts:t" class="sref">" classpppppppppppppppppuncts:t" class="sref">" classpp)f="+code=dentry_stat" c7f9" idtiL79" idtiL39" class="line"7 namp73"lineef="fs/dcache.c#L118" id7fuaccess.7L40" idtiL40" class="lin7e" na739"sref">nr_de="line" namptiL108">p108t/a> op ppppppppppppppppppppppp namptiL108">p108 op pppppppppppppass= = /a>,pvoid )"p7 41t/74spa ruct p 42t/a7>" >> op ppppppppppphnt" cempt>L108"s/dca/a>,pvoid " classppidtiL/a>,pvoid op pppppppppppi708t/a> <08i)ref="fs/dcache.c#L118" id7""sref">c7fs/dcache.c#L44" idtiL447" cla742 >> d_dra_smpL108"s/dca/a>,pvoid " classppidtiL/a>,pvoid ia>static struct lenpt/7s="comment"> * Usage:t/s7pa v74"sref">lofb_tccache.c namptiL108">p108 op pppppppppppppass= = /a>,pvoid 33d_find_alias <08"pppppppppppppuncts:t" class="sref">" classpp, 0struct * dc7ache-74="com">lofb_tccache.c/a>,pvoid d_draun_smpL108"s/dca/a>,pvoid " classppidtiL/a>,pvoid ia>static struct p 746t/a745="+code=D_HAt 7p 47t746"com">lofb_t="linetiL1 class="fref08 op pppppppppppppass=truct hli7ine" namptiL48">p 48t/a>7tspa 74classt p 49t/a>tspa cl7ass="74"lineiL1 class="frefEXPORT_SYMBO_PROC_FSt/a>)",pvoid _find_alias" class="sref">d_find_alias <08struct p 5a va>7tspa 74lass= p 51t/a7>tspa75lass="comment"> *t/spa vp 52t/a>tspa cl7ass="75master of the icache - whene* Tck ao kommfdepppi= h icociatfseref="vp 16t/a>7p 537t/a>t75vp 16t/a>7<">lenpt/7 54t/a>tspa class="comm7ent">75 - d_flagst/spa vtsp7a>tspa class="comment">7 * 75="comline" namptiL133">p1d_prune_aliases" class="sref">d_prune_aliases <08"="line" namptiL108">p1cts:t" class="sref">" classpppppppppppppppppuncts:t" class="sref">" classpp)f="+code=dentry_stat" c7"e.c#L36"7>tspa class="comment"> 7* -755lassef="fs/dcache.c#L118" id7 *7 - 756"com">lofb_t="line" namptiL108">p108t/a> op ppppppppppppppppppppppp namptiL108">p108t/a> op ppppppppppppppppppppptruct p 58t/7a>tspa class="comment">7 * 757sref">lofb_t="line" namptiL108">p1hnt" cts:t" class="sref">hnt" cts:tpppppp namptiL108">p1p" class="sref">pass=truct tspa class="comm7ent">75"lineiL1 class="frefrestart" class="sref">restartline:f="fs/dcache.c#L118" id7p 6a va>tspa c7lass=759"sref">nr_de href="+code=D_d_dra_smp" class="sref">d_dra_smpL108"s/dca/a>,pvoid " classppidtiL/a>,pvoid ia>static struct p 761t/a76HE_BYTES" class="sref">L1_CAhnt" cfor_eine_8t/a> op ppppppppppphnt" cfor_eine_8t/a>L108"/a>,pvoid op ppppppppppppppppppppp, namptiL108">p1p" class="sref">pass=, s/dca/a>,pvoid " classppidtiL/a>,pvoid op pppppppppppi708t/a> <08,p namptiL108">p1d_alias" class="sref">d_alias <08)ref="fs/dcache.c#L118" id7t class="72">p 62t/a>tspa class="7comme76> >> d_dra_smpL108"s/dca/a>,pvoid op pppppppppppppppppppppidtiL/a>,pvoid _a>static struct * Ordering:7t/spa762 >> op pppppppppppppppppppppidtiL/a>,pvoid d_countpppp)ref="fs/dcache.c#L118" id7t">lenpt/7tspa class="comment"> *7 dent76"sref">lofb_tccache.cttttttttiL1 class="fref33dget_d_smp" class="sref">33dget_d_smp <08"/a>,pvoid op pppppppppppppppppppppitruct p 65t/a>tspa7 cla76="com">lofb_tccache.ctttttttt/a>,pvoid 33d_mrop <08"/a>,pvoid op pppppppppppppppppppppitruct p 66t/a>tspa class="c7ommen765sref">lofb_tccache.ccccccccc/a>,pvoid d_draun_smpL108"s/dca/a>,pvoid op pppppppppppppppppppppidtiL/a>,pvoid _a>static struct linu7/ - 766"com">lofb_tccache.ccccccccc/a>,pvoid d_draun_smpL108"s/dca/a>,pvoid " classppidtiL/a>,pvoid ia>static struct p 58t/7amptiL68">p 68t/a>tspa 7class767sref">lofb_tccache.c;> ,pvoid p 90t/a>putL108"/a>,pvoid op pppppppppppppppppppppitruct tspa class="comme7nt"> 76"line" namptiL109">p111111111gotom/a>,pvoid restartlinetruct * If there 7is an769"sref">nr_de" namptit p 717t/a>t770sref">lofb_tccache.c/a>,pvoid d_draun_smpL108"s/dca/a>,pvoid op pppppppppppppppppppppidtiL/a>,pvoid _a>static struct >> * 7 dent77f="+code=D_HA/spa vd_draun_smpL108"s/dca/a>,pvoid " classppidtiL/a>,pvoid ia>static struct p 74t/a7>tspa77"sreft p 75t/a>tspa clas7s="co77t;d_innamptiL108">p1EXPORT_SYMBO_PROC_FSt/a>)",pvoid _prune_aliases" class="sref">d_prune_aliases <08struct * If no anc7estor775lassruct p 77t/a>tspa 7 clas77>tspa class="comment"> * d/* p 58t/7"" idtiL18" class="line"7nlass77amptiL98">p 98t/a>tspa clas*mTck ao "crow away xis_buck - freeevputevp 16t/a>7L9" idtiL79">p 79t/a>tspa class="7comme77="sref">D_HASHBITSt/a> op pt* Requiresis_buckidtiL_a>sta is hel", andes_buckidtiL_acount =="0tass="line" namptiL16">p 16t/a>7Lline" na7L80">p 8a va>tspa class7="com77lass="comment"> * - the s_nlReleasesis_buckidtiL_a>statass="line" namptiL16">p 16t/a>7int *t/spa vp 16t/a>7inamptiL67d_mostly" class="sref">_7_read78master of the icache - whene* ass= may failtt/s>stase: nnot behacquired no"problem, just uck againtass="line" namptiL16">p 16t/a>7ia href="7" class="sref">sysctl_vf7s_cac78v 7_in_smp" class="sref">__7cache78 - f="fs/dline" namptiL133">p1/a>eprune_one_08t/a> op ppppppppppp/a>eprune_one_08t/a> <08"="line" namptiL108">p108t/a> op ppppppppppppppppppppppp namptiL108">p108t/a> op ppppppppppppppppppppp)f="+code=dentry_stat" c7f="+code=7DEFINE_SPINLOCK" class="7sref"78="com">lofb_t/a>,pvoid 33releasesL108"/a>,pvoid op pppppppppppppppppppppidtiL/a>,pvoid _a>static sf="+code=dentry_stat" c7fe.c#L36"7SEQLOCK" class="sref">DE7FINE_785lassef="fs/dcache.c#L118" id7fc#L27" i7">EXPORT_SYMBOLt/a>(lofb_t="line" namptiL108">p108t/a> op ppppppppppppppppppppppp namptiL108">p1parec# op pppppppppppparec#pppptruct p 58t/7lockt/a>);"kmem_cachet7/a> *788 >> ,pvoid ,pvoid _komm op ppppppppppppppppp_kommL108"/a>,pvoid op ppppppppppppppppppppp, 0struct dentry_cachet/a> nr_de class="comment"> * d/* *t/spa vp 16t/a>7 * This is t7he si79master of the icache - whene i_i/sat ="lines"vstasefailed. In ei"corass="line" namptiL16">p 16t/a>7p 16t/a>7

7che.c#L94" idtiL94" clas7s="li79 - d_flagst/spa vp 16t/a>7<="+code=7iL95" class="line" nampt7iL95"79t;d_inode->i_lock protecr i_O"corwiso, womnee_m ogprune ancestors"voo. ass= s= necessapppps="line" namptiL16">p 16t/a>7 * This hash7-func79spa class="comment"> * - i_ ogprevent quadr"fs/dbehaviormofnshr"+p_ry_sta7parec#(), butass="line" namptiL16">p 16t/a>7 * dc i_is alsomexpecte_m ogbf beneficial in ="ducref=d_buck >p 16ass="line" namptiL16">p 16t/a>7<">p 58t/7.c#L98" idtiL98" class="7line"79amptiL98">p 98t/a>tspa clas i_fraga catrontass="line" namptiL16">p 16t/a>7<_cache" 7a href="+code=D_HASHBITS7" cla79="sref">D_HASHBITSt/a> op pt i> 7d_hash_shiftt/a>"nr_det/sp!/spa v"lofb_tccache.c="linetruct * This is t8_hash80> >> ,pvoid ,pvoid op pppppppppppppppppppppsf="+code=dentry_stat" c8s2="sref"8dhe.c#L93" idtiL93" clas8t/a>;802 >> hlis8_bl_h804"sref">nr_de class="comment"> * d/* Prune ancestors. i> * This hash8table805lass="8" idtiL1 class="fref08t/a> op pppppppppppppppppppppp= /a>,pvoid inlinet/a> struct 8a hre806lass="8" idtwhilespiL1 class="fref08t/a> op ppppppppppppppppppppp)ref="fs/dcache.c#L118" id8sref">hli8t_bl_headt/a> *lofb_tccache.c/spa vd_dra_smpL108"s/dca/a>,pvoid op pppppppppppppppppppppidtiL/a>,pvoid _a>static struct p1t/spiL1 class="fref08t/a> op pppppppppppppppppppppidtiL/a>,pvoid d_countpppp dtiL 1)ref="fs/dcache.c#L118" id8s9" idtiL8/_hash_shiftt/a>"nr_de" namptiL109">p1iL1 class="fref08t/a> op pppppppppppppppppppppidtiL/a>,pvoid d_countpppp--truct p8rentt/a> /plofb_tccache.cccache.c/a>,pvoid d_draun_smpL108"s/dca/a>,pvoid op pppppppppppppppppppppidtiL/a>,pvoid _a>static struct >> hasht/a> &8 p1181"sref">lofb_tccache.ciL1 class="fref08t/a> op pppppppppppppppppppppp= /a>,pvoid _komm op ppppppppppppppppp_kommL108"/a>,pvoid op ppppppppppppppppppppp, 1struct lofb_tt p116t/a>struc8 t dentry_statt/a> =p{vhli8ss="line" namptiL118">p188t/a>817 - f="fs/dline" namptiL133">p1shr"+p_rppppp_nt" " class="sref">dhr"+p_rppppp_nt" <08"="line" namptiL108">p1nt" chea"href="+code=parnt" chea"pppppp namptiL108">p1nt" " class="sref">nt" <08sf="+code=dentry_stat" c8=9" idtiL80" class="line" namptiL180">p181"lineef="fs/dcache.c#L118" id8"9" idtiL8 class="sref">DEFINE_PER8CPUt/819"sref">nr_de="line" namptiL108">p108t/a> op ppppppppppppppppppppppp namptiL108">p108t/a> op ppppppppppppppppppppptruct 8/a>);82spa ruct >> ,pvoid rcu_reid7_smp <08"struct lofb_tccache.ciL1 class="fref08t/a> op pppppppppppppppppppppp= /a>,pvoid ,pvoid nt" <08idtiL/a>,pvoid p108t/a> op ppppppppppppppppppppp,p namptiL108">p1d_lruhref="+code=pard_lrutic struct lofb_tccache.ct/sps/dca/a>,pvoid op pppppppppppppppppppppidtiL/a>,pvoid nt" <08sf="+code=dentry_stat" c825" idtiL8iL26" class="line" nampt8a hre825sref">lofb_tccache.cccccccccbreik;e class="comment"> * d/* empt> i> lofb_tccache.c/spa vd_dra_smpL108"s/dca/a>,pvoid op pppppppppppppppppppppidtiL/a>,pvoid _a>static struct hli8iL28" class="line" nampt8iL123827sref">lofb_tccache.ct/spiL1 class="fref08t/a> op ppppppppppppppppppppp != /a>,pvoid ,pvoid nt" <08idtiL/a>,pvoid p108t/a> op ppppppppppppppppppppp,p namptiL108">p1d_lruhref="+code=pard_lrutic s)ref="fs/dcache.c#L118" id8a9" idtiL829" class="line" namptiL8" cla82"line" namptiL109">p111111111/a>,pvoid d_draun_smpL108"s/dca/a>,pvoid op pppppppppppppppppppppidtiL/a>,pvoid _a>static struct nr_de" namptiL109">p1continuetruct p13830sref">lofb_tccache.ct proc_nr_dentr8t/a>(83> >ruct c8l_tablet/a> * * d/* , * - * it - just keep it off vp 16t/a>8ac#L27" i8che.c#L37" idtiL37" clas8s="li83>tspa class="comment"> * dc *> hli8c#L38" idtiL38" class="l8ine" 837sref">lofb_tccache.ct/spiL1 class="fref08t/a> op pppppppppppppppppppppidtiL/a>,pvoid d_countpppp)ref="fs/dcache.c#L118" id8f9" idtiL89" idtiL39" class="line"8 namp83"line" namptiL109">p111111111/a>,pvoid ,pvoid op pppppppppppppppppppppstruct nr_de" namptiL109">p1iL1 class="frefd_draun_smp" class="sref">d_draun_smpL108"s/dca/a>,pvoid op pppppppppppppppppppppidtiL/a>,pvoid _a>static struct p8 41t/840sref">lofb_tccache.cccache.ccontinuetruct p 42t/a8>" >> >ruct c8c7fs/dcache.c#L44" idtiL8;> lofb_tccache.c n8mptiL808">p108 op pppppppppppppass= = /a>,pcu_reid7un_smp <08"struct p 77t/a>t8 dc7ache-84="com">lofb_tccache.c/a8,pvoi8 p 77t/a>t8 n8ampti845="+code=D_HAt p108t/a> oppppppppppppppppstruct 7p 47t846"com">lofb_t="linetiL18class84ef">hli8ss="line" namptiL118"/a>7tspa 84classt d_dra_s_reid7_smp <08"struct c8c7fs/dcache.c#L44" idtin8e" na84lass= d_dra_scu_reid7un_smp <08"struct p 77t/a>t8t/a7>tspa85lass="comment"> *t/spa 8vc8l_tablet/a> *t85v85 - d_flagst/spa vdt/a>7<">p 58t/7.c#L98" idtiL98" cla8t">7 * 85="comline" namptiL133">81d_pr85_find_alias - grab a href=""fl@sb: superbkme63c>p 58t/7.c#L98" idtiL98" cla8t n8ampti855lassef="fs/dcache.c#L188" id85a cla:na cla"in questronssa hre" id8: numbetass=elatass=lofb_t="line" na8ptiL185ny"o"corfhref=""flias ovorf c=5" idtiL8 idtiL36" class="line>a>7tspa 857sref">lofb_t="line" na8ptiL185ck ao "crow away xis_buck - frAttstatvsuperbkme6>dt/a>7=lookuyre" id8=elatassamptiL16"=5" idtiL8 idtiL36" class="line>cl7ass="85"lineiL1 class="frefres8art" 85equiresis_buckidtiL_a>sta is hd p 1 ass= s=">p 1mry_+code calltat" c8L16">superbkme6>nampti>7nr_de href="+co8e=D_d85eleasesis_buckidtiL_a>statass=funct/a>7<_cache" 7a href="+code=D_HASH8>p 761t/a86HE_BYTES" class="sref">81_CAh86s="line" namptiL16">p 16t/a>7inamptiL67d_mostly" class="sre8s="7comme86> >> delatass=arine"inamptiL67d_mostly" class="sre8s537t/a>t862 >> 86"sref">lofb_tccache.ctt8ttttt86tsp7a>tspa class="comme8spa7 cla86="com">lofb_tccache.ctt8ttttt86e_aliases" class="sref">dcessa namptiLsb" namptiL108">p10ssa namptiLsbchea"href="+code=parnt" chesuper_b108"s/dca/a>,pvoid psbchean" class="sref">want_)ref="fs/dcache.c#L1" id8f9" isp7a>tspa class="comme8s n8ampti865sref">lofb_tccache.ccc8ccccc86c#L27" i7">EXPORT_SYMBOLt/a>(8inu7/ - 866"com">lofb_tccache.ccc8ccccc86">p108t/a> op ppppppppppppppppppppppp namptiL108">p108t/a> op ppppppppppppppppppppptruct p 58t/7a>tspa class="comme8a 7class867sref">lofb_tccache.c;&8t; rcuLIST_HEACTED <08i)ref="fLIST_HEACa> opppppppppppppppprmptiL16" namptiL108">p1nrmptiL16" uaccess.8L40" idtiL40" class="mme7nt"> 86"line" namptiL109">p1118111118t" class="sref">resass= = /a>LIST_HEACTED <08i)ref="fLIST_HEACa> opppppppppppppppptm>,pvoid uaccess.8L40" idtiL40" class="m c7lass=869"sref">nr_de" namptit 8a hre86class="7line" namptiL51">p 58 717t/a>t870sref">lofb_tccache.c/a8,pvoi8 p 6a va>tsp8" n7ampti87> >> rcumpL108"s/dca/a>,pvoid op pppppppppppppppppppppiamptiLa> oruct L108"s/dca/a>,pvoid a hrcts:t" class="sref">" classppidsb" namptiL108">psbcheass="sref">_a>static s_ hrd8t/a> " namptiL108">ps_ hrd8t/a> 8a9" idtiL829" class="line" nampt/a7>tspa87"sreft ,pvoid ,pvoid nt" <08idtisb" namptiL108">psbcheass="sref">_a>static s_ hrd8t/a> " namptiL108">ps_ hrd8t/a> 8a9".pppprevpppp, ="line" namptiL108">p108t/a> oiL829" class="line" namptpa7 cla87t;d_innamptiL108">p1EXP8RT_SY87>,pvoid op ppppppppppppppppppppppp namptiL108">p108t/a> op ppppde=pard_lrutic struct op ppppppp"!/spa v_a>static stsb" namptiL108">pdLsbcheaef="+code=parnt" cesb" namptiL108">psbcheadtiL825" class="line" nampanu7/ - 87>tspa class="comment">8* d/*87ef">hli8ss="line" namptiL118"ne"7nlass87amptiL98">p 98t/a>tspa 8clas*87ass="fref08t/a> op ppppppppppppparec#pppp hr08line" ndca/a>,pvoid ,pvoid _a>static struct 87="sref">D_HASHBITSt/a> 8p pt*87>,pvoid d_draun_smpL108"s/dca/a>,pvoid op pppppppppppppppppppppiamptiLa> oruct * - t8e s_n871 class="frefd_draun_smp" class="sref">d_dracpf="+lax"fs/dcache.c#L1"pf="+lax3c#L27" i6namptiL77">p 77t/a>t8cac7he_pr88lass="comment"> *t/spa 8vrestartlinesmp <08"struct p 77t/a>t8c n7ampti88master of the icache - 8hene*88ct c8c7fs/dcache.c#L44" id_vf7s_cac88v6_in_smp" class="sref8>__7cache88 - f="fs/dline" nampt8L133"88ass="frefS_ISDIR" class="sref">S_ISDIR ,pvoid _a>static stfs/dcache.c#L114" idtiLef="+cDISCONNECTED op pppppppppppLef=REFERENCECTED <08i)ref="fs/dcachREFERENCECf9" idtiL89" idtiL39" class="lis="7sref"88="com">lofb_t/a>,pvoid 8a hr388>,pvoid S_ISDIR ,pvoid _a>static stfs/dcache.c#L114" idtiLef="+cDISCONNE= ~TED op pppppppppppLef=REFERENCECTED <08i)ref="fs/dcachREFERENCECf9" " i6namptiL77">p 77t/a>t8cnc7estor885lassef="fs/dcache.c#L188" id88>,pvoid d_drat" " y_sta>,pvoid ,pvoid _a>static strt " classppidrmptiL16" namptiL108">p1nrmptiL16" uaccess.8L40" idtiL40" class="a h7ref="886"com">lofb_t="line" na8ptiL188>,pvoid d_draun_smpL108"s/dca/a>,pvoid " classppididtiL/a>,pvoid _a>static struct 888 >> ,pvoid 8a hrp88>,pvoid d_drat" " y_st_tai108"/a>,pvoid ,pvoid _a>static strt " classppidtm>,pvoid uaccess.8L40" idtiL40" class="a h7ref="889"sref">nr_de class="c8mment881 class="frefd_draun_smp" class="sref">d_draidtiL/a>,pvoid _a>static stfs/dcache.c#L114" idtiLef="+cDIS|="+code=parnt" ces/dcachSHRINK_LISTTED <08i)ref="fs/dcachSHRINK_LISTf9" " i6namptiL77">p 77t/a>t8L927" cla89lass="comment"> *t/spa 8v,pvoid d_draun_smpL108"s/dca/a>,pvoid op pppppppppppppppppppppidtiL/a>,pvoid _a>static struct want_)ref="fs/dcache.c#L1" id8f9" isp7a>tspa class="comme8las7s="li89vsp7a>tspa class="comme8l__7cache89 - d_flagst/spa vc8c7fs/dcache.c#L44" idmpt7iL95"89t;d_inode->i_lock pr8tecr 89d_dracond="+s#L4struct oruct *8 - 89roc_nr78* dc 89>,pvoid L108"s/dca/a>,pvoid a hrcts:t" class="sref">" classppidrmptiL16" namptiL108">p1nrmptiL16" uacceisp7a>tspa class="comme8l/d7cache89amptiL98">p 98t/a>tspa 8clas 89href=d_dra_smp" class="sref">d_dra_sa hrcsplicta>,pvoid " classppidrmptiL16" namptiL108">p1nrmptiL16" uaccass="sref">" classppidsb" namptiL108">psbcheass="sref">_a>static s_ hrd8t/a> " namptiL108">ps_ hrd8t/a> 8a9" ss.8L40" idtiL40" class="ame7nt"> 89="sref">D_HASHBITSt/a> 8p pt 89" class="sref">resass= = /a>un_smpL108"s/dca/a>,pvoid op pppppppppppppppppppppiamptiLa> oruct nr_det/sp!/spa 8vp 59ef=8fs/dc900sref">lofb_tccache.c="9inetr90" cfor_eine_8t/a> op ppppppp">dhr"+p_rppppp_nt" <08"="line" namptiL108">p1nt" chea"s="sref">" classppidtm>,pvoid uaccess.8L40" idtiL40" class=9s t8_hash90> >> ,pv9id ;902 >> nr_de class="c9mment90_find_alias - grab a href=""fl"line" namptiLsb tanamptiLdt/a>7=id8aa superbkme63c>p 58t/7.c#L98" idtiL98" cla9ash8table905lass="8" idtiL1 class=9fref090a cla:na cla"in questronssa hresb: superbkme63c>p 58t/7.c#L98" idtiL98" cla9ct 8a hre906lass="8" idtwhilespiL19class90ny"o"corfhref=""flias ovorf c=5" idtiL8 idtiL36" class="lin9f="8code=907sref">lofb_tccache.c/s9a v<90ck ao "crow away xis_buck - frSamptiL16">dt/a>7=id8a16">specified super bkme6amptiL16">us=d_buc" c8=5" idtiL8 idtiL36" class="lin91098 clas90"line" namptiL109">p1t/9piL1 90equiresis_buckidtiL_a>sta is h16">dt/a>7=bef>p 1unm id8f="+a fppppsystem7<_cache" 7a href="+code=D_HASH9ref8ed lo909"sref">nr_de" namptiL199">p190eleasesis_buckidtiL_a>statass7<5t/a>tsp7a>tspa class="comme9cod8=L1_C910sref">lofb_tccache.ccc9che.c9a>,pvopp_nt" " class="sref">dhr"+pamptiLsb" namptiL108">p">dhr"+pamptiLsbchea"href="+code=parnt" chesuper_b108"s/dca/a>,pvoid psbcheaisp7a>tspa class="comme9ef"8hasht91> >> d_draLIST_HEACTED <08i)ref="fLIST_HEACa> opppppppppppppppptm>,pvoid uaccess.8L40" idtiL40" class=9L118">p1191"sref">lofb_tccache.ciL9 clas91" idtiL8_head" class="sref">9a h8ef="f91="com">lofb_tt rcumpL108"s/dca/a>,pvoid op pppppppppppppppppppppiamptiLa> oruct t L108"s/dca/a>,pvoid a hrcts:t" class="sref">" classppidsb" namptiL108">psbcheass="sref">_a>static s_ hrd8t/a> " namptiL108">ps_ hrd8t/a> 8a9" idtiL829" class="line" nam9d_dra_sa hrcsplict_ini>,pvoid class="sref">" classppidsb" namptiL108">psbcheass="sref">_a>static s_ hrd8t/a> " namptiL108">ps_ hrd8t/a> 8a9"ass="sref">" classppidtm>,pvoid uaccess.8L40" idtiL40" class=9>p188t/a>917 - f="fs/dline" nampt9L133"9ache.c#L118" id7=9" id">resass= = /a>un_smpL108"s/dca/a>,pvoid op pppppppppppppppppppppiamptiLa> oruct p191"lineef="fs/dcache.c#L198" id91>,pvoid op ppppppp">dhr"+p_rppppp_nt" <08"="line" namptiL108">p1nt" chea"s="sref">" classppidtm>,pvoid uaccess.8L40" idtiL40" class=9PER8CPUt/919"sref">nr_de="line" na9ptiL1911 class="frefd_draun_lass="sref">rcumpL108"s/dca/a>,pvoid op pppppppppppppppppppppiamptiLa> oruct 8/a>);92spa ruct >> ,pvoid 9a hrp9u_reid7_smp" class="sref">rcuun_smpL108"s/dca/a>,pvoid op pppppppppppppppppppppiamptiLa> oruct p1192"sref">lofb_tccache.ciL9 clas9="frefpppppppppppppppORT_SYMBO_L108"/a>,pvoid _prune_aliases" class="sref">d">dhr"+pamptiLsb" namptiL108">p">dhr"+pamptiLsbcheaess.8L40" idtiL40" class=9t h8ef="f92="com">lofb_tccache.ct/9ps/dc92p 77t/a>t9mpt8a hre925sref">lofb_tccache.ccc9ccccc92a cla:na cla"in questronssac8=4" idtiL8>, lofb_tccache.c/s9a v<92ny"o"corfhref=""flias ovorf c dehreoutevsf="pppsubt c8aof>delatass=id8aunm id8=4" idtiL8>, lofb_tccache.ct/9piL1 92ck ao "crow away xis_buck - frtanss="linis_bucks onl"line" namptiL hrdum id8()=id8aa dehcript/a>qoiL16"=4" idtiL8>, p192"line" namptiL109">p11191111192equiresis_buckidtiL_a>sta is h oblemf="=4" idtiL8>, nr_de" namptiL199">p192eleasesis_buckidtiL_a>statass7<5t/a>tsp7a>tspa class="comme9L138">p13930sref">lofb_tccache.ct 9a hre9="+cod+p_rppppp_nt" " class="sref">dhr"+pamptiL hrdum id8_subt c8" namptiL108">p">dhr"+pamptiL hrdum id8_subt c8chea"href="+code=parnt" chepp namptiL108">p108t/a> op ppppppppppppppppppppp)f="+code=dentry_stat" c7f="+code=7DEFINE_SPINLOCK" cla9ntr8t/a>(93> >ruct * d/ ppppppppppppppppppppppp namptiL108">p1parec# op pppppppppppparec#pppptruct p 58t/7lockt/a>);"97" 8la67493t;d_inode->i_lock pr9tecr 93roc_nr8(5" idlass="sref">rcu"!/spa vd)f="+code=dentry_stat" c7f="+codess.8L40" idtiL40" class=9" n8ampti93spa class="comment"> *9 - 93#L27" i7namptiL77">p 77t/a>t9las8s="li93>tspa class="comment">9* dc 93="fs/dcache.cid8a4" idtiL824" class="line" nam9="l8ine" 937sref">lofb_tccache.ct/9piL1 9lass="fref08t/a> op ppi> tsp7a>tspa class="comme9LL180">p193"line" namptiL109">p1119111119a>,pvoid L108"s/dca/a>,pvoid a hrcts:t" class="sref">" classppididtiL/a>,pvoid _a>static stsubdirL nr_de" namptiL199">p19L1 class="frefd_draun_smp" class="sref">d_drap= /a>,pvoid ,pvoid nt" <08idtiidtiL/a>,pvoid _a>static stsubdirL tspa class="comme9">p8 41t/940sref">lofb_tccache.ccc9che.c9ontinuetruct p108t/a> op ppppde=pard_lrutic stru p1nd_cppp cheaess.8L40" idtiL40" class=9t/a8>" >> >94sref">c8l_tablet/a> * delatass=" c8L16is6"eafiupma clugh iks kme7f""=5" idtiL8 idtiL36" class="lin9t/s7pa v94"sref">lofb_tccache.c n9mptiL94 * Weafound"an inusiepppppp rhich id8fl1 ascode tsp7a>tspa class="comme9 dc7ache-94="com">lofb_tccache.c/a9,pvoi9 " classpp)f="+code=dentry_stat" c7"e.c#Lss.8L40" idtiL40" class=9tas8s="li946"com">lofb_t="linetiL19class94ef">hli8ss="line" namptiL1189/a>7tspa 94classt p194"lineiL1 class="frefEXP9RT_SY94 i> delatyt" c8L16">a> ss="liinid88=5" idtiL8/dcache.c#L27" idtiL9tin8e" na94lass= tspa95lass="comment"> *t/spa 9vtsp7a>tspa class="comme9 537t/a>t95v o10ssaptiL108">p108t/a> op La> o10ssaases" class="sref">d)f="+code=dentry_stat" c7f="+codss.8L40" idtiL40" class=9omm7ent">95 - d_flagst/spa v33dget__">dhr"ode=dentry_statet__">dhr"ases" class="sref">d)f="+code=dentry_stat" c7f="+codss.8L40" idtiL40" class=9odc7ache-95="comline" namptiL133">91d_pr95p 77t/a>t9t n8ampti955lassef="fs/dcache.c#L198" id95eik;e class="commentmmmmmmmmpppppppppppppppppppidtiL/a>,pvoid d_countpppp dtiL 1)ref="fs/dcache.c#L118" i!= 0idtiL824" class="line" nam9> *7 - 956"com">lofb_t="line" na9ptiL195>,pvoid 33dgpdhrt"ode=dentry_statpdhrt"ases" class="sref">dKERN_ERRode=dentry_statKERN_ERRa hr i6namptiL77">p 77t/a>t9ta>7tspa 957sref">lofb_t="line" na9ptiL195href=d_dra_smp" classp" classmp" cla_smp" clak ao kommfdehreing">" cl: Delatyt%p{i=%lx,n=%s}"<5t/a>tsp7a>tspa class="comme9 L180">p195"lineiL1 class="frefres9art" 95>,pvoid "m pef=mne" Do (%d)"<5t/a>tsp7a>tspa class="comme9 in8e" na959"sref">nr_de href="+co9e=D_d951 class="frefd_draun_smp" clamp" cla_smp" clak ao kommfdehreing">"m[unm id8qoiL%sL%s]\n"<5t/a>tasp7a>tspa class="comme9>p 761t/a96HE_BYTES" class="sref">91_CAh96ntinuetruct p108t/a> op ppppdsp7a>tspa class="comme9>cl7ass="96> >> p108t/a> op ppppass="sref">d_countpppp="+code=dentry_stat"pp="+coe=D_d?sp7a>tspa class="comme9>537t/a>t962 >> op p+code=kmmmmmmmmmmmmmmmmppppppppppppppppp namptiL108">p108t/a> op ppppass="sref">d_countpppp="+code=dentry_stat"pp="+coe=D_ss="sref">ia>static st="+de=dentry_stat" t="+vtspa class="comme9>mm7ent">96"sref">lofb_tccache.ctt9ttttt9L1 class="fref33dget_d_smp" clmmmmmmmmmmmmmmmppppppppppppppppp namptiL108">p108t/a> op ppppass="sref">d_countppppche.de=dentry_stat"ppche.uacc.pppprevpppp, ="nhe.de=dentry_stat"che.uaccdsp7a>tspa class="comme9>dc7ache-96="com">lofb_tccache.ctt9ttttt9a>,pvoid p108t/a> op ppppass="sref">d_countpppp dtiL 1)ref="fs/dcache.c#L118" dsp7a>tspa class="comme9> n8ampti965sref">lofb_tccache.ccc9ccccc9a>,pvoid p108t/a> op ppppass="sref">d_countppppsb" namptiL108">pdLsbcheass="sref">_a>static s_typ8" namptiL108">p"_typ8cheass="sref">_a>static nhe.de=dentry_stat"che.uaccdsp7a>tspa class="comme9> *7 - 966"com">lofb_tccache.ccc9ccccc9a>,pvoid p108t/a> op ppppass="sref">d_countppppsb" namptiL108">pdLsbcheass="sref">_a>static s_i namptiL108">p1ns_i "+codss.8L40" idtiL40" class=9a 7class967sref">lofb_tccache.c;&9t; ,pvoid p 90mmmmmmmmppppppppppppppp cl vp196"line" namptiL109">p1119111119otom/a>,pvoid nr_de" namptit 9a hre96class="7line" namptiL51">p 59 717t/a>t970sref">lofb_tccache.c/a9,pvoi9 d)f="+code=dentry_stat" c7f="+codedtiL824" class="line" nam9" n7ampti97> >> p 5uhref="+code=parntotas,pvoid " classppididtiL/a>,pvoid _a>static st p1nd_cppp cheaess.8L40" idtiL40" class=9t/a7>tspa97"sreft p1EXP9RT_SY97>,pvoid oppppppparec#pppptruct p 5uhref="+code=parntidtiL/a>,pvoid _a>static sttruct oppppppparec#pppptruct p 5ass="sref">d_countpppp--truct p8rentt/a> /p9* d/*97>,pvoid 33dg" cepmL108"/a>,pvoid " classppididtiL/a>,pvoid _a>static st p1nd_cppp cheaess.8L40" idtiL40" class=9t 7class97amptiL98">p 98t/a>tspa 9clas*97ass="fref08t/a> op pptart" cl"s.8L40" idtiL40" class=9tL180">p197="sref">D_HASHBITSt/a> 9p pt*97>,pvos.8L40" idtiL40" class=9t c7lass=97lass="comment"> * - t9e s_n971 class="frefd_draun_smp" class="sref">d_drapppppppppppppuncts:t" class="shref="+code=parntidtiL/a>,pvoid _a>static st="+code=dentry_stat"pp="+coe=D_ss.8L40" idtiL40" class=9cac7he_pr98lass="comment"> *t/spa 9vd_drapp namptiL108">p108t/a> op ppppass="sref">d_countpppp="+code=dentry_stat"pp="+coe=D_dhref="+code=parntotas op p+code=kmmmmmmmmmef="+code=parnth" cepmL1_ini>,pvoid class="sref">" classppididtiL/a>,pvoid _a>static staliaL __7cache98 - f="fs/dline" nampt9L133"98ass="frefS_ISDIR" claa href="+code=kmpppppppppppppppppppidtiL/a>,pvoid _a>static sto>,pvoid ss="fs="srCONNECTED op ppppppppidtiL/a>,pvoid _a>static sto>,pvoid ss="ass="sref">d_countpppp=puuct pa7 cla98="com">lofb_t/a>,pvoid 9a hr398>,pvoid d_drapp namptiL108">p108t/a> op ppppass="sref">d_countppppo>,pvoid ss="ass="sref">d_countpppp=puuct n8ampti985lassef="fs/dcache.c#L198" id98>,pvoid nu7/ - 986"com">lofb_t="line" na9ptiL198>,pvoid d_dra=puuct 7class98d_unh 988 >> ,pvoid 9a hrp98>,pvos.8L40" idtiL40" class=9a h7ref="989"sref">nr_de class="c9mment981 class="frefd_draun_smp" class="sref">d_drai_f c8" namptiL108">pi_f c8ases" class="sref">d)f="+code=dentry_stat" c7f="+codss.8L40" idtiL40" class=9L927" cla99lass="comment"> *t/spa 9v topqoiL16" t c8,<5t/a>tsp7a>tspa class="comme9las7s="li99v, tsp7a>tspa class="comme9mpt7iL95"99t;d_inode->i_lock pr9tecr 99" *9 - 99>,pvoid hasht/a> 9cla7ss="l99>tspa class="comment">9* dc 99>,pvoid d_drap= /a>,pvoid p 58t/7lockt/a>);"p 98t/a>tspa 9clas 99href=d_dra_smp" class}p pppppppppppppppppppppempt>L108"s/dca/a>,pvoid a hrcts:t" class="sref">" classppididtiL/a>,pvoid _a>static stsubdirL 99="sref">D_HASHBITSt/a> 9p pt 99>,pvos.8L40" idtiL40" class=9ref7="fs/999"sref">nr_det/sp!/spa 9vrcup= /a>,pvoid ,pvoid nt" <08idtiidtiL/a>,pvoid _a>static stsubdirL tspa class="commL10ef=8fs/dc10ef=8ref">nr_det/sp!/spa 10ef=>10ef,pvoid p108t/a> op ppppde=pard_lrutic stru p1nd_cppp cheaess./pre>p7a>tspa class="commL10e1=8fs/dc10emaster of the icache - 10ema>10elinetruct 10e" idtiL8_head" class="sref">10e4=8fs/dc10et;d_inode->i_lock pr10et;>10e_find_alias - grab a href="ry<5t/a>tsp7a>tspa class="comme10e5=8fs/dc10espa class="comment"> *10esp>10ea cla:na cla"in questronssa hrdehreout16">delatass=atts="cdvtspa class="comment">10e>t>10eny"o"corfhref=""flias ovorf c -n asd <'tss= s=p 98t/a>tspa 10eam>10eck ao "crow away xis_buck - fr -n16">superbkme6>is6dets="cdv" c8LallLm id8f="ss="liopp 1fppps, soL16"=4" idtiL8>, D_HASHBITSt/a> 10e=">10eequiresis_buckidtiL_a>sta is h o 6delatytt c8s wef=mstatbea=2arrangcdvbut16">VFS=4" idtiL8>, nr_det/sp!/spa 10e9">10eeleasesis_buckidtiL_a>statass= -nsdum id8>is6write-kme6ed, soL16"1mry_+copressureanampti>7 wef=mignor"=4" idtiL8>, lofb_tccache.ccc1010s>1010quiresis_buckidtiL_a>sta is h o 6teondelatass=belongf="+1oL16is6superbkme6>d.atLitnis_ss=acros"=5" idtiL8 idtiL36" class="lin1011=8fs/dc101> >> >101ss= may failtt/s>stase: nnot b -n16">fpppsystem ikself>is6no long>7 permitt s=delatass=5" idtiL8 idtiL36" class="lin1012=8fs/dc1012 >> 101ARNING: you must own amreferennnnnne""lis6superbkme6=5" idtiL8 idtiL36" class="lin1013=8fs/dc101"sref">lofb_tccache.ciL101"s>101tsp7a>tspa class="comme1014=8fs/dc101="com">lofb_tt 101e_aliases" class="sref">d">dhr"+pamptiL hrdum id8namptiL108">p1ns>dhr"+pamptiL hrdum id8="srehref="+code=parnt" chesuper_b108"s/dca/a>,pvoid psbcheaisp7a>tspa class="comme1015=8fs/dc101ela >t EXPORT_SYMBOLt/a>(1016=8fs/dc101lls.ht/a>>"p108t/a> op ppppppppppppppppppppppp namptiL108">p108t/a> op ppppppppppppppppppppptruct p 58t/7a>tspa class="comme1017=8fs/dc1017 - f="fs/dline" nampt1017 >1017 idtiL8_head" class="sref">1018=8fs/dc101"lineef="fs/dcache.c#L1101"l>101tom/a>,pvoid pppppppppppppppppppiown="+codline" ndca/a>,pvoid " classppidsb" namptiL108">psbcheass="sref">_a>static s_um id8namptiL108">p1nsdum id8="sreisp7a>tspa class="comme1019=8fs/dc1019"sref">nr_de="line" na1019">1011 class="frefd_draun_lass="sref">rcu cl v1021=8fs/dc102> >> ,pvoid 102> >102_reid7_smp" class="sref">rcup= /a>,pvoid psbcheass="sref">_a>static s_roo8namptiL108">p1nsdroo8>p 58t/7a>tspa class="comme1022=8fs/dc1022 >> 102raun_smp" class="sref">d_drasb" namptiL108">psbcheass="sref">_a>static s_roo8namptiL108">p1nsdroo8>p 5dhref="+code=parntotaslofb_tccache.ciL102"s>1023reid7_smp" class="sref">rcup= /a>,pvoid d_countpppp--truct p8rentt/a> /plofb_tccache.ct/102=">102roc_nr8(5" idlass="sref">rcum>dhr"+pamptiL hrdum id8_subt c8" namptiL108">p">dhr"+pamptiL hrdum id8_subt c8chea" class="sref">d)f="+code=dentry_stat" c7f="+codss.8L40" idtiL40" class=1025=8fs/dc1025sref">lofb_tccache.ccc1025s>102#L27" i7namptiL77">p 77t/a>t1026=8fs/dc1026"com">lofb_tccache.c/s1026">102">p108t/a> op ppppppppppppparec#pppph" cepbl>L108"s/dca/a>,pvoid h" cepbl>L108" class="sref">" classppidsb" namptiL108">psbcheass="sref">_a>static s_anonnamptiL108">p1nsdanon="sreidtiL824" class="line" nam1027=8fs/dc1027sref">lofb_tccache.ct/1027s>102che.c#L118" id7=9" id">resass= = /a>p= /a>,pvoid L /a>,pvoid L /a>chea" class="sref">dh" cepbl>firL1,pvoid firL1 class="sref">" classppidsb" namptiL108">psbcheass="sref">_a>static s_anonnamptiL108">p1nsdanon="sre," ppppppppppppppppppppppp namptiL108">p108t/a> op ppppde=pard_lrutic struhashct p111102"l>102>,pvoid op ppppppp">dhr"+pamptiL hrdum id8_subt c8" namptiL108">p">dhr"+pamptiL hrdum id8_subt c8chea" class="sref">d)f="+code=dentry_stat" c7f="+codss.8L40" idtiL40" class=1029=8fs/dc1029"sref">nr_de" namptiL11029">1021 class="fref" i7class="line" namptiL103f=8fs/dc1030sref">lofb_tccache.ct 1030s>1030che." i7class="line" namptiL1031=8fs/dc103> >ruct c8l_tablet/a> *103ARNING: you must own amrefe c<5t/a>tsp7a>tspa class="comme1033=8fs/dc103 - d_flagst/spa v103, *103sp>103a cla:na cla"in questronssa hra e kme7f"hood aft>7 droppf="+16">ame6>="licode6=5" idtiL8 idtiL36" class="lin1036=8fs/dc103>tspa class="comment">103>t>103ny"o"corfhref=""flias ovorf c d.atL16e sequL16" numbeta pef=mmatss=s7<_cache" 7a href="+code=D_HASH1037=8fs/dc1037sref">lofb_tccache.ct/1037s>103ck ao "crow away xis_buck - f7<5t/a>tsp7a>tspa class="comme1038=8fs/dc103"line" namptiL109">p111103"l>103>,pvo+p_rppp ppppppppppppppppppppppp namptiL108">p108t/a> op pppppppppppppppppppppop Lto_ahcendptiL108">p108t/op Lto_ahcend="srehref="+code=parnt" chepp namptiL108">p108t/a> op pppppppppppppppppppppop namptiL108">p1nol uaccas class="sref">want_kme6eda>,pvoid d"eq" namptiL108">p"eqcheaisp7a>tspa class="comme1039=8fs/dc1039"sref">nr_de" namptiL11039">1039#L27" i7">EXPORT_SYMBOLt/a>(104f=8fs/dc1040sref">lofb_tccache.ccc1040s>1040>p108t/a> op ppppppppppppppppppppppp namptiL108">p108t/a> op pppppppppppppppppppppnewp1nol uaccss="sref">_a>static sttruct >> >104sref">c8l_tablet/a> *d_drarcu="+codsmp <08"struct lofb_tccache.c n104"s>1043reid7_smp" class="sref">rcuun_smpL108"s/dca/a>,pvoid op pppppppppppppppppppppop namptiL108">p1nol uaccss="sref">_a>static struct lofb_tccache.c/a104=">104roc_nr8(5" idlass="sref">rcumpL108"s/dca/a>,pvoid op pppppppppppppppppppppnew_a>static struct 104#L27" i7namptiL77">p 77t/a>t1046=8fs/dc1046"com">lofb_t="linetiL11046">104">p108t/a> opG: you must own amrefe c<5t/a>tsp7a>tspa class="comme1047=8fs/dc104classt upma a wro="+kme7f"sifL ashavashad a6e7fam"=4" idtiL8>, 104 i> =4" idtiL8>, 104eleasesis_buckidtiL_a>statasy_stat" f7<5t/a>tsp7a>tspa class="comme105f=8fs/dc105lass="comment"> *t/spa 105la>105lom/a>,pvoid pppppppppppppppppppnewp1nol uaccss="sref">_a>static sttruct 105linetruct p1nol uaccss="sref">_a>static stfs/dcache.c#L114" idtiLef="+cDISCONNECTED op pppppppppppLef=DENTRY_KILLECTED <08i)ref="fs/dcachDENTRY_KILLECtspa class="comme1052=8fs/dc105vp108t/"+cod"eqrenam op pppppppppppppppppppppe7fam"dsmp <08"struct p"eqcheaieidtiL824" class="line" nam1053=8fs/dc105 - d_flagst/spa v105void ,pvoid op pppppppppppppppppppppnew_a>static struct 105=">105d_dranew105roc_nr7lofb_t="line" na1056">1056oc_nr8(5" idlass="sref">rcurcu="+codpL108"s/dca/a>,pvoid rcu="+codpL108"ases"dss.8L40" idtiL40" class=1057=8fs/dc1057sref">lofb_t="line" na1057s>105che.c#L118" i=2="srass="sref">d_dranew1058che." i7class="line" namptiL1059=8fs/dc1059"sref">nr_de href="+co1059">105class="7line" namptiL51">p 5106f=8fs/dc106HE_BYTES" class="sref">106HE>106Hlass="7line" namptiL51">p 51061=8fs/dc106> >> >106ss= may failtt/s>stase: nno c<5t/a>tsp7a>tspa class="comme1062=8fs/dc1062 >> 106ARNING: you must own amreferenSearch=id8aa16"east 1Lm id8 po clane""lina> op 's6subdirL7<_cache" 7a href="+code=D_HASH1063=8fs/dc106"sref">lofb_tccache.ctt106"s>106p eve8a16">=ksubdirLuacache" 7a href="+code=D_HASH1064=8fs/dc106="com">lofb_tccache.ctt106=">106_find_alias - grab a href=""fl" ce>is6non-L108">="licod8f=ue searching7<_cache" 7a href="+code=D_HASH1065=8fs/dc1065sref">lofb_tccache.ccc1065s>106a cla:na cla"in questronssa h7<5t/a>tsp7a>tspa class="comme1066=8fs/dc1066"com">lofb_tccache.ccc1066">1066oc_nrsp7a>tspa class="comme1067=8fs/dc1067sref">lofb_tccache.c;&1067s>106ck ao "crow away xis_buck - c6f="+code=6DEFINE_SPINLOCK" cla1068=8fs/dc106"line" namptiL109">p111106"l>106equiresis_buckidtiL_a>sta is hhavaksubm id8s -icode6=id8am id8s ove8aa a> op pp"+code=6DEFINE_SPINLOCK" cla1069=8fs/dc1069"sref">nr_de" namptit 1069">106eleasesis_buckidtiL_a>statass=@truct :6delatyttoicode67<_cache" 7a href="+code=D_HASH107f=8fs/dc1070sref">lofb_tccache.c/a1070s>1070leasesis_buckidtiL_a>statass<_cache" 7a href="+code=D_HASH1071=8fs/dc107> >> >107ss= may failtt/s>stase: nnot bR2="sratrue iiL16"+kme7f"sd8aiks subdirectotass=cod8ai>=4" idtiL8>, 107ARNING: you must own amreferenaLm id8 po cl=4" idtiL8>, 107tsp7a>tspa class="comme1074=8fs/dc107t;d_innamptiL108">p1EXP107t;>107_find class="sref">want_havaksubm id8s,pvoid p108t/a> op pppppppppppppppppppppsf="+code=dentry_stat" c8ss="sref"8d_hash_maskt/a>"EXPORT_SYMBOLt/a>(1076=8fs/dc107>tspa class="comment">107>t>107">p108t/a> op ppppppppppppppppppppppp namptiL108">p108t/a> op ppppppppppppppppppppp"listtruct p 98t/a>tspa 107am>1077>p108t/a> op ppppppppppppppppppppp" ceph+coa>,pvoid D_HASHBITSt/a> 107=">107>,pvoid d"eq" namptiL108">p"eqcheass.8L40" idtiL40" class=1079=8fs/dc107lass="comment"> * - t107la>1071 class="fref class="sref">want_kme6eda>,pvoid *t/spa 108la>108llass="7line" namptiL51">p 51081=8fs/dc108master of the icache - 108ma>108_reid7_smp" class="sref">rcuueq" namptiL108">p"eqchea namptiL108">p"eqcef">rntme6ed29)98ct tspa class="comme9>dc7ache-96="com">lofb_tccache.ctt9ttttt9a>,pvoid D_HASHBITSt/a> 107=">wpvoid ref="+p"eqtiL8>,>lofb_tccache.agasp7a>tspa class=agaspiL8>:mmmmmmmmmmmmp=8fs/dc107="sf="+code=d claa href="+code=kmpppp=d clp"eqvoid op pppppppp idtiL40" class=1077=8fs/dc107amptiL98">p8t/7lockt/a>);"p 98t/a>tspa 9clas 99href=d"eqclass="sremrop" class=d_draun_smp"remrop"eqfs/dcache.c#L198" id95eik;e "eq i7">EXPORaun_smp" claaaaaaaaaiscoORaunp"eq056"com">lofb",pvoid ositivhea" class="sref>ositivh>p 98t/a>tspa 9clas 99href=d"eqt/a> op pp" iddddddddd"s.8L40" idtpp" ip"eq7hea namptiL108">p"eqcef">rntppppppppnew_a>static stru idtiL40" class=1077=8fs/dc107amptiL98">p href=8+code=hash" class="s1054=8fs/dc105="comline" namptiL133">105=">105,>lofb_tccache.repeaclass=1077=8fs/drepeaciL8>:mmmmmmmmmmmmp=8fs/dc107="ss="fref claun_smp" class="sref">d_claunp"eq9hea namptiL108">p"eqcef">rns=1078=8fs/dc107="sref">D_H8t/7lockt/a>);"p href=8+code=hash" cla="nex tspa class="commL10ef=8fs/dc10ef=8ref">nr_namptiL133">105=">105na2"iL8>,>lofb_tccache.reme7flass=1077=8fs/dreme7fiL8>:mmmmmmmmmmmmp=8fs/dc107="9_smp" clas="+code=kme8=> na2chea namptiL1hrcts:t" class="sref">s=1078=8fs/dc107="sref">D_H8!=.8L40" idtiL40" class=idtiL40" class=1077=8fs/dc107amptiL98">p href=8+code=hash" cla="nex agst/spa v105void 9ref">D_HASown amreferrrrrrrrrrrrrrASown>na2void nr_d8t/7lockt/a>);"nr_namptiL133">105=">105na2dca/a>,pvoid p 58t/7a>tspa class="comme1017=8fs/dc1017 - f="fs/lass="sref">nt" <08idtiidtiL/a>,pvoid _a>stati=9PER8CPUt/919"sref">nr_dp ppppde=pard_lrutic struhashct p1nd_cppp cheaess./pre>105=">105D_H8t/7lockt/a>);"nr_dp7a>tspa class="commL10ef=8fs/dc10ef=8ref">nr_namptiL133">105=">105EXPORaun_smp" claaaaaaaaa=2="ORaun>na2lofb_t="linetiL11046">104">p109t/a> op ppaun_smp" class="sref">d_ppaun>na2ni>,pvoid cde=newp_r_nestclass=108f=8fs/dcde=newp_r_nestclcss="sref">_a>static strupppp--truct p8rentt/a> /ptspa class="commfs/dc1D_LOCK_NEST>t93ab9052ptiL133">105=">105 op pplass}p ppppppppppppppppppplas>na2cendvp1EXP107t;>107_find9d na2L hrdum id8_subt c8" >> rcup= /aclaun>na28" namptiL108">pi_f c8ases" class="sref">d)fpppppppppppppiamptiLa> oruct p8rentt/a> /p105=">105lass="sref">d)fpppppppppppppiamptiLa> oruct p href=8+code=hash" class="s1054=8fs/dc105="comline" namptiL133">105=">105p 1 asfallLptgoc10.8L40" idtiL40">ositivhea" class="sref>ositivh>p 98t/a>tspa 9clas 99href=d"1" i7class=1line" namptiL10e3=8fs/dc11e -10void 105clas1iL8_head" 1lass="sref">10e4=8fs/dc101t;d_i10dca/a>,pvoid ,pvoid _a>static stsubdirL 99="sref">D_HASat d)fpppppppppppppiamptiLa> oruct p href=8+code=hash" class="s1054=8fs/dc105="comline" namptiL133">105=">105hasht/a> 9cla7ss="l9lass="sref">d)fpppppre_cachea" class="sref"ppppre_cach"+code=amptiLa> oructuacceppp--truct p8rentt/a> /p105=">105d_p1;tss=10>,pvoid p8t/7lockt/a>);"1017 id1 "crow awa1 xis_buck - fr -n16">sup1rbkme10ntry<5t/a>tsp7a>tspa class="cass="sref">d)fpppppacquirhea" class="sref"ppppacquirh"+code=amptiLa> oructuacc idtiL40" class=1077=8fs/dc107amptiL98">p href=8+code=hash" class="s1054=8fs/dc105="comline"ess./pre>105=">105nr_degoc10.8L40" idtiL40"repeaclass=1077=8fs/drepeaciL8>namptiL133">105=">105rcup= /ac1>is6w108" namptiL108">pi_f cde href="+co1059">105clas1esis_bucki1tiL_a>sta is h o 6teondel1tass=11pppppppppppppppp namplass="sref">d)fpppppppppppppiamptiLa> oruct p8rentt/a> /p105=">105stase: nnot b -n16">fpp1syste110ev106ARNI1ef="+code=1entry_stat" c7<5t/a>tsp7a1tspa 1class="comme1014=8fs/dc101="ccccccccc* All<5t/e L27" idtde=D_H...lofb_tccache.c/a1070s>1070lea1ases" clas1="sref">d">dhr"+pamptiL h1dum i11"licod8f=ue searching7<_cachcccccccc*innamptiL108">p1EXP107t;>107_fin1" i7">EXPO1T_SYMBOLt/a>(1016=8fs/dc111lls.11056"com">lofbp8ef">_a>static sttr>" op p1ppppppppppppppppppppp nam1tiL1011>,pvoid p 58t/7a>tspa class=L10d );"p052ptiL133">105=">1051018=8fs/dc101"line11p8t/7lockt/a>);"p108t/a> op ef="+code=parnt idtiL40" class=1077=8fs/dc107amptiL98">pss.8L40" idtiL40""sref">d"eq" namptiL108">p"eqchea08">p"eqcef">rntme6ed29)98ct 105=">105pa href="+cod1075l>107c#L21ss="frefd_1raun_lass="sref">rcu cl 1nr_degoc10.8L40" idtiL40"remrop"pppppppppe7fam"dsmp <0mrop"ppppp8">p052ptiL133">105=">1051021=8fs/dc101> >12pppppppppppppppp namplass="sref">d)f h1078=8fs/dc107="sref">D_H8t/7lockt/a>);"p1nd_cppp cheaess.8L40" idtiL40" class=9t 7class97amptiL98">p tspa class="commL10ef=8fs/dc10ef=8ref">nr_namptiL133">105=">105rcup= /a>,pvoid 1a hrn12ntry_finishedsw>p 1 agoc10.8L40" idtiL40"reme7flass=1077=8fs/dreme7fiL8>namptiL133">105=">105d_drasb" namptiL101">psb1heass="sref">_s/dcache.c#L10ev<>10eache17_smp" cla1s="sref">rcup= /a>,pvoid 1a hrn1" cepppp_rcass="sref">d_countpppppppppppppiamptiLa> oruct p href=8+code=hash" class="s1054=8fs/dc105="comline" namptiL133">105=">105rcum>dhr"+pampti1 hrdu1 id8_subt c8" sref"8d_hash_maskt/a"pppppppp"+cod"eqrenamptiL108">p108t/"+cod"eqrenam op pppppppppppppppppppppe7fam"dsmp <08"struct p"eqcheaieidtiL824" class="line" nam1053=8fs/dc105 - d_flamptiL133">105=">105EXPO17">p 77t/a>t1026=8fs/dc1016"com12s="sref">hasht/a> 9clgoc10.8L40" idtiL40"remrop"pppppppppe7fam"dsmp <0mrop"ppppp8">p052ptiL133">105=">105 op p1ppppppppppparec#pppph" ce1bl>L118"s/dca/a>,pvolamptiL133">105=">105resass= = /a>p= /a1,pvoi1 p"eqcheaieidtiL namptiL133">105=">105 op ppppppp">dhr1+pamp1iL hrdum id8_s.8L40" 0;afine""liniure7f"psubt c8aNos/dc107"srefsla08td8de=Dre_inode->i_lock pr9tecr 99ositivhea" class="sref>ositivh>p 9:mmmmmmmmmmmmp=8fs/dc107=1" i7class=1line" namptiL1031=8fs/dc113> &g13=newp_rcuf="+code"8d_hash_maskt/a"pppppppp"+cod"eqrenamptiL108">p108t/"+cod"eqrenam op pppppppppppppppppppppe7fam"dsmp <08"struct p"eqcheaieidtiL824" class="line" nam1053=8fs/dc105 - d_flamptiL133">105=">105c8l_table1/a> *p 1 agoc10.8L40" idtiL40"remrop"pppppppppe7fam"dsmp <0mrop"ppppp8">p052ptiL133">105=">105tsp7a>1spa 132s/dca/a>,pvolamptiL133">105=">105,pvoid op pppppppp=mignstruppppppppiamptiLa> oru=mignstrupppppp hr7fam"dsmp ppppde=pard_lrutic st"eq" namptiL108">p"eqcheaieidtiL namptiL133">105=">105105=">105EXPO1questronssa hra e kme7f"h1od af13lofb_t="linetiL11046">104">p11corfhref="1flias ovorf c d.atL16e se1uL16"1numbeta8L40" idtiL40"remrop"pppppppppe7fam"dsmp <0mrop"ppppp8">p:mmmmmmmmmmmmp=8fs/dc107=1""crow awa1 xis_buck - f7<5t/a>tsp7a1tspa 137s/dca/a>,pvolamptiL133">105=">105tspa class=agaspiL8>namptiL133">105=">105p"eqcef">rn40" class=108f=8fs/dc108lass="comm1namptiL133">105=">105 op p1ppppppppppppppppppppp nam1tiL101">p108t/a> op /a> op pppppppp=mignstruppppppiamptiLa> oru=mignstrupppp hr7fam"dsmp ppppde=pard_lrutic st"eq" namptiL108">p"eqcheaieidtiL namptiL133">105=">105c8l_table1/a> *tspa class=agaspiL8>namptiL133">105=">105d_drarcu="+codsmp 108"st14_flagst/spa v10e" id17_smp" cla1s="sref">rcuun_smpL108"s/1ca/a>1pvoid .8L40" idtiL40"EXPORT_SYMBO055=8fs/dc1055laEXPORT_SYMBO0> op ef="+code=parntref="+code=parnt" chepp namptiL108">p108t/a> op namptiL133">105=">105alias - g1s="sref">rcumpL108"s/dca/1>,pvo14fs/dcache.c#L198" id95eik;e "1 i7namptiL17">p 77t/a>t1046=8fs/dc1016"com14lass="comme1066=8fs/dc1066"gt;> 106ARNI18t/a> opG:1you must own amrefe c<5t/1>tsp714umbeta pef=mmatss=s7<_cache" 739;s6suD_HASH1063 tiL98" 7a h"li99vupma a wro="+kme7f"sifL a*_7cache99 nis_unused ss=acros"7a hrefref="li99v=4" idtiL8>, tsp1a>tspa class="comme105f=8fs/*HASH1064=8fs/dc106="com" 7a href="+code=D_HASH1065=8fsf="fs/dcache.c#L94" i 99ARNING71>,pvoid pp1ppppppppppppppppnewd.adc1065sref">lofb_tccache.ccc1065s>106a cl1ruct 15tiL8>, p eve8a16">=ksubdi=4" idtiL81=8f.8L40"s href=H1037="litiL98 hrche99" 7af="fs/dcache.c#L94" i 99ARNING71d_dranewame6>="licode6==H1037="liunused tiL98 hrec10eamptadclectamptiL9" idf="fs/dcache.c#L94" i 99ARNING71rt/a> opG:1s="sref">rcurcu="+codpL101"s/dc15umbeta pef=mmatss=s7<_cache" 7ass=1036=8fs/dc103.8L40" c10ly du9 -latencef">nr_de" namptit 1069">106elea1#L118" i=21"srass="sref">d_dranewlofb_tccache.ccc1065s>106a cl1r8crow awa1line" namptiL1059=8fs/dc1159"sr15=4" idtiL8>, p 5106f=8fs/dc101HE_BY1ES" cl/a> op cuhr0ss.8L40" idtiLdclectamptiL9m1053=8fs/dc105 lectamptiL9> op pppppppppppppppppppppsf="+code=dentry_stat" c8ss="sref"8d_hash_maskt/a>"lamptiL133">105=">105p 51061=8fs/dc101> >1> stase: nno c<5t/a>tsp7a>1spa 16ntry_finishedppppppppppppppppppppp"listtruct p 98t/a>tspa 107am>1077>p11G: you mus1 own amreferenSearch=id8a116"ea162try_finishedppppppppppppppppppppp"pppppnex D_HASHBITSt/a> 107=">107>,pv1ef="+code=1entry_stat" ceWe_dehcendv1oma e16dca/a>,pvoid ss.8L40" idtiL40" class=1079=8fs/dc107lass="comment"> * - t107la>1071 cl1_alias - g1ab a href=""fl" ce>is6non1L108"16id8_subt c8" suhr0ss.8L40" idtiLa08td9=8fs/dc107lassa08tds="comment"> *t/spa 108la>108llas1:na cla"in1questronssa h7<5t/a>tsp7a1tspa 165d8_subt c8" suhr0ss.8L40" idtiL40" class=108f=8fs/dc108lass="comment"> *t/spa 108la>108llas1rsp7a>tspa1 class="comme1067=8fs/dc1167sre1">lofbt"> *t/spa 108la>108llas1rL118" i=21 xis_buck - c6f="+code=6D1FINE_167hea namptiL108">p"eqcef">rntme6ed29)98ct tspa class="comme9>dc7ache-96="com">lofb_tccache.ctt9ttttt9a>,pvoid sta is hhavaksubm i18s -i168iL8>,>lofb_tccache.agasp7a>tspa class=agaspiL8>:mmmmmmmmmmmmp=8fs/dc107=1esis_bucki1tiL_a>statass=@truct :6de1atytt169hea namptiL108">p"eqcef">rn idtiL40" class=1077=8fs/dc107amptiL98">p8t/7lockt/a>);"p 98t/a>tspa 9clas 99href=d"1esis_bucki1tiL_a>statass<_cache" 7a 1ref="17>p108t/a> op /a> op pppppppptppppppppnew_a>static stru idtiL40" class=1077=8fs/dc107amptiL98">p href=8+code=hash" class="s1054=8fs/dc105="comline" namptiL133">105=">105stase: nnot bR2="sratrue1iiL161+kme7f">lofb_tccache.ctpeaclass=1077=8fs/drepeaciL8>:mmmmmmmmmmmmp=8fs/dc107=1G: you mus1 own amreferenaLm id8 po 1l=4" 17ct D_H8t/7lockt/a>);"p href=8+code=hash" cla="nex tspa class="commL10ef=8fs/dc10ef=8ref">nr_namptiL133">105=">105tsp7a1tspa 17void .8L40" idtiL40"reme7flass=1077=8fs/dreme7fiL8>:mmmmmmmmmmmmp=8fs/dc107=1 class="sr1f">want_havaksubm id8s,pv1id s=1078=8fs/dc107="sref">D_H8!=.8L40" idtiL40" class=idtiL40" class=1077=8fs/dc107amptiL98">p href=8+code=hash" cla="nex agst/spa v105void1" i7">EXPO1T_SYMBOLt/a>(1076=8fs/dc117>tsp17s="sref">hasht/a> 9cleph+copppppppppppppppppppppnex nr_d8t/7lockt/a>);"nr_namptiL133">105=">105 op p1ppppppppppppppppppppp nam1tiL1017>,pvoid p 58t/7a>tspa class="comme1017=8fs/dc1017 - f="fs/lass="sref">nt" <08idtiidtiL/a>,pvoid _a>stati=9PER8CPUt/919"sref">nr_dp ppppde=pard_lrutic struhashct p1nd_cppp cheaess./pre>105=">105 op p1ppppppppppppppppppp" ceph1coa>,17D_H8t/7lockt/a>);"nr_dp7a>tspa class="commL10ef=8fs/dc10ef=8ref">nr_namptiL133">105=">105d"eq"1nampt17r_det/sp!/spa 9vwant_kme6eda>,1void 17=ret" clases"dss.8L40/a> op pppppppptpppppppp_nestclass=108f=8fs/dcde=newp_r_nestclcss="sref">_a>static strupppp--truct p8rentt/a> /ptspa class="commfs/dc1D_LOCK_NEST>t93ab9052ptiL133">105=">105p 51081=8fs/dc101maste1 of the icache - 108ma>108_rei17_smp" cla1s="sref">rcuueq" namptiL118">p"18ntry_finishedsw>p 1 a"comme1066=8fs/dc1066"gt;> 106ARNI1sref">D_HA1HBITSt/a> 107=">wpvoid re1="+p"18tiL8>, 106ARNI1sf="+code=1 claa href="+code=kmpppp=1 clp"18lass="comme1014=8fs/dc101="ccccccccc33333333*;> 106ARNI1sclass="sr1mrop" class=d_draun_smp"r1mrop"18"licod8f=ue searching7<_cachcccccccc33333333*cThoch"hrcch"a h ="+c<_cly oe=D_HA">d)f=" 7a ec10lin1processedf="fs/dcache.c#L94" i 99ARNING71q i7">EXPO1aun_smp" claaaaaaaaaiscoO1aunp"187 droppf="+16">ame6>="licodecccccccc33333333*cby ">d)f="+code=_ 7a (op phould/a>tsp7abeche99". O4" idtiL8sref">D_HASHBITSt/a> 10e=">10eequi18t/a> op p1aun_smp" clad_draun_smp"p1aunp"18umbeta pef=mmatss=s7<_cache"cccccccc33333333*cloop8de=">d)f="+code=dmptiL9() a6e7fa"+comak9 nis_prog"+cof">D_HASHBITSt/a> 10e=">10eequi18t/a> op p1" iddddddddd"s.8L40" idtp1" ip"18e6>upma a wro="+kme7f"sifL ashavasha33333333*cc103loop8for064=.;> 106ARNI1sd , d_c1aunp"18=ret" clases"dss.8L40p8rentt/a> /ploagst/spa v105void19"7line" n12" class="l9s t7he si99mn12" >n19pppppppppppppppp namptiL108">lass="sref">d)f+code=_ ru"+cltruct _a>stati class=1029=8fs/dc1029"sref">nr_de" namptiL11029">1021 cl19_smp" cla1="+code=kme8=> n19ntry_finishedsw>p 1 a} else+code"own="+codline" n ppp--truct p8rentt/a> /p105void19ref">D_HA1own amreferrrrrrrrrrrrrrA1own>n12void lass="sref">d)f+code=_ ru"he99_ 7a truct _a>stati class=1029=8fs/dc1029"sref">nrss.8L40" idtiL40" ispochea" class="srefdispoch08">lde" namptiL11029">1021 cl19f="+code=1afound"an inusiepppppp r=1afo>n12dca/a>,pvoid lass="sref">d)f+code=truct p8rentt/a> /p);"1021 cl19class="sr1 claaaaaaaaapppppppppppar1 cl>n12code=newp_rcuhref="+ctiL108">lass="sref">d)fa08td9=8fs/dc107lassa08tds="c++de" namptiL11029">1021 cl19 i7">EXPO1aun_smp" claaaaaaaaa=2="O1aun>n19s="sref">hasht/a> 9clst/spa v10e" id19t/a> op p1aun_smp" class="sref">d_p1aun>n12ni>,pvoid 106ARNI19t/a> op p1lass}p pppppppppppppppppp1las>n19e6>upma a wro="+kme7f"sifL ashavasha33333333*cW5" idtid8ai>=4a hrefcallerde=lo1048=8fa08td8some (c107;> 106ARNI19d n19=4" idtiL8>, tspllabecef=lin14" id4a findf="fs/dcache.c#L94" i 99ARNING712s="fref c1aun_lass="sref">rcup= /ac1aun>n19>tspa class="comme105f=8fs/dc105las33333333* href"+c .;> 106ARNI2id p 1 a105void2" i7class=2line" namptiL10e3=8fs/dc12e -20void lass="sref">d)fpppppppppppppiamptiLa> oruct p8rentt/a> /p105=">10510e4=8fs/dc102t;d_i20dca/a>,pvoid nr_namptiL133">105=">10510e" id2r5lias - g2aun_smp" claaaaaaaaa=2="O2delat20lofb_t="linetiL11046">104">p12r6lias - g2aun_smp" class="sref">d_p2;tss=20>,pvoid 106ARNI2 "crow awa2 xis_buck - fr -n16">sup2rbkme20e6>upma a wro="+kme7f"sifL ashavasha33333333*cDcache" atde=D_HtiL8>, c106="com" 7a href="+code=D.;> 106ARNI2i8crow awa2 40" class=9ref7="fs/999n2 c8s 20=4" idtiL8>, rcup= /ac2>is6w208" namptiL108">pi_f csref"8d_hash_maskt/a" classppididtiL/a>,pvoid _a>static stsubdirL 99="sref">D_HASat sta is h o 6teondel2tass=21pppppppppppppppp namptiL108">lass="sref">d)fpppppppppppppiamptiLa> oruct p href=8+code=hash" class="s1054=8fs/dc105="comline" namptiL133">105=">105stase: nnot b -n16">fpp2syste21ntry_finishedsw>p 1 asfallLptlass="sref">d)fpppppre_cachea" class="sref"ppppre_cach"+code=amptiLa> oructuacceppp--truct p8rentt/a> /p105=">105lass="sref">d)f idtiL40" class=1077=8fs/dc107amptiL98">p8t/7lockt/a>);"1017 id2ef="+code=2entry_stat" c7<5t/a>tsp7a2tspa 21dca/a>,pvoid lass="sref">d)fpppppacquirhea" class="sref"ppppacquirh"+code=amptiLa> oructuacc idtiL40" class=1077=8fs/dc107amptiL98">p href=8+code=hash" class="s1054=8fs/dc105="comline"ess./pre>105=">105d">dhr"+pamptiL h2dum i21code=newp_rcuhref="+ctiL108">goc10.8L40" idtiL40"repeaclass=1077=8fs/drepeaciL8>namptiL133">105=">105EXPO2T_SYMBOLt/a>(1016=8fs/dc121lls.21s="sref">hasht/a> 9clst/spa v10e" id28t/a> op p2ppppppppppppppppppppp nam2tiL1021>lofbt"> *t/spa 108la>108llas2a"crow awa2lass="sref">1018=8fs/dc102"line21 oructuacceppp--truct p8rentt/a> /p105=">10510e" id289crow awa2raun_lass="sref">rcu cl 2106ARNI2iL8_head" 2lass="sref">1021=8fs/dc102> >22longf="+1oL16is6superbkme6>ddc105las* All<5t/e L27" idtde=D_H...lofb_tccache.c/a1070s>1070lea27_smp" cla2s="sref">rcup= /a>,pvoid 2a hrn22kme7f"sd8aiks subdirectotassdc105las*ode->i_lock pr9tecr 99d_drasb" namptiL102">psb222s/dca/a>,pvop8ef">_a>static sttr>"rcup= /a>,pvoid 2a hrn22dca/a>,pvoid p 58t/7a>tspa class=L10d );"p052ptiL133">105=">105rcum>dhr"+pampti2 hrdu22code=newp_rcuhref="+class="sref">d)f idtiL40" class=1077=8fs/dc107amptiL98">p8t/7lockt/a>);"p108t/a> op ef="+code=parnt idtiL40" class=1077=8fs/dc107amptiL98">pss.8L40" idtiL40""sref">d"eq" namptiL108">p"eqchea08">p"eqcef">rntme6ed29)98ct 105=">105EXPO27">p 77t/a>t1026=8fs/dc1026"com22s="sref">hasht/a> 9clpa href="+cod1075l>107c#L22it/a> op p2ppppppppppparec#pppph" ce2bl>L122>,pvoid p052ptiL133">105=">105resass= = /a>p= /a2,pvoi2 D_H8t/7lockt/a>);"p1nd_cppp cheaess.8L40" idtiL40" class=9t 7class97amptiL98">p tspa class="commL10ef=8fs/dc10ef=8ref">nr_namptiL133">105=">105 op ppppppp">dhr2+pamp22L hrdum id8_subt c8" goc10.8L40" idtiL40"reme7flass=1077=8fs/dreme7fiL8>namptiL133">105=">10510e" id2" i7class=2line" namptiL1031=8fs/dc123> &g23"iL8>,>lofb_tccache.ou truct nr_:mmmmmmmmmmmmp=8fs/dc107=2>c8l_table2/a> *p"eqcef">rntppppppppppppiamptiLa> oruct p href=8+code=hash" class="s1054=8fs/dc105="comline" namptiL133">105=">105tsp7a>2spa 232s/dca/a>,pvop108t/"+cod"eqrenam op pppppppppppppppppppppe7fam"dsmp <08"struct p"eqcheaieidtiL824" class="line" nam1053=8fs/dc105 - d_flamptiL133">105=">105,pvoid p052ptiL133">105=">105lamptiL133">105=">105EXPO2questronssa hra e kme7f"h2od af23s="sref">hasht/a> 9clwn="+codline" n=mignstruppppppppiamptiLa> oru=mignstrupppppp hr7fam"dsmp ppppde=pard_lrutic st"eq" namptiL108">p"eqcheaieidtiL namptiL133">105=">105,pvoid 105=">105tsp7a2tspa 237s/dcamptiL133">105=">105,>lofb_tccache.remrop"pppppppppe7fam"dsmp <0mrop"ppppp8">p:mmmmmmmmmmmmp=8fs/dc107=2_s="frefd_2T_SYMBOLt/a>(104f=8fs/dc1240sre239hea namptiL1105=">105 op p2ppppppppppppppppppppp nam2tiL1024pppppppppppppppp namp.8L40" idtiL40" class=a08td9=8fs/dc107lassa08tds="cnamptiL133">105=">105c8l_table2/a> *lamptiL133">105=">105d_drarcu="+codsmp 208"st24void tspa class=agaspiL8>namptiL133">105=">105rcuun_smpL108"s/2ca/a>24 cepppp_rcass="sref">d_count40" class=108f=8fs/dc108lass="comm1namptiL133">105=">105alias - g2s="sref">rcumpL108"s/dca/2>,pvo244cepppp_rcass="sref">d_count=mignstruppppppiamptiLa> oru=mignstrupppp hr7fam"dsmp ppppde=pard_lrutic st"eq" namptiL108">p"eqcheaieidtiL namptiL133">105=">105p 77t/a>t1046=8fs/dc1026"com24s="sref">hashgoc10.8L40" idtiL40"agasp7a>tspa class=agaspiL8>namptiL133">105=">105105=">105=4" idtiL8>, p111106"l>106equi24s="frefd_2tiL_a>statasy_stat" f7<5t2a>tsp2a>tspa class="comme105f=8fs/*H">d)f="+code=dmptiL9 -lprune +code=" namptiL109">p111106"l>106equi2>,pvoid pp2ppppppppppppppppnewd.aD_HASH107p111106"l>106equi2>c8l_table2f="+coppppppppppppppppop 2ampti25kme7f"sd8aiks subdirectotass=">lofb_tccache.ccc1065s>106a cl2rmp" class2 op p+pppppppparec#ppppem26eda>25tiL8>, f">lofb_tccache.c/a1070s>1070lea2p eve8a16">=ksubdode->i_lock pr9tecr 99d_dranewd)f="+code=dmptiL9m1053=8fs/dc105 >d)f="+code=dmptiL9 hr7fppppppppppppppppppppptruct p 58t/">_a>static sttr>"107>t>107">p12rt/a> opG:2s="sref">rcurcu="+codpL102"s/dc256cepppp_rcass="sref">d_countLIST_HEAtspa class="comLIST_HEAt> op ef="+code=parnt ispochea" class="srefdispoch08">lde" namptiL11029">1021 cl2#L118" i=22"srass="sref">d_dranew1021 cl2#8crow awa2line" namptiL1059=8fs/dc1259"sr25r_det/sp!/spa 9vp 5106f=8fs/dc102HE_BY259hea namptiL1hrcts:town="+codline" na08td9=8fs/dc107lassa08tds="cot/7lockt/a>);" op >_a>static sttr>"l)8ef"0ai_lock pr9tecr 99p 51061=8fs/dc102> >26pppppppppppppppp namplass="sref">d)fp>d)f="+code=_ 7a m1053=8fs/dc105 >d)f="+code=_ 7a "+code=amptiLa> oructuacceispochea" class="srefdispoch08">lde" namptiL11029">1021 cl2ay failtt/2>stase: nno c<5t/a>tsp7a>2spa 26ntry_st/spa v10e" id2G: you mus2 own amreferenSearch=id8a216"ea26tiL8>,>lofb_tccache.EXPORT_SYMBO055=8fs/dc1055laEXPORT_SYMBO0> op ef="+code=parnt1>d)f="+code=dmptiL9m1053=8fs/dc105 >d)f="+code=dmptiL9 hr7lde" namptiL11029">1021 cl2aa hrpppes2entry_stat" ceWe_dehcendv2oma e26dca/ae" namptiL11029">1021 cl2aalias - g2ab a href=""fl" ce>is6non2L108"26"licod8f=ue searching7<_cacine" namptiL109">p111106"l>106equi2:na cla"in2questronssa h7<5t/a>tsp7a2tspa 267 droppf="+16">ame6>="licode6=__d_alaienamp-pp nampalaieate a c5s>10"e78">p namptiL109">p111106"l>106equi2:t/a> opG:2 class="comme1067=8fs/dc1267sre26umbeta pef=mmatss=s7<_cache" 7@sb: fctssystem1=8fwillabelong 7af="fs/dcache.c#L94" i 99ARNING72rL118" i=22 xis_buck - c6f="+code=6D2FINE_26e6>upma a wro="+kme7f"sifL a*_@+cod: qppp="li99v<+codf="fs/dcache.c#L94" i 99ARNING72r8crow awa2tiL_a>sta is hhavaksubm i28s -i26=4" idtiL8>, statass=@truct :6de2atytt26>tspa class="comme105f=8fs/*HAlaieates a ce78">f8Its.8L40"s %NULLHtiL8>,rehrefinsufficihrefmehe">p namptiL109">p111106"l>106equi2esis_bucki2tiL_a>statass<_cache" 7a 2ref="27longf="+1oL16is6superbkme6>d.aavailable. On a successuD_HASH1063 ref.8L40"9". T9v<+cod<106ARNI2ay failtt/2>stase: nnot bR2="sratrue2iiL1627kme7f"sd8aiks subdirectotass= copied HASHhrefcopy<lofb_tccache.c/a1070s>1070lea2G: you mus2 own amreferenaLm id8 po 2l=4" 27tiL8>, tsp7a2tspa 27void i_lock pr9tecr 99want_havaksubm id8s,pv2id p 58t/7a>tspa class=__d_alaiect lamptiL133">105=">105EXPO2T_SYMBOLt/a>(1076=8fs/dc127>tsp27 class="comment">107>t>107">p128t/a> op p2ppppppppppppppppppppp nam2tiL1027>,pvoid p 58t/7a>tspa class="comme1017=8fs/dc1017 - f="fs/de" namptiL11029">1021 cl28t/a> op p2ppppppppppppppppppp" ceph2coa>,27tspa class=" id8ef=8fs/dc10ef=8dramh08">de" namptiL11029">1021 cl288crow awa2ignes" class="sref">d"eq"2nampt27r_det/sp!/spa 9vwant_kme6eda>,2void 27=ret" clases"pppppppppppppptruct p 58tt/7lockt/a>);"_code=" iL824" class="line"GFP_KERNE055=8fs/dc1055laGFP_KERNE0 hr7lde" namptiL11029">1021 cl2="7line" n2mptiL51">p 51081=8fs/dc102maste28=newp_rcuf="+code"8d_hash_maskt/a class=1029=8fs/dc1029"sref">nr_e" namptiL11029">1021 cl2=y failtt/2s="sref">rcuueq" namptiL128">p"28ntry_finishedsw>p 1 a.8L40" idtiL40" class=NULL=1029=8fs/dc102NULL08">de" namptiL11029">1021 cl2sref">D_HA2HBITSt/a> 107=">wpvoid re2="+p"28tiL8>e" namptiL11029">1021 cl2sf="+code=2 claa href="+code=kmpppp=2 clp"28 cepppp_rcass=comme1066=8fs/dc1066"gt;> 106ARNI2sclass="sr2mrop" class=d_draun_smp"r2mrop"28"licod8f=ue searching7<_cachcccccccc*cW5"guarantee 8>L27" ehrn=d_d<+codlofb_tccache.c/a1070s>1070lea2q i7">EXPO2aun_smp" claaaaaaaaaiscoO2aunp"287 droppf="+16">ame6>="licodecccccccc*8=4" iway7" ehmehcpy()<5t/e byi99v<+cod swit65sre8de=p"eqch">lofb_tccache.c/a1070s>1070lea2qt/a> op p2aun_smp" clad_draun_smp"p2aunp"28umbeta pef=mmatss=s7<_cache"cccccccc*fwillastillaalways 48=8fa NUL L27" ehend, evende=lo10a6e7f">lofb_tccache.c/a1070s>1070lea2qt/a> op p2" iddddddddd"s.8L40" idtp2" ip"28e6>upma a wro="+kme7f"sifL ashavasha*=befover=migsre8a winternal NUL character">lofb_tccache.c/a1070s>1070lea2q8crow awa2L40" class=9a h7ref="989n2L40p"28=4" idtiL8>, d_c2aunp"28=ret" clases"pppppppppppppptruct p 58 href=8+code=hash" clai id8ef=8fs/dc10ef=8dai id8p 58[=8+code=hash" cDNAME_INLINE_LENef=8fs/dc10ef=8DNAME_INLINE_LENp 58 1]omment"> *t/spa 108la>108llas29"7line" n22" class="l9s t7he si99mn22" >n29=newp_rcuf="+code7a>tspa class= id8ef=8fs/dc10ef=8ramh08"> href=8+code=hash" clep7a>tspa class=lep08">p1ref/7lockt/a>);"tt/7lockt/a>);" href=8+code=hash" clep7a>tspa class=lep08">p+s1ss.8L40" idtiL40"GFP_KERNE055=8fs/dc1055laGFP_KERNE0 hr7lde" namptiL11029">1021 cl29ref">D_HA2own amreferrrrrrrrrrrrrrA2own>n22void aat n22dca/a>,pvoid lass="sref">d)fkmeh_code=dfre8ef=8fs/dc10ef=8kmeh_code=dfre8> op ef="+code=parnt code=_code=a href="+code=kme78">_code=" iL824" class="line" class=1029=8fs/dc1029"sref">nr_d i_lock pr9tecr 99.8L40" idtiL40" class=NULL=1029=8fs/dc102NULL08">de" namptiL11029">1021 cl29 i7">EXPO2aun_smp" claaaaaaaaa=2="O2aun>n29s="sref">hasht/a> 9clst/spa v10e" id29t/a> op p2aun_smp" class="sref">d_p2aun>n22ni>,pvoid op p2lass}p pppppppppppppppppp2las>n29tt/7lockt/a>);"p 58 href=8+code=hash" clai id8ef=8fs/dc10ef=8dai id8p 58de" namptiL11029">1021 cl298crow awa2L40" class=9ref7="fs/999n2L40>n29L hrdum id8_ssm id8_se" namptiL11029">1021 cl29s="fref c2aun_lass="sref">rcup= /ac2aun>n29>tspae" namptiL11029">1021 cl3id p108t/a> op /a> op ppppppppruct p 58 href=8+code=hash" cla id8ef=8fs/dc10ef=8da id8p 58tspa class="comlep7a>tspa class=lep08">pt/7lockt/a>);" href=8+code=hash" clep7a>tspa class=lep08">de" namptiL11029">1021 cl3ruct p"eqcef">rnruct p 58 href=8+code=hash" cla id8ef=8fs/dc10ef=8da id8p 58tspa class="comhashef=8fs/dc10ef=8hash08">pt/7lockt/a>);" href=8+code=hash" chashef=8fs/dc10ef=8hash08">de" namptiL11029">1021 cl3r2ct op ef="+code=parnt id8ef=8fs/dc10ef=8dramh08">824" class="line"mid8ef=8fs/dc10ef=8ramh08"> href=8+code=hash" cmid8ef=8fs/dc10ef=8ramh08">824" class="line"mid8ef=8fs/dc10ef=8ramh08"> href=8+code=hash" clep7a>tspa class=lep08">lde" namptiL11029">1021 cl3iL8_head" 3lass="sref">10e4=8fs/dc103t;d_i30 cepppp_rcass="sref">d_count id8ef=8fs/dc10ef=8dramh08">[=8+code=hash" cmid8ef=8fs/dc10ef=8ramh08"> href=8+code=hash" clep7a>tspa class=lep08">]omment"> *t/spa 108la>108llas3_alias - g3ab a href="ry<5t/a>tsp7a>3spa 30fs/dcache.c#L198" id95eik;e "3r5lias - g3aun_smp" claaaaaaaaa=2="O3delat30s="sref">hashfine""liniure7f"psubt c8aMak9 su"+lo10always see=e9las4=minatsre8NUL character8=ode->i_lock pr9tecr 99d_p3;tss=306cepppp_rcass="sref">d_countsmp_wmbppiamptiLa> orucmp_wmb> op lde" namptiL11029">1021 cl3i7lias - g3aass}p pppppppppppppppppp3rbkme307hea namptiL108">p"eqcef">rnruct p 58 href=8+code=hash" cla id8ef=8fs/dc10ef=8da id8p 58tspa class="commid8ef=8fs/dc10ef=8ramh08">tt/7lockt/a>);"de" namptiL11029">1021 cl3i8crow awa3 40" class=9ref7="fs/999n3 c8s 30r_det/sp!/spa 9vrcup= /ac3>is6w30=ret" clases"pppppppppppppptruct p 58 href=8+code=hash" claa href="1024=8fs/dc102="com">loomm1namptiL133">105=">105sta is h o 6teondel3tass=31>p108t/a> op /a> op ppppppppruct p 58 href=8+code=hash" clapppppppLef=DENTRY_KILLECTED <08imment"> *t/spa 108la>108llas3ay failtt/3>stase: nnot b -n16">fpp3syste31chea namptiL108">p"eqcef">rntppppwp_r_ini9m1053=8fs/dc105 ppppwp_r_ini9"+code=amptiLa> oructuacceppp--truct p8rentt/a> /p105=">105 oructuacceppp--truct p8rentt/a> /p< nam1053=8fs/dc105p< naine"9052ptiL133">105=">105tsp7a3tspa 31 cepppp_rcass="sref">d_count uct p 58 href=8+code=hash" clai h" ef=8fs/dc10ef=8dai h" 08">tt/7lockt/a>);"de" namptiL11029">1021 cl3aalias - g3="sref">d">dhr"+pamptiL h3dum i314cepppp_rcass="sref">d_count uct p 58 href=8+code=hash" clamptiL9m1053=8fs/dc105damptiL98">p8t/7lockt/a>);"1017 id3" i7">EXPO3T_SYMBOLt/a>(1016=8fs/dc131lls.31s="sref">hashtiLa> oructuacceppp--truct p8rentt/a> /p< bppiamptiLa> orup< b8">p8t/7lockt/a>);" orucbct 1017 id3"6lias - g3ppppppppppppppppppppp nam3tiL10316cepppp_rcass="sref">d_counteppp--truct p8rentt/a> /ptt/7lockt/a>);"de" namptiL11029">1021 cl3a7lias - g3lass="sref">1018=8fs/dc103"line317hea namptiL108">p"eqcef">rnruct p 58 href=8+code=hash" clafsdatappLef=DENTRY_KILLEsdata08">tt/7lockt/a>);"de" namptiL11029">1021 cl3a8crow awa3ppppppppppppppppiown="+co3line"31L hrdum id8_s7lockt/a>);" oructuacceppp--truct p8rentt/a> /p105=">105rcu cl 3 oructuacceppp--truct p8rentt/a> /p105=">1051021=8fs/dc103> >32>p108t/a> op /a> op ppppppppINIT_LIST_HEAtspa class="comINIT_LIST_HEAt"+code=amptiLa> oructuacceppp--truct p8rentt/a> /p<);" 99="sref">D_HA052ptiL133">105=">105rcup= /a>,pvoid 3a hrn32chea namptiL108">p"eqcef">rnINIT_HLIST_NODE=1029=8fs/dc102INIT_HLIST_NODE"+code=amptiLa> oructuacceppp--truct p8rentt/a> /p 99aliah>D_HA052ptiL133">105=">105d_drasb" namptiL103">psb32ct oructuacceppp--truct p8rentt/a> /p105=">105rcup= /a>,pvoid 3a hrn32 cepppp_rcass="sref">d_count < nt_pnr="sref">p8rentt/a> /p< bppiamptiLa> orup< b8">p="sref">p8rentt/a> /s_p105=">105rcum>dhr"+pampti3 hrdu32fs/dcache.c#L198" id95eik;e "3r i7">EXPO37">p 77t/a>t1026=8fs/dc1036"com32s="sref">hashtiLa> oructuaccc107acpuai ect op9052ptiL133">105=">105L132>lofbt"> *t/spa 108la>108llas3r"crow awa39" id">resass= = /a>p= /a3,pvoi3 1017 id3r8crow awa3raun_t/a> op ppppppp">dhr3+pamp32L hrdst/spa v10e" id3is="frefd_37class="line" namptiL103f38fs/d32>tspae" namptiL11029">1021 cl3" i7class=3line" namptiL1031=8fs/dc133> &g33longf="+1oL16is6superbkme6>ine" namptiL109">p111106"l>106equi3>c8l_table3/a> *10"e78">p namptiL109">p111106"l>106equi3G: you mus3 own amrefe c<5t/a>tsp7a>3spa 33tiL8>, p111106"l>106equi3G_smp" cla3entry_stat" ceptiL1atass=3omahc33ex levelLw>p eve8a16">=ksubdi@+cod: qppp="li99v<+codf="fs/dcache.c#L94" i 99ARNING73_alias - g3ab a href=""flwe ciasraca3wiL1633"licod8f=ue searching7<_cachef="fs/dcache.c#L94" i 99ARNING73_ i7">EXPO3questronssa hra e kme7f"h3od af337 droppf="+16">ame6>="licode6=Alaieates a ce78">f8Its.8L40"s %NULLHtiL8>,rehrefinsufficihrefmehe">p namptiL109">p111106"l>106equi3corfhref="3flias ovorf c d.atL16e se3uL16"33umbeta pef=mmatss=s7<_cache" 7available. On a successuD_HASH1063 ref.8L40"9". T9v<+cod<106ARNI3c"crow awa3 xis_buck - f7<5t/a>tsp7a3tspa 33e6>upma a wro="+kme7f"sifL a*_10pied HASHhrefcopy<lofb_tccache.c/a1070s>1070lea3c8crow awa3pppppppppppppppppppp namp3iL10833=4" idtiL8>, (104f=8fs/dc1340sre33S" cl/appppppppppppppppppptruct p 58t/7a>tspa class="dalaiect p 58t/">_a>static sttr>" oruqpppp 58t/7a>tspa class= id8ef=8fs/dc10ef=8ramh08">lamptiL133">105=">105 op p3ppppppppppppppppppppp nam3tiL1034gt; c8l_table3/a> *p 58tt/7lockt/a>);"p8rentt/a> /p< bppiamptiLa> orup< b8">p824" class="line"mid8ef=8fs/dc10ef=8ramh08">9052ptiL133">105=">105d_drarcu="+codsmp 308"st342s/dca/a>,pvonr_e" namptiL11029">1021 cl37_smp" cla3s="sref">rcuun_smpL108"s/3ca/a>34dca/a>,pvoid de" namptiL11029">1021 cl3>alias - g3s="sref">rcumpL108"s/dca/3>,pvo34fs/dcache.c#L198" id95eik;e "3 i7namptiL37">p 77t/a>t1046=8fs/dc1036"com34s="sref">hashtiLa> oructuacctppppppppnew_a>static stru>"p8rentt/a> /p105=">105106ARNI34"crow awa3 xis_buck - * mig3t go 34e6>upma a wro="+kme7f"sifL ashavasha*=do/a>tsp7a5=8f tiL98 coml=because+c href="ttpubjecf">lofb_tccache.c/a1070s>1070lea348crow awa3"+code=dentry_stat" * d8a3elet/3>=4" idtiL8>, lofb_tccache.c/a1070s>1070lea34s="frefd_3tiL_a>statasy_stat" f7<5t3a>tsp3a>tspa class="comme105f=8fs/shavasha*ode->i_lock pr9tecr 99,pvoid pp3ppppppppppppppppnew_a>static sttr>"105=">105c8l_table3f="+coppppppppppppppppop 3ampti35chea namptiL108">p"eqcef">rnruct p 58 href=8+code=hash" clamptiL9m1053=8fs/dc105damptiL98">p8t/7lockt/a>);"p 98t/a>tspa 9clas 99href=d"3rmp" class3 op p+pppppppparec#ppppem36eda>35ct oructuacceppp--truct p8rentt/a> /p"p8rentt/a> /p< ;" 99="sref">D_HA052ptiL133">105=">105d_counttppppppppppppiamptiLa> oruct p8rentt/a> /p105=">105d_dranewhash.8L40" idtiL40" class="comme1017=8fs/dc1017 - f="fs/dline" nampt1017 >1017 id3rt/a> opG:3s="sref">rcurcu="+codpL103"s/dc35umbetst/spa v10e" id3#L118" i=23"srass="sref">d_dranew op ef="+code=parnt"dalaiect 105=">105p 5106f=8fs/dc103HE_BY35S" cl/appppppppppppppppppptruct p 58t/7a>tspa class="dalaie_pseudoct lamptiL133">105=">105p 51061=8fs/dc103> >36gt; stase: nno c<5t/a>tsp7a>3spa 36ntry_finishedppppppppppppppppppppp"listtruct p 58tt/7lockt/a>);"9052ptiL133">105=">105,pvonr_e" namptiL11029">1021 cl3aa hrpppes3entry_stat" ceWe_dehcendv3oma e36dca/a>,pvoid p"eqcef">rnruct p 58 href=8+code=hash" clafppppppLef=DENTRY_KILLECTED <08i|t/7lockt/a>);"tspa class="commILLECt"fs/dline" nampt1017 >1017 id3aalias - g3ab a href=""fl" ce>is6non3L108"364="sref">hash.8L40" idtiL40" class="comme1017=8fs/dc1017 - f="fs/dline" nampt1017 >1017 id3:na cla"in3questronssa h7<5t/a>tsp7a3tspa 367 drost/spa v10e" id3:t/a> opG:3 class="comme1067=8fs/dc1367sre36umbetadtiL40" class=EXPORT_SYMBO055=8fs/dc1055laEXPORT_SYMBO0> op ef="+code=parnt"dalaie_pseudoct 105=">105105=">105sta is hhavaksubm i38s -i36=4" i/appppppppppppppppppptruct p 58t/7a>tspa class="dalaie_ id8ef=8fs/dc10ef=8daalaie_ id8 hr7fppppppppppppppppppppptruct p 58t/>_a>static sttr>"tspa class= id8ef=8fs/dc10ef=8ramh08">lamptiL133">105=">105statass=@truct :6de3atytt36>tspat statass<_cache" 7a 3ref="370try_finishedppppppppppppppppppppp"qpppppiamptiLa> oruqpppp 58tpppppppppppppp"qppiamptiLa> oruq"fs/dline" nampt1017 >1017 id3ay failtt/3>stase: nnot bR2="sratrue3iiL1637kme7fline" nampt1017 >1017 id3a: you mus3 own amreferenaLm id8 po 3l=4" 37ct oruq"fs/tspa class="commid8ef=8fs/dc10ef=8ramh08">tt/7lockt/a>);"dline" nampt1017 >1017 id3aa hrpppes3entry_stat" c7<5t/a>tsp7a3tspa 37 cepppp_rcass="sref">d_countqppiamptiLa> oruq"fs/tspa class="comlep7a>tspa class=lep08">pt/7lockt/a>);"tspa class=ppplep> op ef="+code=parnt id8ef=8fs/dc10ef=8ramh08">9052ptiL133">105=">105want_havaksubm id8s,pv3id d_countqppiamptiLa> oruq"fs/tspa class="comhashef=8fs/dc10ef=8hash08">pt/7lockt/a>);" op ef="+code=parntqppiamptiLa> oruq"fs/tspa class="commid8ef=8fs/dc10ef=8ramh08">,.4" class="line"qppiamptiLa> oruq"fs/tspa class="comlep7a>tspa class=lep08">9052ptiL133">105=">105(1076=8fs/dc137>tsp37s="sref">hash.8L40" idtiL40" class="dalaiect oructuaccqppiamptiLa> oruq"fs/9052ptiL133">105=">105 opG:3ppppppppppppppppppppp nam3tiL1037umbetst/spa v10e" id38t/a> op p3ppppppppppppppppppp" ceph3coa>,377s/dcidtiL40" class=EXPORT_SYMBO055=8fs/dc1055laEXPORT_SYMBO0> op ef="+code=parnt"dalaie_ id8ef=8fs/dc10ef=8daalaie_ id8 hr79052ptiL133">105=">105d"eq"3nampt37r_det/sp!/spa 9vwant_kme6eda>,3void 37=ret"voi" idtiL40" class= < nt_pp 58,.106sttppppppppppppppppppppptme78">_operati06sa href="+code=kme78">_operati06sisttruct p_rcss.8L40"ouct p 51081=8fs/dc103maste38gt; rcuueq" namptiL138">p"38chea namptiL108">p"eqcef">rnWARN_ON_ONCE=1029=8fs/dc102WARN_ON_ONCE> op ef="+code=parnt"ppp--truct p8rentt/a> /p9052ptiL133">105=">105D_HA3HBITSt/a> 107=">wpvoid re3="+p"38ct op ef="+code=parnt"ppp--truct p8rentt/a> /p105=">105,pvoid hrcu="+codsmp ases"dssmILLEC,pvoid|52ptiL133">105=">105 hrcu="+codsmp ases"dssmILLEC105=">105hasht/a> 9cltiL108"> hrcu="+codsmp ases"dssmILLEC105=">105 opG:3aun_smp" clad_draun_smp"p3aunp"386cepppp_rcass="sref">d_counteppp--truct p8rentt/a> /ptt/7lockt/a>);"105=">105 op p3" iddddddddd"s.8L40" idtp3" ip"387s/dca/a>,pvo105=">105d_c3aunp"38=ret" clases"p8rentt/a> /p105=">105n39pppppppppppppppp namplass="sref">d)fruct p 58 href=8+code=hash" clafppppppLef=DENTRY_KILLECTED <08i|t/7lockt/a>);"105=">105p8rentt/a> /p105=">105D_HA3own amreferrrrrrrrrrrrrrA3own>n32void d)fruct p 58 href=8+code=hash" clafppppppLef=DENTRY_KILLECTED <08i|t/7lockt/a>);"105=">105n32dca/a>,pvoid p8rentt/a> /p105=">105n32code=newp_rcuhref="+class="sref">d)fruct p 58 href=8+code=hash" clafppppppLef=DENTRY_KILLECTED <08i|t/7lockt/a>);"105=">105n39s="sref">hashp8rentt/a> /p105=">105 opG:3aun_smp" class="sref">d_p3aun>n39>,pvoid d)fruct p 58 href=8+code=hash" clafppppppLef=DENTRY_KILLECTED <08i|t/7lockt/a>);"105=">105 op p3lass}p pppppppppppppppppp3las>n397s/dca/a>,pvop8rentt/a> /p105=">105n39L hrdum id8_subt c8" lass="sref">d)fruct p 58 href=8+code=hash" clafppppppLef=DENTRY_KILLECTED <08i|t/7lockt/a>);"105=">105rcup= /ac3aun>n39>tspae" namptiL11029">1021 cl4id p108st/spa v10e" id4ruct op ef="+code=parnt"d nt_p105=">105e" namptiL11029">1021 cl4iL8_head" 4lass="sref">10e4=8fs/dc104t;d_i40 ceppstatic voi" idtiL40" class=__d_instantiats op ppppppppppppppppppppp"listtruct p 58,.ppppppppppppppppppppp"i h" ef=8fs/dc10ef=8i h" 08">tuct p_rcss.8L40"i h" ef=8fs/dc10ef=8i h" 08">952ptiL133">105=">105hashflockt/a>);"_a>static strueppp--truct p8rentt/a> /p105=">105d_p4;tss=406cepppp_rcass9at 9flamptiL133">105=">105d)fruct p 58 href=8+code=hash" clafppppppLef=DENTRY_KILLECTED <08i|t/7lockt/a>);"105=">105rcup= /ac4>is6w40=ret" clases"ubt c8" lass="sref">d)fhnex 8ad _hea _a>static strueppp--truct p8rentt/a> /p 99aliah>D_H,.e=amptiLa> oructuacci h" ef=8fs/dc10ef=8i h" 08">="sref">p8rentt/a> /i_eppp--truct 105=">105sta is h o 6teondel4tass=41>p108t/a> op st/spa v10e" id4ay failtt/4>stase: nnot b -n16">fpp4syste41chea namptiL108">p"eqcef">rn uct p 58 href=8+code=hash" clai h" ef=8fs/dc10ef=8dai h" 08">tt/7lockt/a>);"052ptiL133">105=">105_rcuwalk_barriepppiamptiLa> orume78">_rcuwalk_barriep> op ef="+code=parnt"ppp--truct 105=">105tsp7a4tspa 41 cepppp_rcass="sref">d_counttppppppppppppiamptiLa> oruct p8rentt/a> /p105=">105d">dhr"+pamptiL h4dum i414cepppp_rcass="sref">d_countfsnotify_d_instantiats op ef="+code=parnt"ppp--truct 9052ptiL133">105=">105(1016=8fs/dc141lls.417 drost/spa v10e" id4"6lias - g4ppppppppppppppppppppp nam4tiL1041>lofbt"> *t/spa 108la>108llas4a7lias - g4lass="sref">1018=8fs/dc104"line41e6>upma a wro="+kme7f"sifL ine" namptiL109">p111106"l>106equi4a8crow awa4ppppppppppppppppiown="+co4line"41=4" idtiL8>, " namptiL109">p111106"l>106equi4a9crow awa4raun_lass="sref">rcu cl 4tspa class="comme105f=8fs/*H@e78">:ASH1063 7a 10mpletsinnamptiL109">p111106"l>106equi4iL8_head" 4lass="sref">1021=8fs/dc104> >42longf="+1oL16is6superbkme6>d.aD0 h" :=0 h" =7a attl>1=7a fsrefce78">" namptiL109">p111106"l>106equi4iy failtt/4s="sref">rcup= /a>,pvoid 4a hrn42kme7f"sd8aiks subdirectotass=">lofb_tccache.ccc1065s>106a cl4i i7class=4"sref">d_drasb" namptiL104">psb42tiL8>, f">lofb_tccache.c/a1070s>1070lea47_smp" cla4s="sref">rcup= /a>,pvoid 4a hrn42ex levelLw>p eve8a16">=ksubd">lofb_tccache.c/a1070s>1070lea47alias - g4s="sref">rcum>dhr"+pampti4 hrdu42"licod8f=ue searching7<_cache8=4" iL40"s negativHASH106ros"in7a prodpppivHAfullfmehber7;> 106ARNI4r i7">EXPO47">p 77t/a>t1026=8fs/dc1046"com427 droppf="+16">ame6>="licode6=of societ>f">lofb_tccache.c/a1070s>1070lea476lias - g4ppppppppppparec#pppph" ce4bl>L142umbeta pef=mmatss=s7<_cache" ">lofb_tccache.c/a1070s>1070lea477lias - g49" id">resass= = /a>p= /a4,pvoi42e6>upma a wro="+kme7f"sifL a*_NOTE!8=4" i="+umos"7>L27" ehrnh" =="com has beendencre"sifass=lofb_tccache.c/a1070s>1070lea478crow awa4raun_t/a> op ppppppp">dhr4+pamp42=4" idtiL8>, 1070lea479crow awa47class="line" namptiL103f48fs/d42>tspa class="comme105f=8fs/*Hde=use+byi99v<70s>107s=lofb_tccache.c/a1070s>1070lea4" i7class=4line" namptiL1031=8fs/dc143> &g43longf="+1oL16is6superbkme6>a*ode->i_lock pr9tecr 99c8l_table4/a> *1021 cl4G: you mus4 own amrefe c<5t/a>tsp7a>4spa 43tiL8>voi" idtiL40" class= op ppppppppppppppppppppp"listtruct p 58,.ppppppppppppppppppppp"i h" ef=8fs/dc10ef=8i h" 08">tu.4" class="line"i h" ef=8fs/dc10ef=8i h" 08">9e" namptiL11029">1021 cl4G_smp" cla4entry_stat" ceptiL1atass=4omahc43ex lt d_countBUG_ONef=8fs/dc10ef=8BUG_ON> op "8d_hash_maskt/ahnex 8unhashe oructuaccisttruct p 58="sref">p8rentt/a> /p 99aliah>D_HA9052ptiL133">105=">105EXPO4questronssa hra e kme7f"h4od af43s="sref">hash9e" namptiL11029">1021 cl4G6lias - g4flias ovorf c d.atL16e se4uL16"43>,pvoid d)fpppppppppnew_a>static strui h" ef=8fs/dc10ef=8i h" 08">="sref">p8rentt/a> /i_ppppnew105=">105tsp7a4tspa 437hea namptiL108">p"eqcef">rn__d_instantiats op ct p_rcss.8L40"isttruct p 58,.4" class="line"i h" ef=8fs/dc10ef=8i h" 08">9052ptiL133">105=">105hash9e" namptiL11029">1021 cl4G9crow awa4T_SYMBOLt/a>(104f=8fs/dc1440sre43=ret" clases"ubt c8" lass="sref">d)ftppppppppppppiamptiLa> oruct ="sref">p8rentt/a> /i_ppppnew105=">105 op p4ppppppppppppppppppppp nam4tiL1044>p108t/a> op /a> op ppppppppsecurity_d_instantiats op ct p_rcss.8L40"isttruct p 58,.4" class="line"i h" ef=8fs/dc10ef=8i h" 08">9052ptiL133">105=">105c8l_table4/a> *10e" id4smp" class4"sref">d_drarcu="+codsmp 408"st44tiL8>,>lofb_tccache.EXPORT_SYMBO055=8fs/dc1055laEXPORT_SYMBO0> op ef="+code=parnt op9052ptiL133">105=">105_smp" cla4s="sref">rcuun_smpL108"s/4ca/a>44dca/ae" namptiL11029">1021 cl4>alias - g4s="sref">rcumpL108"s/dca/4>,pvo44"licod8f=ue searching7<_cacine" namptiL109">p111106"l>106equi4 i7namptiL47">p 77t/a>t1046=8fs/dc1046"com447 droppf="+16">ame6>="licode6=d_instantiatsa hiqus - instantiats af="n-aliahedfce78">" namptiL109">p111106"l>106equi47orfhref="4you must own amrefe c<5t/4>tsp744umbeta pef=mmatss=s7<_cache" 7@e78">:ASH1063 7a instantiats> namptiL109">p111106"l>106equi47"crow awa4 xis_buck - * mig4t go 44e6>upma a wro="+kme7f"sifL a.aD0 h" :=0 h" =7a attl>1=7a fsrefce78">" namptiL109">p111106"l>106equi448crow awa4"+code=dentry_stat" * d8a4elet/4>=4" idtiL8>, p111106"l>106equi4 9crow awa4tiL_a>statasy_stat" f7<5t4a>tsp4a>tspa class="comme105f=8fs/=8Fctl8de=0 h" =0 formati06 de=t10"e78">f On success,7c h.8L40"s NULL7s=lofb_tccache.c/a1070s>1070lea4>,pvoid pp4ppppppppppppppppnewd.aIf8a wunhashe aliah=of "e78">" already exex s,7t10nlo10.8L40" ths> namptiL109">p111106"l>106equi4>c8l_table4f="+coppppppppppppppppop 4ampti45kme7f"sd8aiks subdirectotass= aliahedfce78"> instead HASHdrop t/e ">pessrce 7a inh" 7s=lofb_tccache.c/a1070s>1070lea4>mp" class4 op p+pppppppparec#ppppem46eda>45tiL8>, p eve8a16">=ksubdiNote 7>L27cn ord4=8fodavoi" conflicts with=p"eqch() etc,i99v1070lea4>alias - g4" class="sref">d_dranew semaphor 7s=lofb_tccache.c/a1070s>1070lea4>i7namptiL47class="line" namptiL105648fs/d457 droppf="+16">ame6>="licode6s=lofb_tccache.c/a1070s>1070lea4>orfhref="4s="sref">rcurcu="+codpL104"s/dc45umbeta pef=mmatss=s7<_cache" 7=4" i=lsoi="+umos"7>L27" ehrnh" =="com has beendencre"sifass=lofb_tccache.c/a1070s>1070lea4#L118" i=24"srass="sref">d_dranew,rwise set) byi99vL27c href="ws=lofb_tccache.c/a1070s>1070lea4<8crow awa4line" namptiL1059=8fs/dc1459"sr45=4" idtiL8>, p 5106f=8fs/dc104HE_BY45>tspa class="comme105f=8fs/=ode->i_lock pr9tecr 99p 51061=8fs/dc104> >46gt; op ppppppppppppppppppppp"listtruct p 58,i_lock pr9tecr 99stase: nno c<5t/a>tsp7a>4spa 46ntry_finishedsw>p 1 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaappppppppppppppppppppp"i h" ef=8fs/dc10ef=8i h" 08">tuct p_rcss.8L40"i h" ef=8fs/dc10ef=8i h" 08">952ptiL133">105=">105,pvoid ppppppppppppppppppppp"listtruct aliah>D_H052ptiL133">105=">105is6non4L108"464="sref">hashinpppppppppppppppp"lep7a>tspa class=lep08">pt/7lockt/a>);"p 58="sref">p8rentt/a> /p< id8ef=8fs/dc10ef=8da id8 hr7tspa class="comlep7a>tspa class=lep08">052ptiL133">105=">105tsp7a4tspa 46s="sref">hash106sttchart/7a>tspa class= id8ef=8fs/dc10ef=8ramh08">pt/7lockt/a>);"p 58="sref">p8rentt/a> /p< id8ef=8fs/dc10ef=8da id8 hr7tspa class="commid8ef=8fs/dc10ef=8ramh08">dline" nampt1017 >1017 id4:t/a> opG:4 class="comme1067=8fs/dc1467sre46>,pvoid pt/7lockt/a>);"p 58="sref">p8rentt/a> /p< id8ef=8fs/dc10ef=8da id8 hr7tspa class="comhashef=8fs/dc10ef=8hash08">de" namptiL11029">1021 cl4GL118" i=24 xis_buck - c6f="+code=6D4FINE_467ca/a>,pvoid ppppppppppppppppppppp"hnex 8 h" ef=8fs/dc10ef=8hnex 8 h" isttruct p_rcss.8L40"uct 105=">105sta is hhavaksubm i48s -i46r_det/sp!/spa 9vstatass=@truct :6de4atytt46=ret" clases"9at statass<_cache" 7a 4ref="47pppppppppppppppp namplass="sref">d)f__d_instantiats op ct p_rcss.8L40"isttruct p 58,.4" class="line"NULL=1029=8fs/dc102NULL08">9052ptiL133">105=">105stase: nnot bR2="sratrue4iiL1647ntry_finishedsw>p 1 a.8L40" idtiL40" class=NULL=1029=8fs/dc102NULL08">de" namptiL11029">1021 cl4a: you mus4 own amreferenaLm id8 po 4l=4" 47ct tsp7a4tspa 47dca/ae" namptiL11029">1021 cl4ealias - g4f">want_havaksubm id8s,pv4id d_counthnex 8for_e">1_isttruct 1_isttr> op ct p_rcss.8L40"aliahref="9lme7nt"> aliah>D_H,.4" class="line"uct ="sref">p8rentt/a> /i_eppp--truct 99aliah>D_HAat (1076=8fs/dc147>tsp47s="sref">hashpp_rcass=comme1066=8fs/dc1066"gt;> 106ARNI4et/a> opG:4ppppppppppppppppppppp nam4tiL1047umbeta pef=mmatss=s7<_cache"""""""""""""""""* Do/a>tsp7a5=8f aliah="sre="coml >,re,=because+aliahes with;> 106ARNI4eL118" i=24ppppppppppppppppppp" ceph4coa>,47e6>upma a wro="+kme7f"sifL ashavasha""""""""* damptiL9 =="e78">="sre="mptiL9 ptif="ttpubjecf8fodpp" o=s=lofb_tccache.c/a1070s>1070lea4e8crow awa4ignes" class="sref">d"eq"4nampt47=4" idtiL8>, 1070lea47sis_bucki4ass="sref">want_kme6eda>,4void 47>tspa class="comme105f=8fs/shavasha""""""""*ode->i_lock pr9tecr 99p 51081=8fs/dc104maste48pppppppppppppppp namp aliah>D_H href=8+code=hash" cla id8ef=8fs/dc10ef=8da id8p 58tspa class="comhashef=8fs/dc10ef=8hash08">p!t/7lockt/a>);"952ptiL133">105=">105rcuueq" namptiL148">p"48ntry_finishedsw>p 1 aaaaaaaaa106tinuede" namptiL11029">1021 cl4sref">D_HA4HBITSt/a> 107=">wpvoid re4="+p"48void aliah>D_H href=8+code=hash" clamptiL9m1053=8fs/dc105damptiL98">p8!t/7lockt/a>);"p 58="sref">p8rentt/a> /pp952ptiL133">105=">105,pvoid 106tinuede" namptiL11029">1021 cl4salias - g4mrop" class=d_draun_smp"r4mrop"48code=newp_rcuhref="+c aliah>D_H href=8+code=hash" cla id8ef=8fs/dc10ef=8da id8p 58tspa class="comlep7a>tspa class=lep08">p!t/7lockt/a>);"tspa class=lep08">9e" namptiL11029">1021 cl4si7namptiL4aun_smp" claaaaaaaaaiscoO4aunp"48s="sref">hasht/a> 9cltiL108">106tinuede" namptiL11029">1021 cl4st/a> opG:4aun_smp" clad_draun_smp"p4aunp"48>,pvoid aliah>D_H,.4" class="line"mid8ef=8fs/dc10ef=8ramh08">,.4" class="line"lep7a>tspa class=lep08">99e" namptiL11029">1021 cl4sL118" i=24" iddddddddd"s.8L40" idtp4" ip"48106tinuede" namptiL11029">1021 cl4s8crow awa4L40" class=9a h7ref="989n4L40p"48L hrdum id8_subt c8" lass="sref">d)f__dge9m1053=8fs/dc105__dge9> op ct p_rcss.8L40"aliahref="9lme7nt"> aliah>D_H9052ptiL133">105=">105d_c4aunp"48=ret" clases"ubt c8" .8L40" idtiL40" class=aliahref="9lme7nt"> aliah>D_H052ptiL133">105=">105n49>p108t/a> op st/spa v10e" id49_smp" cla4="+code=kme8=> n49kme7fline" nampt1017 >1017 id49ref">D_HA4own amreferrrrrrrrrrrrrrA4own>n49ct op ct p_rcss.8L40"isttruct p 58,.4" class="line"i h" ef=8fs/dc10ef=8i h" 08">9052ptiL133">105=">105n42dca/a>,pvoid .8L40" idtiL40" class=NULL=1029=8fs/dc102NULL08">de" namptiL11029">1021 cl49alias - g4 claaaaaaaaapppppppppppar4 cl>n42code=st/spa v10e" id49i7namptiL4aun_smp" claaaaaaaaa=2="O4aun>n49s="srt/spa v10e" id49t/a> opG:4aun_smp" class="sref">d_p4aun>n49>,pvo/appppppppppppppppppptruct p 58t/7a>tspa class="dinstantiatsa hiqus op ppppppppppppppppppppp"listtruct p 58,appppppppppppppppppppp"i h" ef=8fs/dc10ef=8i h" 08">tuct p_rcss.8L40"i h" ef=8fs/dc10ef=8i h" 08">952ptiL133">105=">105 op p4lass}p pppppppppppppppppp4las>n497s/dct n49L hrdum id8_sppppppppppppppppppppp"listtruct de" namptiL11029">1021 cl49sis_bucki4aun_lass="sref">rcup= /ac4aun>n49>tspae" namptiL11029">1021 cl5id p108t/a> op /a> op ppppppppBUG_ONef=8fs/dc10ef=8BUG_ON> op "8d_hash_maskt/ahnex 8unhashe oructuaccisttruct p 58="sref">p8rentt/a> /p 99aliah>D_HA9052ptiL133">105=">1051017 id5r2ct ,pvo952ptiL133">105=">10510e4=8fs/dc105t;d_i50dca/a>,pvoid p"eqcef">rnpppppppppnew_a>static strui h" ef=8fs/dc10ef=8i h" 08">="sref">p8rentt/a> /i_ppppnew105=">105d_countresul9m1053=8fs/dc105resul908">tt/7lockt/a>);" op ct p_rcss.8L40"isttruct p 58,.4" class="line"i h" ef=8fs/dc10ef=8i h" 08">9052ptiL133">105=">105hash952ptiL133">105=">105d_p5;tss=50>,pvoid d)fpppppppppppppiamptiLa> oruct ="sref">p8rentt/a> /i_ppppnew105=">105105=">105hashAat rcup= /ac5>is6w50=ret" clases"ubt c8" lass="sref">d)fsecurity_d_instantiats op ct p_rcss.8L40"isttruct p 58,.4" class="line"i h" ef=8fs/dc10ef=8i h" 08">9052ptiL133">105=">105sta is h o 6teondel5tass=51pppppppppppppppp namp.8L40" idtiL40" class=NULL=1029=8fs/dc102NULL08">de" namptiL11029">1021 cl5ay failtt/5>stase: nnot b -n16">fpp5syste51chea namptiL1st/spa v10e" id5e2ct e" namptiL11029">1021 cl5eL8_head" 5entry_stat" c7<5t/a>tsp7a5tspa 51 cepppp_rcass="sref">d_countBUG_ONef=8fs/dc10ef=8BUG_ON> op "8d_hash_maskt/ad8unhashe A9052ptiL133">105=">105d">dhr"+pamptiL h5dum i514cepppp_rcass="sref">d_countipu9m1053=8fs/dc105ipu9"+cod8d_hash_maskt/ai h" ef=8fs/dc10ef=8i h" 08">9052ptiL133">105=">105(1016=8fs/dc151lls.51s="sref">hash.8L40" idtiL40" class=resul9m1053=8fs/dc105resul908">de" namptiL11029">1021 cl5"6lias - g5ppppppppppppppppppppp nam5tiL1051umbetst/spa v10e" id5a7lias - g5lass="sref">1018=8fs/dc105"line517s/dcamptiL133">105=">105 op ef="+code=parnt op9052ptiL133">105=">105rcu cl 5tspae" namptiL11029">1021 cl5iL8_head" 5lass="sref">1021=8fs/dc105> >520,pvo/appppppppppppppppppptruct p 58t/7a>tspa class="dmake_roo9m1053=8fs/dc105damake_roo9> op ppppppppppppppppppppp"i h" ef=8fs/dc10ef=8i h" 08">tuct p_rcss.8L40"roo9ai h" ef=8fs/dc10ef=8roo9ai h" 08">952ptiL133">105=">105rcup= /a>,pvoid 5a hrn52kme7ft d_drasb" namptiL105">psb522s/dca/a>,pvoppppppppppppppppppppp"listtruct tt/7lockt/a>);"de" namptiL11029">1021 cl57_smp" cla5s="sref">rcup= /a>,pvoid 5a hrn52dca/ae" namptiL11029">1021 cl57alias - g5s="sref">rcum>dhr"+pampti5 hrdu524="sref">hashiaiown="+codline" nroo9ai h" ef=8fs/dc10ef=8roo9ai h" 08">9at EXPO57">p 77t/a>t1026=8fs/dc1056"com52s="sref">hasht/a> 9clstatic 106sttppppppppppppppppppppptqpppppiamptiLa> oruqpppp 58t4" class="line"mid8ef=8fs/dc10ef=8ramh08">tt/7lockt/a>);""/"de->, 19052ptiL133">105=">105L152>lofbt"> *t/spa 108la>108llas577lias - g59" id">resass= = /a>p= /a5,pvoi52tt/7lockt/a>);"="sref">p8rentt/a> /i_sbppiamptiLa> orui< b8">p82e=amptiLa> oructuaccmid8ef=8fs/dc10ef=8ramh08">9052ptiL133">105=">105 op ppppppp">dhr5+pamp52L hrdum id8_subt c8" iaiown="+codline" nresm1053=8fs/dc105res08">952ptiL133">105=">105 op wn="+codline" nresm1053=8fs/dc105res08">,.4" class="line"roo9ai h" ef=8fs/dc10ef=8roo9ai h" 08">9052ptiL133">105=">105 &g53pppppppppppppppp nampelse52ptiL133">105=">105 *p 1 aaaaaaaaa="sref">d_countipu9m1053=8fs/dc105ipu9"+cod8d_hash_maskt/aroo9ai h" ef=8fs/dc10ef=8roo9ai h" 08">9052ptiL133">105=">105tsp7a>5spa 53ct ,pvoid .8L40" idtiL40" class=resm1053=8fs/dc105res08">052ptiL133">105=">10510e" id5_ i7">EXPO5questronssa hra e kme7f"h5od af53s="srddtiL40" class=EXPORT_SYMBO055=8fs/dc1055laEXPORT_SYMBO0> op ef="+code=parnt op9052ptiL133">105=">105lofbt"> *t/spa 108la>108llas5c"crow awa5 xis_buck - f7<5t/a>tsp7a5tspa 537hea static ppppppppppppppppppppp"listtruct );" __d_find_any op ppppppppppppppppppppp"i h" ef=8fs/dc10ef=8i h" 08">tuct p_rcss.8L40"i h" ef=8fs/dc10ef=8i h" 08">952ptiL133">105=">105 aliah>D_H052ptiL133">105=">105 op p5ppppppppppppppppppppp nam5tiL1054>p10852ptiL133">105=">105 * oructuacci h" ef=8fs/dc10ef=8i h" 08">="sref">p8rentt/a> /i_eppp--truct 105=">105d_drarcu="+codsmp 508"st54void de" namptiL11029">1021 cl5>_smp" cla5s="sref">rcuun_smpL108"s/5ca/a>54 cepppp_rcass="sref">d_countaliahref="9lme7nt"> aliah>D_Htt/7lockt/a>);"="sref">p8rentt/a> /i_eppp--truct 99aliah>D_HAde" namptiL11029">1021 cl5>alias - g5s="sref">rcumpL108"s/dca/5>,pvo544cepppp_rcass="sref">d_count__dge9m1053=8fs/dc105__dge9> op ct p_rcss.8L40"aliahref="9lme7nt"> aliah>D_H9052ptiL133">105=">105p 77t/a>t1046=8fs/dc1056"com54s="sref">hash.8L40" idtiL40" class=aliahref="9lme7nt"> aliah>D_H052ptiL133">105=">105tsp754umbetst/spa v10e" id57"crow awa5 xis_buck - * mig5t go 547s/dcamptiL133">105=">105=4" idtiL8>, p111106"l>106equi5 9crow awa5tiL_a>statasy_stat" f7<5t5a>tsp5a>tspa class="comme105f=8fs/=8d_find_anyp111106"l>106equi5>,pvoid pp5ppppppppppppppppnewd.aD0 h" :=0 h" =7a fcnd HA aliah=for" namptiL109">p111106"l>106equi5>y failtt/5f="+coppppppppppppppppop 5ampti55kme7f"sd8aiks subdirectotass=" namptiL109">p111106"l>106equi5>mp" class5 op p+pppppppparec#ppppem56eda>55tiL8>, p111106"l>106equi5>_smp" cla5="srepppppppppppppppun_sm5L108"55ex levelLw>p eve8a16">=ksubdir>pessrce for t/e of 99vm. aIf8no+aliahes exex ,H.8L40" %NULL7s=lofb_tccache.c/a1070s>1070lea5>alias - g5" class="sref">d_dranewi7namptiL57class="line" namptiL105658fs/d557 dro/appppppppppppppppppptruct p 58t/7a>tspa class="dfind_any d_find_any op ppppppppppppppppppppp"i h" ef=8fs/dc10ef=8i h" 08">tuct p_rcss.8L40"i h" ef=8fs/dc10ef=8i h" 08">952ptiL133">105=">105orfhref="5s="sref">rcurcu="+codpL105"s/dc55umbett d_dranew105=">105p 5106f=8fs/dc105HE_BY559cepppp_rcass="sref">d_countpppppppppnew_a>static strui h" ef=8fs/dc10ef=8i h" 08">="sref">p8rentt/a> /i_ppppnew105=">105p 51061=8fs/dc105> >56>p108t/a> op /a> op ppppppppruuct __d_find_any op 8d_hash_maskt/ai h" ef=8fs/dc10ef=8i h" 08">9052ptiL133">105=">105stase: nno c<5t/a>tsp7a>5spa 56chea namptiL108">p"eqcef">rnpppppppppppppiamptiLa> oruct ="sref">p8rentt/a> /i_ppppnew105=">105D_H052ptiL133">105=">10510e" id5aalias - g5ab a href=""fl" ce>is6non5L108"564="srddtiL40" class=EXPORT_SYMBO055=8fs/dc1055laEXPORT_SYMBO0> op ef="+code=parnt d_find_any op9052ptiL133">105=">105tsp7a5tspa 56s="srt/spa v10e" id5:t/a> opG:5 class="comme1067=8fs/dc1567sre56umbeta pef=mmatss=s7<_cacheine" namptiL109">p111106"l>106equi5GL118" i=25 xis_buck - c6f="+code=6D5FINE_56e6>upma a wro="+kme7f"sifL a.ad_obta for a givee=0 h" " namptiL109">p111106"l>106equi5r8crow awa5tiL_a>sta is hhavaksubm i58s -i56=4" idtiL8>, for" namptiL109">p111106"l>106equi5r"7line" n5tiL_a>statass=@truct :6de5atytt56>tspa class="comme105f=8fs/=" namptiL109">p111106"l>106equi5esis_bucki5tiL_a>statass<_cache" 7a 5ref="57longf="+1oL16is6superbkme6>d.aObta < afce78"> for ae=0 h" =resul9sre8from NFS fctehHASl =="nversi06 or" namptiL109">p111106"l>106equi5ay failtt/5>stase: nnot bR2="sratrue5iiL1657kme7f"sd8aiks subdirectotass= similar tpee=by hHASl =operati06s. aTh10.8L40"edfce78"> may8be anonymous," namptiL109">p111106"l>106equi5a: you mus5 own amreferenaLm id8 po 5l=4" 57tiL8>, 10)7s=lofb_tccache.c/a1070s>1070lea5aa hrpppes5entry_stat" c7<5t/a>tsp7a5tspa 57ex levelLw>p eve8a16">=ksubd">lofb_tccache.c/a1070s>1070lea5ealias - g5f">want_havaksubm id8s,pv5id 0 h" , we mux =ensure"7>L27" ehrnh" =only ev4=s=lofb_tccache.c/a1070s>1070lea5ei7namptiL5T_SYMBOLt/a>(1076=8fs/dc157>tsp577 droppf="+16">ame6>="licode6=has t/e de78">f aIf8afce78"> ih=found, 7>L27cs0.8L40"edfinstead ofs=lofb_tccache.c/a1070s>1070lea5et/a> opG:5ppppppppppppppppppppp nam5tiL1057umbeta pef=mmatss=s7<_cache"* alaieatsre8a new t/e7s=lofb_tccache.c/a1070s>1070lea5aL118" i=25ppppppppppppppppppp" ceph5coa>,57e6>upma a wro="+kme7f"sifL ad">lofb_tccache.c/a1070s>1070lea5e8crow awa5ignes" class="sref">d"eq"5nampt57=4" idtiL8>, pessrce 7a " ehrnh" =has beendtranspesrass=lofb_tccache.c/a1070s>1070lea57sis_bucki5ass="sref">want_kme6eda>,5void 57>tspa class="comme105f=8fs/* 7a " ehde78">f aInlcase of lasesror 99vpessrce on " ehrnh" =cs0.8leahed7s=lofb_tccache.c/a1070s>1070lea5="7line" n5mptiL51">p 51081=8fs/dc105maste58longf="+1oL16is6superbkme6>d.aTo make7c heahi4=8foduse+de=export=operati06s8a %NULLaor IS_ERRhrnh" =mays=lofb_tccache.c/a1070s>1070lea5=y failtt/5s="sref">rcuueq" namptiL158">p"58kme7f"sd8aiks subdirectotass= bv<L40" value," namptiL109">p111106"l>106equi5sref">D_HA5HBITSt/a> 107=">wpvoid re5="+p"58tiL8>, 1070lea5=a hrpppes5 claa href="+code=kmpppp=5 clp"58ex levelLw>p eve8a16">=ksubdode->i_lock pr9tecr 99p 58t/7a>tspa class="dobta d_obta op ppppppppppppppppppppp"i h" ef=8fs/dc10ef=8i h" 08">tuct p_rcss.8L40"i h" ef=8fs/dc10ef=8i h" 08">952ptiL133">105=">105,pvoid oruqpppp 58t4" class="line"anonppping"ef="9lme7nt"> anonppping>D_Htt/{ tspa class="commid8ef=8fs/dc10ef=8ramh08">tt/7 class="commppping">""de-> }052ptiL133">105=">105,pvoid ppppppppppppppppppppp"listtruct 105=">105052ptiL133">105=">105d_c5aunp"58>tspae" namptiL11029">1021 cl59"7line" n52" class="l9s t7he si99mn52" >n59>p108t/a> op 9e" namptiL11029">1021 cl59y failtt/5="+code=kme8=> n59ntry_finishedsw>p 1 a.8L40" idtiL40" class=ERR_PTR55=8fs/dc1055laERR_PTR> op -idtiL40" class=ESTALE55=8fs/dc1055laESTALE> op9052ptiL133">105=">105D_HA5own amreferrrrrrrrrrrrrrA5own>n592s/dca/a>,pvo op 8d_hash_maskt/ai h" ef=8fs/dc10ef=8i h" 08">99e" namptiL11029">1021 cl59a hrpppes5afound"an inusiepppppp r=5afo>n59dca/a>,pvoid 9052ptiL133">105=">105n52code=52ptiL133">105=">105n59s="sref">hashflockt/a>);"tt/7lockt/a>);" d_find_any op 8d_hash_maskt/ai h" ef=8fs/dc10ef=8i h" 08">9052ptiL133">105=">105 opG:5aun_smp" class="sref">d_p5aun>n596cepppp_rcass952ptiL133">105=">105 op p5lass}p pppppppppppppppppp5las>n59052ptiL133">105=">105n59r_det/sp!/spa 9vrcup= /ac5aun>n599cepppp_rcass="sref">d_counttmuct ="sref">p8rentt/a> /i_sbppiamptiLa> orui< b8">p82e=amptiLa> oructuaccanonppping"ef="9lme7nt"> anonppping>D_H9052ptiL133">105=">105p108t/a> op p 1 aflockt/a>);"tt/7lockt/a>);" op -idtiL40" class=ENOMEM55=8fs/dc1055laENOMEM>D_H9052ptiL133">105=">105052ptiL133">105=">10510e4=8fs/dc106t;d_i60dca/a>,pvoid st/spa v10e" id6_alias - g6ab a href="ry<5t/a>tsp7a>6spa 60code=52ptiL133">105=">105hashflockt/a>);"_a>static strui h" ef=8fs/dc10ef=8i h" 08">="sref">p8rentt/a> /i_ppppnew105=">105d_p6;tss=60>,pvoid );"tt/7lockt/a>);" __d_find_any op 8d_hash_maskt/ai h" ef=8fs/dc10ef=8i h" 08">9052ptiL133">105=">1059at d)fpppppppppppppiamptiLa> oruct ="sref">p8rentt/a> /i_ppppnew105=">105rcup= /ac6>is6w60=ret" clases"ubt c8" lass="sref">d)fdpu9m1053=8fs/dc105dpu9"+cod8d_hash_maskt/atmuct 105=">105sta is h o 6teondel6tass=61pppppppppppppppp nampgo9o wn="+codline" nout_ipu9m1053=8fs/dc105out_ipu908">052ptiL133">105=">105stase: nnot b -n16">fpp6syste61chea namptiL1st/spa v10e" id6e2ct e" namptiL11029">1021 cl6eL8_head" 6entry_stat" c7<5t/a>tsp7a6tspa 61 cepppp_rcass= pef=mmatss=s7<_cachein attl>1=afcisconnectedfce78"> dode->i_lock pr9tecr 99d">dhr"+pamptiL h6dum i614cepppp_rcass="sref">d_countpppppppppnew_a>static strutmuct p8rentt/a> /p105=">105(1016=8fs/dc161lls.61s="sref">hashflockt/a>);"p8rentt/a> /ptt/7lockt/a>);"052ptiL133">105=">105,pvoid );"p8rentt/a> /p d_flagh,pvoi|t/7lockt/a>);" DCACHE_DISCONNECTED08">052ptiL133">105=">1051018=8fs/dc106"line617hea namptiL108">p"eqcef">rnhnex 8add_hea _a>static strutmuct p8rentt/a> /p 99aliah>D_H,.e=amptiLa> oructuacci h" ef=8fs/dc10ef=8i h" 08">="sref">p8rentt/a> /i_eppp--truct 105=">105p"eqcef">rnhnex 8bl_a>static strutmuct p8rentt/a> /p orud< b8">p="sref">p8rentt/a> /s_anonnew105=">105rcu cl 6d_counthnex 8bl_a>static strutmuct p8rentt/a> /pD_H,.e=amptiLa> oructuacctmuct p8rentt/a> /p orud< b8">p="sref">p8rentt/a> /s_anonnew105=">1051021=8fs/dc106> >62>p108t/a> op /a> op pppppppphnex 8bl oruhnex 8bl_a>static strutmuct p8rentt/a> /p orud< b8">p="sref">p8rentt/a> /s_anonnew105=">105rcup= /a>,pvoid 6a hrn62chea namptiL108">p"eqcef">rnpppppppppppppiamptiLa> oruct op="sref">p8rentt/a> /p105=">105d_drasb" namptiL106">psb62ct oruct ="sref">p8rentt/a> /i_ppppnew105=">105rcup= /a>,pvoid 6a hrn62 cepppp_rcass="sref">d_countsecurity_d_instantiats op ct p_rcss.8L40"tmuct 9052ptiL133">105=">105rcum>dhr"+pampti6 hrdu62code=52ptiL133">105=">105EXPO67">p 77t/a>t1026=8fs/dc1066"com62s="sref">hash.8L40" idtiL40" class=tmuct 105=">105L162>lofbt"> *t/spa 108la>108llas677lias - g69" id">resass= = /a>p= /a6,pvoi62:t"> *t/spa 108la>108llas678lias - g6raun_t/a> op ppppppp">dhr6+pamp628="sref">hashte=ampe=amp "8d_hash_maskt/aIS_ERR55=8fs/dc1055laIS_ERR> op 8d_hash_maskt/aresm1053=8fs/dc105res08">9952ptiL133">105=">105d_countsecurity_d_instantiats op ct p_rcss.8L40"resm1053=8fs/dc105res08">,.4" class="line"i h" ef=8fs/dc10ef=8i h" 08">9052ptiL133">105=">105 &g63>p108t/a> op /a> op ppppppppipu9m1053=8fs/dc105ipu9"+cod8d_hash_maskt/ai h" ef=8fs/dc10ef=8i h" 08">9052ptiL133">105=">105 *052ptiL133">105=">105tsp7a>6spa 63ct 10e" id6G_smp" cla6entry_stat" ceptiL1atass=6omahc63dca/aidtiL40" class=EXPORT_SYMBO055=8fs/dc1055laEXPORT_SYMBO0> op ef="+code=parnt d_obta op9052ptiL133">105=">105105=">105EXPO6questronssa hra e kme7f"h6od af637 droppf="+16">ame6>="licodine" namptiL109">p111106"l>106equi6"6lias - g6flias ovorf c d.atL16e se6uL16"63umbeta pef=mmatss=s7<_cache"* d< pliceaaliah - plice=afcisconnectedfce78"> in9o 99vp111106"l>106equi6"7lias - g6 xis_buck - f7<5t/a>tsp7a6tspa 63e6>upma a wro="+kme7f"sifL a.aD0 h" :=7" ehrnh" =which may8havs afcisconnectedfce78">" namptiL109">p111106"l>106equi6"8lias - g6pppppppppppppppppppp namp6iL10863=4" idtiL8>, :8a negativv<7e78"> which w =wanf8fodpoinf8fod" ehrnh" 7s=lofb_tccache.c/a1070s>1070lea6G9crow awa6T_SYMBOLt/a>(104f=8fs/dc1640sre63>tspa class="comme105f=8fs/=" namptiL109">p111106"l>106equi68t/a> op p6ppppppppppppppppppppp nam6tiL1064longf="+1oL16is6superbkme6>d.aIf8rnh" =cs0afcirecto"> HASHhas a 'cisconnected'<7e78"> (i.e. IS_ROOT HAS" namptiL109">p111106"l>106equi68y failtt/6/a> *L27cn place of 99v givee=ce78">" namptiL109">p111106"l>106equi6smp" class6"sref">d_drarcu="+codsmp 608"st64tiL8>, aHASH.8L40" NULL7s=lofb_tccache.c/a1070s>1070lea6>_smp" cla6s="sref">rcuun_smpL108"s/6ca/a>64ex levelLw>p eve8a16">=ksubd">lofb_tccache.c/a1070s>1070lea6>alias - g6s="sref">rcumpL108"s/dca/6>,pvo64"licod8f=ue searching7<_cache8=4" iref=eededfin " ehlookup routine of lay fctesystem 7>L27cs0exportabl " namptiL109">p111106"l>106equi6 i7namptiL67">p 77t/a>t1046=8fs/dc1066"com647 droppf="+16">ame6>="licode6=(via knfsd) so 7>L27w0""ln build<70s>10 paths=7a cirecto"ies effectively7s=lofb_tccache.c/a1070s>1070lea6>6lias - g6you must own amrefe c<5t/6>tsp764umbeta pef=mmatss=s7<_cache"*s=lofb_tccache.c/a1070s>1070lea6>7lias - g6 xis_buck - * mig6t go 64e6>upma a wro="+kme7f"sifL a.aIf8afce78"> wah=foundaHASHmoved,7t10nli27cs0.8L40"ed. O8>,rwise NULL08lofb_tccache.c/a1070s>1070lea6>8lias - g6"+code=dentry_stat" * d8a6elet/6>=4" idtiL8>, 10s 99vL40" value of ="srelookup7s=lofb_tccache.c/a1070s>1070lea6>9crow awa6tiL_a>statasy_stat" f7<5t6a>tsp6a>tspa class="comme105f=8fs/=s=lofb_tccache.c/a1070s>1070lea6>,pvoid pp6ppppppppppppppppnewd.ode->i_lock pr9tecr 99y failtt/6f="+coppppppppppppppppop 6ampti65kme7f/appppppppppppppppppptruct p 58t/7a>tspa class="d pliceaaliahppiamptiLa> orud< pliceaaliah> op ppppppppppppppppppppp"i h" ef=8fs/dc10ef=8i h" 08">tuct p_rcss.8L40"i h" ef=8fs/dc10ef=8i h" 08">,appppppppppppppppppppp""ppp--truct 105=">105mp" class6 op p+pppppppparec#ppppem66eda>652s/dct _smp" cla6="srepppppppppppppppun_sm6L108"65dca/a>,pvoid ppppppppppppppppppppp"listtruct tt/7lockt/a>);"de" namptiL11029">1021 cl6>alias - g6" class="sref">d_dranew105=">105i7namptiL67class="line" namptiL105668fs/d65s="sref">hash op 8d_hash_maskt/ai h" ef=8fs/dc10ef=8i h" 08">99e" namptiL11029">1021 cl6>orfhref="6s="sref">rcurcu="+codpL106"s/dc65>,pvoid 9052ptiL133">105=">105d_dranew105=">105hashte=ampe=amp wn="+codline" nS_ISDIR55=8fs/dc1055laS_ISDIR> op 8d_hash_maskt/ai h" ef=8fs/dc10ef=8i h" 08">="sref">p8rentt/a> /i_mh" ef=8fs/dc10ef=8i_mh" 08">99at p 5106f=8fs/dc106HE_BY65=ret" clases"ubt c8" ="sref">d_countsppppppppnew_a>static strui h" ef=8fs/dc10ef=8i h" 08">="sref">p8rentt/a> /i_ppppnew105=">105p 51061=8fs/dc106> >66pppppppppppppppp nampct p_rcss.8L40"newuct tt/7lockt/a>);" __d_find_aliah> op 8d_hash_maskt/ai h" ef=8fs/dc10ef=8i h" 08">, 19052ptiL133">105=">105stase: nno c<5t/a>tsp7a>6spa 66ntry_finishedsw>p 1 a9at op "own="+codline" nnewuct ="sref">p8rentt/a> /p d_flagh,pvoie=amp wn="+codline" nDCACHE_DISCONNECTEDref="9lme7nt"> DCACHE_DISCONNECTED08">A9052ptiL133">105=">105,pvoid codsmp ases"dsspppppppppppppiamptiLa> oruct ="sref">p8rentt/a> /i_ppppnew105=">105is6non6L108"66code=newp_rcuhref="+ctiL108">codsmp ases"dsspecurity_d_instantiats op ct p_rcss.8L40"newuct ,.4" class="line"i h" ef=8fs/dc10ef=8i h" 08">9052ptiL133">105=">105tsp7a6tspa 66s="sref">hasht/a> 9cltiL108">f">p8rentt/a> /p d_move> op ct p_rcss.8L40"newuct ,.4" class="line"rupp--truct 105=">105,pvoid f">p8rentt/a> /ipu9m1053=8fs/dc105ipu9"+cod8d_hash_maskt/ai h" ef=8fs/dc10ef=8i h" 08">9052ptiL133">105=">105sta is hhavaksubm i68s -i66L hrdum id8_subt c8" tiL108">f pef=mmatss=s7<_cachein already taksre8i h" ="srei"coml, so d_add()=by hHASd.ode->i_lock pr9tecr 99statass=@truct :6de6atytt66=ret" clases"ubt c8" pp_rcuhrct p_rcss.8L40"__d_instantiats op ct p_rcss.8L40""ppp--truct 9052ptiL133">105=">105statass<_cache" 7a 6ref="67pppppppppppppppp namptiL108">codsmp ases"dsspppppppppppppiamptiLa> oruct ="sref">p8rentt/a> /i_ppppnew105=">105stase: nnot bR2="sratrue6iiL1667ntry_finishedsw>p 1 aaaaaaaaa="sref">d_countpecurity_d_instantiats op ct p_rcss.8L40""ppp--truct 9052ptiL133">105=">105 op ct p_rcss.8L40""ppp--truct 105=">105tsp7a6tspa 67dca/a>,pvoid 10e" id6ealias - g6f">want_havaksubm id8s,pv6id 105=">105(1076=8fs/dc167>tsp67s="sref">hasht/a> 9clct p_rcss.8L40"d_addef=8fs/dc10ef=8p op ct p_rcss.8L40""ppp--truct 9052ptiL133">105=">105052ptiL133">105=">105,67e6>upst/spa v10e" id6e8crow awa6ignes" class="sref">d"eq"6nampt67=4" iddtiL40" class=EXPORT_SYMBO055=8fs/dc1055laEXPORT_SYMBO0> op ef="+code=parnt < pliceaaliahppiamptiLa> orud< pliceaaliah> op9052ptiL133">105=">105want_kme6eda>,6void 67>tspae" namptiL11029">1021 cl6="7line" n6mptiL51">p 51081=8fs/dc106maste68longf="+1oL16is6superbkme6>ine" namptiL109">p111106"l>106equi6=y failtt/6s="sref">rcuueq" namptiL168">p"68kme7f"sd8aiks subdirectotass= p with=case-exact ramh08namptiL109">p111106"l>106equi6=: you mus6HBITSt/a> 107=">wpvoid re6="+p"68tiL8>, p111106"l>106equi6=a hrpppes6 claa href="+code=kmpppp=6 clp"68ex levelLw>p eve8a16">=ksubd Dce78">:8" ehnegativv<7e78"> 7>L27wah=p111106"l>106equi6=alias - g6mrop" class=d_draun_smp"r6mrop"68"licod8f=ue searching7<_cache8@un_s:=7=t10""lse-exact ramhf7a be associatsd with=th10.8L40"edfce78">08namptiL109">p111106"l>106equi6=i7namptiL6aun_smp" claaaaaaaaaiscoO6aunp"687 droppf="+16">ame6>="licode608namptiL109">p111106"l>106equi6=orfhref="6aun_smp" clad_draun_smp"p6aunp"68umbeta pef=mmatss=s7<_cache"* =4" iref7a avoid fctlsre8" ehd0s>10 with=case-insensitivvp111106"l>106equi6=L118" i=26" iddddddddd"s.8L40" idtp6" ip"68e6>upma a wro="+kme7f"sifL a.asamhf0 h" , only " ehactual correctlcase refstoredfin " ehd0s>10 for" namptiL109">p111106"l>106equi6s8crow awa6L40" class=9a h7ref="989n6L40p"68=4" idtiL8>, d_c6aunp"68>tspa class="comme105f=8fs/=s=lofb_tccache.c/a1070s>1070lea69"7line" n62" class="l9s t7he si99mn62" >n69longf="+1oL16is6superbkme6>d.aFor a case-insensitivv1aHASHif7" eht10""lse-exact ce78">08namptiL109">p111106"l>106equi69y failtt/6="+code=kme8=> n69kme7f"sd8aiks subdirectotass= already exex sfin in " ehd0s>10,duse+dtaHASH.8L40" it7s=lofb_tccache.c/a1070s>1070lea69ref">D_HA6own amreferrrrrrrrrrrrrrA6own>n69tiL8>, n69ex levelLw>p eve8a16">=ksubd If8no+e78"> exex sfwith=th10exact case pppp, alaieats new ce78"> withs=lofb_tccache.c/a1070s>1070lea69alias - g6 claaaaaaaaapppppppppppar6 cl>n69"licod8f=ue searching7<_cache8th10exact case,aHASH.8L40" th10 pliced+e78">7s=lofb_tccache.c/a1070s>1070lea69i7namptiL6aun_smp" claaaaaaaaa=2="O6aun>n697 droppf="+16">ame6>="licode6ode->i_lock pr9tecr 99 opG:6aun_smp" class="sref">d_p6aun>n696cepp/appppppppppppppppppptruct p 58t/7a>tspa class="dadd_cief=8fs/dc10ef=8p op ppppppppppppppppppppp""ppp--truct tuct p_rcss.8L40"i h" ef=8fs/dc10ef=8i h" 08">,i_lock pr9tecr 99n69 oruqpppp 58tuct p_rcss.8L40"nid8ef=8fs/dc10ef=8ramh08">9e" namptiL11029">1021 cl698crow awa6L40" class=9ref7="fs/999n6L40>n698="srt rcup= /ac6aun>n699cepppp_rcassinf8ct p_rcss.8L40"esroref=8fs/dc10ef=8esror08">052ptiL133">105=">105p108t/a> op ppppppppppppppppppppp""ppp--truct 052ptiL133">105=">105 052ptiL133">105=">105e" namptiL11029">1021 cl7iL8_head" 7lass="sref">10e4=8fs/dc107t;d_i70 cepppp_rcass= pef=mmatss=s7<_cacheinde->i_lock pr9tecr 99 mat>1sre8" ehramhfalready exex s," namptiL109">p111106"l>106equi7r5lias - g7aun_smp" claaaaaaaaa=2="O7delat707 droppf="+16">ame6>="licodehhhhhhhh.aif8not ga ahea aHASHcreate+dtanow7s=lofb_tccache.c/a1070s>1070lea7i6lias - g7aun_smp" class="sref">d_p7;tss=70umbeta pef=mmatss=s7<_cache"hhhhhhhh.ode->i_lock pr9tecr 99p"eqcef">rnfoundtruct tt/7lockt/a>);" op ct p_rcss.8L40""ppp--truct p8rentt/a> /p9052ptiL133">105=">105hash9at rcup= /ac7>is6w70=ret" clases"ubt c8" lass="sref">d)fnewuct tt/7lockt/a>);"p8rentt/a> /p9052ptiL133">105=">105sta is h o 6teondel7tass=71pppppppppppppppp namp9at stase: nnot b -n16">fpp7syste71ntry_finishedsw>p 1 aaaaaaaaa="sref">d_countesroref=8fs/dc10ef=8esror08">tt/-idtiL40" class=ENOMEM55=8fs/dc1055laENOMEM>D_H052ptiL133">105=">105D_H052ptiL133">105=">105tsp7a7tspa 71dca/a>,pvoid 10e" id7ealias - g7="sref">d">dhr"+pamptiL h7dum i71code=52ptiL133">105=">105(1016=8fs/dc171lls.71s="sref">hasht/a> 9clct p_rcss.8L40"foundtruct tt/7lockt/a>);" orud< pliceaaliah> op 8d_hash_maskt/ai h" ef=8fs/dc10ef=8i h" 08">, 8d_hash_maskt/anewuct 9052ptiL133">105=">105,pvoid 9at 1018=8fs/dc107"line71);"9052ptiL133">105=">105.8L40" idtiL40" class=foundtruct 052ptiL133">105=">105rcu cl 710e" id7iL8_head" 7lass="sref">1021=8fs/dc107> >72pppppppppppppppp namp.8L40" idtiL40" class=newuct 052ptiL133">105=">105rcup= /a>,pvoid 7a hrn72chea namptiL1st/spa v10e" id7i i7class=7"sref">d_drasb" namptiL107">psb72tiL8>e" namptiL11029">1021 cl77_smp" cla7s="sref">rcup= /a>,pvoid 7a hrn72 cepppp_rcass= pef=mmatss=s7<_cacheinde->i_lock pr9tecr 99rcum>dhr"+pampti7 hrdu72"licod8f=ue searching7<_cachhhhhhhhh.aIf8afmat>1sre8de78"> exex s,aHASHi8's1070lea7r i7">EXPO77">p 77t/a>t1026=8fs/dc1076"com727 droppf="+16">ame6>="licodehhhhhhhh.s=lofb_tccache.c/a1070s>1070lea7r6lias - g7ppppppppppparec#pppph" ce7bl>L172umbeta pef=mmatss=s7<_cache"hhhhhhhh. Decre_cac 99vpessrce counf8fodbalarce 7 ehrget() done08namptiL109">p111106"l>106equi777lias - g79" id">resass= = /a>p= /a7,pvoi72e6>upma a wro="+kme7f"sifL ahhhhhhhh. earli4=8on7s=lofb_tccache.c/a1070s>1070lea7r8lias - g7raun_t/a> op ppppppp">dhr7+pamp72=4" idtiL8>, ="sref">p8rentt/a> /p9at &g73pppppppppppppppp nampp8rentt/a> /unlikel-truct ="sref">p8rentt/a> /p !t/7lockt/a>);"99at *p 1 aaaaaaaaa= pef=mmatss=s7<_cachein =4" ican't happee=because+badf0 h" s are unhashed. .ode->i_lock pr9tecr 99tsp7a>7spa 73void op "7lockt/a>);" op 8d_hash_maskt/ai h" ef=8fs/dc10ef=8i h" 08">A9052ptiL133">105=">105,pvoid codsmp ases"dssBUG_ONef=8fs/dc10ef=8BUG_ON> op "7lockt/a>);" op 8d_hash_maskt/afoundtruct ="sref">p8rentt/a> /p99052ptiL133">105=">10510e" id7_ i7">EXPO7questronssa hra e kme7f"h7od af73s="sref">hasht/a> 9clct p_rcss.8L40"ipu9m1053=8fs/dc105ipu9"+cod8d_hash_maskt/ai h" ef=8fs/dc10ef=8i h" 08">9052ptiL133">105=">105,pvoid 052ptiL133">105=">105tsp7a7tspa 737hea namptiL1st/spa v10e" id7"8lias - g7pppppppppppppppppppp namp7iL10873r_det/sp!/spa 9v(104f=8fs/dc1740sre739cepppp_rcass= pef=mmatss=s7<_cacheinde->i_lock pr9tecr 99 op p7ppppppppppppppppppppp nam7tiL1074longf="+1oL16is6superbkme6>ddddddddd* We are gosre8"o instantiats 7 " ide78">, unhash+dtaHASHclear " e08namptiL109">p111106"l>106equi78y failtt/7/a> *L27s=lofb_tccache.c/a1070s>1070lea7smp" class7"sref">d_drarcu="+codsmp 708"st74tiL8>, rcuun_smpL108"s/7ca/a>743ret" clases" op 8d_hash_maskt/afoundtruct )99e" namptiL11029">1021 cl7>alias - g7s="sref">rcumpL108"s/dca/7>,pvo74code=newp_rcuhref="+c8d_hash_maskt/ad_clear_=eed_lookupef=8fs/dc10ef=8p op 8d_hash_maskt/afoundtruct )052ptiL133">105=">105p 77t/a>t1046=8fs/dc1076"com74s="srt/spa v10e" id7>6lias - g7you must own amrefe c<5t/7>tsp7746cepppp_rcass= pef=mmatss=s7<_cacheinde->i_lock pr9tecr 99upma a wro="+kme7f"sifL adddddddd* Negativv<7e78">: instantiats dtaunless " ehrnh" =cs0afcirecto"> HASde->i_lock pr9tecr 99=4" idtiL8>, 7s=lofb_tccache.c/a1070s>1070lea7>9crow awa7tiL_a>statasy_stat" f7<5t7a>tsp7a>tspa class="comme105f=8fs/dddddddd*ode->i_lock pr9tecr 99,pvoid pp7ppppppppppppppppnewtt/7lockt/a>);" orud< pliceaaliah> op 8d_hash_maskt/ai h" ef=8fs/dc10ef=8i h" 08">, 8d_hash_maskt/afoundtruct )052ptiL133">105=">105y failtt/7f="+coppppppppppppppppop 7ampti751ret" clases"9at mp" class7 op p+pppppppparec#ppppem76eda>75void );")052ptiL133">105=">105_smp" cla7="srepppppppppppppppun_sm7L108"75dca/a>,pvoid tt/7lockt/a>);"052ptiL133">105=">105alias - g7" class="sref">d_dranew10e" id7>i7namptiL77class="line" namptiL105678fs/d75s="sref">hash.8L40" idtiL40" class=foundtruct 052ptiL133">105=">105orfhref="7s="sref">rcurcu="+codpL107"s/dc75>lofbt"> *t/spa 108la>108llas7#L118" i=27"srass="sref">d_dranewD_H:t"> *t/spa 108la>108llas7<8crow awa7line" namptiL1059=8fs/dc1759"sr758hea namptiL108">p"eqcef">rnipu9m1053=8fs/dc105ipu9"+cod8d_hash_maskt/ai h" ef=8fs/dc10ef=8i h" 08">9052ptiL133">105=">105p 5106f=8fs/dc107HE_BY75=ret" clases".8L40" idtiL40" class=ERR_PTR55=8fs/dc1055laERR_PTR> op ="sref">d_countesroref=8fs/dc10ef=8esror08">9052ptiL133">105=">105p 51061=8fs/dc107> >76pppppst/spa v10e" id7=c8l_table7>stase: nno c<5t/a>tsp7a>7spa 76ntry_idtiL40" class=EXPORT_SYMBO055=8fs/dc1055laEXPORT_SYMBO0> op ef="+code=parnt op9052ptiL133">105=">105e" namptiL11029">1021 cl7aa hrpppes7entry_stat" ceWe_dehcendv7oma e76ex levelLw>p eve8a16">=ksuinde->i_lock pr9tecr 99is6non7L108"76"licod8f=ue searching7<_cache8Da " ehslow-case of " ehde78">aramhfingpare7s=lofb_tccache.c/a1070s>1070lea7Gi7namptiL7questronssa h7<5t/a>tsp7a7tspa 767 droppf="+16">ame6>="licode608namptiL109">p111106"l>106equi7Gorfhref="7 class="comme1067=8fs/dc1767sre76umbeta pef=mmatss=s7<_cache"* Unlike " ehde78">_cmp() functi06, we =eedf7a atomicall>08namptiL109">p111106"l>106equi7GL118" i=27 xis_buck - c6f="+code=6D7FINE_76e6>upma a wro="+kme7f"sifL a.aload8" ehramh, lengt1aHASHinh" =cnformati06, so 7>L27" e08namptiL109">p111106"l>106equi7G8crow awa7tiL_a>sta is hhavaksubm i78s -i76=4" idtiL8>, statass=@truct :6de7atytt76>tspa class="comme105f=8fs/* 'len'p111106"l>106equi7esis_bucki7tiL_a>statass<_cache" 7a 7ref="77longf="+1oL16is6superbkme6>d.aend of memo"> etc7s=lofb_tccache.c/a1070s>1070lea7ay failtt/7>stase: nnot bR2="sratrue7iiL1677kme7f"sd8aiks subdirectotass=s=lofb_tccache.c/a1070s>1070lea7amp" class7 own amreferenaLm id8 po 7l=4" 77tiL8>, 1070lea7aa hrpppes7entry_stat" c7<5t/a>tsp7a7tspa 77ex levelLw>p eve8a16">=ksubd in Hrgu">=ks (" ehlow-level fctesystem should1070lea7aalias - g7f">want_havaksubm id8s,pv7id inh" =oraramhfinnt>=ks cirectly, since08namptiL109">p111106"l>106equi7ei7namptiL7T_SYMBOLt/a>(1076=8fs/dc177>tsp777 droppf="+16">ame6>="licode6=reramhfi="+1hange+" em while we're+de=RCU mh" )7s=lofb_tccache.c/a1070s>1070lea7eorfhref="7ppppppppppppppppppppp nam7tiL1077umbeta pef=mmatss=s7<_cache"*ode->i_lock pr9tecr 99,77e6>upenuma="sref">d_countplow_d_cngpareef=8fs/dc10ef=8plow_d_cngpareret" t d"eq"7nampt778hea namptiL108">p"eqcef">rnD_COMP_OKef=8fs/dc10ef=8D_COMP_OK08">, want_kme6eda>,7void 779cepppp_rcass="sref">d_countD_COMP_NOMATCHef=8fs/dc10ef=8D_COMP_NOMATCH08">, p 51081=8fs/dc107maste78>p108t/a> op /a> op ppppppppD_COMP_SEQRETRYef=8fs/dc10ef=8D_COMP_SEQRETRY08">, rcuueq" namptiL178">p"78kme7f}052ptiL133">105=">105 107=">wpvoid re7="+p"78tiL8>e" namptiL11029">1021 cl7=a hrpppes7 claa href="+code=kmpppp=7 clp"78ex lstatic 7lockt/a>);"d_countplow_d_cngpareef=8fs/dc10ef=8plow_d_cngpareret" ="sref">d_countplow_de78">_cmpef=8fs/dc10ef=8plow_de78">_cmp> op e" namptiL11029">1021 cl7=alias - g7mrop" class=d_draun_smp"r7mrop"78code=newp_rcuhref="+cconppdppppppppppppppppppppp"listtruct 1021 cl7=i7namptiL7aun_smp" claaaaaaaaaiscoO7aunp"78s="sref">hasht/a> 9clppppppppppppppppppppp"i h" ef=8fs/dc10ef=8i h" 08">tuct p_rcss.8L40"i h" ef=8fs/dc10ef=8i h" 08">,i_lock pr9tecr 99,pvoid oruqpppp 58tuct p_rcss.8L40"nid8ef=8fs/dc10ef=8ramh08">9e" namptiL11029">1021 cl7ssis_bucki7aun_smp" class="sref">d_c7aunp"78>tspat n79>p108t/a> op tt/7lockt/a>);"p8rentt/a> /pp8rentt/a> /lenef=8fs/dc10ef=8len08">052ptiL133">105=">105);"p8rentt/a> /pp8rentt/a> /nid8ef=8fs/dc10ef=8ramh08">052ptiL133">105=">105n79void tuct p_rcss.8L40"ief=8fs/dc10ef=8ikme8tt/7lockt/a>);"p8rentt/a> /p052ptiL133">105=">105n79ex l52ptiL133">105=">105n79code=newp_rcu op e=amptiLa> oructuaccdppp--truct p8rentt/a> /p< eqef=8fs/dc10ef=8p< eq08">, 8d_hash_maskt/a eqef=8fs/dc10ef=8peqkme899at n79s="sref">hasht/a> 9clct p_rcss.8L40"cpu_.8laxef=8fs/dc10ef=8cpu_.8lax> op 9052ptiL133">105=">105 opG:7aun_smp" class="sref">d_p7aun>n79>,pvoid 052ptiL133">105=">105n797hea namptiL1st/spa v10e" id798crow awa7L40" class=9ref7="fs/999n7L40>n798="sref">hashp8rentt/a> /p op="sref">p8rentt/a> /p,i_lock pr9tecr 99rcup= /ac7aun>n79=ret" clases"ubt c8" ef">hasht/a> 9clct p_rcss.8L40""ppp--truct t/a> 9clct p_rcss.8L40"tlenef=8fs/dc10ef=8tlen08">,.4" class="line"tnid8ef=8fs/dc10ef=8tnid8kme8,.4" class="line"nid8ef=8fs/dc10ef=8ramh08">99e" namptiL11029">1021 cl8i1 052ptiL133">105=">105052ptiL133">105=">10510e" id8_alias - g8ab a href="ry<5t/a>tsp7a>8spa 80code=52ptiL133">105=">105ame6>="licodine" namptiL109">p111106"l>106equi8i6lias - g8aun_smp" class="sref">d_p8;tss=80umbeta pef=mmatss=s7<_cache"* __d_lookup_rcu - earch for7afce78"> (racy, store-free)" namptiL109">p111106"l>106equi8i7lias - g8aass}p pppppppppppppppppp8rbkme80e6>upma a wro="+kme7f"sifL a.aDpare78:hpare78 ce78">08namptiL109">p111106"l>106equi8i8lias - g8a40" class=9ref7="fs/999n8 c8s 80=4" idtiL8>, p111106"l>106equi8i9lias - g8aun_lass="sref">rcup= /ac8>is6w80>tspa class="comme105f=8fs/* @peqp:m.8L40"s p< eq value L27" efpoinf8where " ehde78"> wah=found08namptiL109">p111106"l>106equi8esis_bucki8tiL_a>sta is h o 6teondel8tass=81longf="+1oL16is6superbkme6>d.aD0 h" :=.8L40"s pe78">="sredai h" 8when7" ehrnh" =wah=foundavalid7s=lofb_tccache.c/a1070s>1070lea8ay failtt/8>stase: nnot b -n16">fpp8syste81kme7f"sd8aiks subdirectotass= R8L40"s:ide78">, or7NULL08lofb_tccache.c/a1070s>1070lea8e2 , tsp7a8tspa 81ex levelLw>p eve8a16">=ksubd __d_lookup_rcu is " ehd0s>10 lookup functi06 for7rcu-walk ramh08lofb_tccache.c/a1070s>1070lea8ealias - g8="sref">d">dhr"+pamptiL h8dum i81"licod8f=ue searching7<_cache8resoluti06 (store-free path walksre)idesignidescribedfin08lofb_tccache.c/a1070s>1070lea8e5lias - g8T_SYMBOLt/a>(1016=8fs/dc181lls.817 droppf="+16">ame6>="licode6=Docu">=kati06/fctesystems/path-lookup7tx27s=lofb_tccache.c/a1070s>1070lea8e6lias - g8ppppppppppppppppppppp nam8tiL1081umbeta pef=mmatss=s7<_cache"*s=lofb_tccache.c/a1070s>1070lea8e7lias - g8lass="sref">1018=8fs/dc108"line81e6>upma a wro="+kme7f"sifL a.a=4" iref=otf7a be usedfoutsi" =core vfs7s=lofb_tccache.c/a1070s>1070lea8e8lias - g8ppppppppppppppppiown="+co8line"81=4" idtiL8>, rcu cl 8tspa class="comme105f=8fs/* __d_lookup_rcu must only be usedfin7rcu-walk mh" , ie.fwith=vfsmounf8comlinlofb_tccache.c/a1070s>1070lea8iL8_head" 8lass="sref">1021=8fs/dc108> >82longf="+1oL16is6superbkme6>d.aheld,aHASH.cu_.8a="comlaheld.a=410.8L40"edfce78"> must =otfbe storedfintos=lofb_tccache.c/a1070s>1070lea8iy failtt/8s="sref">rcup= /a>,pvoid 8a hrn82kme7f"sd8aiks subdirectotass= withou9 taksre8="comlaHASH"1070lea8i2 d_drasb" namptiL108">psb82tiL8>, 1070lea87_smp" cla8s="sref">rcup= /a>,pvoid 8a hrn82ex levelLw>p eve8a16">=ksubd">lofb_tccache.c/a1070s>1070lea87alias - g8s="sref">rcum>dhr"+pampti8 hrdu82"licod8f=ue searching7<_cach* Apcounf8may8be taken7on " e=foundace78"> with=" e=__d_.cu_to_r>pcounf">lofb_tccache.c/a1070s>1070lea875lias - g87">p 77t/a>t1026=8fs/dc1086"com827 droppf="+16">ame6>="licode* functi067s=lofb_tccache.c/a1070s>1070lea876lias - g8ppppppppppparec#pppph" ce8bl>L182umbeta pef=mmatss=s7<_cache"d">lofb_tccache.c/a1070s>1070lea877lias - g89" id">resass= = /a>p= /a8,pvoi82e6>upma a wro="+kme7f"sifL a* Alternatively, __d_lookup_rcu may8be calledfagainf7a look up t10""hildlofb_tccache.c/a1070s>1070lea878lias - g8raun_t/a> op ppppppp">dhr8+pamp82=4" idtiL8>, , so lore8a irtshpare78'sp111106"l>106equi8i9crow awa87class="line" namptiL103f88fs/d82>tspa class="comme105f=8fs/* "hildp111106"l>106equi8" i7class=8line" namptiL1031=8fs/dc183> &g83longf="+1oL16is6superbkme6>d.aih=formed,7givsre8i tegrity down " ehpath walk7s=lofb_tccache.c/a1070s>1070lea8"y failtt/8/a> *1070lea8" i7class=8 own amrefe c<5t/a>tsp7a>8spa 83tiL8>, against " ehsequsrces=lofb_tccache.c/a1070s>1070lea8"_smp" cla8entry_stat" ceptiL1atass=8omahc83ex levelLw>p eve8a16">=ksubd number we'v10.8L40"edfbefore ussre8any of " eh.8sultsre8de78"> state!s=lofb_tccache.c/a1070s>1070lea8"alias - g8ab a href=""flwe ciasraca8wiL1683"licod8f=ue searching7<_cach*ode->i_lock pr9tecr 99EXPO8questronssa hra e kme7f"h8od af83s="srppppppppppppppppppppp""ppp--truct 1021 cl8"6lias - g8flias ovorf c d.atL16e se8uL16"83>,pvoid oruqpppp 58tuct p_rcss.8L40"nid8ef=8fs/dc10ef=8ramh08">,e" namptiL11029">1021 cl8"7lias - g8 xis_buck - f7<5t/a>tsp7a8tspa 83tuct p_rcss.8L40"i h" ef=8fs/dc10ef=8i h" 08">9e" namptiL11029">1021 cl8"8lias - g8pppppppppppppppppppp namp8iL108838="srt (104f=8fs/dc1840sre839cepppp_rcass="sref">d_countuab a href="href="u6code=n="sref">d_counthashlenef=8fs/dc10ef=8hashlenkme8tt/7lockt/a>);"="sref">p8rentt/a> /hash_lenef=8fs/dc10ef=8hash_len08">052ptiL133">105=">105 op p8ppppppppppppppppppppp nam8tiL1084pppppppppppppconppdunsignedf1hartuct p_rcss.8L40"pppppiamptiLa> orupppp 58tt/7lockt/a>);"="sref">p8rentt/a> /nid8ef=8fs/dc10ef=8ramh08">052ptiL133">105=">105 *tuct p_rcss.8L40"bef=8fs/dc10ef=8bkme8tt/7lockt/a>);" op ct p_rcss.8L40"pare78ef=8fs/dc10ef=8pare78kme8,.4" class="line"hashlen_hashef=8fs/dc10ef=8hashlen_hash> op ct p_rcss.8L40"hashlenef=8fs/dc10ef=8hashlenkme899052ptiL133">105=">105d_drarcu="+codsmp 808"st84void 052ptiL133">105=">105_smp" cla8s="sref">rcuun_smpL108"s/8ca/a>84dca/a>,pvoid ppppppppppppppppppppp"listtruct 105=">105alias - g8s="sref">rcumpL108"s/dca/8>,pvo84code=52ptiL133">105=">105p 77t/a>t1046=8fs/dc1086"com84s="sref">hashevelLw>p eve8a16">=ksuinde->i_lock pr9tecr 996lias - g8you must own amrefe c<5t/8>tsp784umbeta pef=mmatss=s7<_cache"""""""""=aNote:a=41re refsignifica78 cuplicati06 with __d_lookup_rcu which rede->i_lock pr9tecr 997lias - g8 xis_buck - * mig8t go 84e6>upma a wro="+kme7f"sifL adddddddd* requiredf7a preve78 ssrele " .8a=edfperformarce regressi06ede->i_lock pr9tecr 998lias - g8"+code=dentry_stat" * d8a8elet/8>=4" idtiL8>, tsp8a>tspa class="comme105f=8fs/dddddddd* Keep t10"two functi06sfin sync7s=lofb_tccache.c/a1070s>1070lea8>,pvoid pp8ppppppppppppppppnewddddddddd*ode->i_lock pr9tecr 99y failtt/8f="+coppppppppppppppppop 8ampti851ret"i_lock pr9tecr 99mp" class8 op p+pppppppparec#ppppem86eda>85void p eve8a16">=ksuinde->i_lock pr9tecr 99_smp" cla8="srepppppppppppppppun_sm8L108"85ex levelLw>p eve8a16">=ksubdddddddd* =410hash+list refprotecLedfussre8RCU7s=lofb_tccache.c/a1070s>1070lea8>alias - g8" class="sref">d_dranew1070lea8>i7namptiL87class="line" namptiL105688fs/d857 droppf="+16">ame6>="licodehhhhhhhh.aCarefull>7use+=" eq when7cngparsre8afi="didats ce78">, 7a avoids=lofb_tccache.c/a1070s>1070lea8>6lias - g8s="sref">rcurcu="+codpL108"s/dc85umbeta pef=mmatss=s7<_cache"""""""""=aracesfwith=d_move()7s=lofb_tccache.c/a1070s>1070lea8#L118" i=28"srass="sref">d_dranew1070lea8#8lias - g8line" namptiL1059=8fs/dc1859"sr85=4" idtiL8>, 1070lea8#9crow awa8mptiL51">p 5106f=8fs/dc108HE_BY85>tspa class="comme105f=8fs/dddddddd* walk here HASH.8sultfin misssre8our+ce78">, .8sultsre8in " es=lofb_tccache.c/a1070s>1070lea8="7line" n8mptiL51">p 51061=8fs/dc108> >86longf="+1oL16is6superbkme6>ddddddddd* false-negativv<.8sult. d_lookup()fprotecLs against concurre78s=lofb_tccache.c/a1070s>1070lea8=y failtt/8>stase: nno c<5t/a>tsp7a>8spa 86kme7f"sd8aiks subdirectotassdddddddd* reramh iussre8reramh"comlapeqcoml7s=lofb_tccache.c/a1070s>1070lea8=mp" class8 own amreferenSearch=id8a816"ea86tiL8>, p eve8a16">=ksusdddddddd* See=Docu">=kati06/fctesystems/path-lookup7tx2 for7more details7s=lofb_tccache.c/a1070s>1070lea8aalias - g8ab a href=""fl" ce>is6non8L108"86"licod8f=ue searching7<_cachdddddddd*ode->i_lock pr9tecr 99tsp7a8tspa 86s="sref">hashpppppppppppppp"hlist_bl_for_e99<_e78">_rcutruct _rcu> op ct p_rcss.8L40""ppp--truct ,.4" class="line"bef=8fs/dc10ef=8bkme8,.4" class="line"r_hashef=8fs/dc10ef=8p op9at 105=">105105=">105sta is hhavaksubm i88s -i86=4" iddtiL40" class=peq.8Lryef=8fs/dc10ef=8peq.8Lry4" i:t"> *t/spa 108la>108llas8r"7line" n8tiL_a>statass=@truct :6de8atytt86=ret" clases"ubt c8" evelLw>p eve8a16">=ksuinde->i_lock pr9tecr 99statass<_cache" 7a 8ref="87longf="+1oL16is6superbkme6>ddddddddddddddddd* =410de78"> sequsrce counf8protecLs us from concurre78s=lofb_tccache.c/a1070s>1070lea8ay failtt/8>stase: nnot bR2="sratrue8iiL1687kme7f"sd8aiks subdirectotassdddddddddddddddd* reramh , HASH" us8protecLs 0 h" , pare78 HASHramhffields7s=lofb_tccache.c/a1070s>1070lea8amp" class8 own amreferenaLm id8 po 8l=4" 87tiL8>, tsp7a8tspa 87ex levelLw>p eve8a16">=ksubdddddddddddddddd* =410caller must perform8af eqcounf 9p111106"l>106equi8aalias - g8f">want_havaksubm id8s,pv8id ," namptiL109">p111106"l>106equi8ei7namptiL8T_SYMBOLt/a>(1076=8fs/dc187>tsp877 droppf="+16">ame6>="licodedddddddddddddddd* includsre8ussre8" eh'dai h" '1070lea8aorfhref="8ppppppppppppppppppppp nam8tiL1087umbeta pef=mmatss=s7<_cache"dddddddddddddddd*s=lofb_tccache.c/a1070s>1070lea8aL118" i=28ppppppppppppppppppp" ceph8coa>,87e6>upma a wro="+kme7f"sifL adddddddddddddddd* NOTE!aWe do8ah"raw"< eqcounf_begin here7 =4atpmeans " ats=lofb_tccache.c/a1070s>1070lea8a8lias - g8ignes" class="sref">d"eq"8nampt87=4" idtiL8>, 1070lea8a"7line" n8ass="sref">want_kme6eda>,8void 87>tspa class="comme105f=8fs/dddddddddddddddd* is in " ehmiddle of ahsequsrce change.aIf8we do " ehslows=lofb_tccache.c/a1070s>1070lea8="7line" n8mptiL51">p 51081=8fs/dc108maste88longf="+1oL16is6superbkme6>/dddddddddddddddd* de78"> cngpare,fw =will do peq.8Lrih iuntil dtarefstable," namptiL109">p111106"l>106equi8=y failtt/8s="sref">rcuueq" namptiL188">p"88kme7f"sd8aiks subdirectotassdddddddddddddddd* HASHif7w =end up with=ahsuccessful lookup,fw =actuall>08namptiL109">p111106"l>106equi8=: you mus8HBITSt/a> 107=">wpvoid re8="+p"88tiL8>, p eve8a16">=ksubdddddddddddddddd*ode->i_lock pr9tecr 99);" op e=amptiLa> oructuaccdppp--truct p8rentt/a> /p< eqef=8fs/dc10ef=8p< eq08">9052ptiL133">105=">105hasht/a> 9clp8rentt/a> /p);"1021 cl8=orfhref="8aun_smp" clad_draun_smp"p8aunp"88>,pvoid 105=">105 op ct p_rcss.8L40""ppp--truct 1021 cl8=8crow awa8L40" class=9a h7ref="989n8L40p"88L hrdum id8_subt c8" ppppppppinntinue052ptiL133">105=">105d_c8aunp"88=ret" clases"ubt c8" uct p_rcss.8L40"peqpef=8fs/dc10ef=8peqpkme8tt/7lockt/a>);"105=">105n89>p10852ptiL133">105=">105p8rentt/a> /p orud oruDCACHE_OP_COMPAREkme899at n89void p8rentt/a> /pp8rentt/a> /hashef=8fs/dc10ef=8hashkme8 !t/7lockt/a>);" op ct p_rcss.8L40"hashlenef=8fs/dc10ef=8hashlenkme899 n89dca/a>,pvoid ppppppppinntinue052ptiL133">105=">105n89code=newp_rcuhref="+cccccccccswitchiown="+codline" nplow_de78">_cmpef=8fs/dc10ef=8plow_de78">_cmp> op ct p_rcss.8L40"pare78ef=8fs/dc10ef=8pare78kme8,.4" class="line"i h" ef=8fs/dc10ef=8i h" 08">, 8d_hash_maskt/a"ppp--truct 99at n89s="sref">hasht/a> 9clppppppppiase idtiL40" class=D_COMP_OKef=8fs/dc10ef=8D_COMP_OK08">:t"> *t/spa 108la>108llas89t/a> opG:8aun_smp" class="sref">d_p8aun>n89>,pvoid 105=">105n89:t"> *t/spa 108la>108llas898crow awa8L40" class=9ref7="fs/999n8L40>n89L hrdum id8_subt c8" ppppppppppppppppinntinue052ptiL133">105=">105rcup= /ac8aun>n89=ret" clases"ubt c8" ef">hashdefault:t"> *t/spa 108la>108llas9id t/a> 9clgo9o wn="+codline" npeq.8Lryef=8fs/dc10ef=8peq.8Lry4" i052ptiL133">105=">105 10e" id9i3 105=">105p8rentt/a> /pp8rentt/a> /hash_lenef=8fs/dc10ef=8hash_len08"> !t/7lockt/a>);"105=">105hasht/a> 9clppppppppinntinue052ptiL133">105=">105d_p9;tss=90>,pvoid );"_cmpef=8fs/dc10ef=8de78">_cmp> op ct p_rcss.8L40""ppp--truct orupppp 58,.4" class="line"hashlen_lenef=8fs/dc10ef=8hashlen_len08"> ct p_rcss.8L40"hashlenef=8fs/dc10ef=8hashlenkme899952ptiL133">105=">105105=">105hashst/spa v10e" id9i9lias - g9aun_lass="sref">rcup= /ac9>is6w90=ret" clases".8L40" idtiL40" class=NULLuct 105=">105sta is h o 6teondel9tass=91pppppst/spa v10e" id9ay failtt/9>stase: nnot b -n16">fpp9syste911ret"i_lock pr9tecr 99, p111106"l>106equi9eL8_head" 9entry_stat" c7<5t/a>tsp7a9tspa 91ex levelLw>p eve8a16">=ksubd d_lookup - earch for7afce78">" namptiL109">p111106"l>106equi9ealias - g9="sref">d">dhr"+pamptiL h9dum i91"licod8f=ue searching7<_cache8Dpare78:hpare78 ce78">08namptiL109">p111106"l>106equi9e5lias - g9T_SYMBOLt/a>(1016=8fs/dc191lls.917 droppf="+16">ame6>="licode6=D"fs/: qppp of ramhfw =wishf7a find08namptiL109">p111106"l>106equi9e6lias - g9ppppppppppppppppppppp nam9tiL1091umbeta pef=mmatss=s7<_cache"* R8L40"s:ide78">, or7NULL08lofb_tccache.c/a1070s>1070lea9e7lias - g9lass="sref">1018=8fs/dc109"line91e6>upma a wro="+kme7f"sifL a.08lofb_tccache.c/a1070s>1070lea9e8lias - g9ppppppppppppppppiown="+co9line"91=4" idtiL8>, for7" ehramhfin08lofb_tccache.c/a1070s>1070lea9e9lias - g9raun_lass="sref">rcu cl 9tspa class="comme105f=8fs/* questi067aIf8" efce78"> ih=foundartshr>pessrce counf8is incre_cacedfaASH" e08lofb_tccache.c/a1070s>1070lea9iL8_head" 9lass="sref">1021=8fs/dc109> >92longf="+1oL16is6superbkme6>d.ace78"> ih=.8L40"ed. =410caller must use+=puf8fodfree " efe78"> when7it haede->i_lock pr9tecr 99rcup= /a>,pvoid 9a hrn92kme7f"sd8aiks subdirectotass= finished8ussre8it.h%NULL ih=.8L40"edp doeef=otfexex 7s=lofb_tccache.c/a1070s>1070lea9i2 d_drasb" namptiL109">psb92tiL8>, rcup= /a>,pvoid 9a hrn92ex lstppppppppppppppppppp"listtruct op ppppppppppppppppppppp"listtruct oruqpppp 58tuct p_rcss.8L40"nid8ef=8fs/dc10ef=8ramh08">9e" namptiL11029">1021 cl97alias - g9s="sref">rcum>dhr"+pampti9 hrdu92"licot p 77t/a>t1026=8fs/dc1096"com92s="sref">hashppppppppppppppppppppp"listtruct 105=">105L192>,pvoid 105=">105resass= = /a>p= /a9,pvoi92e6>up52ptiL133">105=">105 op ppppppp">dhr9+pamp928="sref">hashdoat );" op e=amptiLa> oructuaccreramh"comlef=8fs/dc10ef=8reramh"coml08">9052ptiL133">105=">105 &g93pppppppppppppppp namppppppppppppppp"listtruct );"9052ptiL133">105=">105 *p 1 a1021 cl9" i7class=9 own amrefe c<5t/a>tsp7a>9spa 93void 105=">105,pvoid } while own="+codline" nread< eq.8Lryef=8fs/dc10ef=8read< eq.8Lry> op e=amptiLa> oructuaccreramh"comlef=8fs/dc10ef=8reramh"coml08">, 8d_hash_maskt/a eqef=8fs/dc10ef=8peqkme899052ptiL133">105=">105105=">105EXPO9questronssa hra e kme7f"h9od af93s="srst/spa v10e" id9"6lias - g9flias ovorf c d.atL16e se9uL16"93>,pvoidtiL40" class=EXPORT_SYMBO055=8fs/dc1055laEXPORT_SYMBO0> op ef="+code=parnt op9052ptiL133">105=">105tsp7a9tspa 93e6>up52ptiL133">105=">105, p111106"l>106equi9G9crow awa9T_SYMBOLt/a>(104f=8fs/dc1940sre93>tspa class="comme105f=8fs/* __d_lookup - earch for7afce78"> (racy)" namptiL109">p111106"l>106equi98t/a> op p9ppppppppppppppppppppp nam9tiL1094longf="+1oL16is6superbkme6>de8Dpare78:hpare78 ce78">08namptiL109">p111106"l>106equi98y failtt/9/a> *p111106"l>106equi9smp" class9"sref">d_drarcu="+codsmp 908"st94tiL8>, , or7NULL08lofb_tccache.c/a1070s>1070lea9>_smp" cla9s="sref">rcuun_smpL108"s/9ca/a>94ex levelLw>p eve8a16">=ksubd">lofb_tccache.c/a1070s>1070lea9>alias - g9s="sref">rcumpL108"s/dca/9>,pvo94"licod8f=ue searching7<_cache8__d_lookup islofb_tccache.c/a1070s>1070lea9> i7">EXPO97">p 77t/a>t1046=8fs/dc1096"com947 droppf="+16">ame6>="licode* false-negativv<.8sult duef7a un.8lacedfreramhfactivit>7s=lofb_tccache.c/a1070s>1070lea9>6lias - g9you must own amrefe c<5t/9>tsp794umbeta pef=mmatss=s7<_cache"d">lofb_tccache.c/a1070s>1070lea9>7lias - g9 xis_buck - * mig9t go 94e6>upma a wro="+kme7f"sifL ae8__d_lookup isp111106"l>106equi9>8lias - g9"+code=dentry_stat" * d8a9elet/9>=4" idtiL8>, 1070lea9>9crow awa9tiL_a>statasy_stat" f7<5t9a>tsp9a>tspa class="comme105f=8fs/*=th10case of failure7s=lofb_tccache.c/a1070s>1070lea9>,pvoid pp9ppppppppppppppppnewdd">lofb_tccache.c/a1070s>1070lea9>y failtt/9f="+coppppppppppppppppop 9ampti95kme7f"sd8aiks subdirectotass6=__d_lookup callers8must be irectoted7s=lofb_tccache.c/a1070s>1070lea9>mp" class9 op p+pppppppparec#ppppem96eda>95tiL8>, oruqpppp 58tuct p_rcss.8L40"nid8ef=8fs/dc10ef=8ramh08">9e" namptiL11029">1021 cl9>alias - g9" class="sref">d_dranewi7namptiL97class="line" namptiL105698fs/d95s="sref">hashunsignedfinpppppppppppppppp"lenef=8fs/dc10ef=8len08">tt/7lockt/a>);"="sref">p8rentt/a> /lenef=8fs/dc10ef=8len08">052ptiL133">105=">1056lias - g9s="sref">rcurcu="+codpL109"s/dc95>,pvoid );"="sref">p8rentt/a> /hashef=8fs/dc10ef=8hashkme8052ptiL133">105=">1057lias - g9"srass="sref">d_dranew orupppp 58tt/7lockt/a>);"="sref">p8rentt/a> /nid8ef=8fs/dc10ef=8ramh08">052ptiL133">105=">105tuct p_rcss.8L40"bef=8fs/dc10ef=8bkme8tt/7lockt/a>);" op ct p_rcss.8L40"pare78ef=8fs/dc10ef=8pare78kme8,.4" class="line"hashef=8fs/dc10ef=8hashkme89052ptiL133">105=">105p 5106f=8fs/dc109HE_BY95=ret" clases"ppppppppppppppppppppp"hlist_bl_ h" ef=8fs/dc10ef=8hlist_bl_ h" p 58tuct p_rcss.8L40"nh" ef=8fs/dc10ef=8 h" 08">052ptiL133">105=">105p 51061=8fs/dc109> >960ret" clases"ppppppppppppppppppppp"listtruct 105=">105stase: nno c<5t/a>tsp7a>9spa 96ntry_finishedppppppppppppppppppppp"listtruct 105=">105e" namptiL11029">1021 cl9=_smp" cla9entry_stat" ceWe_dehcendv9oma e96dca/a>,pvoid evelLw>p eve8a16">=ksuinde->i_lock pr9tecr 99is6non9L108"96"licod8f=ue searching7<_cachdddddddd*aNote:a=41re refsignifica78 cuplicati06 with __d_lookup_rcu which rede->i_lock pr9tecr 99tsp7a9tspa 967 droppf="+16">ame6>="licodedddddddd*arequiredf7a preve78 ssrele " .8a=edfperformarce regressi06ede->i_lock pr9tecr 997on architecL40es8where smp_rmb (inf eqcounfs) are costl>7s=lofb_tccache.c/a1070s>1070lea9GL118" i=29 xis_buck - c6f="+code=6D9FINE_96e6>upma a wro="+kme7f"sifL adddddddd*aKeep t10"two functi06sfin sync7s=lofb_tccache.c/a1070s>1070lea9G8lias - g9tiL_a>sta is hhavaksubm i98s -i96=4" idtiL8>, statass=@truct :6de9atytt96=ret"i_lock pr9tecr 99statass<_cache" 7a 9ref="970ca/a>,pvoid evelLw>p eve8a16">=ksuinde->i_lock pr9tecr 99stase: nnot bR2="sratrue9iiL1697kme7f"sd8aiks subdirectotassdddddddd* =410hash+list refprotecLedfussre8RCU7s=lofb_tccache.c/a1070s>1070lea9amp" class9 own amreferenaLm id8 po 9l=4" 97tiL8>, tsp7a9tspa 97ex levelLw>p eve8a16">=ksubdddddddd* =ake d_lock when7cngparsre8afi="didats ce78">, 7a avoidaracesde->i_lock pr9tecr 99want_havaksubm id8s,pv9id 1070lea9ei7namptiL9T_SYMBOLt/a>(1076=8fs/dc197>tsp977 droppf="+16">ame6>="licodeddddddddnde->i_lock pr9tecr 991070lea9aL118" i=29ppppppppppppppppppp" ceph9coa>,97e6>upma a wro="+kme7f"sifL adddddddd* walk here HASH.8sultfin misssre8our+ce78">, .8sultsre8in " es=lofb_tccache.c/a1070s>1070lea9a8lias - g9ignes" class="sref">d"eq"9nampt97=4" idtiL8>, want_kme6eda>,9void 97>tspa class="comme105f=8fs/dddddddd* reramh iussre8reramh"comlapeqcoml7s=lofb_tccache.c/a1070s>1070lea9="7line" n9mptiL51">p 51081=8fs/dc109maste98longf="+1oL16is6superbkme6>/ddddddddnde->i_lock pr9tecr 99rcuueq" namptiL198">p"98kme7f"sd8aiks subdirectotassdddddddd* See=Docu">=kati06/fctesystems/path-lookup7tx2 for7more details7s=lofb_tccache.c/a1070s>1070lea9=: you mus9HBITSt/a> 107=">wpvoid re9="+p"98tiL8>, ,pvoid eiLa> oructuaccrcu_.8a="comlef=8fs/dc10ef=8rcu_.8a="coml> op 9052ptiL133">105=">105105=">105hashpppppppppppppp"hlist_bl_for_e99<_e78">_rcutruct _rcu> op ct p_rcss.8L40""ppp--truct ,.4" class="line"bef=8fs/dc10ef=8bkme8,.4" class="line"r_hashef=8fs/dc10ef=8p op9at ,pvo p8rentt/a> /pp8rentt/a> /hashef=8fs/dc10ef=8hashkme8 !t/7lockt/a>);"105=">105d_c9aunp"98=ret"i_lock pr9tecr 99n99pppppppppppppppp namppppppppppppppp"spin"comlef=8fs/dc10ef=8spin"coml> op e=amptiLa> oructuacc"ppp--truct p8rentt/a> /p9052ptiL133">105=">105p8rentt/a> /p);"1021 cl99: you mus9own amreferrrrrrrrrrrrrrA9own>n99void 105=">105n99dca/a>,pvoid op ct p_rcss.8L40""ppp--truct 1021 cl99alias - g9 claaaaaaaaapppppppppppar9 cl>n99code=newp_rcuhref="+cccccccccgo9o wn="+codline" nnex8ef=8fs/dc10ef=8nex8istt052ptiL133">105=">105n99s="sr52ptiL133">105=">105d_p9aun>n99>,pvoid p eve8a16">=ksuinde->i_lock pr9tecr 99n99e6>upma a wro="+kme7f"sifL adddddddddddddddd* It refsafef7a cngpare ramh issrce=d_move()icanno8s=lofb_tccache.c/a1070s>1070lea998crow awa9L40" class=9ref7="fs/999n9L40>n99=4" idtiL8>, 1070lea99"7line" n9aun_lass="sref">rcup= /ac9aun>n99>tspa class="comme105f=8fs/dddddddddddddddd*ode->i_lock pr9tecr 99rcup= /a20id >20idca/a>,pvoid p8rentt/a> /p orud oruDCACHE_OP_COMPAREkme89at

ra hr24/41/8a1d3da693ab90523b0175eb51185d06c7b0_3/20id >_lock pr9tecr 99 20intry_finishedsw>p 1 aaaaaaaaainpppppppppppppppp"tlenef=8fs/dc10ef=8tlen08">tt/7lockt/a>);"p8rentt/a> /pp8rentt/a> /lenef=8fs/dc10ef=8len08">052ptiL133">105=">10520ivoid );"p8rentt/a> /pp8rentt/a> /nid8ef=8fs/dc10ef=8ramh08">052ptiL133">105=">10520idca/a>,pvoid p8rentt/a> /pp8rentt/a> /p op ct p_rcss.8L40"pare78ef=8fs/dc10ef=8pare78kme8,.4" class="line"pare78ef=8fs/dc10ef=8pare78kme8="sref">p8rentt/a> /p105=">10520icode=newp_rcuhref="+cccccccccccccccccccccccccccccccccct p_rcss.8L40""ppp--truct p8rentt/a> /p105=">10520is="sref">hasht/a> 9clppppppppccccccccccccccccccccccccct p_rcss.8L40"tlenef=8fs/dc10ef=8tlen08">,.4" class="line"tnid8ef=8fs/dc10ef=8tnid8kme8,.4" class="line"nid8ef=8fs/dc10ef=8ramh08">9952ptiL133">105=">105d_20iun>20i>,pvoid 105=">10520i20iL hrdum id8_subt c8" ppppppppp8rentt/a> /pp8rentt/a> /lenef=8fs/dc10ef=8len08">t!t/7lockt/a>);"952ptiL133">105=">105rcup= /a20iun>20i=ret" clases"ubt c8" ef">hashppppppppgo9o wn="+codline" nnex8ef=8fs/dc10ef=8nex8istt052ptiL133">105=">105sta is h o 6teonde20tiL>20ti hrdum id8_subt c8" pppppppp_cmp> op ct p_rcss.8L40""ppp--truct  orupppp 58,.4" class="line"lenef=8fs/dc10ef=8len08">9952ptiL133">105=">105stase: nnot b  -n16">fp20>st>20tntry_finishedsw>p 1 aaaaaaaaappppppppgo9o wn="+codline" nnex8ef=8fs/dc10ef=8nex8istt052ptiL133">105=">10520tvoid 10e" i20t3 tsp720ent>20tex  l52ptiL133">105=">105d">dhr"+pamptiL 20="s>20tcode=newp_rcuhref="+c8d_hash_maskt/a"ppp--truct p8rentt/a> /p105=">105(1016=8fs/dc20T_S>20ts="sref">hasht/a> 9clct p_rcss.8L40"founduct 105=">10520t>,pvoid  op e=amptiLa> oructuacc"ppp--truct p8rentt/a> /p9052ptiL133">105=">1051018=8fs/dc120las>20t105=">105 *t/spa 108la>108lla20t9 rcu cl 20rau>20t=ret" clases"ubt c8" ed_hash_maskt/a pin"uncomlef=8fs/dc10ef=8spin"uncoml> op e=amptiLa> oructuacc"ppp--truct p8rentt/a> /p9052ptiL133">105=">1051021=8fs/dc120las>20laret" clases"st/spa  v10e" i2021 rcup= /a>,pvoid20s=">20lntry_finishedeiLa> oructuaccrcu_.8a="uncomlef=8fs/dc10ef=8rcu_.8a="uncoml> op 9052ptiL133">105=">105d_drasb" namptiL120"sr>20ltiL8>e" namptiL11029">1021 c20l3 rcup= /a>,pvoid20s=">20ldca/a>,pvoid .8L40" idtiL40" class=founduct 105=">105rcum>dhr"+pampt20s=">20lcode=st/spa  v10e" i2025 p 77t/a>t1026=8fs/dc1207">>20ls="sr52ptiL133">105=">10520lumbeta pef=mmatss=s7<_cacheine" namptiL109">p111106"l>106equ20l7 resass= = /a>p= /209" >20le6>upma a wro="+kme7f"sifL ae8p" namptiL109">p111106"l>106equ20l8  op ppppppp">dh20rau>20l=4" idtiL8>, 20l>tspa  class="comme105f=8fs/*=D"fs/: qppp of ramhfw =wishf7a find08namptiL109">p111106"l>106equ203d 20litspa  class="comme105f=8fs/*08namptiL109">p111106"l>106equ2031  *>20lkme7f"sd8aiks subdirectotass6=On hash+failure or7on lookup failure NULL ih=.8L40"ed7s=lofb_tccache.c/a1070s>1070le20l2 tsp7a20 ow>20ltiL8>, 20lex  lstppppppppppppppppppp"listtruct  op stppppppppppppppppppp"listtruct  orulipp 58,.ppppppppppppppppppppp"qpppppiamptiLa> oruqpppp 58tuct p_rcss.8L40"nid8ef=8fs/dc10ef=8ramh08">9e" namptiL11029">1021 c20l4 20l"licot 20ls="sref">hashppppppppppppppppppppp"listtruct );"105=">10520l>,pvo tsp720 xi>20lp eve8a16">=ksuinde->i_lock pr9tecr 9920l=4" idtiL8>, (104f=8fs/dc20T_S>20l>tspa  class="comme105f=8fs/dddddddd* calculace " ehstandard hash+first, as t10"pp111106"l>106equ204d 20pptspa  class="comme105f=8fs/dddddddd* routppp8may8choosef7a leave " ehhash+value unchanged7s=lofb_tccache.c/a1070s>1070le2041  *>20pkme7f"sd8aiks subdirectotassdddddddd*ode->i_lock pr9tecr 99d_drarcu="+codsmp20"sr>20p2try_finishedeiLa> oructuaccnid8ef=8fs/dc10ef=8ramh08">="sref">p8rentt/a> /hashef=8fs/dc10ef=8hashkme8tt/7lockt/a>);" op ct p_rcss.8L40"nid8ef=8fs/dc10ef=8ramh08">="sref">p8rentt/a> /nid8ef=8fs/dc10ef=8ramh08">,.4" class="line"nid8ef=8fs/dc10ef=8ramh08">="sref">p8rentt/a> /lenef=8fs/dc10ef=8len08">9052ptiL133">105=">105rcuun_smpL108"s20s=">20pdca/a>,pvoid  orulipp 58="sref">p8rentt/a> /p orud105=">105rcumpL108"s/dca20s=">20pcode=newp_rcuhref="+c orulipp 58="sref">p8rentt/a> /pp8rentt/a> /p op ct p_rcss.8L40"lipppiamptiLa> orulipp 58,.wn="+codline" n"ipppiamptiLa> orulipp 58="sref">p8rentt/a> /p9 < 09e" namptiL11029">1021 c2045 p 77t/a>t1046=8fs/dc1207">>20ps="sref">hasht/a> 9clppppppppgo9o wn="+codline" noutef=8fs/dc10ef=8out08tt052ptiL133">105=">10520p>,pvoid 10e" i2047 20p7try_finishedeiLa> oructuacclisttruct );" op ct p_rcss.8L40"lipppiamptiLa> orulipp 58,.wn="+codline" nnid8ef=8fs/dc10ef=8ramh08">9052ptiL133">105=">10520p=4" iddtiL40" class=outef=8fs/dc10ef=8out08tt:t"> *t/spa 108la>108lla2049 statasy_stat" f7<520tiL>20p=ret" clases".8L40" idtiL40" class=listtruct 105=">10520ppode=st/spa  v10e" i2051 20p1ret"i_lock pr9tecr 9920ptiL8>, p111106"l>106equ20p3 20pex  levelLw>p eve8a16">=ksubd d_validats - verifyfce78"> provi=edffrom insecure source (deprecaced)" namptiL109">p111106"l>106equ2054 d_dranew<20" c>20p"licod8f=ue searching7<_cache8Dce78">: =410de78"> allegedf7a be valid""hild of @dpare78kmnamptiL109">p111106"l>106equ2055 20p7 droppf="+16">ame6>="licode6=Ddpare78:hT ehpare78 ce78"> (knownf7a be valid)" namptiL109">p111106"l>106equ2056 rcurcu="+codpL120s=">20pumbeta pef=mmatss=s7<_cache"d">lofb_tccache.c/a1070s>1070le20p7 d_dranew20pe6>upma a wro="+kme7f"sifL ae8An insecure source has se78 us7afce78">, here w =verifyfi8 HASHdget()8it.">lofb_tccache.c/a1070s>1070le20p8 20p=4" idtiL8>, =kati06.">lofb_tccache.c/a1070s>1070le20p9 p 5106f=8fs/dc120mpt>20p>tspa  class="comme105f=8fs/*=Zero ih=.8L40"edp ih=invalid.">lofb_tccache.c/a1070s>1070le206d p 51061=8fs/dc120mpt>20mpmbeta pef=mmatss=s7<_cache"d">lofb_tccache.c/a1070s>1070le2061 stase: nno c<5t/a>tsp7a20>st>20mkme7f"sd8aiks subdirectotass6=This functi06 islofb_tccache.c/a1070s>1070le2062 20mtiL8>, 20mex  linpppppppppppppppp"d_validatsef=8fs/dc10ef=8p op stppppppppppppppppppp"listtruct 1021 c20m4 is6no20ab >20m"licot tsp720que>20ms="sref">hashppppppppppppppppppppp"listtruct 105=">10520m7try_finishedeiLa> oructuaccspin"comlef=8fs/dc10ef=8spin"coml> op e=amptiLa> oructuacc"pare78ef=8fs/dc10ef=8ppare78kme8="sref">p8rentt/a> /p9052ptiL133">105=">105sta is hhavaksubm 20tiL>20m8try_finishedeiLa> oructuacclist_for_e99<_e78">ef=8fs/dc10ef=8list_for_e99<_e78">> op ct p_rcss.8L40""hilduct  oructuacc"pare78ef=8fs/dc10ef=8ppare78kme8="sref">p8rentt/a> /p orudp8rentt/a> /d_"hilduct 105=">105statass=@truct :6d20tiL>20m=ret" clases"ubt c8" 105=">105statass<_cache" 7a20tiL>20ti="sref">hasht/a> 9clppppppppeiLa> oructuaccspin"coml_nestedef=8fs/dc10ef=8spin"coml_nested> op e=amptiLa> oructuacc"ppp--truct p8rentt/a> /p,.wn="+codline" nDENTRY_D_LOCK_NESTEDef=8fs/dc10ef=8DENTRY_D_LOCK_NESTED08">9052ptiL133">105=">105stase: nnot bR2="sratru20>st>20tntry_finishedsw>p 1 aaaaaaaaawn="+codline" n__dget_dcomlef=8fs/dc10ef=8__dget_dcoml> op ct p_rcss.8L40"lppp--truct 105=">10520tvoid  op e=amptiLa> oructuacc"ppp--truct p8rentt/a> /p9052ptiL133">105=">105tsp720ent>20tdca/a>,pvoid ed_hash_maskt/a pin"uncomlef=8fs/dc10ef=8spin"uncoml> op e=amptiLa> oructuacc"pare78ef=8fs/dc10ef=8ppare78kme8="sref">p8rentt/a> /p9052ptiL133">105=">105want_havaksubm id8s,p20f">>20tcode=newp_rcuhref="+ccccccccc.8L40" 1052ptiL133">105=">105(1076=8fs/dc20T_S>20ts="sref">hasht/a> 9clst/spa  v10e" i2076 20t>,pvoid 10e" i2077 20t7try_finishedeiLa> oructuaccspin"uncomlef=8fs/dc10ef=8spin"uncoml> op e=amptiLa> oructuacc"pare78ef=8fs/dc10ef=8ppare78kme8="sref">p8rentt/a> /p9052ptiL133">105=">105d"eq20ign>20t8,pvo want_kme6eda>20ass>20t=ret" clases".8L40" 0052ptiL133">105=">105p 51081=8fs/dc120mpt>20mpode=st/spa  v10e" i2081 rcuueq" namptiL20s=">20m14" iddtiL40" class=EXPORT_SYMBO055=8fs/dc1055laEXPORT_SYMBO0> op ef="+code=parnt  op9052ptiL133">105=">105 107=">wpvoid r20HBI>20mtiL8>e" namptiL11029">1021 c2083 =ksuinde->i_lock pr9tecr 9920m"licod8f=ue searching7<_cache8When7a fcte is20m7 droppf="+16">ame6>="licode6=- L40" this in7a a negativv" namptiL109">p111106"l>106equ2086 20mumbeta pef=mmatss=s7<_cache"* - unhash this HASHfree it.">lofb_tccache.c/a1070s>1070le2087 20me6>upma a wro="+kme7f"sifL a.08lofb_tccache.c/a1070s>1070le20m8 , 1070le20m9 d_20aun>20m>tspa  class="comme105f=8fs/*=a negativv, but 202"tspa  class="comme105f=8fs/*=curre78lyiussre8" efce78"> or7" ehi h" km->i_lock pr9tecr 99202tiL8>, 202ex  levelLw>p eve8a16">=ksubd itf7a be deleced lacer when7it hae nofuserede->i_lock pr9tecr 99202"licod8f=ue searching7<_cacheode->i_lock pr9tecr 99202s="srei_lock pr9tecr 99d_20aun>202umbeta pef=mmatss=s7<_cacheine" namptiL109">p111106"l>106equ2097 202e6>upma a wro="+kme7f"sifL ae8p" namptiL109">p111106"l>106equ2098 202=4" idtiL8>, : =410de78"> 7a delece" namptiL109">p111106"l>106equ2099 rcup= /a20aun>202>tspa  class="comme105f=8fs/*" namptiL109">p111106"l>106equ21id rcup= /a21id >210"tspa  class="comme105f=8fs/*=T40" the in7a a negativv p111106"l>106equ21i1  210kme7f"sd8aiks subdirectotass6=remove itffrom " ehhash+queuespso itfcan be deleced lacer" namptiL109">p111106"l>106equ21i2 210tiL8>, 21idca/a>i_lock pr9tecr 9921icode=voidaef="+code=parnt 1021 c21i5 21is="srt 105=">105d_21iun>21i>,pvoid 105=">10521i oruislipistttt/0052ptiL133">105=">10521iL hrdum id8_sevelLw>p eve8a16">=ksuinde->i_lock pr9tecr 99rcup= /a21iun>210>tspa  class="comme105f=8fs/dddddddd* Are w =" ehonlyiuser?de->i_lock pr9tecr 99sta is h o 6teonde21tiL>211ptspa  class="comme105f=8fs/dddddddd*ode->i_lock pr9tecr 99stase: nnot b  -n16">fp21>st>21114" iddtiL40" class=againppiamptiLa> oruagain08tt:t"> *t/spa 108la>108lla2112 2112try_finishedeiLa> oructuaccspin"comlef=8fs/dc10ef=8spin"coml> op e=amptiLa> oructuacc"ppp--truct p8rentt/a> /p9052ptiL133">105=">105tsp721ent>211dca/a>,pvoid eiLa> oructuacci h" ef=8fs/dc10ef=8i h" p 58tt/7lockt/a>);"p8rentt/a> /p105=">105d">dhr"+pamptiL 21="s>21tcode=newp_rcupppppppppppppp"islipppiamptiLa> oruislipistttt/pppppppppppppp"S_ISDIRppiamptiLa> oruS_ISDIR> op ef="+code=parnti h" ef=8fs/dc10ef=8i h" p 58="sref">p8rentt/a> /i_mh" ef=8fs/dc10ef=8i_mh" 08">9052ptiL133">105=">105(1016=8fs/dc21T_S>21ts="sref">hashp8rentt/a> /p105=">10521t>,pvoid  oructuaccspin"de=comlef=8fs/dc10ef=8spin"de=coml> op e=amptiLa> oructuacci h" ef=8fs/dc10ef=8i h" p 58="sref">p8rentt/a> /i_comlef=8fs/dc10ef=8i"coml08">99at 105=">1051018=8fs/dc121las>21t oructuaccspin"uncomlef=8fs/dc10ef=8spin"uncoml> op e=amptiLa> oructuacc"ppp--truct p8rentt/a> /p9052ptiL133">105=">105);" op 9052ptiL133">105=">105rcu cl 21rau>21t=ret" clases"ubt c8"         go9o wn="+codline" nagainppiamptiLa> oruagain08tt052ptiL133">105=">1051021=8fs/dc121las>212i="sref">hasht/a> 9clst/spa  v10e" i2121 rcup= /a>,pvoid21s=">212ntry_finishedsw>p 1 atiLa> oructuacc"ppp--truct p8rentt/a> /p orud105=">105d_drasb" namptiL121"sr>212void  oructuacc"ppp--"uncink op ct p_rcss.8L40"lppp--truct 105=">105rcup= /a>,pvoid21s=">212dca/a>,pvoid  oruislipistt9052ptiL133">105=">105rcum>dhr"+pampt21s=">212code=newp_rcuhref="+c.8L40"052ptiL133">105=">105p 77t/a>t1026=8fs/dc1217">>212s="sref">hashst/spa  v10e" i2126 212>,pvo resass= = /a>p= /219" >2127="sref">hash oructuacc"_unhashedef=8fs/dc10ef=8p op ct p_rcss.8L40""ppp--truct 1021 c2128  op ppppppp">dh21rau>212L hrdum id8_subt c8" wn="+codline" n__d_dropef=8fs/dc10ef=8__d_drop> op ct p_rcss.8L40"lppp--truct 105=">105212=ret"i_lock pr9tecr 992130ca/a>,pvoid eiLa> oructuaccspin"uncomlef=8fs/dc10ef=8spin"uncoml> op e=amptiLa> oructuacc"ppp--truct p8rentt/a> /p9052ptiL133">105=">105 *>2131ret"i_lock pr9tecr 99tsp7a21 ow>2132try_finishedeiLa> oructuaccfsnotify oruislipistt9052ptiL133">105=">10521lex  lst/spa  v10e" i21l4 21l"licoddtiL40" class=EXPORT_SYMBO055=8fs/dc1055laEXPORT_SYMBO0> op ef="+code=parnt 105=">105213s="sr52ptiL133">105=">10521l>,pvoskatic voidaef="+code=parnt__d_rehashef=8fs/dc10ef=8__d_rehash" op stppppppppppppppppppp"listtruct tuct p_rcss.8L40"bef=8fs/dc10ef=8bkme89e" namptiL11029">1021 c21l7 tsp721 xi>21l105=">1052138try_finishedeiLa> oructuaccBUG_ONef=8fs/dc10ef=8BUG_ON" op !eiLa> oructuacc"_unhashedef=8fs/dc10ef=8p op ct p_rcss.8L40"isttruct 105=">105(104f=8fs/dc21T_S>2139try_finishedeiLa> oructuacchlist_bl_comlef=8fs/dc10ef=8hlist_bl_coml> op ct p_rcss.8L40"bef=8fs/dc10ef=8bkme89052ptiL133">105=">1052140ca/a>,pvoid eiLa> oructuaccisttruct p8rentt/a> /p orud105=">105 *>214ntry_finishedeiLa> oructuacchlist_bl_add_hea _rcutruct p8rentt/a> /p op,.4" class="line"bef=8fs/dc10ef=8bkme89052ptiL133">105=">105d_drarcu="+codsmp21"sr>21p2try_finishedeiLa> oructuacchlist_bl_uncomlef=8fs/dc10ef=8hlist_bl_uncoml> op ct p_rcss.8L40"bef=8fs/dc10ef=8bkme89052ptiL133">105=">105rcuun_smpL108"s21s=">214ex  lst/spa  v10e" i2144 rcumpL108"s/dca21s=">21pcode=t/spa  v10e" i2145 p 77t/a>t1046=8fs/dc1217">>21ps="srskatic voidaef="+code=parnt_d_rehashef=8fs/dc10ef=8_d_rehash" op stppppppppppppppppppp"listtruct 1021 c2146 21p>,pvot 105=">10521p7try_finishedeiLa> oructuacc__d_rehashef=8fs/dc10ef=8__d_rehash" op pppppppppppppp"isttruct p8rentt/a> /p op pppppppppppppp"isttruct p8rentt/a> /pp8rentt/a> /isttruct p8rentt/a> /pp8rentt/a> /hashef=8fs/dc10ef=8hashkme8)9052ptiL133">105=">10521p=4" ist/spa  v10e" i2149 statasy_stat" f7<521tiL>214=ret"i_lock pr9tecr 99215ptspa  class="comme105f=8fsine" namptiL109">p111106"l>106equ2151 215kme7f"sd8aiks subdirectotass6=d_rehashished- add 8aie78"> back7to " ehhash" namptiL109">p111106"l>106equ2152 21ptiL8>, : de78"> 7a add to " ehhash" namptiL109">p111106"l>106equ2153 21pex  levelLw>p eve8a16">=ksubd" namptiL109">p111106"l>106equ2154 d_dranew<21" c>21p"licod8f=ue searching7<_cache8Adds7afce78"> to " ehhash accordsre8"o rtshdran.">lofb_tccache.c/a1070s>1070le2155 21p7 droppf="+16">ame6>="licode6ode->i_lock pr9tecr 99rcurcu="+codpL121s=">21pumbet>i_lock pr9tecr 99d_dranew21pe6>upvoidaef="+code=parnt 1021 c21p8 21p=4" it 105=">105p 5106f=8fs/dc121mpt>2159try_finishedeiLa> oructuaccspin"comlef=8fs/dc10ef=8spin"coml> op e=amptiLa> oructuaccisttruct p8rentt/a> /p9052ptiL133">105=">105p 51061=8fs/dc121mpt>2160ca/a>,pvoid eiLa> oructuacc_d_rehashef=8fs/dc10ef=8_d_rehash" op pppppppppppppp"isttruct 105=">105stase: nno c<5t/a>tsp7a21>st>216ntry_finishedeiLa> oructuaccspin"uncomlef=8fs/dc10ef=8spin"uncoml> op e=amptiLa> oructuaccisttruct p8rentt/a> /p9052ptiL133">105=">10521mtiL8>st/spa  v10e" i2163 21mex  lddtiL40" class=EXPORT_SYMBO055=8fs/dc1055laEXPORT_SYMBO0> op ef="+code=parnt 105=">105is6no21ab >216code=t/spa  v10e" i2165 tsp721que>2167 droppf="+16">ame6>="licodine" namptiL109">p111106"l>106equ2166  with=a new nid8kmnamptiL109">p111106"l>106equ2167 : ce78"> to be updatsd08namptiL109">p111106"l>106equ2168 sta is hhavaksubm 21tiL>216=4" idtiL8>, p111106"l>106equ2169 statass=@truct :6d21tiL>216>tspa  class="comme105f=8fs/*" namptiL109">p111106"l>106equ217d statass<_cache" 7a21tiL>217"tspa  class="comme105f=8fs/*=Updats a case insensitivv with=new case of ramh.">lofb_tccache.c/a1070s>1070le2171 stase: nnot bR2="sratru21>st>217kme7f"sd8aiks subdirectotass6">lofb_tccache.c/a1070s>1070le2172 217tiL8>,  must hav0"been=.8L40"edpby d_lookup with=nid8=D"fs/. OldpHASHnew">lofb_tccache.c/a1070s>1070le2173 tsp721ent>217ex  levelLw>p eve8a16">=ksubd nid8=lengths must match (i/. no pp111106"l>106equ2174 want_havaksubm id8s,p21f">>217"licod8f=ue searching7<_cache8lengths)7s=lofb_tccache.c/a1070s>1070le2175 (1076=8fs/dc21T_S>2177 droppf="+16">ame6>="licode6s=lofb_tccache.c/a1070s>1070le2176 217umbeta pef=mmatss=s7<_cache"* Pare78 i h"  i_mutex must be held over d_lookup HASHin7a this1070le2177 217e6>upma a wro="+kme7f"sifL a* keep reramh iHASHconcurre78 insert , HASHr>adlip(2) away)7s=lofb_tccache.c/a1070s>1070le2178 d"eq21ign>217=4" idtiL8>, want_kme6eda>21ass>21t=ret"voidaef="+code=parnt ppp--"updats oruqpppp 58tuct p_rcss.8L40"nid8ef=8fs/dc10ef=8ramh08">9e" namptiL11029">1021 c218d p 51081=8fs/dc121mpt>21mpode=t 105=">105rcuueq" namptiL21s=">218ntry_finishedeiLa> oructuaccBUG_ONef=8fs/dc10ef=8BUG_ON" op !eiLa> oructuaccmutex_is"comledef=8fs/dc10ef=8mutex_is"comled> op e=amptiLa> oructuacc"ppp--truct p8rentt/a> /pp8rentt/a> /pp8rentt/a> /i_mutexppiamptiLa> orui_mutexkme8)9052ptiL133">105=">105 107=">wpvoid r21HBI>2182try_finishedeiLa> oructuaccBUG_ONef=8fs/dc10ef=8BUG_ON" op tiLa> oructuacc"ppp--truct p8rentt/a> /pp8rentt/a> /lenef=8fs/dc10ef=8len08">t!t/7lockt/a>);"="sref">p8rentt/a> /lenef=8fs/dc10ef=8len08">90sevelLw>p eve8a16">=ksuin d_lookup givvs this<*ode->i_lock pr9tecr 99105=">105218code=newp_rcupppppppppppppp"spin"comlef=8fs/dc10ef=8spin"coml> op e=amptiLa> oructuacc"ppp--truct p8rentt/a> /p9052ptiL133">105=">1052185ode=newp_rcupppppppppppppp"writs oruwrits op e=amptiLa> oructuacc"ppp--truct p8rentt/a> /p9052ptiL133">105=">1052186ode=newp_rcupppppppppppppp"memcp-truct  oructuacc"ppp--truct p8rentt/a> /pp8rentt/a> /nid8ef=8fs/dc10ef=8ramh08">,.4" class="line"nid8ef=8fs/dc10ef=8ramh08">="sref">p8rentt/a> /nid8ef=8fs/dc10ef=8ramh08">,.4" class="line"nid8ef=8fs/dc10ef=8ramh08">="sref">p8rentt/a> /lenef=8fs/dc10ef=8len08">9052ptiL133">105=">1052187try_finishedeiLa> oructuaccwritsp8rentt/a> /p9052ptiL133">105=">105 op e=amptiLa> oructuacc"ppp--truct p8rentt/a> /p9052ptiL133">105=">105d_21aun>21m>tspast/spa  v10e" i219d 212"tspa dtiL40" class=EXPORT_SYMBO055=8fs/dc1055laEXPORT_SYMBO0> op ef="+code=parnt ppp--"updats105=">105212tiL8>skatic voidaef="+code=parntswitch oruswitch9e" namptiL11029">1021 c2193 212ex  lt 105=">105219code=newp_rcu99at 105=">105219s="sref">hasht/a> 9cl105=">105d_21aun>219>,pvoid p eve8a16">=ksuinde->i_lock pr9tecr 99212e6>upma a wro="+kme7f"sifL aaaaaaaaaaaaaaaaaaaaaaaaa* Both external: swap " ehpointerede->i_lock pr9tecr 99212=4" idtiL8>, rcup= /a21aun>219=ret" clases"ubt c8"         ef="+code=parntswapef=8fs/dc10ef=8swap> op ef="+code=parnttarge8ef=8fs/dc10ef=8targe808">="sref">p8rentt/a> /pp8rentt/a> /nid8ef=8fs/dc10ef=8ramh08">,.4" class="line""ppp--truct p8rentt/a> /pp8rentt/a> /nid8ef=8fs/dc10ef=8ramh08">9052ptiL133">105=">105rcup= /a22id >220i="sref">hasht/a> 9cls elseat  220ntry_finishedsw>p 1 aaaaaaaaawvelLw>p eve8a16">=ksuinde->i_lock pr9tecr 99220tiL8>, :internal, targe8:external.  Steal targe8'ede->i_lock pr9tecr 99220ex  levelLw>p eve8a16">=ksubaaaaaaaaaaaaaaaaaaaaaaaa* storage HASHmake targe8 internal7s=lofb_tccache.c/a1070s>1070le22i4 220"licod8f=ue searching7<_cachaaaaaaaaaaaaaaaaaaaaaaaa*ode->i_lock pr9tecr 99220s="sref">hasht/a> 9clpppppppppppppppppppppp"memcp-truct ="sref">p8rentt/a> /p,.4" class="line""ppp--truct p8rentt/a> /pp8rentt/a> /nid8ef=8fs/dc10ef=8ramh08">,i_lock pr9tecr 99d_22iun>220>,pvoid  9clpppppppppppppppppppppp""ppp--truct p8rentt/a> /pp8rentt/a> /lenef=8fs/dc10ef=8len08">t+ 19052ptiL133">105=">105220 oructuacc"ppp--truct p8rentt/a> /pp8rentt/a> /nid8ef=8fs/dc10ef=8ramh08">tt/pppppppppppppp"targe8ef=8fs/dc10ef=8targe808">="sref">p8rentt/a> /pp8rentt/a> /nid8ef=8fs/dc10ef=8ramh08">052ptiL133">105=">105220L hrdum id8_subt c8" pppppppp7lockt/a>);"="sref">p8rentt/a> /pp8rentt/a> /nid8ef=8fs/dc10ef=8ramh08">tt/pppppppppppppp"targe8ef=8fs/dc10ef=8targe808">="sref">p8rentt/a> /p052ptiL133">105=">105rcup= /a22iun>220=ret" clases"ubt c8" st/spa  v10e" i221d sta is h o 6teonde22tiL>221aret" clases"s elseat stase: nnot b  -n16">fp22>st>221ntry_finishedsw>p 1 a105=">105221void p eve8a16">=ksuinde->i_lock pr9tecr 99tsp722ent>221ex  levelLw>p eve8a16">=ksubaaaaaaaaaaaaaaaaaaaaaaaa* de78">:external, targe8:internal7  Givv'ede->i_lock pr9tecr 99d">dhr"+pamptiL 22="s>221"licod8f=ue searching7<_cachaaaaaaaaaaaaaaaaaaaaaaaa* storage 7a targe8 HASHmake de78"> in7ernal> ->i_lock pr9tecr 99(1016=8fs/dc22T_S>2217 droppf="+16">ame6>="licodeaaaaaaaaaaaaaaaaaaaaaaaa*ode->i_lock pr9tecr 9922t>,pvoid p8rentt/a> /p,.4" class="line"targe8ef=8fs/dc10ef=8targe808">="sref">p8rentt/a> /pp8rentt/a> /nid8ef=8fs/dc10ef=8ramh08">,i_lock pr9tecr 991018=8fs/dc122las>22t="sref">p8rentt/a> /pp8rentt/a> /lenef=8fs/dc10ef=8len08">t+ 19052ptiL133">105=">105);"="sref">p8rentt/a> /pp8rentt/a> /nid8ef=8fs/dc10ef=8ramh08">tt/pppppppppppppp""ppp--truct p8rentt/a> /pp8rentt/a> /nid8ef=8fs/dc10ef=8ramh08">052ptiL133">105=">105rcu cl 22rau>22t=ret" clases"ubt c8"         pppppppppppppp""ppp--truct p8rentt/a> /pp8rentt/a> /nid8ef=8fs/dc10ef=8ramh08">tt/7lockt/a>);"p8rentt/a> /p052ptiL133">105=">1051021=8fs/dc122las>222i="sref">hasht/a> 9cls elseat rcup= /a>,pvoid22s=">222ntry_finishedsw>p 1 a        pvelLw>p eve8a16">=ksuinde->i_lock pr9tecr 99d_drasb" namptiL122"sr>222tiL8>, " namptiL109">p111106"l>106equ22l3 rcup= /a>,pvoid22s=">222ex  levelLw>p eve8a16">=ksubaaaaaaaaaaaaaaaaaaaaaaaa*ode->i_lock pr9tecr 99rcum>dhr"+pampt22s=">222code=newp_rcuhref="+c        pppppppppppppp"memcp-truct p8rentt/a> /p,.4" class="line"targe8ef=8fs/dc10ef=8targe808">="sref">p8rentt/a> /pp8rentt/a> /nid8ef=8fs/dc10ef=8ramh08">,i_lock pr9tecr 99p 77t/a>t1026=8fs/dc1227">>222s="sref">hasht/a> 9clpppppppphref="+c        pppppppppppppp"targe8ef=8fs/dc10ef=8targe808">="sref">p8rentt/a> /pp8rentt/a> /lenef=8fs/dc10ef=8len08">t+ 19052ptiL133">105=">105222>,pvoid p8rentt/a> /pp8rentt/a> /lenef=8fs/dc10ef=8len08">tt/pppppppppppppp"targe8ef=8fs/dc10ef=8targe808">="sref">p8rentt/a> /pp8rentt/a> /lenef=8fs/dc10ef=8len08">052ptiL133">105=">105resass= = /a>p= /229" >222105=">105 op ppppppp">dh22rau>222L hrdum id8_subt c8" st/spa  v10e" i22l9 222=ret" clases"st/spa  v10e" i223d 2230ca/a>,pvoid eiLa> oructuaccswapef=8fs/dc10ef=8swap> op ef="+code=parnt"ppp--truct p8rentt/a> /pp8rentt/a> /lenef=8fs/dc10ef=8len08">,.4" class="line"targe8ef=8fs/dc10ef=8targe808">="sref">p8rentt/a> /pp8rentt/a> /lenef=8fs/dc10ef=8len08">9052ptiL133">105=">105 *>2231ret"st/spa  v10e" i2232 tsp7a22 ow>223tiL8>e" namptiL11029">1021 c22l3 22lex  lskatic voidaef="+code=parntpppp--"coml_for_movetruct 9e" namptiL11029">1021 c22l4 223"licot 2235ode=newp_rcupvelLw>p eve8a16">=ksuinde->i_lock pr9tecr 99223umbeta pef=mmatss=s7<_cache"""""""""* XXXX:hdoaweHr>ally needf7a take targe8="sred"coml?de->i_lock pr9tecr 99tsp722 xi>223e6>upma a wro="+kme7f"sifL aaaaaaaaa*ode->i_lock pr9tecr 992238try_finished op ef="+code=parnt"ppp--truct p8rentt/a> /p);"="sref">p8rentt/a> /p1021 c22l9 (104f=8fs/dc22T_S>223=ret" clases"ubt c8" eiLa> oructuaccspin"comlef=8fs/dc10ef=8spin"coml> op e=amptiLa> oructuacctarge8ef=8fs/dc10ef=8targe808">="sref">p8rentt/a> /pp8rentt/a> /p9052ptiL133">105=">1052240ca/a>,pvoid elseat  *>224ntry_finishedsw>p 1 a op ef="+code=parnt"ppp--truct p8rentt/a> /pp8rentt/a> /targe8ef=8fs/dc10ef=8targe808">="sref">p8rentt/a> /p105=">105d_drarcu="+codsmp22"sr>224void  op e=amptiLa> oructuacc"ppp--truct p8rentt/a> /pp8rentt/a> /p9052ptiL133">105=">105rcuun_smpL108"s22s=">224dca/a>,pvoid ed_hash_maskt/a pin"coml_nestedef=8fs/dc10ef=8spin"coml_nested> op e=amptiLa> oructuacctarge8ef=8fs/dc10ef=8targe808">="sref">p8rentt/a> /pp8rentt/a> /p,i_lock pr9tecr 99rcumpL108"s/dca22s=">224code=newp_rcuhref="+c        >,pvoid ed_hash_maskt/aDENTRY_D_LOCK_NESTEDef=8fs/dc10ef=8DENTRY_D_LOCK_NESTED08">9052ptiL133">105=">105p 77t/a>t1046=8fs/dc1227">>224s="sref">hasht/a> 9cls elseat 224>,pvoid  op e=amptiLa> oructuacctarge8ef=8fs/dc10ef=8targe808">="sref">p8rentt/a> /pp8rentt/a> /p9052ptiL133">105=">105224 oructuaccspin"coml_nestedef=8fs/dc10ef=8spin"coml_nested> op e=amptiLa> oructuacc"ppp--truct p8rentt/a> /pp8rentt/a> /p,i_lock pr9tecr 99224L hrdum id8_subt c8" pppppppp>,pvoid ed_hash_maskt/aDENTRY_D_LOCK_NESTEDef=8fs/dc10ef=8DENTRY_D_LOCK_NESTED08">9052ptiL133">105=">105statasy_stat" f7<522tiL>224=ret" clases"ubt c8" st/spa  v10e" i225d 225aret" clases"st/spa  v10e" i2251 225ntry_finished <ppppppppppppppp"listtruct 225void  oructuacc pin"coml_nestedef=8fs/dc10ef=8spin"coml_nested> op e=amptiLa> oructuacctarge8ef=8fs/dc10ef=8targe808">="sref">p8rentt/a> /p, 29052ptiL133">105=">105225dca/a>,pvoid  op e=amptiLa> oructuacc"ppp--truct p8rentt/a> /p, 39052ptiL133">105=">105d_dranew<22" c>225code=newp_rcus elseat 225s="sref">hasht/a> 9clct p_rcss.8L40"spin"coml_nestedef=8fs/dc10ef=8spin"coml_nested> op e=amptiLa> oructuacc"ppp--truct p8rentt/a> /p, 29052ptiL133">105=">105rcurcu="+codpL122s=">225>,pvoid  oructuacc pin"coml_nestedef=8fs/dc10ef=8spin"coml_nested> op e=amptiLa> oructuacctarge8ef=8fs/dc10ef=8targe808">="sref">p8rentt/a> /p, 39052ptiL133">105=">105d_dranew2257ret" clases"st/spa  v10e" i2258 225=4" ist/spa  v10e" i22p9 p 5106f=8fs/dc122mpt>225=ret"i_lock pr9tecr 99p 51061=8fs/dc122mpt>2260ca/askatic voidaef="+code=parntpppp--"uncoml9e" namptiL11029">1021 c2262 22mtiL8>t 2263try_finished="sref">p8rentt/a> /p);"p8rentt/a> /p1021 c2264 is6no22ab >226code=newp_rcuhref="+ctiLa> oructuacc pin"uncomlef=8fs/dc10ef=8spin"uncoml> op e=amptiLa> oructuacc"ppp--truct p8rentt/a> /pp8rentt/a> /p9052ptiL133">105=">105tsp722que>226s="sref">hash="sref">p8rentt/a> /p);"9e" namptiL11029">1021 c2266  oructuacc pin"uncomlef=8fs/dc10ef=8spin"uncoml> op e=amptiLa> oructuacctarge8ef=8fs/dc10ef=8targe808">="sref">p8rentt/a> /pp8rentt/a> /p9052ptiL133">105=">105sta is hhavaksubm 22tiL>226=4" it/spa  v10e" i2269 statass=@truct :6d22tiL>226>tspa  class="comme105f=8fsinde->i_lock pr9tecr 99statass<_cache" 7a22tiL>227"tspa  class="comme105f=8fs/*=When7switchsre8che"s, " ehactual pppsre8doesn't pppsctly hav0"7a08lofb_tccache.c/a1070s>1070le2271 stase: nnot bR2="sratru22>st>227kme7f"sd8aiks subdirectotass6 be preserveSHin " ehtarge8 - because w 're droppsre8" ehtarge808lofb_tccache.c/a1070s>1070le2272 227tiL8>, tsp722ent>227ex  levelLw>p eve8a16">=ksubd " ehnew nid8 before w =switch7s=lofb_tccache.c/a1070s>1070le2274 want_havaksubm id8s,p22f">>227"licod8f=ue searching7<_caches=lofb_tccache.c/a1070s>1070le2275 (1076=8fs/dc22T_S>2277 droppf="+16">ame6>="licode6 Not =" at w =hav0"7a be a lot more careful about ge8tsre8" ehhash" namptiL109">p111106"l>106equ2276 227umbeta pef=mmatss=s7<_cache"* switcheSH- w =hav0"7a switch " ehhash value properly even71070le2277 227e6>upma a wro="+kme7f"sifL a* then7no longer matchvs thehactual (corrupted) pppsre8of8" ehtarge87s=lofb_tccache.c/a1070s>1070le2278 d"eq22ign>227=4" idtiL8>,  is on.7s=lofb_tccache.c/a1070s>1070le2279 want_kme6eda>22ass>227>tspa  class="comme105f=8fs/*ode->i_lock pr9tecr 99p 51081=8fs/dc122mpt>228ptspa  class="comme105f=8fsinde->i_lock pr9tecr 99rcuueq" namptiL22s=">228kme7f"sd8aiks subdirectotass6 __d_moveH- moveHa de78">" namptiL109">p111106"l>106equ2282  107=">wpvoid r22HBI>228tiL8>, : e78"> to move" namptiL109">p111106"l>106equ2283 =ksubd @targe8:hnew de78">" namptiL109">p111106"l>106equ2284 228"licod8f=ue searching7<_caches=lofb_tccache.c/a1070s>1070le2285 2287 droppf="+16">ame6>="licode6 Updats " ehd0s>10 to he.lect " ehmoveHof8a file aaai. Negativvs=lofb_tccache.c/a1070s>1070le2286 228umbeta pef=mmatss=s7<_cache"* p0s>10 e78"ivs should7not be moveSHin " is way. Caller must hold08namptiL109">p111106"l>106equ2287 228e6>upma a wro="+kme7f"sifL a* reramh"coml, " ehi_mutex of8" ehsource HASHtarge8 directo"ivs,08namptiL109">p111106"l>106equ2288 , 1070le22m9 d_22aun>228>tspa  class="comme105f=8fs/*ode->i_lock pr9tecr 992290ca/askatic voidaef="+code=parnt__d_moveef=8fs/dc10ef=8__d_move" op stppppppppppppppppppp"listtruct );"9e" namptiL11029">1021 c2291 229void  oructuacc"ppp--truct p8rentt/a> /p1021 c2293 229dca/a>,pvoid  op ef="+code=parntKERN_WARNINGef=8fs/dc10ef=8KERN_WARNINGca/a>  class="commpppsre">"VFS: movsre8cegativv p0s>10 e78"y\n"de->9052ptiL133">105=">105229code=t/spa  v10e" i2295 229s="sref">hashef="+code=parntBUG_ONef=8fs/dc10ef=8BUG_ON" op tiLa> oructuacc"_ancestoref=8fs/dc10ef=8d"ancestor> op ef="+code=parnt"ppp--truct p8rentt/a> /targe8ef=8fs/dc10ef=8targe808">)9052ptiL133">105=">105d_22aun>2296ode=newp_rcupppppppppppppp"BUG_ONef=8fs/dc10ef=8BUG_ON" op tiLa> oructuacc"_ancestoref=8fs/dc10ef=8d"ancestor> op ef="+code=parnttarge8ef=8fs/dc10ef=8targe808">,.4" class="line""ppp--truct 105=">105222e6>up52ptiL133">105=">1052298try_finishedeiLa> oructuaccpppp--"coml_for_movetruct p8rentt/a> /targe8ef=8fs/dc10ef=8targe808">)052ptiL133">105=">105rcup= /a22aun>229=ret"i_lock pr9tecr 99rcup= /a23id >2300ca/a>,pvoid eiLa> oructuaccwrits oruwrits op e=amptiLa> oructuacc"ppp--truct p8rentt/a> /p9052ptiL133">105=">105 230ntry_finishedeiLa> oructuaccwrits oruwrits op e=amptiLa> oructuacctarge8ef=8fs/dc10ef=8targe808">="sref">p8rentt/a> /p9052ptiL133">105=">105230tiL8>e" namptiL11029">1021 c23i3 230dca/a>,pvoid evelLw>p eve8a16">=ksuin __d_drop8does writs230code=t/spa  v10e" i23i5 2305ode=newp_rcupvelLw>p eve8a16">=ksuinde->i_lock pr9tecr 99d_23iun>230umbeta pef=mmatss=s7<_cache"""""""""* MoveH" ehde78"> to " ehtarge8 hash queu . Don't bo" er 9230e6>upma a wro="+kme7f"sifL aaaaaaaaa* forHt ehsid8 hash queu =because of8how unlikely it is7s=lofb_tccache.c/a1070s>1070le23i8 230=4" idtiL8>, rcup= /a23iun>230=ret" clases"ef="+code=parnt__d_dropef=8fs/dc10ef=8__d_drop" op ef="+code=parnt"ppp--truct 105=">105sta is h o 6teonde23tiL>2310ca/a>,pvoid eiLa> oructuacc__d_rehashef=8fs/dc10ef=8__d_rehash" op pppppppppppppp""ppp--truct p8rentt/a> /p op pppppppppppppp"targe8ef=8fs/dc10ef=8targe808">="sref">p8rentt/a> /p="sref">p8rentt/a> /pp8rentt/a> /hashef=8fs/dc10ef=8hashkme8)9052ptiL133">105=">105stase: nnot b  -n16">fp23>st>2311ret"i_lock pr9tecr 99231void p eve8a16">=ksuin Unhash " ehtarge8: dput() will then7ge8 rid of8it *ode->i_lock pr9tecr 99tsp723ent>2313ret" clases"ef="+code=parnt__d_dropef=8fs/dc10ef=8__d_drop" op ef="+code=parnttarge8ef=8fs/dc10ef=8targe808">)052ptiL133">105=">105d">dhr"+pamptiL 23="s>231code=t/spa  v10e" i2315 (1016=8fs/dc23T_S>231s="sref">hashef="+code=parntlist_deluct p8rentt/a> /pp8rentt/a> /d_childef=8fs/dc10ef=8d_child08">)052ptiL133">105=">1052316ode=newp_rcupppppppppppppp"list_deluct ="sref">p8rentt/a> /pp8rentt/a> /d_childef=8fs/dc10ef=8d_child08">)052ptiL133">105=">1051018=8fs/dc123las>231e6>up52ptiL133">105=">105=ksuin Switch " ehche"s../*ode->i_lock pr9tecr 99rcu cl 23rau>231=ret" clases"ef="+code=parntswitch oruswitchp8rentt/a> /targe8ef=8fs/dc10ef=8targe808">)052ptiL133">105=">1051021=8fs/dc123las>2320ca/a>,pvoid eiLa> oructuaccswapef=8fs/dc10ef=8swap> op ef="+code=parnt"ppp--truct p8rentt/a> /pp8rentt/a> /hashef=8fs/dc10ef=8hashkme8,.4" class="line"targe8ef=8fs/dc10ef=8targe808">="sref">p8rentt/a> /pp8rentt/a> /hashef=8fs/dc10ef=8hashkme8)052ptiL133">105=">105rcup= /a>,pvoid23s=">2321ret"i_lock pr9tecr 99d_drasb" namptiL123"sr>232void p eve8a16">=ksuin .../HASHswitch " ehpare78s/*ode->i_lock pr9tecr 99rcup= /a>,pvoid23s=">2323try_finished op ef="+code=parnt"ppp--truct rcum>dhr"+pampt23s=">232code=newp_rcuhref="+ctiLa> oructuacc"ppp--truct p8rentt/a> /p="sref">p8rentt/a> /p105=">105p 77t/a>t1026=8fs/dc1237">>232s="sref">hasht/a> 9clpppppppppppppp"targe8ef=8fs/dc10ef=8targe808">="sref">p8rentt/a> /p052ptiL133">105=">105232>,pvoid  op e=amptiLa> oructuacctarge8ef=8fs/dc10ef=8targe808">="sref">p8rentt/a> /pp8rentt/a> /d_childef=8fs/dc10ef=8d_child08">)052ptiL133">105=">105resass= = /a>p= /239" >232 op ppppppp">dh23rau>232L hrdum id8_subt c8" eiLa> oructuaccswapef=8fs/dc10ef=8swap> op ef="+code=parnt"ppp--truct p8rentt/a> /pp8rentt/a> /targe8ef=8fs/dc10ef=8targe808">="sref">p8rentt/a> /p105=">105232=ret"i_lock pr9tecr 99233i="sref">hasht/a> 9clevelLw>p eve8a16">=ksuin AASHadSHt em back to " eh(new)hpare78 lists/*ode->i_lock pr9tecr 99 *>233ntry_finishedsw>p 1 apppppppppppppp"list_adSuct ="sref">p8rentt/a> /pp8rentt/a> /d_childef=8fs/dc10ef=8d_child08">, e=amptiLa> oructuacctarge8ef=8fs/dc10ef=8targe808">="sref">p8rentt/a> /pp8rentt/a> /p orup105=">105tsp7a23 ow>233void 10e" i23l3 233ex  l52ptiL133">105=">105233code=newp_rcupppppppppppppp"list_adSuct p8rentt/a> /pp8rentt/a> /d_childef=8fs/dc10ef=8d_child08">, e=amptiLa> oructuacc"ppp--truct p8rentt/a> /pp8rentt/a> /p orup105=">1052335ode=52ptiL133">105=">1052336ode=newp_rcupppppppppppppp"writs="sref">p8rentt/a> /p9052ptiL133">105=">105tsp723 xi>2337try_finishedeiLa> oructuaccwritsp8rentt/a> /p9052ptiL133">105=">105233=4" it/spa  v10e" i23l9 (104f=8fs/dc23T_S>233=ret" clases"ef="+code=parntpppp--"uncomlp8rentt/a> /targe8ef=8fs/dc10ef=8targe808">)052ptiL133">105=">1052340ca/a>,pvoid eiLa> oructuaccspin"uncomlef=8fs/dc10ef=8spin"uncoml> op e=amptiLa> oructuacctarge8ef=8fs/dc10ef=8targe808">="sref">p8rentt/a> /p9052ptiL133">105=">105 *>234ntry_finishedeiLa> oructuaccfsnotify_d_moveef=8fs/dc10ef=8fsnotify_d_move" op ef="+code=parnt"ppp--truct 105=">105d_drarcu="+codsmp23"sr>2342try_finishedeiLa> oructuaccspin"uncomlef=8fs/dc10ef=8spin"uncoml> op e=amptiLa> oructuacc"ppp--truct p8rentt/a> /p9052ptiL133">105=">105rcuun_smpL108"s23s=">234dca/ast/spa  v10e" i2344 rcumpL108"s/dca23s=">234code=t/spa  v10e" i2345 p 77t/a>t1046=8fs/dc1237">>2347 droppf="+16">ame6>="licodinde->i_lock pr9tecr 99234umbeta pef=mmatss=s7<_cache"* p_moveH- moveHa de78">" namptiL109">p111106"l>106equ2347 234e6>upma a wro="+kme7f"sifL a* @de78">: e78"> to move" namptiL109">p111106"l>106equ2348 234=4" idtiL8>, " namptiL109">p111106"l>106equ2349 statasy_stat" f7<523tiL>234>tspa  class="comme105f=8fs/*" namptiL109">p111106"l>106equ235d 235"tspa  class="comme105f=8fs/*=Updats " ehd0s>10 to he.lect " ehmoveHof8a file aaai. Negativvs=lofb_tccache.c/a1070s>1070le2351 235kme7f"sd8aiks subdirectotass6 p0s>10 e78"ivs should7not be moveSHin " is way. See " ehcomlsrede->i_lock pr9tecr 99235tiL8>, =ksubdode->i_lock pr9tecr 99d_dranew<23" c>235code=voidaef="+code=parntp_movetruct 9e" namptiL11029">1021 c2355 235s="srt rcurcu="+codpL123s=">2356ode=newp_rcupppppppppppppp"writs op e=amptiLa> oructuaccreramh"comlef=8fs/dc10ef=8reramh"coml08">9052ptiL133">105=">105d_dranew2357try_finishedeiLa> oructuacc__d_moveef=8fs/dc10ef=8__d_move" op ef="+code=parnt"ppp--truct p8rentt/a> /targe8ef=8fs/dc10ef=8targe808">)052ptiL133">105=">1052358try_finishedeiLa> oructuaccwrits op e=amptiLa> oructuaccreramh"comlef=8fs/dc10ef=8reramh"coml08">9052ptiL133">105=">105p 5106f=8fs/dc123mpt>235>tspast/spa  v10e" i236d p 51061=8fs/dc123mpt>236"tspa dtiL40" class=EXPORT_SYMBO055=8fs/dc1055laEXPORT_SYMBO0> op ef="+code=parnt _movetruct 105=">105stase: nno c<5t/a>tsp7a23>st>2361ret"i_lock pr9tecr 99236tiL8>, p111106"l>106equ2363 236ex  levelLw>p eve8a16">=ksubd d"ancestorH- search/forHlLwancestor> namptiL109">p111106"l>106equ2364 is6no23ab >236"licod8f=ue searching7<_cache @p1:wancestor de78">" namptiL109">p111106"l>106equ2365 tsp723que>2367 droppf="+16">ame6>="licode6 @p2: le22m9  to 1fs/dc10ea> orfs/dc10ef=8spin"coml> op p8rentt/a> /p226=4" it/spa  v136de=* HASHt ehsb="sres_vfs_reramh000000000000000,e=D_d2NULL1070le2353 227"tspa  class="com3e105f37e=parntruct  op ef="+code=parnttarge8ef=8ntruct 227tiL8>, tsp732ent>227ex  levelLw>p eve3a16">37>227"licod8f=ue searc3ing7<37pp"list_adSuc09">ct  op ef="+code=parnt"ppp--truct 105=">105 op p076=8fs/dc32T_S>2277 droppf="+16">am36>="l37pppppppppp"targe8ef=8Tef=8fs/dc10ef=8IS_pruct p_rcss.8L4p105=">105227umbeta pef=mmatss3s7<_c37nampeppppppppppppp"spin"comle05227e6>upma a wro="+k3e7f"s3710e  >10e" i2258 d"eq32ign>227=4" idtiL8>, p 51081=8fs/dc132mpt>228ptspa  class="com3e105f38fsind6d p 51082="sratru32s=">228kme7f"sd8aiks sub3irect3tass6 __d_moveH- moveHa de789wpvoid r32HBI>228tiL8>, : e78"> to move" nTe-&ghelpe">pttemptshe.c/a1e withu05motc/a13">105d">p111106"l>a hrd2346 tsp732 cl>228ex  levelLw>p eve3a16">3ksubd @targe8:hnew de78">" nama hrd2346 228"licod8f=ue searc3ing7<3caches=lofb_tccache.c/a1070s>1 It cacum pppsfb_tccac09">p1s drlready6"l>1992287 droppf="+16">am36>="l3code6 Updats " ehd0s>10 to he.l0"targ pr9tec5=">10 pr9tec">102 pr9tHtarge8,OT>102 pr9tHt">10ode-&3">105=">105228umbeta pef=mmatss3s7<_c3che"* p0s>10 e78"ivs should7no5228e6>upma a wro="+k3e7f"s3fL a* reramh"coml, " ehi_mutex  lot: If.c/ar pr9tecr 99op7angsn'n pleas1070le2351 228=4" idtiL8>, 1070le2279 wa3="sref">d_32aun>228>tspa  class="com3e105f38fs/*ode->i_lock pr9tecr 992290ca/askatic voida3f="+c3de=parnt__d_mttruct 1021 c2=8fs/dc10ef=8targ" kme89e" namptiL110">1021 c2261 stase: nno c3 2291ret"t 229void 39=D_d2263 229dca/a>,pvoid 229code=t/spa  v1394rcss.8L40"ppttruct )052ptiL133">10rerge8ef=8fs/dc10ef=8targERR_PTRBO0> op ef="+codRR_PTR8ef=8-fs/dc10ef=8targEBUSYBO0> op ef="+codBUSY5stase: nno c229s="sref">hashef="3code=39d_32aun>2296ode=newp_rcupppp3ppppp3ppp"BUG_ONef=8fASHadSHt em back to " ehIf.aliakode-&0000000shtargalock pr,hehactualextraeche.se7s=lofbd99135=">13910e  >10e" i2Tef=8fs/dc10ef=8IS_aliakme89052ptiL133"aliak8ef=e78ef=8fs/dc10ef=8p105=">105p8rentt/a> /p1021 c2264 d_32aun>229=ret"i_lock pr9te3r 99<3 hrd23id rcup= /a43id >2300ca/a>,pvoid eiLa4 oruc4uaccwrits99230ntry_finishedeiLa4 oruc40line" ntarge8ef=8ct 9052ptiL13arge8_ /p"com"ppp--truct p8rentt/a> /p op e=amptiLa> differ. See coml1 c22264 230tiL8>e" namptiL11429">140> oructuacc pin"coml_gopo =8fs/dc10ef=8p op ef="+code=out"err230dca/a>,pvoid evel4w>p e40rnt__d_dropef=8fs/dc10ef=8__m1ruct p_rcss.8L4m1p8rentt/a> /p op e=amptiLa> differ. See coml1 c2326 229code=t/spa  v1404ine" ntarge8ef=8ct 9052ptiL13arge8_ /p"com"ppp--truct 105=">1051021 c2" ef=8fs/dc10ef=8p op e=amptiLaie coml1 c22264 229s="sref">hashef="4w>p e40pppppppppp"targe8ef=8gopo =8fs/dc10ef=8p op ef="+code=out"err2296ode=newp_rcupppp4s7<_c40pp"writs105=">1051021 c2" ef=8fs/dc10ef=8p op e=amptiLaie coml1 c2326 222e6>up52ptiL133">14e7f"s4fL aaaa8fs/dc10ef=8p2298try_finishedeiLa4ef="+40line" nIS_ROOTef=8fs/dc10ef=8IS_he.c/ame89052ptiL133"he.c/a"ppp-ct 10mructpoikm-truct rcum4">rcup= /a43iun>230=ret" clases"ef="4code=4arnt__d_dropefits105=">1052310ca/a>,pvoid eiLa4 oruc41Lw>p eve8a16">=ksuin As/dc10ef=8targr">)052ptiL133">10rerge8ef=8fs/dc10ef=8targaliakme89052ptiL133"aliak8ef=326 p 514nnnnne""li43 ow>231void p e4e8a16"=8fs/dc10ef=8p op ef="+code=out"errtsp743ent>2313ret" clases"ef="4code=4arnt__d_dropef=8fs/dc10ef=8__8spin"uncoml> op e=amptiLa> oructuacc"ppp--truct 1021 c2" ef=8fs/dc10ef=8p op e=amptiLai=">105p 514"+pamptiL 43="s>231code=t/spa  v1414ine" ntarge8ef=8omlef=8fs/dc10em2ruct p_rcss.8L4m2231s="sref">hashef="4code=41pppppppppp"targe8ef=8fs/dc10ef=8targarge8_"uncoml> op e=amptiLaarge8_"uncom-truct p 514"6pppppp r43ppp>2316ode=newp_rcupppp4ppppp4ppp"list_delucef=8omlef=8fs/dc10em1ruct p_rcss.8L4m1231e6>up52ptiL133">145=">141shedeiLa> oructuaccspfs/dc10ef=8targarge8_"uncoml> op e=amptiLaarge8_"uncom-truct p 514"8pppppp r43ppp>231L hrdum id8_sevel4w>p e41accwrits)052ptiL133">10rerge8e359 p 514">rcup= /a43rau>231=ret" clases"ef="4code=41e" i236d p 51421=8fs/dc143las>2320ca/a>,pvoid eiLa4 oruc42fsind6d p 514 /a>,pvoid43s=">2321ret"i_lock pr9te4r 99<42ass6 __d_moveH- moveHa de789232void p e4207=* @de78">: e78"> to move" nPreptargah000onymrus&000000009">lifew 'rsuperbncom>is&0000000trccaakoda hrd2346 tsp743s=">2323try_finished105d">000000in place directo queu . Dobeu05placed1070le2279 wa4dhr"+pampt43s=">232code=newp_rcuhref4"+cti42aches=lofb_tccache.c/a1070s>1 ref=8fs/withu00on pr9tec">10oheld!070le2279 wa4d16=8fs/dc437">>232s="sref">hasht/a>49clpp42ode6 Updats " ehd0s>10 to he.232>,pvoid 1d_movaterialise_e=kme88ef=8ntruct p= /439" >232rcum4pppppp">dh43rau>232L hrdum id8_subt 48" ei4a> oructuaccswntruct 1 /targe8ef=88fs/dc10ef=8targare78kme89052ptiL133">a=">105p 77t/a>t14namptiL103437cl>232=ret"i_lock pr9te4r 99<4 hrd233d 233i="sref">hasht/a>49clev43accspin"uncomlef=8fs/dc10ef= 105=">105>233ntry_finishedsw>p41 app43hrd2362 tsp7a43 ow>233void  oruwrits op e=amptiLa> oructuacc"ppp--truct p8rentt/a> /p9052ptiL133">105=">105233ex  l52ptiL133">145=">143rnt__d_dropef=8fs/dc10ef=8__ptiLa> oruwrits op e=amptiLa> oructuacc"ppp--truct 9052ptiL133">105=">105233code=newp_rcupppp4ppppp43" i2345 p 77t/a>t14a e kme7f"43que>2335ode=52ptiL133">145=">143rntlist_deluct 1 /targe8eff=8fs/dc10ef=8targe=kme8="sref">p8rentt/a> /p1021 c23i1 2336ode=newp_rcupppp4ppppp4ppp"writsa=">1051021 c23i1 p= /43 xi>2337try_finishedeiLa4 oruc43233=4" it/spa  v143accwritsp8rentt/a> /targe8ef=8fs/dc10ef=8targa0onme89052ptiL133"a0on233=ret" clases"ef="4code=4arntpppp--"uncomlp8rentt/a> /pp8rentt/a> /hashef=8fs/dc10ef=8hashkme8,.4" class="line"targe8ef=8fs/dc10ef=8targa0onme89052ptiL133"a0onp8rentt/a> /hashef=8fs/dc10ef=8hashkme8,.4" class="line"targe8ef23i1 2340ca/a>,pvoid eiLa4 oruc44fsind6d p 51442=8fs/dc143/a>>234ntry_finishedeiLa4 oruc4uaccfsnotify_d_moveef=8fs/dc1e=kme8="sref">p8rentt/a> /pa=">105a=">105tsp7a43"sr>2342try_finishedeiLa4 oruc4uaccspin"uncomlef=8fs/dc10ef=st_del> op e=amptiLa> oructuacc"ppp--truct p8rentt/a> /pp8rentt/a> /d_childef=8fs/dc10ef=8d_child08">)052ptiL133">105=">105p8rentt/a> /pp8rentt/a> /d_childef=8fs/dc10ef=8d_child08">, e=amptiLa> oructuacc"ppp--truct p8rentt/a> /pp8rentt/a> /p orup105=">105>2347 droppf="+16">am46>="l44rntlist_deluc=D_d35 234umbeta pef=mmatss4s7<_c44+codline" nINIT_LIST_HEADef=8fs/dc10ef=8INIT_LIST_HEAD> op e=amptiLa> oructuacctarge8ef=8fs/dc10ef=8targe=kme8="sref">p8rentt/a> /pp8rentt/a> /d_childef=8fs/dc10ef=8d_child08">)052ptiL133">105=">105p= /43 xi>234e6>upma a wro="+k4e7f"s44234=4" idtiL8>, 1021 c2f=8ct 1 /targe8eff==8fs/dc10ef=8targe=kme8="sref">p8rentt/a> /p1 /targe8ef316 234>tspa  class="com4e105f44rntpppp--"uncoml op e=amptiLa> oructuacc"ppp--truct p8rentt/a> /d_childef=8fs/dc10ef=8d_child08">)052ptiL133">105=">105235"tspa  class="com4e105f450ine" nIS_ROOTef=ct p8rentt/a> /d_childef=8fs/dc10ef=8d_child08">)052ptiL133">105=">1051021 c2dirhppiamptiLa> orup105=">105235tiL8>, 235ex  levelLw>p eve4a16">45_rcss.8L40"ppsrtlef=8fs/dc10ef=8ppsref=8INIT_LIST_HEAD> op e=amptiLa> oructuacctarge8ef=8fs/dc10ef=8targa0onme89052ptiL133"a0onp8rentt/a> /d_childef=8fs/dc10ef=8d_child08">)052ptiL133">105=">105235code=voidaef="+co4e=par45" i2345 p 77t/a>t14namptiL105437cl>235s="srt  op e=amptiLa> oructuacc"ppp--truct p8rentt/a> /p9052ptiL133">105=">1052356ode=newp_rcupppp4ppppp4ppp"writs op e=amptiLa> oructuacc"ppp--truct 9052ptiL133">105=">1052357try_finishedeiLa4 oruc452358try_finishedeiLa4 oruc4uaccwrits105=">105235>tspast/spa  v45rntpppp--"uncoml op e=amptiLa> oructuacc"ppp--truct p8rentt/a> /p9052ptiL133">105=">105rcuu461=8fs/dc143mpt>236"tspa dtiL40" cla4s=EXP46fsind6d p 5145t/a>tsp7a43>st>2361ret"i_lock pr9te4r 99<46accfsnotify_d_witch " ehche"s../*ode-&00on pr9tec">10ostde-&">10ed, ref=8fs/">10ede.1flagkccspi-truc= ~s/dc10ef=8d"seqDCACHE_DISCONNECTE_HEAD> op e=amptDCACHE_DISCONNECTE_e8ef316 236ex  levelLw>p eve4a16">46e" i2344 rcum4" ce>is6no43ab >236"licod8f=ue searc4ing7<46" i2345 p 77t/a>t14<5t/a>tsp743que>2367 droppf="+16">am46>="l4code6 @p2: le22m9 106equ2363  to 14s/dc14ea> orfs/dc10ef=8spin"coml> op movaterialise_uniquL109i> /oducrgah0">1029i> Don're1070le2351 p8rentt/a> /p146de=* HASHt ehsb="sres_vfs_rera@">102:0">1029 Dobinds/*ode-&d d"an,s/*o0ass=2aliakes mayobeuatt>234dcerd22 asmpL108"s23s=">234dca/a4lf=8fs/dc142tiL>226>tspa  class="com4e105f48fsinde->i_lock pr9tecr 999cerd22 asmpL108"s23s=">234dca/a4_cache" 7a42tiL>227"tspa  class="com4e105f47fs/*=Updats " ehd0s>10 to he.lI> /oducrkode">000000in Don're1, 05=stdtut99st>227kme7f"sd8aiks sub4irect47ass6 p0s>10 e78"ivs should7notroot">p111106y.aliakoih0"ts place iirectre1s done. C09">p1must6"l>1rectcerd22 asmpL108"s23s=">234dca/a4Rearch=id842 ow>227tiL8>, : e78"> to move" nie coml directoock pr9>p111106y1070le2279 wa4<5t/a>tsp742ent>227ex  levelLw>p eve4a16">47subdode->i_lock pr9tecr 99>227"licod8f=ue searc4ing7<47pp"lintruct 1vaterialise_uniquL"ppp-ntruct 1021 c2=8fs/dc10ef=8targ" kme89e" namptiL110">1021 c2d16 2277 droppf="+16">am46>="l47=D_d2356 rcur4R/spa  1fs42ppp>227umbeta pef=mmatss4s7<_c47nampeppppppppttruct  oactua e8ef316 227e6>upma a wro="+k4e7f"s47d"eq42ign>227=4" idtiL8>, )052ptiL133">105uwill e"-truct 228ptspa  class="com4e105f480ine" nIS_ROOTef=ct 1021 c2d23l4 rcum482="sratru42s=">228kme7f"sd8aiks sub4irect48pppppppppp"list_adSuct p8rentt/a> /pwpvoid r42HBI>228tiL8>, p8renttd_moinstantiate-truct tsp742 cl>228ex  levelLw>p eve4a16">48_rcss.8L40"ppsrtlef=8fs/dc10ef=8ppsrd_rehash" op pppppppppppp""ppp--truct 228"licod8f=ue searc4ing7<48> oructuacc"ppp--trucgopo =8fs/dc10ef=8p9052ptiL133">10out"no08">2287 droppf="+16">am46>="l48rntlist_deluc344 rcum4a/spa  1fs42aun>228umbeta pef=mmatss4s7<_c4che"* 44 rcum4aseat 228e6>upma a wro="+k4e7f"s48acc__d_moveef=8fs/dc10ef=8__> oruncoml> op e=amptiLa> oruuacc"ppp--truct 1021 c2" ef=8fs/dc10ef=8p op e=amptiLai=">105p 514h7ref="98942L40>228=4" idtiL8>, (4="sref">d_42aun>228>tspa  class="com4e105f489ine" nIS_ROOTef=8fs/dc10ef=8p op ef="+coS_ISDIR-truct 1021 c2" ef=8fs/dc10ef=8prcum4t7he si99m422" >2290ca/askatic voida4f="+c49Lw>p eve8a16">=ksuin ttruct p 514 2291ret"t 229void 49> oructuacc pin"coml_fwitch " ehche"s../*ode-&Dorkode"aliaked">000000rlready6exist?991021 c2, 02359 p 514pppppppppa42 cl>229code=t/spa  v149> oructuacc"ppp--trucTef=8fs/dc10ef=8IS_aliakme89052ptiL133"aliak8ef=d23l4 rcum4t76=8fs/dc42aun>229s="sref">hashef="4code=49pppppppppp"targe8ef=8srtlef=8fs/dc10ef=8ppsractua op e=amptiLa> oactua e8eff=8fs/dc10ef=8targaliakme89052ptiL133"aliak8ef=359 p 514 /spa  1fs42aun>2296ode=newp_rcupppp4ppppp49nampeppppppppppppp"spin"comleomlef=8fs/dc10ef=8writs op e=amptiLa> oructuaccreramh"comlef=8fs/dc10ef=8reramh"coml08">9052ptiL133">105=">105222e6>up52ptiL133">145=">149 op ef="+code=parnttarge8ef=8fs/dc10ef=8targaliakme89052ptiL133"aliak8ef=uct 105=">105rcum4t"sref">d_42aun>229=ret"i_lock pr9te4r 99<49rnt__d_dropefitsloop 99 *rcup= /a53id >2300ca/a>,pvoid eiLa5 oruc50Lw>p eve8a16">=ksuin rge8ef=8srtlef=8fs/dc10ef=8ppsractua op e=amptiLa> oactua e8eff=8fs/dc10ef=8targERR_PTRBO0> op ef="+codRR_PTR8ef=8-fs/dc10ef=8targELOOPBO0> op ef="+codLOOP5230ntry_finishedeiLa5 oruc50pppppppppp"list_adSucrge8ef=8srtlef=8fs/dc10ef=8ppsr8spin"uncoml> op e=amptiLa> oructuacc"ppp--truct 1021 c2" ef=8fs/dc10ef=8p op e=amptiLai=">105p 515rrrrrrrrrr53iwn>230tiL8>e" namptiL11529">150> oructuacc pin"coml_________de=D_d2Tef=8fs/dc10ef=8IS_ROOT> op ef="+code=parnt"ppp--truct rcum5iepppppp r53ifo>230dca/a>,pvoid evel5w>p e50_rcss.8L40"ppsrtlef=8ctuacc pin"coml_fwitch " ehche"s../*ode-&Isehmishah000onymrus&mructpoikmppsfb_wtcerd22 asmpL108"s23s=">234dca/a5i4pppppp r53 cl>229code=t/spa  v150aches=lofb_tccache.c/a1070s>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>* c way.splic29i> Doour39re1?99hashef="5w>p e50pppppppppp"targe8ef=8rge8ef=8srtlef=8fs/dc10ef=8ppsrd_movaterialise_e=kme8)9052ptiL133">1d_movaterialise_e=kme88ef=8t p 515r6pppppp r53aun>2296ode=newp_rcupppp5s7<_c50nampeppppppppppppp"spin"comlesrtlef=8fs/dc10ef=8ppsr0ef=8writs op e=amptiLa> oructuaccreramh"comlef=8fs/dc10ef=8reramh"coml08">9052ptiL133">105=">105p 515i7pppppp r53las>222e6>up52ptiL133">15e7f"s50shedeiLa> oructuaccsprge8ef=8srtlef=8fs/dc10ef=8ppsrd_modroef="+code=parnt"d_modroe-truct p 515i8pppppp r53L40>2298try_finishedeiLa5ef="+50> oructuaccswapef=8fspp--trucccccccccgopo =8fs/dc10ef=8p)052ptiL133">1fruc"8ef=359 p 515">rcup= /a53iun>230=ret" clases"ef="5code=5arnt__d_dropefits op 5 o 6teonde53tiL>2310ca/a>,pvoid eiLa5 oruc51Lw>p eve8a16">=ksuin rge8ef=8srtlef=8fwitch " ehche"s../*ode-&Nope, bub_wt1must(!) aoveef>p111106ya hrd2354 st>2311ret"i_lock pr9te5r 99<51ass6 p0s>10 e78"ivs should7nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn*"aliaking.nTe-&gdroesOT>102 pr9tHt">10o9231void p e51> oructuacc pin"coml_________srtlef=8fs/dc10ef=8ppsractua op e=amptiLa> oactua e8eff=8fs/dc10ef=8targrnt"unaliakme89052ptiL133"rnt"unaliak8ef=8t 1021 c2, t p 515<5t/a>tsp753ent>2313ret" clases"ef="5code=51_rcss.8L40"ppsrtlef=8ctuacc p344 rcum5"+pamptiL 53="s>231code=t/spa  v151> oructuacc"ppp--trucsrtlef=8fs/dc10ef=8ppsr0ef=8writs op e=amptiLa> oructuaccreramh"comlef=8fs/dc10ef=8reramh"coml08">9052ptiL133">105=">105p 515016=8fs/dc53T_S>231s="sref">hashef="5code=51pppppppppp"targe8ef=888888888Tef=8fs/dc10ef=8IS_ROOdRRp ef="+code=parnt"dRR-truct rcum5"6pppppp r53ppp>2316ode=newp_rcupppp5ppppp51nampeppppppppppppp"spin"comlesrtlef=8Tef=8fs/dc10ef=8IS_PTROdRRp ef="+code=parPTROdRR-truct rcum5"7pppppp r53las>231e6>up52ptiL133">155=">151shedeiLa> oructuaccspctuacc"ppp--trucsrtlef=8fs/dc10ef=8ppsrpr_warn_ratelimLa>">)052ptiL133">1pr_warn_ratelimLa>"-trucl4 rcum5"8pppppp r53ppp>231L hrdum id8_sevel5w>p e51> oructuaccswapef=8fspp--trucccccccccpp--trucsrtlef=8f0s>10 e78"ivstring">"VFS: Lookup dir>i>7;s>ioih0>7;s0>7;s"a hrd2354 10 e78"ivstring">" w way.havcac0uked"loop\n"a hrd23261 stase: nno c521=8fs/dc153las>2320ca/a>,pvoid eiLa5 oruc52Lw>p eve8a16">=ksuin rge8ef=8srtlef=8pp--trucsrtlef=8f p8rentt/a> /hashef=8fs/dc10ef=8hashkmkme8.f">p8rentt/a> ashef=8f261 stase: nno c522321ret"i_lock pr9te5r 99<52pppppppppp"list_adSucrge8ef=8srtlef=8pp--trucsrtlef=8f 1021 c2" ef=8fs/dc10ef=8pp8rentt/a> ashef=8f261 stase: nno c52nnnne""li53"sr>232void p e52> oructuacc pin"coml_________srtlef=8pp--trucsrtlef=8f 1021 c2" ef=8fs/dc10ef=8p)052ptiL133">1y i"5p 515"5t/a>tsp753s=">2323try_finished1 um-truct p 515"+pamptiL 53s=">232code=newp_rcuhref5"+cti52> oructuacc"ppp--trucsrtlef=8344 rcum5d16=8fs/dc537">>232s="sref">hasht/a>59clpp52pppppppppp"targe8ef=888888888gopo =8fs/dc10ef=8p9052ptiL133">10out"no08">232>,pvoid rcum5d7pppppp r539" >23210e" i2258 dh53rau>232L hrdum id8_subt 58" ei52" i23l9 (5namptiL103537cl>232=ret"i_lock pr9te5r 99<52rntpppp--"uncowitch " ehche"s../*ode-&Add a uniquL1 hre3">ceo9hasht/a>59clev53accspin"uncomlef=8fs/dc10ef=actua op e=amptiLa> oactua e8eff=8fs/dc10ef=8targrnt"instantiate_uniquLme89052ptiL133"rnt"instantiate_uniquL8ef=8t 1021 c2d316 >233ntry_finishedsw>p51 app53line" ntarge8ef=8ct 233void  oructuacc pin"coml_fs/dc10ef=8targactua op e=amptiLa> oactua e8eff=8fs/dc10ef=8targe=kme8="sref">p8rentt/a> /p233ex  l52ptiL133">155=">153rnt__d_dropef=D_d35 233code=newp_rcupppp5ppppp53> oructuacc"ppp--truct )052ptiL133">105uwill e"-truct 155=">1532336ode=newp_rcupppp5ppppp5ppp"writs oruncoml> op e=amptiLa> oruuacc"ppp--truct 9052ptiL133">105=">105rcuu5p= /a>p= /53 xi>2337try_finishedeiLa5 oruc53L aaaa8fs/dc10ef=8p)052ptiL133">1fruc"8ef=:26 233=4" it/spa  v153accwrits op e=amptiLa> oructuacc"ppp--truct 9052ptiL133">105=">105rcuu5ppppppp na53ppp>2340ca/a>,pvoid eiLa5 oruc54accspin"uncomlef=8fs/dc10ef=8spin"uncoml> op e=amptiLa> oructuacc"ppp--truct 1021 c2" ef=8fs/dc10ef=8p op e=amptiLai=">105p 51542=8fs/dc153/a>>234ntry_finishedeiLa5 oruc5uaccfs=8fs/dc10ef=8p9052ptiL133">10out"no08">tsp7a53"sr>2342try_finishedeiLa5 oruc5uaccspin"uncomTef=8fs/dc10ef=8IS_actua op e=amptiLa> oactua e8eff==8fs/dc10ef=8targe=kme8="sref">p8rentt/a> /prcum5_smpL108"s53s=">234dca/ast/spa  v54_rcss.8L40"ppsrtlef=8fs/dc10ef=8ppsrsecurity_moinstantiate="sref">p8renttsecurity_moinstantiate8ef=8t 1021 c2d316 >2347 droppf="+16">am56>="l54rntlist_deluc344 rcum54#pppph" c53you>234umbeta pef=mmatss5s7<_c54he"* 44 rcum5_= /a>p= /53 xi>234e6>upma a wro="+k5e7f"s54acc__d_moveef=8fs/dc10ef=8__ipume89052ptiL133">i um-truct 1021 c2d316 234=4" idtiL8>, p 515ppnew235"tspa  class="com5e105f550ine"fs/dc10ef=8targEXPORT_SYMBOL_GPLruct p_rcss.8L4EXPORT_SYMBOL_GPL8ef=8t 1vaterialise_uniquL"pppd316 235tiL8>,  op e=st3de=Ducikmpfs/dc10ef=8d"cokme8lenme89052ptiL133"kme8lene8efd16 55_rcss3l4 rcum5phr"+pampt53" c>235code=voidaef="+co5e=par55> oructuacc"p8fs/dc10ef=8targbuflenme89052ptiL133"buflende=D -=8fs/dc10ef=8targkme8lenme89052ptiL133"kme8lene8ef316 235s="srt p= /53"sr>2357try_finishedeiLa5 oruc557 oructuacc"p8fs/dc10ef=8targbufre3nu78_end> op e=bufre3de=D -=8fs/dc10ef=8targkme8lenme89052ptiL133"kme8lene8ef316 2358try_finishedeiLa5 oruc5uaccwrits op e=bufre3de=Ducfs/dc10ef=8ppsrst3nu78_end> op e=st3de=Ducfs/dc10ef=8d"cokme8lenme89052ptiL133"kme8lene8efd316 235>tspast/spa  v55rntpppp--"unc05236"tspa dtiL40" cla5s=EXP56fsind36d p 5155t/a>tsp7a53>st>2361ret"i_lock pr9te5r 99<56hrd2362 236tiL8>, p8rentt/a> prepeqc8kme88ef=8char *8fs/dc10ef=8targbufre3nu78_end> op e=bufre3de=Ducikmp8fs/dc10ef=8targbuflenme89052ptiL133"buflende=Ducttruct p8rentt/a> ashef=8fd16 236ex  levelLw>p eve5a16">56_rcss3l4 rcum5" ce>is6no53ab >236"licod8f=ue searc5ing7<564ntpppp--"unc05 op e=prepeqc8ef=8fs/dc10ef=8targbufre3nu78_end> op e=bufre3de=Ducfs/dc10ef=8ppsrbuflenme89052ptiL133"buflende=Ducfs/dc10ef=8targkme8.f">p8rentt/a> ashef=8flef=8fs/dc10ef=8d"cokme8.f">p8rentt/a> ashef=8f2cfs/dc10ef=8targkme8.f">p8rentt/a> ashef=8flef=8fs/dc10ef=8d"colenme89052ptiL133"lene8efd316 tsp753que>2367 droppf="+16">am56>="l5code6 36d p 5155#pppph" c5dc10ef=ases"s: e78"> to 15s/dc156he"* 44 rcum5lseat p8rentt/a> /p106equ2363 226=4" it/spa  v156de=* HASHt ehsb="sres_vfs_reraprepeqc8path -nPrepeqc path strings/*oa bufre3deequ2363 226>tspa  class="com5e105f58fsinde->i_lock pr9tecr 999 @path:ode-&d d"an/vfsmructs/*oreportdeequ2363 227"tspa  class="com5e105f57fs/*=Updats " ehd0s>10 to he.l@root:troot"vfsmnt/d d"ancerd22 asmpL108"s23s=">234dca/a5R2="sratru52>st>227kme7f"sd8aiks sub5irect57ass6 p0s>10 e78"ivs should7not@bufre3: poikmers/*ode-&eqc directobufre3deequ2363 227tiL8>, : e78"> to move" n@buflen: poikmers/*obufre3 lengthdeequ2363 227ex  levelLw>p eve5a16">57subdode->i_lock pr9tecr 99deequ2363 is6no52f">>227"licod8f=ue searc5ing7<57aches=lofb_tccache.c/a1070s>1 C09">p1"l>1srecto3">105=">101070le2279 wa5076=8fs/dc52T_S>2277 droppf="+16">am56>="l57ode6 Updats " ehd0s>10 to he.p8rentt/a> prepeqc8path8ef=8const ttruct p8rentt/a> path8ef=p8fs/dc10ef=8targpath.f">p8rentt/a> path8ef=261 stase: nno c5227e6>upma a wro="+k5e7f"s57shedeiLa> oructuaccspctuacc"pconst ttruct p8rentt/a> path8ef=p8fs/dc10ef=8targroot.f">p8rentt/a> root8ef=261 stase: nno c5<59=8fs/dc52ign>227=4" idtiL8>, 227>tspa  class="com5e105f57hrd233l4 rcum581=8fs/dc152mpt>228ptspa  class="com5e105f580ine" nIS_ROOntruct p8rentt/a> path8ef=lef=8fs/dc10ef=8d"com=kme8="sref">p8rentt/a> /p228kme7f"sd8aiks sub5irect58pppppppppp"lintruct p8renttvfsmruct--truct p8renttvfsm05p8rentt/a> path8ef=lef=8fs/dc10ef=8d"comnt="sref">p8renttmrge8ef316 wpvoid r52HBI>228tiL8>, p8renttmruct--truct p8renttmrge8eff=8fs/dc10ef=8targreal_mruct="sref">p8renttreal_mruct8ef=8fs/dc10ef=8targvfsmnt="sref">p8renttvfsm05tsp752 cl>228ex  levelLw>p eve5a16">58rnt__d_dropef=8fs/dc10ef=8__boo op e=amptiLa> oboo nt__dfs/dc10ef=8ppsrslash" op ppppppppppslashe8eff=8fs/dc10ef=8targfals8.f">p8rentt/a> fals8e8ef316 is6no52mro>228"licod8f=ue searc5ing7<58> oructuacc"pikmpfs/dc10ef=8ppsrerror> op ef="+code=errore8eff=80316 2287 droppf="+16">am56>="l58228umbeta pef=mmatss5s7<_c58pp"writs op e=amptiLabr_readencom"ppp--truct 228e6>upma a wro="+k5e7f"s58acc__d_moveefwhilef=8fs/dc10ef=8IS_e=kme8,.ppppppppppppppppppppp"lf!=8fs/dc10ef=8targroot.f">p8rentt/a> root8ef=lef=8fs/dc10ef=8d"com=kme8="sref">p8rentt/a> /pp8renttvfsm05p8rentt/a> root8ef=lef=8fs/dc10ef=8d"comnt="sref">p8renttmrge8ef) 3l4 rcum5h7ref="98952L40>228=4" idtiL8>, d_52aun>228>tspa  class="com5e105f58hrd233d 2290ca/askatic voida5f="+c59Lw>p eve8a16">=ksuin Tef=8fs/dc10ef=8IS_e=kme8,.ppppppppppppppppppppp"lf==8fs/dc10ef=8targvfsmnt="sref">p8renttvfsm05p8rentt/a> mnt_rootrcum5 2291ret"t =ksuin Tef=ct p8renttmrge8ef)d16 229dca/a>,pvoid p8rentt/a> global_roote8ef316 229code=t/spa  v159> oructuacc"ppp--trucrge8ef=8o p8renttmrge8eflef=8fs/dc10ef=8d"comnt_mructpoikme89e" namptiL11mnt_mructpoikme8ef316 229s="sref">hashef="5code=59pppppppppp"targe8ef=8srtlef=8fs/dc10ef=8ppsrmnt="sref">p8renttmrge8eff=8fs/dc10ef=8targmnt="sref">p8renttmrge8eflef=8fs/dc10ef=8d"comnt_re78kme89e" namptiL11mnt_ /targe8ef316 2296ode=newp_rcupppp5ppppp59nampeppppppppppppp"spin"comleomlef=8fs/dc10evfsmnt="sref">p8renttvfsm05p8renttmrge8eflef=8fs/dc10ef=8d"comnt="sref">p8renttmrge8ef316 222e6>up52ptiL133">155=">159shedeiLa> oructuaccspctuacc"pcontinue316 p 515t"sref">d_52aun>229=ret"i_lock pr9te5r 99<59rnt__d_dropefitsp8rentt/a> /p1021 c23i1 rcup= /a63id >2300ca/a>,pvoid eiLa6 oruc60Lw>p eve8a16">=ksuin fs/dc10ef=8ppsrprefetch.f">p8rentt/a> prefetch-truct 230ntry_finishedeiLa6 oruc60pppppppppp"list_adSucfs/dc10ef=8ppsrs oruncoml> op e=amptiLa> oruuacc"ppp--truct p8rentt/a> /p9052ptiL133">105=">105rcuu6rrrrrrrrrr63iwn>230tiL8>e" namptiL11629">160> oructuacc pin"coml_fs/dc10ef=8ppsrerror> op ef="+code=errore8eff=8fs/dc10ef=8ppsrprepeqc8kme8.f">p8rentt/a> prepeqc8kme88ef=8fs/dc10ef=8targbufre3nu78_end> op e=bufre3de=Ducfs/dc10ef=8ppsrbuflenme89052ptiL133"buflende=Duc-truct p8rentt/a> /pp8rentt/a> /hashef=8f2343 rcuu6r3rrrrrrrr63afo>229dca/a>,pvoid p e60_rcss.8L40"ppsrtlef=8fs/dc10ef=8ppsrs oru"uncoml> op e=amptiLa> oructuacc"ppp--truct p8rentt/a> /p9052ptiL133">105=">105rcuu6i4pppppp r63 cl>229code=t/spa  v160> oructuacc"ppp--trucTef=ct 229s="sref">hashef="6w>p e60pppppppppp"targe8ef=8rge8ef=8fs/dc10ef=8ppsrerror> op ef="+code=errore8eff=8fs/dc10ef=8ppsrprepeqcnu78_end> op e=prepeqc8ef=8fs/dc10ef=8targbufre3nu78_end> op e=bufre3de=Ducfs/dc10ef=8ppsrbuflenme89052ptiL133"buflende=Ducf0s>10 e78"ivstring">"/"a hrd232 12343 rcuu6i6pppppp r63aun>2296ode=newp_rcupppp6s7<_c60nampeppppppppppppp"spTef=8fs/dc10ef=8IS_error> op ef="+code=errore8efd16 222e6>up52ptiL133">16e7f"s60shedeiLa> oructuaccsprge8ef=8break343 rcuu6i8pppppp r63L40>2298try_finishedeiLa6ef="+60" i23l9 (6">rcup= /a63iun>230=ret" clases"ef="6code=6arnt__d_dropefits2310ca/a>,pvoid eiLa6 oruc61Lw>p eve8a16">=ksuin t p 516nnnnne""li63 ow>231void p e61> oru6d p 516n3rrrrrrrr63ent>2313ret" clases"ef="6code=61line" nIS_ROOTef=ct  op ef="+code=errore8eff=8fs/dc10ef=8ppsrprepeqcnu78_end> op e=prepeqc8ef=8fs/dc10ef=8targbufre3nu78_end> op e=bufre3de=Ducfs/dc10ef=8ppsrbuflenme89052ptiL133"buflende=Ducf0s>10 e78"ivstring">"/"a hrd232 12343 pppp6"5pppppp r63T_S>231s="sref">hashef="6code=612316ode=newp_rcupppp6ppppp61nampefs/dc10ef=8ppsroume89052ptiL133">oum-tru:26 231e6>up52ptiL133">165=">161acc__d_moveef=8fs/dc10ef=8__br_reade"uncoml> op e=amptiLabr_reade"uncom"ppp--truct 231L hrdum id8_sevel6w>p e61accwrits op ef="+code=errore8ef316 rcup= /a63rau>231=ret" clases"ef="6code=61hrd233d 2320ca/a>,pvoid eiLa6 oruc620ine"fs/dc10ef=8targglobal_root.f">p8rentt/a> global_roote8ef:26 2321ret"i_lock pr9te6r 99<62accfsnotify_d_witch " ehche"s../*ode-a hrd2354 232void p e6207=* @de78">: e78"> to move"""""""""* Filesystems needings/*oimpleo mo special "root"rntms"a hrd2354 tsp763s=">2323try_finished>>>>>>>>9>232s="sref">hasht/a>69clpp62rntlist_delucTef=p8rentt/a> /hashef=8fs/dc10ef=8hashkmlenme89052ptiL133"lene8eff!=81 || p8rentt/a> /hashef=8fs/dc10ef=8hashkmkme8.f">p8rentt/a> ashef=8f[0]f!=8f0s>10 e78"ivstring">>i/>ia hrd23_d 3l4 rcum6d7pppppp r639" >232 oructuaccsp/dc10ef=8hashkmWARNop e=amptiLa> oWARN-truc1ucf0s>10 e78"ivstring">"Root">000000has weird cepp <>7;.*sf=8f\n"a hrd23261 stase: nno c6pppppp">dh63rau>232L hrdum id8_subt 68" ei62> oructuaccswapef=8fspp--t(int) p8rentt/a> /hashef=8fs/dc10ef=8hashkmlenme89052ptiL133"lene8ef, t p8rentt/a> /hashef=8fs/dc10ef=8hashkmkme8.f">p8rentt/a> ashef=8fd316 232=ret"i_lock pr9te6r 99<62rntpppp--"unc36d p 516031=8fs/dc63lin>233i="sref">hasht/a>69clev630ine" nIS_ROOTef=ct >233ntry_finishedsw>p61 app63pppppppppp"list_adSucfs/dc10ef=8ppsrerror> op ef="+code=errore8eff=8fs/dc10ef=8ppsrprepeqcnu78_end> op e=prepeqc8ef=8fs/dc10ef=8targbufre3nu78_end> op e=bufre3de=Ducfs/dc10ef=8ppsrbuflenme89052ptiL133"buflende=Ducf0s>10 e78"ivstring">"/"a hrd232 12343 pppp63nnnne""li63 ow>233void  oructuacc pTef=ct 233ex  l52ptiL133">165=">163_rcss.8L40"ppsrtlef=8fs/dc10ef=8ppsrerror> op ef="+code=errore8eff=8fs/dc10ef=8ppsris_mructe">)052ptiL133">1is_mructe"8ef=8fs/dc10ef=8targvfsmnt="sref">p8renttvfsm05pppp63+pamptiL 63ab >233code=newp_rcupppp6ppppp63> oructuacc"pgopo =8fs/dc10ef=8poum-tru343 pppp6316=8fs/dc63que>2335ode=52ptiL133">165=">163ode6 36d p 516p#pppph" c63fli>2336ode=newp_rcupppp6ppppp63he"* 44 rcum6p= /a>p= /63 xi>2337try_finishedeiLa6 oruc63ptiL51"10ef=>p8rentt/a> /p106equ2363 233=4" it/spa  v163de=* HASHt ehsb="sres_vfs_rerarnt"path -n052340ca/a>,pvoid eiLa6 oruc64fs/*=Updats " ehd0s>10 to he.l@root:troot"vfsmnt/d d"ancerd22 asmpL108"s23s=">234dca/a642=8fs/dc163/a>>234ntry_finishedeiLa6 oruc64ass6 p0s>10 e78"ivs should7not@buf:obufre3 /*orecerd22 asmpL108"s23s=">234dca/a64nnnne""li63"sr>2342try_finishedeiLa6 oruc6407=* @de78">: e78"> to move" n@buflen: bufre3 lengthdeequ2363  Dofb_ASCIIoocth a  v1070le2279 wa646=8fs/dc1637">>2347 droppf="+16">am66>="l64ode6 Updats " ehd0s>10 to he.070le2279 wa64#pppph" c63you>234umbeta pef=mmatss6s7<_c64a> orfs/dc10ef=8spin"coml> op Ref=8fs/a poikmersin Donbufre3 orlde"error f=8p iirect070le2279 wa64= /a>p= /63 xi>234e6>upma a wro="+k6e7f"s64ptiL51"10ef=>p8rentt/a> /pwa64ppppp nam63"+c>234=4" idtiL8>, wa64amptiL10363tiL>234>tspa  class="com6e105f64fsinde->i_lock pr9tecr 999 "buflen" sh way.btooositivv1070le2279 wa6ppnew235"tspa  class="com6e105f65fs/*=Updats " ehd0s>10 to he.070le2279 wa6p2=8fs/dc163f=">235kme7f"sd8aiks sub6irect65ass6 p0s>10 e78"ivs should7notIf8ectoocth is not"re"srable from8ectosuppliedtroot,orewa6pnnnne""li63 op>235tiL8>, : e78"> to move" 235ex  levelLw>p eve6a16">65_rcsschar *fs/dc10ef=8ppsrrnt"pathe89052ptiL133">rnt"path8ef=8const ttruct p8rentt/a> path8ef=p8fs/dc10ef=8targpath.f">p8rentt/a> path8ef=261 stase: nno c6phr"+pampt63" c>235code=voidaef="+co6e=par65> oructuacc"ppp--truconst ttruct p8rentt/a> path8ef=p8fs/dc10ef=8targroot.f">p8rentt/a> root8ef=261 stase: nno c6p6=8fs/dc1637cl>235s="srt rcum6p= /a>p= /63"sr>2357try_finishedeiLa6 oruc657 oructuacc"pchar *fs/dc10ef=8ppsrrekme89052ptiL133"reke8eff=8fs/dc10ef=8ppsrbufme89052ptiL133"bufde=D +pfs/dc10ef=8ppsrbuflenme89052ptiL133"buflende=D343 pppp6pppppp nam63lin>2358try_finishedeiLa6 oruc6uaccwrits op ef="+code=errore8ef343 pppp6pamptiL10363mpt>235>tspast/spa  v65hrd233d 236"tspa dtiL40" cla6s=EXP66accspin"uncomlef=8fs/dc10ef=prepeqcnu78_end> op e=prepeqc8ef=8h"comlef=8fs/dc10ef=8rkme89052ptiL133"reke8efuc-truct 10 e78"ivstring">"\0"a hrd232 12343 pppp65t/a>tsp7a63>st>2361ret"i_lock pr9te6r 99<661ccspin"uncomlef=8fs/dc10ef=f=8writs op e=amptiLa> oructuaccreramh"comlef=8fs/dc10ef=8reramh"coml08">9052ptiL133">105=">105236tiL8>,  op ef="+code=errore8eff=8fs/dc10ef=8ppsrprepeqc8path.f">p8rentt/a> prepeqc8path8ef=8fs/dc10ef=8targpath.f">p8rentt/a> path8ef=28fs/dc10ef=8targroot.f">p8rentt/a> root8ef=uc-truct 236ex  levelLw>p eve6a16">66rnt__d_dropef=8fs/dc10ef=8__0ef=8writs op e=amptiLa> oructuaccreramh"comlef=8fs/dc10ef=8reramh"coml08">9052ptiL133">105=">105p 516" ce>is6no63ab >236"licod8f=ue searc6ing7<664ntpp59 p 516"6=8fs/dc163que>2367 droppf="+16">am66>="l66rntlist_delucTef= to 16s/dc166nampeppppppppppppp"sp05p 516"= /a>p= /6ef=9+co3l3 226=4" it/spa  v166> oructuaccswapef=8fs05226>tspa  class="com6e105f66rntpppp--"unc05227"tspa  class="com6e105f67fsind36d p 516R2="sratru62>st>227kme7f"sd8aiks sub6irect67hrd2362 227tiL8>, p8rentt/a> d_absolua> path8ef=8const ttruct p8rentt/a> path8ef=p8fs/dc10ef=8targpath.f">p8rentt/a> path8ef=261 stase: nno c6Re_dehcend62ent>227ex  levelLw>p eve6a16">67_rcss.8L40"ppsrtlef=char *fs/dc10ef=8ppsrbufme89052ptiL133"bufde=Ducikmpfs/dc10ef=8ppsrbuflenme89052ptiL133"buflende=Dd16 is6no62f">>227"licod8f=ue searc6ing7<67aches3l4 rcum6076=8fs/dc62T_S>2277 droppf="+16">am66>="l67rntlist_delucttruct p8rentt/a> path8ef=pfs/dc10ef=8targroot.f">p8rentt/a> root8ef=f=8{}326 227umbeta pef=mmatss6s7<_c67nampeppppppppchar *fs/dc10ef=8ppsrrekme89052ptiL133"reke8eff=8fs/dc10ef=8ppsrbufme89052ptiL133"bufde=D +pfs/dc10ef=8ppsrbuflenme89052ptiL133"buflende=D343 pppp6227e6>upma a wro="+k6e7f"s67shedeiLa> oruikmpfs/dc10ef=8ppsrerror> op ef="+code=errore8ef343 pppp6<59=8fs/dc62ign>227=4" idtiL8>, (6227>tspa  class="com6e105f67rntpppp--"uncoml op e=prepeqc8ef=8h"comlef=8fs/dc10ef=8rkme89052ptiL133"reke8efuc-truct 10 e78"ivstring">"\0"a hrd232 12343 pppp681=8fs/dc162mpt>228ptspa  class="com6e105f68accspin"uncomlef=8fs/dc10ef=f=8writs op e=amptiLa> oructuaccreramh"comlef=8fs/dc10ef=8reramh"coml08">9052ptiL133">105=">105228kme7f"sd8aiks sub6irect681ccspin"uncomlef=8fs/dc10ef=error> op ef="+code=errore8eff=8fs/dc10ef=8ppsrprepeqc8path.f">p8rentt/a> prepeqc8path8ef=8fs/dc10ef=8targpath.f">p8rentt/a> path8ef=28h"comlef=8fs/dc10ef=8oot.f">p8rentt/a> root8ef=uc-truct wpvoid r62HBI>228tiL8>,  op e=amptiLa> oructuaccreramh"comlef=8fs/dc10ef=8reramh"coml08">9052ptiL133">105=">105p 516"5t/a>tsp762 cl>228ex  levelLw>p eve6a16">68rnt__59 p 516" ce>is6no62mro>228"licod8f=ue searc6ing7<68> oructuacc"pief=2287 droppf="+16">am66>="l68pppppppppp"targe8ef=8lef=8fs/dc10ef=error> op ef="+code=errore8eff=8-fs/dc10ef=8targEINVALruct p_rcss.8L4EINVALe8ef343 pppp6a/spa  1fs62aun>228umbeta pef=mmatss6s7<_c68pp"writs228e6>upma a wro="+k6e7f"s68shedeiLa> oructuaccsp05p 516h7ref="98962L40>228=4" idtiL8>, d_62aun>228>tspa  class="com6e105f68e" i236d p 516t7he si99m622" >2290ca/askatic voida6f="+c69Lw>p 6d p 516t2="sratru62="+>2291ret"t 10 e78"ivs should7e-a hrd2354 : e78"> to move" nsepp asarnt"path bub_appeqcs "(deleted)" for ctuinked files1070le2279 wa6iepppppp r62afo>229dca/a>,pvoid p8rentt/a> path_with_deleted8ef=8const ttruct p8rentt/a> path8ef=p8fs/dc10ef=8targpath.f">p8rentt/a> path8ef=261 stase: nno c6p76=8fs/dc62aun>229s="sref">hashef="6code=69pppppppppp"targe8ef=8srtlef=8pppppconst ttruct p8rentt/a> path8ef=p8fs/dc10ef=8targroot.f">p8rentt/a> root8ef=261 stase: nno c6 /spa  1fs62aun>2296ode=newp_rcupppp6ppppp69nampeppppppppppppp"spin"comlepppppchar *8fs/dc10ef=8targbufme89052ptiL133"bufde=Ducikmp8fs/dc10ef=8targbuflenme89052ptiL133"buflende=Dd16 222e6>up52ptiL133">165=">169shede3l4 rcum6t7ref="98962L40>2298try_finishedeiLa6 oruc69> oructuaccswoml op e=prepeqc8ef=8fs/dc10ef=8targbufme89052ptiL133"bufde=Duct 10 e78"ivstring">"\0"a hrd232 12343 pppp6t"sref">d_62aun>229=ret"i_lock pr9te6r 99<69rnt__d_dropefTef=8fs/dc10ef=8IS_e_ctuinked.f">p8rentt/a> d_ctuinked8ef=8fs/dc10ef=8targpath.f">p8rentt/a> path8ef=lef=8fs/dc10ef=8d"com=kme8="sref">p8rentt/a> /prcum7">rcup= /a73id >2300ca/a>,pvoid eiLa7 oruc70Lw>p eve8a16">=ksuin ikmpfs/dc10ef=8ppsrerror> op ef="+code=errore8eff=8oml op e=prepeqc8ef=8fs/dc10ef=8targbufme89052ptiL133"bufde=Duct 10 e78"ivstring">" (deleted)"a hrd232 102343 pppp7 230ntry_finishedeiLa7 oruc70pppppppppp"list_adSucTef=8fs/dc10ef=8IS_error> op ef="+code=errore8efd16 230tiL8>e" namptiL11729">170> oructuacc pin"coml_its op ef="+code=errore8ef343 pppp7r3rrrrrrrr73afo>229dca/a>,pvoid p e70_rcss.8L40"pp36d p 517i4pppppp r73 cl>229code=t/spa  v1704ntpp59 p 517r5pppppp r73aun>229s="sref">hashef="7w>p e70pppppppppp"ta05p8rentt/a> prepeqc8path8ef=8fs/dc10ef=8targpath.f">p8rentt/a> path8ef=28fs/dc10ef=8targroot.f">p8rentt/a> root8ef=ucfs/dc10ef=8targbufme89052ptiL133"bufde=Duct pppp7 6pppppp r73aun>2296ode=newp_rcupppp7s7<_c70nampe36d p 517i7pppppp r73las>222e6>up52ptiL133">17e7f"s70shede6d p 517i8pppppp r73L40>2298try_finishedeiLa7ef="+70" i23nt__d_mikmpfs/dc10ef=8ppsrprepeqc8unre"srable.f">p8rentt/a> prepeqc8unre"srable8ef=8char *8fs/dc10ef=8targbufre3nu78_end> op e=bufre3de=Ducikmp8fs/dc10ef=8targbuflenme89052ptiL133"buflende=Dd16 rcup= /a73iun>230=ret" clases"ef="7code=70hrd233l4 rcum7 o 6teonde73tiL>2310ca/a>,pvoid eiLa7 oruc71Lw>p eve8a16"05 op e=prepeqc8ef=8fs/dc10ef=8targbufre3nu78_end> op e=bufre3de=Ducfs/dc10ef=8ppsrbuflenme89052ptiL133"buflende=Ducf0s>10 e78"ivstring">"(unre"srable)"a hrd232 132343 pppp7 p 517nnnnne""li73 ow>231void p e71> oru6d p 517n3rrrrrrrr73ent>2313ret" clases"ef="7code=71subdode->i_lock pr9tecr l>106equ2363 231s="sref">hashef="7code=71ode6 Updats " ehd0s>10 to he. @path:oocth /*oreportdeequ2363 2316ode=newp_rcupppp7ppppp71a> orfs/dc10ef=8spin"coml> op @buf:obufre3 /*orecerd22 asmpL108"s23s=">234dca/a7"7pppppp r73las>231e6>up52ptiL133">175=">171ptiL51"10ef=>p8rentt/a> /p231L hrdum id8_sevel7w>p e71de=* HASHt ehsb="sres_vfs_rer070le2279 wa7">rcup= /a73rau>231=ret" clases"ef="7code=71fsinde->i_lock pr9tecr 999 Convert aed d"an9i> Dofb_ASCIIoocth a  v1tIf8ecto000000has been deleted8e0le2279 wa721=8fs/dc173las>2320ca/a>,pvoid eiLa7 oruc72fs/*=Updats " ehd0s>10 to he.lectostrings" (deleted)" is appeqced. Notelecatlecis is ambiguous1070le2279 wa722321ret"i_lock pr9te7r 99<72ass6 p0s>10 e78"ivs should7no070le2279 wa72nnnne""li73"sr>232void p e7207=* @de78">: e78"> to move"p Ref=8fs/a poikmersin Donbufre3 orlde"error f=8p iirectdocth was070le2279 wa723rrrrrrrr73s=">2323try_finishedps sh way.userecto3"f=8fed poikmer, not"ectdocssed8e0le2279 wa72+pamptiL 73s=">232code=newp_rcuhref7"+cti72aches=lofb_tccache.c/a1070s>*sin3bufre3, /*ouserecto_rcu! Tctoimpleo mo__don often nt_rts/atlde"offsetdeequ2363 >232s="sref">hasht/a>79clpp72ode6 Updats " ehd0s>10 to he. in Donbufre3,lded may leave 0 bytes/atlectost_rt1070le2279 wa726pppppp r73ppp>232>,pvoid  orfs/dc10ef=8spin"coml> op070le2279 wa727pppppp r739" >232p8rentt/a> /pwa7pppppp">dh73rau>232L hrdum id8_subt 78" ei72de=* HASHt ehsb="sres_vfs_rerp8rentt/a> d_path8ef=8const ttruct p8rentt/a> path8ef=p8fs/dc10ef=8targpath.f">p8rentt/a> path8ef=2=char *fs/dc10ef=8ppsrbufme89052ptiL133"bufde=Ducikmpfs/dc10ef=8ppsrbuflenme89052ptiL133"buflende=Dd16 233i="sref">hasht/a>79clev730ine"3l4 rcum732=8fs/dc173/a>>233ntry_finishedsw>p71 app73pppppppppp"lichar *fs/dc10ef=8ppsrrekme89052ptiL133"reke8eff=8fs/dc10ef=8ppsrbufme89052ptiL133"bufde=D +pfs/dc10ef=8ppsrbuflenme89052ptiL133"buflende=D343 pppp73nnnne""li73 ow>233void  oructuacc pttruct p8rentt/a> path8ef=pfs/dc10ef=8targroot.f">p8rentt/a> root8ef=343 pppp733rrrrrrrr73ent>233ex  l52ptiL133">175=">173_rcss.8L40"ppikmpfs/dc10ef=8ppsrerror> op ef="+code=errore8ef343 pppp73+pamptiL 73ab >233code=newp_rcupppp7ppppp734ntpp59 p 517316=8fs/dc73que>2335ode=52ptiL133">175=">173pppppppppp"tap0s>10 e78"ivs should7e-a hrd2354 2336ode=newp_rcupppp7ppppp73a> orfs/dc10ef=8spin"coml> ooooooooo* We0have various synect_d_mfilesystems ecatlnever get mructe".  O>cerd22 asmpL108"s23s=">234dca/a7p= /a>p= /73 xi>2337try_finishedeiLa7 oruc73ptiL51"10ef=>p8rentt/a> /pdh73ppp>233=4" it/spa  v173de=* HASHt ehsb="sres_vfs_reoooooooo* ecus don>it needs/*obe0hashe".  Tcty also don>it needsa cepp uctil acerd22 asmpL108"s23s=">234dca/a7pamptiL10373T_S>233=ret" clases"ef="7code=73fsinde->i_lock pr9tecr 99oooooooo* user wantss/*oid d"ifylectoobject in3/proc/pid/fd/.  Tct little0ha10510 to heoooooooo* below allows uss/*ogeneratela cepp for ectserobjects on demded:52342try_finishedeiLa7 oruc74> oructuacc pTef=fs/dc10ef=8targpath.f">p8rentt/a> path8ef=lef=8fs/dc10ef=8d"com=kme8="sref">p8rentt/a> /pp8rentt/a> d_ope8eff-truc-truc fs/dc10ef=8targpath.f">p8rentt/a> path8ef=lef=8fs/dc10ef=8d"com=kme8="sref">p8rentt/a> /pp8rentt/a> d_ope8efef=8fs/dc10ef=8d"seq08dshed.f">p8rentt/a> d_dshedde=Dd16 p8rentt/a> path8ef=lef=8fs/dc10ef=8d"com=kme8="sref">p8rentt/a> /pp8rentt/a> d_ope8efef=8fs/dc10ef=8d"seq08dshed.f">p8rentt/a> d_dshedde=D=fs/dc10ef=8targpath.f">p8rentt/a> path8ef=lef=8fs/dc10ef=8d"com=kme8="sref">p8rentt/a> /ppppp7_hr"+pampt73s=">234code=t/spa  v1744ntpp59 p 51746=8fs/dc1737">>2347 droppf="+16">am76>="l74pppppppppp"tap p8rentt/a> get_fs_rootde=D=fs/dc10ef=8targcur78kme89e" namptiL11cur78km8ef=lef=8fs/dc10ef=8d"cofkme89052ptiL133"fke8efuc-truct p8rentt/a> root8ef=2343 pppp7_#pppph" c73you>234umbeta pef=mmatss7s7<_c74pp"writs op e=amptiLa> oructuaccreramh"comlef=8fs/dc10ef=8reramh"coml08">9052ptiL133">105=">105p= /73 xi>234e6>upma a wro="+k7e7f"s74acc__d_moveef=8fs/dc10ef=8__error> op ef="+code=errore8eff=8omlp8rentt/a> path_with_deleted8ef=8fs/dc10ef=8targpath.f">p8rentt/a> path8ef=2=h"comlef=8fs/dc10ef=8oot.f">p8rentt/a> root8ef=uc-truct 234=4" idtiL8>,  op ef="+code=errore8eff-lt; 0d16 234>tspa  class="com7e105f74rnt__d_dropefits op ef="+codRR_PTR8ef=8t p 517ppnew235"tspa  class="com7e105f75accspin"uncomlef=8fs/dc10ef=f=8writs op e=amptiLa> oructuaccreramh"comlef=8fs/dc10ef=8reramh"coml08">9052ptiL133">105=">105p 517p2=8fs/dc173f=">235kme7f"sd8aiks sub7irect751ccspin"uncomlef=8fs/dc10ef=path_pute89052ptiL133">path_putreramh"comlef=8fs/dc10ef=8oot.f">p8rentt/a> root8ef=2343 pppp7pnnnne""li73 op>235tiL8>, 75_rcss36d p 517phr"+pampt73" c>235code=voidaef="+co7e=par75> orufs/dc10ef=8ppsrEXPORT_SYMBOLruct p_rcss.8L4EXPORT_SYMBOL8ef=8t p8rentt/a> d_path8ef=2343 pppp7p6=8fs/dc1737cl>235s="srt  l>106equ2363 p= /73"sr>2357try_finishedeiLa7 oruc75ptiL51"10ef=>p8rentt/a> /p235>tspast/spa  v75fsinde->i_lock pr9tecr 999 @buf:obufre3 /*orecerd22 asmpL108"s23s=">234dca/a761=8fs/dc173mpt>236"tspa dtiL40" cla7s=EXP76fs/*=Updats " ehd0s>10 to he.l@buflen: bufre3 lengthdeequ2363 tsp7a73>st>2361ret"i_lock pr9te7r 99<76ass6 p0s>10 e78"ivs should7no070le2279 wa7Search=id873 ow>236tiL8>, : e78"> to move"p Tct difre3ence from8d_path() is ecatlecis prepeqcs "(unre"srable)"a hrd2379 wa7Spppppun_s73ent>236ex  levelLw>p eve7a16">76subdode->i_lock pr9tecr 9* tooocthsfwhich/arelunre"srable from8ectocur78km process>itroot1070le2279 wa7" ce>is6no73ab >236"licod8f=ue searc7ing7<76aches=lofb_tccache.c/a1070s>*2367 droppf="+16">am76>="l76rntlichar *fs/dc10ef=8ppsrd_path_with_unre"srable.f">p8rentt/a> d_path_with_unre"srable8ef=8const ttruct p8rentt/a> path8ef=p8fs/dc10ef=8targpath.f">p8rentt/a> path8ef=2=char *fs/dc10ef=8ppsrbufme89052ptiL133"bufde=Ducikmpfs/dc10ef=8ppsrbuflenme89052ptiL133"buflende=Dd16  to 17s/dc176nampe3l4 rcum7"= /a>p= /7ef=9+co3l3 pppp75ppppp nam72tiL>226=4" it/spa  v176> oructuaccswttruct p8rentt/a> path8ef=pfs/dc10ef=8targroot.f">p8rentt/a> root8ef=343 pppp7lamptiL10372tiL>226>tspa  class="com7e105f76rntpppp--"uncikmpfs/dc10ef=8ppsrerror> op ef="+code=errore8ef343 pppp7_cache" 7a72tiL>227"tspa  class="com7e105f77Lw>p 6d p 517R2="sratru72>st>227kme7f"sd8aiks sub7irect771ccspin"uncomTef=fs/dc10ef=8targpath.f">p8rentt/a> path8ef=lef=8fs/dc10ef=8d"com=kme8="sref">p8rentt/a> /pp8rentt/a> d_ope8eff-truc-truc fs/dc10ef=8targpath.f">p8rentt/a> path8ef=lef=8fs/dc10ef=8d"com=kme8="sref">p8rentt/a> /pp8rentt/a> d_ope8efef=8fs/dc10ef=8d"seq08dshed.f">p8rentt/a> d_dshedde=Dd16 227tiL8>, p8rentt/a> path8ef=lef=8fs/dc10ef=8d"com=kme8="sref">p8rentt/a> /pp8rentt/a> d_ope8efef=8fs/dc10ef=8d"seq08dshed.f">p8rentt/a> d_dshedde=D=fs/dc10ef=8targpath.f">p8rentt/a> path8ef=lef=8fs/dc10ef=8d"com=kme8="sref">p8rentt/a> /ppppp7Re_dehcend72ent>227ex  levelLw>p eve7a16">77rnt__59 p 517R ce>is6no72f">>227"licod8f=ue searc7ing7<77> oructuacc"pp p8rentt/a> get_fs_rootde=D=fs/dc10ef=8targcur78kme89e" namptiL11cur78km8ef=lef=8fs/dc10ef=8d"cofkme89052ptiL133"fke8efuc-truct p8rentt/a> root8ef=2343 pppp7076=8fs/dc72T_S>2277 droppf="+16">am76>="l77pppppppppp"tap 9052ptiL133">105=">105227umbeta pef=mmatss7s7<_c77pp"writs op ef="+code=errore8eff=8omlp8rentt/a> path_with_deleted8ef=8fs/dc10ef=8targpath.f">p8rentt/a> path8ef=2=h"comlef=8fs/dc10ef=8oot.f">p8rentt/a> root8ef=uc-truct pppp7R= /a>p= /72ppp>227e6>upma a wro="+k7e7f"s777ntlist_delucTef=227=4" idtiL8>, p8rentt/a> prepeqc8unre"srable8ef=8-truct pppp7RamptiL10372ass>227>tspa  class="com7e105f77rntpppp--"uncoml op e=amptiLa> oructuaccreramh"comlef=8fs/dc10ef=8reramh"coml08">9052ptiL133">105=">105p 51781=8fs/dc172mpt>228ptspa  class="com7e105f78accspin"uncomlef=8fs/dc10ef=path_pute89052ptiL133">path_putreramh"comlef=8fs/dc10ef=8oot.f">p8rentt/a> root8ef=2343 pppp782="sratru72s=">228kme7f"sd8aiks sub7irect781ccspin"uncomTef=fs/dc10ef=8targerror> op ef="+code=errore8efd16 wpvoid r72HBI>228tiL8>,  op ef="+codRR_PTR8ef=8t p 517"5t/a>tsp772 cl>228ex  levelLw>p eve7a16">78rnt__59 p 517" ce>is6no72mro>228"licod8f=ue searc7ing7<78> oructuacc"p052287 droppf="+16">am76>="l78ode6 36d p 517a/spa  1fs72aun>228umbeta pef=mmatss7s7<_c78he"* 44 rcum7"seat 228e6>upma a wro="+k7e7f"s78ptiL51"10ef=>p8rentt/a> /pa hrd2354 228=4" idtiL8>,  /p_operatdons.ecdshed() members070le2279 wa7="sref">d_72aun>228>tspa  class="com7e105f78fsinde->i_lock pr9tecr 9992290ca/askatic voida7f="+c79Lw>p char *fs/dc10ef=8ppsrdyic ic8dshed.f">p8rentt/a> dyic ic8dshed8ef=8ttruct p8rentt/a> /p op e=bufre3de=Ducikmpt stase: nno c7t2="sratru72="+>2291ret"t p8rentt/a> fmtde=Duc...d16 229void 7907=* 3l4 rcum7iepppppp r72afo>229dca/a>,pvoid p8renttva_list8ef=pfs/dc10ef=8targargkme89052ptiL133"argke8ef326 229code=t/spa  v179> oructuacc"pchar fs/dc10ef=8targtemp.f">p8rentt/a> temp oru[64]326 229s="sref">hashef="7code=79pppppppppp"taikmpt p8rentt/a> sze8ef326 2296ode=newp_rcupppp7ppppp79he"* 44 rcum7tseat 222e6>up52ptiL133">175=">179acc__d_moveef=8fs/dc10ef=8__va_st_rt="sref">p8renttva_st_rt8ef=8t p8rentt/a> fmtde=Dd359 p 517t7ref="98972L40>2298try_finishedeiLa7 oruc79> oructuaccswomlp8rentt/a> sze8eff=8omlp8rentt/a> temp oru, sizeof8t p8rentt/a> temp oru)uct p8rentt/a> fmtde=Duct p 517t"sref">d_72aun>229=ret"i_lock pr9te7r 99<79rntpppp--"uncoml op e=va_eqc8ef=8t p 518">rcup= /a83id >2300ca/a>,pvoid eiLa8 oruc80Lw>p 6d p 518 230ntry_finishedeiLa8 oruc801ccspin"uncomTef=fs/dc10ef=8targsz.f">p8rentt/a> sze8eff-gt; sizeof8t p8rentt/a> temp oru) || p8rentt/a> sze8eff-gt; fs/dc10ef=8ppsrbuflenme89052ptiL133"buflende=Dd16 230tiL8>e" namptiL11829">180> oructuacc pin"coml_05 op ef="+codNAMETOOLONGe8efd359 p 518"3rrrrrrrr83afo>229dca/a>,pvoid p e80rnt__59 p 518i4pppppp r83 cl>229code=t/spa  v180> oructuacc"pp p8rentt/a> sze8ef326 229s="sref">hashef="8w>p e80pppppppppp"ta05p8renttmemcp88ef=8t p8rentt/a> temp oru, t p8rentt/a> sze8efd359 p 518"6pppppp r83aun>2296ode=newp_rcupppp8s7<_c80nampe36d p 518i7pppppp r83las>222e6>up52ptiL133">18e7f"s80shede6d p 518i8pppppp r83L40>2298try_finishedeiLa8ef="+80de=* HASHt ehsb="sres_vfs_rl>a hrd2354 rcup= /a83iun>230=ret" clases"ef="8code=80fsinde->i_lock pr9tecr 999 WiLa> fulloocthcepp from8ectoroot"oirectdfilesystem in Donbufre31070le2279 wa8 o 6teonde83tiL>2310ca/a>,pvoid eiLa8 oruc81fs/*=Updats " ehd0s>10 to he.st>2311ret"i_lock pr9te8r 99<81pppppnt__d_mchar *fs/dc10ef=8ppsrrnta> /p_pathe89052ptiL133">rnta> /p_path8ef=8ttruct p8rentt/a> /p231void p e8107=* 3l4 rcum8n3rrrrrrrr83ent>2313ret" clases"ef="8code=81rnt__d_dropefchar *fs/dc10ef=8ppsreqcnu78_end> op e=eqc8ef=f=8fs/dc10ef=8ppsrbufme89052ptiL133"bufde=D +pfs/dc10ef=8ppsrbuflenme89052ptiL133"buflende=D343 pppp8"+pamptiL 83="s>231code=t/spa  v181> oructuacc"pchar *fs/dc10ef=8ppsrretvalme89052ptiL133"retvalde=D343 pppp8"5pppppp r83T_S>231s="sref">hashef="8code=812316ode=newp_rcupppp8ppppp81pp"writs op e=prepeqc8ef=8h"comlef=8fs/dc10ef=eqcnu78_end> op e=eqc8ef=uc-truct 10 e78"ivstring">"\0"a hrd232 12343 pppp8"7pppppp r83las>231e6>up52ptiL133">185=">1817ntlist_delucTef=231L hrdum id8_sevel8w>p e81> oructuaccswapef=8fsgopo =8fs/dc10ef=8p op ef="+codlongde=D343 pppp8">rcup= /a83rau>231=ret" clases"ef="8code=81rntpppp--"uncoASHt ehsb="sres_vfs_rl> Get >i/>i righte. op e=eqc8ef=-1359 p 51822321ret"i_lock pr9te8r 99<821ccspin"uncom*fs/dc10ef=8ppsrretvalme89052ptiL133"retvalde=Df=8f0s>10 e78"ivstring">>i/>ia hrd23359 p 5182nnnne""li83"sr>232void p e82> oru6d p 51823rrrrrrrr83s=">2323try_finishedp8rentt/a> /prcum82+pamptiL 83s=">232code=newp_rcuhref8"+cti82> oructuacc"ppp--truwttruct p8rentt/a> /ppppp8d16=8fs/dc837">>232s="sref">hasht/a>89clpp82pppppppppp"targe8ef=8ikmpfs/dc10ef=8ppsrerror> op ef="+code=errore8ef343 pppp826pppppp r83ppp>232>,pvoid rcum827pppppp r839" >232 oructuaccspnu78_enduct p8rentt/a> prefetch8ef=8fs/dc10ef=8targpa78kme89e" namptiL11pa78kmde=D2343 pppp8pppppp">dh83rau>232L hrdum id8_subt 88" ei82> oructuaccswapef=8fsnu78_enduct 9052ptiL13spinh"com8ef=8h"comlef=8fs/dc10ef=m=kme8="sref">p8rentt/a> /p9052ptiL13d=">105p 518namptiL103837cl>232=ret"i_lock pr9te8r 99<82rnt__d_dropefits op ef="+code=errore8eff=8omlp8rentt/a> prepeqc8shed8ef=8h"comlef=8fs/dc10ef=eqcnu78_end> op e=eqc8ef=uc-truct p8rentt/a> /pp8rentt/a> d_shedde=Dd359 p 518031=8fs/dc83lin>233i="sref">hasht/a>89clev83Lw>p eve8a16">=ksuin nu78_enduct  op e=ampspinhsp8rentt/a> /p9052ptiL13d=">105p 51832=8fs/dc183/a>>233ntry_finishedsw>p81 app83pppppppppp"list_adSucTef=8fs/dc10ef=8IS_error> op ef="+code=errore8ef != 0 ||  op e=eqc8ef=uc-truct 10 e78"ivstring">"/"a hrd232 12 != 0d16 233void  oructuacc pin"coml_________gopo =8fs/dc10ef=8p op ef="+codlongde=D343 pppp833rrrrrrrr83ent>233ex  l52ptiL133">185=">183rnt__59 p 5183+pamptiL 83ab >233code=newp_rcupppp8ppppp83> oructuacc"ppp--truwlef=8fs/dc10ef=retvalme89052ptiL133"retvalde=Df=8fs/dc10ef=8ppsreqcnu78_end> op e=eqc8ef=343 pppp8316=8fs/dc83que>2335ode=52ptiL133">185=">183pppppppppp"targe8ef=8lef=8fs/dc10ef=e=kme8,.ppppppppppppppppppppp"lf=8omlpppp836pppppp r83fli>2336ode=newp_rcupppp8ppppp83pp"writsp 518p= /a>p= /83 xi>2337try_finishedeiLa8 oruc83shedeiLa> oru05pppp8pppppp">dh83ppp>233=4" it/spa  v183de=* H8fs/dc10ef=8p op ef="+codlongde=D:43 pppp8pamptiL10383T_S>233=ret" clases"ef="8code=83rntpppp--"unc05 op ef="+codNAMETOOLONGe8efd359 p 518ppppppp na83ppp>2340ca/a>,pvoid eiLa8 oruc84fsind36d p 518p2=8fs/dc183/a>>234ntry_finishedeiLa8 oruc84hrd2362 2342try_finishedeiLa8 oruc8407=* char *fs/dc10ef=8ppsrda> /p_path_raw,.ppppppppppppppppppp_path_raw8ef=8ttruct p8rentt/a> /prcum8_hr"+pampt83s=">234code=t/spa  v184> oructuacc"pchar *fs/dc10ef=8ppsrretvalme89052ptiL133"retvalde=D343 pppp846=8fs/dc1837">>2347 droppf="+16">am86>="l84234umbeta pef=mmatss8s7<_c84pp"writs op e=amptiLa> oructuaccreramh"comlef=8fs/dc10ef=8reramh"coml08">9052ptiL133">105=">105p= /83 xi>234e6>upma a wro="+k8e7f"s84acc__d_moveef=8fs/dc10ef=8__retvalme89052ptiL133"retvalde=Df=8fs/dc10ef=8ppsrrnta> /p_pathe89052ptiL133">rnta> /p_path8ef=8fs/dc10ef=8ppsrd=kme8="sref">p8rentt/a> /pdh83"+c>234=4" idtiL8>, 9052ptiL133">105=">105p 5184amptiL10383tiL>234>tspa  class="com8e105f84rnt__59 p 518ppnew235"tspa  class="com8e105f85Lw>p eve8a16"05pppp8p2=8fs/dc183f=">235kme7f"sd8aiks sub8irect85ppppp36d p 518pnnnne""li83 op>235tiL8>,  /p_path_raw,.ppppppppppppppppppp_path_raw8ef=2359 p 518ppppppun_s83="s>235ex  levelLw>p eve8a16">85rnt__59 p 518phr"+pampt83" c>235code=voidaef="+co8e=par85> oruchar *fs/dc10ef=8ppsrda> /p_path,.ppppppppppppppppppp_path8ef=8ttruct p8rentt/a> /p235s="srt rcum8p#pppph" c83s=">2356ode=newp_rcupppp8ppppp85nampeppppppppchar *fs/dc10ef=8ppsrp.f">p8rentt/a> pde=Df=8fs/dc10ef=8ppsrNULLruct p_rcss.8L4NULLp= /83"sr>2357try_finishedeiLa8 oruc857 oructuacc"pchar *fs/dc10ef=8ppsrretvalme89052ptiL133"retvalde=D343 pppp8pppppp">dh83lin>2358try_finishedeiLa8 oruc85" i23l9 (8pamptiL10383mpt>235>tspast/spa  v85rntpppp--"uncoml op e=amptiLa> oructuaccreramh"comlef=8fs/dc10ef=8reramh"coml08">9052ptiL133">105=">105236"tspa dtiL40" cla8s=EXP86Lw>p eve8a16"Tef=8fs/dc10ef=8IS_e_ctuinked.f">p8rentt/a> d_ctuinked8ef=8fs/dc10ef=8targm=kme8="sref">p8rentt/a> /prcum85t/a>tsp7a83>st>2361ret"i_lock pr9te8r 99<86pppppppppp"list_adSucfs/dc10ef=8ppsrp.f">p8rentt/a> pde=Df=8fs/dc10ef=8ppsrbufme89052ptiL133"bufde=D +pfs/dc10ef=8ppsrbuflenme89052ptiL133"buflende=D343 pppp8Search=id883 ow>236tiL8>,  op e=prepeqc8ef=8h"comlef=8fs/dc10ef=p.f">p8rentt/a> pde=Duc-truct 10 e78"ivstring">"//deleted"a hrd232 102 != 0d16 236ex  levelLw>p eve8a16">86_rcss.8L40"ppsrtlef=888888888gopo =8fs/dc10ef=8p op ef="+codlongde=D343 pppp8" ce>is6no83ab >236"licod8f=ue searc8ing7<86> oructuacc"ppp--truwlef=8fs/dc10ef=buflenme89052ptiL133"buflende=D++343 pppp8"6=8fs/dc183que>2367 droppf="+16">am86>="l86pppppppppp"ta36d p 5185#pppph" c8dc10ef=ases"s: e78"> to 18s/dc186pp"writs /p_pathe89052ptiL133">rnta> /p_path8ef=8fs/dc10ef=8ppsrd=kme8="sref">p8rentt/a> /pp= /8ef=9+co3l3  op e=amptiLa> oructuaccreramh"comlef=8fs/dc10ef=8reramh"coml08">9052ptiL133">105=">105p 5185ppppp nam82tiL>226=4" it/spa  v186accwritsp8rentt/a> pde=Dd16 226>tspa  class="com8e105f86rnt__d_dropefitsp8rentt/a> pde=Df=8f0s>10 e78"ivstring">>i/>ia hrd233_moveef=ASHt ehsb="sres_vfs_rl> restore >i/>i overrid d with >i\0>i .227"tspa  class="com8e105f87Lw>p eve8a16"05pppp8R2="sratru82>st>227kme7f"sd8aiks sub8irect871ccspH8fs/dc10ef=8p op ef="+codlongde=D:43 pppp8Rearch=id882 ow>227tiL8>,  op ef="+codNAMETOOLONGe8efd359 p 518Re_dehcend82ent>227ex  levelLw>p eve8a16">87_rcss36d p 518R ce>is6no82f">>227"licod8f=ue searc8ing7<874ntpp59 p 518076=8fs/dc82T_S>2277 droppf="+16">am86>="l87ode6 Updats " ehd0s>10 to hl>a hrd2354 227umbeta pef=mmatss8s7<_c87a> orfs/dc10ef=8spin"coml> op NOTE! Tctouser-level library versdon ref=8fs/aa hrd2354 p8rentt/a> /p227=4" idtiL8>, 227>tspa  class="com8e105f87fsinde->i_lock pr9tecr 999 includes8ecto00dings>i\0>i characmer), orld negativvdeequ2363 228ptspa  class="com8e105f88fs/*=Updats " ehd0s>10 to he.lerror valu2. So libc w way.do somethingslikvdeequ2363 228kme7f"sd8aiks sub8irect88ass6 p0s>10 e78"ivs should7no070le2279 wa8">wpvoid r82HBI>228tiL8>, : e78"> to move"p      char *getcwd8char *dbuf, size_t size)070le2279 wa8"e_dehcend82 cl>228ex  levelLw>p eve8a16">88subdode->i_lock pr9tecr 9*      {070le2279 wa8" ce>is6no82mro>228"licod8f=ue searc8ing7<88aches=lofb_tccache.c/a1070s>*sacc pin"coml_Tnt retval;a hrd2379 wa8"76=8fs/dc82aun>2287 droppf="+16">am86>="l88ode6 Updats " ehd0s>10 to he.a hrd2379 wa8"#pppph" c82aun>228umbeta pef=mmatss8s7<_c88a> orfs/dc10ef=8spin"coml> op              retvalf=8sys_getcwd8buf, size);a hrd2379 wa8"= /a>p= /82" i>228e6>upma a wro="+k8e7f"s88ptiL51"10ef=>p8rentt/a> /p<>*sacc pin"coml_Tef=retvalff=8f= 0da hrd2379 wa8"59=8fs/dc82L40>228=4" idtiL8>, wa8"amptiL10382aun>228>tspa  class="com8e105f88fsinde->i_lock pr9tecr 999aaaaaaaaaaaaaaerrnof=8-retval;a hrd2379 wa8t7he si99m822" >2290ca/askatic voida8f="+c89fs/*=Updats " ehd0s>10 to he.laaaaaaaaaaaaa05wa8t7oid p 518"3rrrrrrrr83a1atic voida8f="+c89fs/*=Updats 8fs/d6e7f"sROOTme2wa8 o 6teonde83tiL>2310ca/a>i0ef=8reramh"coml08">9052ptiL1/hrntm7907=* 3l48p8unsigock d8aiop e=bufre3de=Ducf10eef=8ppsrd=kme8=f10e133"retvalde=D)f-truc-truc fs/=8targargk8e89052ptiL133"argke8ef326888rentt/a> temp oru[64]32682f">hasht/a>89clpp82pppppppppp"targe8ef=8ikmpfs/dc10ef=8href="+cod8z.f">p8rentt/a> sze8ef3268p 5p75ppppp nam72tiL>226=4" it/spa  v176> oructuaccswttructp> _PTRBO0> op ef=p> ppppppe" 7a82tiL>227"tp8rentt/a> path8ef=pfs/dc10e8>2296ode=n8wp_rcupppp7ppppp79he"* 448p= /83"sr>235pagrerror> op ef="+cagr05f86rnf="+8od)pwrits op ef="+eng7<77ree_pagrccwritsp8rentt/a> fmtde=Dd3598pppp8pppppp">dh83lindargkme89082ptiL133"argke8ef) + 13598p 5185ppppp nam82tiL>22pagrerror> op ef="+cagr05f8retvalde=D)f-truc-truc fs9"+codargkm989052ptiL133"argke8efd3599p 518031=8fic voidc p05 op ef="+OMEM>p8rentt/a> path8ef=pfs/dc10e9>2300ca/a>9pvoid eiLa8 oruc80Lw>p 6d9p 518p2=8fs/dc183/a9srbuflenme99052ptiL133"buflende=Dd169 oruc_and_p> _PTRBO0> op ef=c8877> oruc_and_p> ccwritsp8rentt/a> get_fs_rootde=D=fs/dc10ef=8targcur78kme89e" namptiL11cur78km8ef=lef=8fs/dc10ef=8d"cofkme89052ptiLtiL11cur78km8ef=lef=8fp> _PTRBO0> op ef=p> pppp-fs/dc10ef=8targENAMETOOLO9GBO0> op e9="+codNAMETOOLONGe8efd3599p 518"3rrrrrrrr83af9>229dca/a>9pvoid p e80rnt__599p 518i4pppppp r83 et"i_lock pr9te8r 99<82rnt__d_drc p05pppp7076=8fs/dc72T_S>2277 droppf="+16">am76>="l77pppppppppp"tap p8rentt/a> sze8efd3599p 5185ppppp nam82tiL>2236"tspa dtiL40" cla8s=EXP86Lw>p eve8a16"Tef=8fs/dc10ef=p> _PTRBO0> op ef=p> pppp.Tef=8fs/dc10ef=8IS_e_ctuinked.f">p8rentt/a> d_ctuinked8ef=8fs/dc10ef=8targ92296ode=ne9p_rcupppp8s7<_c80nampe36d9rcum827ppppunsigock d8aipp7076=8fs/dc72Ts/dc10ef=8ppsrbufm52ptiL133"bufde=D +pfs/dc10ef=8p9>222e6>up59ptiL133">18e7f"s80shede6d9pppp8ppppppr8p= /a>p= /83"sr>235a> _PTRBO0> op ef=a> pppppp"targe8ef=8lef=8fsgrerror> op ef="+cagr05f868rentt/a> pde=Df=PAGE_SIZEerror> op ef="+PAGE_SIZEtiL133"bufde=D +pfs/dc10ef=8p9>922e6>up59pptiL133"argke8ef) + 13599 /p op ef="+PAGE_SIZEtiL133"bufde=D +pfs/dc10ef=8p9filesystem9in Donbufre31070le22799p 518">rcup= /a83id9*=Updats "9ehd0s>10 to he.rcum85t/a>tsp7a83>st>2361re _PTRBO0> op ef=a> ppppe=prepeqc8ef=8h"comlef=8fs/dc10ef=eqcnu78_end> op e=eqc8ef=uc-truct 10 e78"i9srbuflenme99052ptiL133"buflende=Dd169wpvoid r72HBI>228tiet"i_lock pr9te8r 99<82rnt__d_dropefits _PTRBO0> op ef=p> ppppppL11cur78km8ef=lef=8fs/dc10ef=8d"cofkme89052ptiLtiL11cur78km8ef=lef=8fa> _PTRBO0> op ef=a> ppppe=prepeqc8ef=8h"comlef=8fs/dc10ef=eqcnu78_end> op e=e3"buflende=Ducf0s>10 e78"i9sBO0> op e9hrntmevel8w>p e8107=* 3l49p= /8ef=9+co3l3  op e=amptiLa> oructuaccreramh"comlef=8fs/dc10ef=8reramh"9srbuflenme99052ptiL133"buflende=D3439p 518R ce>is6no82f"9srretvalme99052ptiL133"retvalde=D3439pppp8d16=8fs74ppppp nam73"+c>234=4" idtiL8>, 231s="sre9">hashef="8code=81236ex  levelLw>p eoptspa  class="comou">p8rentt/a> path8ef=pfs/dc10e9string">&q9ot;\0"a hrd232 123439p 518i7pppppp r83la9nme89052pt9L133"buflende=D -lt; 1d169 pde=Df=8f0s>10 e78"ivUe7a16">76subdode;i_lock fsind3tiL>2310ca/a>i0ef=8reramh"coml089=8p op ef="+codlongde=D3439p= /72ppp>227e6>upma a wro="+k7e7f"s777ntlist_deuinked8ef=8fs/dc10ef=8targ9l> Get >9i/>i righte.p 518031=8fp7">wpvoid r72HBI>228tiet"i_lock pr9te8r 99<82rnt__d_dropefits op ef="+code=errore8eff=8oml _PTRBO0> op ef=a> ppppe=prepeqc8ef=8h"comlef=8fs/dc10ef=eqcnu78_end> op e=e3"buflende=Ducf0s>10 e78"i9=8ppsreqcn978_end> op e=eqc8ef=-13599stase: nno c7t2="sratru72="p782="sratru72s=">228kme7f"sd8aiks sub7irect781ccspin"uncomTef=fs/dc10ef=9 e78"ivstr9ng">>i/>ia hrd233599236ex  levelLw>p eoptspa  class="comou">p8rentt/a> path8ef=pfs/dc10e9>232void <9 hrntmevel8w>p e82> oru6d9p 518Re_dehcend82ent9=kme8="sre9">p8rentt/a> /pp 518R ce>is6no82f"9pa78kme89e9 namptiL1108pa78kmde=D3439pppp8d16=8f18i4pppppp r83 et"i_lock pr9te8r 99<82rnt__d_drc p05 op ef="+0RANGE>p8rentt/a> path8ef=pfs/dc10e9>231s="sre9op ef="+code=errore8ef3439 op ef="+PAGE_SIZEtiL168rentt/a> pde=Df=fsgrerror> op ef="+cagr05f86fre3de=D +=8fs/dca> _PTRBO0> op ef=a> ppppentt/a> path8ef=pfs/dc10e9>tring">&q9 rcum827ppppp782="sratru72s=">2s/dc10ef=8ppsrbufm52ptiL1pwritp"targe8ef=8lef=8f10eef=8ppsrd=kme8=f10e133"ruinked8ef=8fs/dc10ef=8targ9lme89052pt9" namptiL11pa78kmde=D23439pppp8ppppppp8d16=8f18i4pppppp r83 et"i_lock pr9te8r 99<82rnt__d_drp7076=8fs/dc72Ts/dc10ef=8ppsrbufm52ptiL133"bufde=D +pfs/dc10ef=8p9q08"coml089>9052ptiL13d=">105p 518namptim827ppppp782="sratru72s=">2copy_ton pefvalme89052ptiL1copy_ton pef8a16"Tef=8fs/dc10ef=c10ef=8ppsrd=kme8="sref">p8rentt/a> /p _PTRBO0> op ef=a> ppppe=p7076=8fs/dc72Ts/dc10ef=8ppsrbufm52ptiL1)cspin"uncomTef=fs/dc10ef=9q08shed.f"9p8rentt/a> d_shedde=Dd3599p 518031=8fref">pppp8d16=8f18i4pppppp r83 et"i_lock pr9te8r 99<82rnt__d_drc p059052ptiL13d=">105p 51832=8fsL51">p 518Re_dehcend82ent9ng">"9"a hrd232 12 != 0d169 op ef="+codlongde=D3439p= /8ef=9+co3l3  op e=amptiLa> oructuaccreramh"comlef=8fs/dc10ef=8reramh"9>233ex  l59ptiL133">185=">183rnt__599p 5L51">p 518Re_dehcend82ent9na78kme89e9nu78_end> op e=eqc8ef=3439pppp846=8fs/dc1837"9orpa78kme89e" namptiL11pa78kmde=D3439p8rub8irect871ccspH8fs/dc10e9newp_rcupp9p8ppppp83pp"writsp= /8efpt>228ptspa  class="com7e105f78accspin"uncomlef=8fs/dc10p> _PTRBO0> op ef=p> pppp-fs/dc10ef=8targENAMETOOLO9rg8rtvalme99052ptiL133"retvalde=D3439dh83"pt>228ptspa  class="com7e105f78accspin"uncomlef=8fs/dc10ef=path_pute89052ptiL133">path_putreramh"comlef=8fs/d9=8p op ef="+codlongde=D:439(8pamptiL10383m7ree_pagrerror> op ef="+7ree_pagrccwri(unsigock d8ai)pwrits op ef="+cagr05f8rth_putreramh"comlef=8fs/d9GBO0> op e9="+codNAMETOOLONGe8efd3599227"f">hasht/a>89clpp82pppppppppp"targe8ef=8ikmpfs/dc10ef=92340ca/a>,9void eiLa8 oruc84fsind36d9pppp8p2=8fs/dc183f="9>234ntry_f9nishedeiLa8 oruc84hrd23629p 5182nnnne""li83"s9srbuflenme99052ptiL133"buflende=Dd169wa8"e_dehcend82T_S>2277 droppf="+16">am86>="l87o9234dca/ast9spa  v84_rcss3l49wa8" ce>is6no82mroTest whether new3"retva607=a subdirectova6of old3"retvalloocthcepp from8ectoroot"oirect9srretvalme99052ptiL133"retvalde=D3439wa8"76=8fs/dc82aun>2287 droppf="+16">am86>="l88o9>2347 drop9f="+16">am86>="l84wa8"#pppph" c82aunTrivialla60mpleh" cck usdats  clam86>=5p75pppurehd0s>10 to he.lerror valu2. So 9oml08">9059ptiL133">105=">105wa8"= /a>p= /82" tiL>2310ca/a>i0ef=8reramh"coml089rbuflenme89052ptiL133"buflende=Dd3579pppp8pppppp">dh83li9oml08">9059ptiL133">105=">105wa8"amptiL10382s=">2356ode=newp_rcupppp7ppppp75a>9>234>tspa 9class="com8e105f84rnt__599wa8t7he si99m822" is_subdir6fr07=new h7ef="=a subdirectova6of old3"retva>2356ode=newp_rcupppp7ppppp75a>9>340ca/a>,99052ptiL133"retvalde=D3439wa8t7oid wa8">wpvoid r82HBI@old3"retva: old h7ef=">2356ode=newp_rcupppp7ppppp75a>9>rbuflenme9pppppppp_path_raw8ef=23599wa8"e_dehcend82 c>2356ode=newp_rcupppp7ppppp75a>9>34dca/ast9elLw>p eve8a16">85rnt__599wa8" ce>is6no82mroR227=4" 1pp78new3"retva607=a subdirectova6of   clpppppp (at any h7pth)lloocthcepp from8ectoroot"oirect9srbuflenme99052ptiL133"buflende=Dd169wa8"76=8fs/dc82auoR227=4" 0 otherwiselloocthcepp from8ectoroot"oirect9s2347 drop9a href=9+8ode9785wa8"#pppph" c82aunCaller must ensure=* @delenme8new3"retvalenme8607=pinock befng">0ef=datsis_subdir(iL51"10ef=>p8rentt/a> /p<>*sacc 9=8ppsrNULL9uct p_rcss.8L4NULLwa8"= /a>p= /82" tiL>2310ca/a>i0ef=8reramh"coml089srretvalme99052ptiL133"retvalde=D3439i0ef=8reramh"coml089sml08">9059nishedeiLa8 oruc85" i23l99 /p89clpp82pis_subdirccwri *fs/dc10ef=8ppsrda> /p_path,.ppppppppppppppppppp_path8ef=8ttruct  /p_path,.ppppppppppppppppppp_path8ef=8ttruct 21ccspin"uncomTef=fs/dc10ef=9oml08">9059ptiL133">105=">105p8rentt/a> /prcua> /ppppunsigock targe8ef=8lef=8feqef=8ppsrd=kme8=feqpppp"targe8ef=8ikmpfs/dc10ef=9srbuflenme9quot;a hrd232 102 != 0d169p 518"3rrrrrrrr83af9=8p op ef="+codlongde=D3439pppp782="sratru72s=">2new3"retva,.pppppppppppppnew3"retvapppp =drp7076=8fs/dc72Told3"retvaspa  class="comold3"retva>21ccspin"uncomTef=fs/dc10ef=9orbuflenme952ptiL133"buflende=D++3439pppp8d16=8ff8_cachL133"retvalde=Df=8fs/dc10e9ppf="+16">9m86>="l86pppppppppp"ta36d9pppp826pppppp r83pp9rbuflenme89052ptiL133"buflende=Dd35799059ptiL133">105=">105 pde=Df=8f0s>10 e78"iv 0ese6of feqff8_va6 tiL>2310ca/a>i0ef=8reramh"coml089dc10ef=8ta9gp.f">p8rentt/a> pde=Dd169 op e=amptiLa> oructuaccreramh"comlef=8fs/dc10ef=8reramh"9rrid d wit9 >i\0>i .p 518031=8fssref">wa8"e_dehcend82T_S>2277 droppf="+16">am86>="l87o9srretvalme99052ptiL133"retvalde=D3439wa8t7oid 2277 droppf="+16">am86>="l87o9srbuflenme90> op ef="+codlongde=D:439wa8">wpvoid r82H7777777777777777* due to d_mo99 includes8ecto00dings>i\0>9GBO0> op e9="+codNAMETOOLONGe8efd3599wa8"e_dehcend82 7777777777777777*tiL>2310ca/a>i0ef=8reramh"coml089227ex  lev9lLw>p eve8a16">87_rcss36d9p 5p8Samptitarge8ef=8lef=8rcu_readoml> op e=amptiLa> orcu_readoml> 8fs/dcomlef=8fs/dc10ef=8reramh"9rrbuflenme9f=ue searc8ing7<874ntpp599pppp8d16=8fs74ppppp nam73"+c>2d_anctring,.pppppppppppppp_anctring8a16"Tef=8fs/dc10ef=old3"retvaspa  class="comold3"retva>21ce=p7076=8fs/dc72Tnew3"retva,.pppppppppppppnew3"retvapppp)cspin"uncomTef=fs/dc10ef=9e6 Updats 9 ehd0s>10 to hl>a hrd23549rcum827ppppelse33"retvalde=Df=8fs/dc10e9lml08">9059system call justdeequ23639p 5}51823rrrp7076=8fs/dc72Tread_d_mf8_vac10ef=8ppsrbufmread_d_mf8_va8fs/dc10ef=8__f=8writs op e=amptiLa> oructuaccreramh"op e=bufre3de=Ducfeqef=8ppsrd=kme8=feqpppp)comlef=8fs/dc10ef=8reramh"9irretvalme9o somethingslikvdeequ23639p 518p2=8fs/dc183/a9s6 p0s>10 978"ivs should7no070le22799pppp8Rearch=id882 ow>227tresulpath_pute89052ptiesulppppp"targe8ef=8ikmpfs/dc10ef=9wd8char *d9uf, size_t size)070le22799p 518Re_dehcend82ent9gt;i_lock 9r9tecr 9*      {070le22799p 518R ce>is6no82f"9>*sacc pin9coml_Tnt retval;a hrd23799 op ef="+d_genocidrccwri *fs/dc10ef=8ppsrda> /p_path,.ppppppppppppppppppp_path8ef=8ttruct paL51">p 518R ce>is6no82f"9>6 Updats 9 ehd0s>10 to he.a hrd23799rcu *fs/dc10ef=8ppsrda> /p_path,.ppppppppppppppppppp_path8ef=8ttruct pthisf=8ppsrpppp"targe8ef=8ikmpfs/dc10ef=9wml08">9059=retvalff=8f= 0da hrd23799rcu *fs/dc10ef=8ppsrda> /8tct_headc10ef=8ppsrbufm5tct_head_path8ef=8ttruct pnexrpppp"targe8ef=8ikmpfs/dc10ef=9wc10ef=8ta9aaaaa05 /pp 518p2=8fs/dc183/a9rrrrrr83a19tic voida8f="+c89fs/*=Upd9ts 8f993ppppppppppppts op e=amptiLa> oructuaccreramh"comlef=8fs/dc10ef=8reramh"9>9052ptiL19hrntm7907=* 3l49pthisf=8ppsrpppp_drp7076=8fs/dc72Trp8rentt/a> path8ef=pfs/dc10e9rgtemp.f">98rentt/a> temp oru[64]3269pppp7076=8fs/dc72Thrdum id8_subt 88" ei82> oructuaccswapef=8fsnu78_enduct pthisf=8ppsrppppequ8ef=8h"comlef=8fs/dc10ef=m=kme8="sref">p8rentt/a> /pp8rentt/a> sze8ef3269rcum7tseat pnexrpppp_drp7076=8fs/dc72Tthisf=8ppsrm=kme8="sref">pthisf=8ppsrppppequ8ef=8h"comlef=8fs/dsubdir8targcur78kme89e/dsubdir8pppp.Tef=8fs/dc10ef=nexrm=kme8="sref">pnexrpppp"targe8ef=8ikmpfs/dc10ef=9f="+codfmt9f">p8rentt/a> fmtde=Dd3599pppp8pppppiesu0ef=m=kme8="sref"iesu0e>p8rub8irect871ccspH8fs/dc10e9=c10ef=8ta92ptiL133"argke8ef) + 13599p 51823rrrp7076=8fs/dc72Tnexrm=kme8="sref">pnexrpppp_!==prepeqc8ef=8h"comlefthisf=8ppsrm=kme8="sref">pthisf=8ppsrppppequ8ef=8h"comlef=8fs/dsubdir8targcur78kme89e/dsubdir8ppppruinked8ef=8fs/dc10ef=8tar30"+codargk30"+coL133"argke8ef) + 13530"+c>30"+ppppppppppppp8Sampti *fs/dc10ef=8ppsrda> /8tct_headc10ef=8ppsrbufm5tct_head_path8ef=8ttruct pnexrpppp"ta/pre>0me8="sdoe8efdarg24/41/8a1d3da693ab90523b0175eb51185d06c7b0_3/30"+c>ked8ef=8fs/dc10ef=8tar30"1codargk30"aaa0530"3mptiL51">p 51832=8fs *fs/dc10ef=8ppsrda> /p_path,.ppppppppppppppppppp_path8ef=8ttruct  /p_path,.ppppppppppppppppppp_patop e=bufre3de=Ducdo /p30"3ppppppppppppp7">wpvoid r72HBI>228tinexrm=kme8="sref">pnexrpppp_drp7076=8fs/dc72Ttref="+codbufre3nu7mr 99pnexrpppp"targe8ef=8ikmpfs/dc10ef30"3codargk30"rntm7907=* 3l30"rn>30"3mptiL51">p 518"3rrrrrrrr83a30"4codargk30"89052ptiL133"argke8ef3230"89>30"3mptiL51">p 5p8Samptitarge8ef=8lef=8 oructuac_nestdtiL40" cla8s=EXP oructuac_nestdtcswapef=8fsnu78_enduct  op e=ampspinhsp8rentt/aop e=bufre3de=DucDENTRY_D_LOCK_NESTEDf=m=kme8="sref"DENTRY_D_LOCK_NESTEDtt/a> /p temp oru[64]3230"re>30"3s="sref">pppp8d16=8fs74ppppp nam73"+c>2d_unhashdtiL40" cla8s=EXP86Lwhashdt8a16"Tef=8fs/dc10ef=8IS_e_ctuinked.f">p8rentt/a> d_c_adSpppp nam82tiL>223hs op e=ampspinhs op ef="+d_inodrppppruinked8ef=8fs/dc10ef=8tar30"6codargk30".f">p8rentt/a> sze8ef3230".f>30"3flias ovorf                 phasht/a>89clev83Lw>p eve8a16">=ksuin nu78_enduct  op e=ampspinhsp8rentt/a> /p30"3s="sref">rcum827ppppppppppppcontinue /pp8rentt/a> fmtde=Dd3530"">>30"3ppppppppppppp7<59=8fL51">p 518Re_dehcend82en30"9codargk30"ptiL133"argke8ef) + 13530"pt>30"3ppppppppppppp8Samptia7R=pppp nam82tiL>22stct_empt+code=e=kme8,.ppstct_empt+=ksuin nu78_enduct  op e=ampspinhs30inflias ovorf                 phasht/a>89clev83Lw>p eve8a16">=ksuin nu78_enduct pthisf=8ppsrppppequ8ef=8h"comlef=8fs/dc10ef=m=kme8="sref">p8rentt/a> /p10 to he.30i2>stase: nno c7t2="sratru72="p op e=ampspinhsp8rentt/a.Tef=8fs/dc10ef=8Ip_maef="+codbufre3nu8Ip_maett/aop1op e=bufre3de=Duc_RET_IP_f="+codbufre3nu_RET_IP_tt/a> /p30i3ppppppppppppp83nnnne""li83 oef=8ttruct pthisf=8ppsrpppp_drp7076=8fs/dc72Tnhs op e=ampspinhsp e8107=* 3l30hrn>30i3ppppppppppppp8Spppppun_s83enppthisf=8ppsrppppequ8ef=8h"comlef=8fs/dc10ef=m=kme8="sref">p8rentt/a.Tef=8fs/dc10ef=8Ip_maef="+codbufre3nu8Ip_maett/aop0op1op e=bufre3de=Duc_RET_IP_f="+codbufre3nu_RET_IP_tt/a> /p30i3mptiL51">p 5p8Samptiiiiiiiiit>236ex  levelLw>p eore8apath_pute89052ptiee8ap>p8r /p30i3s="sref">pppp8d16=8fL51">p 518Re_dehcend82en3016codargk30">hashef="8code=81h>30i3flias ovorf         a7R=p"Tef=8fs/dc10ef=8IS_e_ctuinked.f">p8rentt/a> d_equ8ef=8h"comlef=8fs/dflag8targcur78kme89e/dflag8fliasR8ef=8fs/dc10ef=8ppsrDCACHE_GENOCIDEerror> op ef="+DCACHE_GENOCIDEpppprruinked8ef=8fs/dc10ef=8tar3017codargk30ot;\0"a hrd232 123430ot;>30i3s="sref">rcum827ppppppppppppTef=8fs/dc10ef=8IS_e_ctuinked.f">p8rentt/a> d_equ8ef=8h"comlef=8fs/dflag8targcur78kme89e/dflag8flias|drp7076=8fs/dc72TDCACHE_GENOCIDEerror> op ef="+DCACHE_GENOCIDEpppp /p30i3ppppppppppppp7<59=8f        pp8rentt/a> d_equ8ef=8h"comlef=8fs/dcousrm=kme8="sref">p8rcousr> d_e- /p op ef="+codlongde=D34300> >30i3ppppppppppppp8SamptiL51">p 518Re_dehcend82en302+codargk30i/>i righte.30i/mptiL51">p 5p8Samptitarge8ef=8lef=8 oruc">hasht/a>89clev83Lw>p eve8a16">=ksuin nu78_enduct  op e=ampspinhsp8rentt/a> /p op e=eqc8ef=-1353078_>30i2>stase: nno L51">p 518Re_dehcend82en3022codargk30ng">>i/>ia hrd233530ng">30i3pppppppppppps74ppppp nam73"+c>2thisf=8ppsrm=kme8="sref">pthisf=8ppsrpppp_!drp7076=8fs/dc72Trp8rruinked8ef=8fs/dc10ef=8tar3023codargk30 hrntmevel8w>p e82> oru630 hr>30i3ppppppppppppp8Sppppp *fs/dc10ef=8ppsrda> /p_path,.ppppppppppppppppppp_path8ef=8ttruct pthisf=8ppsrpppp /pp8rentt/a> /pp>30i3mptiL51">p 5p8Samptia7R=p"Tef=8fs/dc10ef=thisf=8ppsrm=kme8="sref">pthisf=8ppsrppppequ8ef=8h"comlef=8fs/dflag8targcur78kme89e/dflag8fliasR8ef=8fs/dc10ef=8ppsrDCACHE_GENOCIDEerror> op ef="+DCACHE_GENOCIDEpppprruinked8ef=8fs/dc10ef=8tar3025codargk30 namptiL1108pa78kmde=D3430 na>30i3s="sref">pppp8d16=8fp8Samptitarge8ef=8lef=8thisf=8ppsrm=kme8="sref">pthisf=8ppsrppppequ8ef=8h"comlef=8fs/dflag8targcur78kme89e/dflag8flias|drp7076=8fs/dc72TDCACHE_GENOCIDEerror> op ef="+DCACHE_GENOCIDEpppp /ppthisf=8ppsrppppequ8ef=8h"comlef=8fs/dcousrm=kme8="sref">p8rcousr> d_e- /p30i3s="sref">rcum827ppppL51">p 518Re_dehcend82en3028codargk30" namptiL11pa78kmde=D23430" n>30i3ppppppppppppp8"8pppp/f=8ttruct pthisf=8ppsrpppp_drp7076=8fs/dc72Ttvalto_aschref="+8ode=l86> otvalto_aschre8a16"Tef=8fs/dc10ef=thisf=8ppsrm=kme8="sref">pthisf=8ppsrppppe=p7076=8fs/dc72TsrerdtiL40" cla8s=EXPcrerdtppppop e=bufre3de=Ducfeqef=8ppsrd=kme8=feqpppp) /p9052ptiL13d=">10590>30i3ppppppppppppp8Samptia7R=pppp nam82tiL>22thisf=8ppsrm=kme8="sref">pthisf=8ppsrppppaL51">p 518R ce>is6no82f303+codargk30p8rentt/a> d_shedde=Dd3530p8r>30p8mptiL51">p 5p8Samptiiiiiiiiit>236ex  levelLw>p eorctuacf8_vac10ef=8ppsrbufmrectuacf8_vapppp /p9052ptiL13d=">10590>30p3s="sref">rcum85t/a>tsp7a83>st>2361rnexrm=kme8="sref">pnexrpppp_drp7076=8fs/dc72Tc823tiL40" cla8s=EXPc823ttt/aequ8ef=8h"comlef=8fs/dpnexrpppp"targe8ef=8ikmpfs/dc10ef30p2codargk30"a hrd232 12 != 0d130&qu>30p3ppppppppppppp83nnnnet>236ex  levelLw>p eorsu0ef=m=kme8="sref"iesu0e>p8r"targe8ef=8ikmpfs/dc10ef30p3codargk300> op ef="+codlongde=D34300> >30p3ppppppppppppL51">p 518Re_dehcend82en3034codargk30ptiL133">185=">183rnt__530pti>30p3pppppppppppaef=8ttruct hasht/a>89clev83Lw>p eve8a16">=ksuin nu78_enduct pthisf=8ppsrppppequ8ef=8h"comlef=8fs/dc10ef=m=kme8="sref">p8rentt/a> /p op e=eqc8ef=3430nu7>30p3pppppppppppar7R=pppp nam82tiL>22srerdtiL40" cla8s=EXPcrerdtpppp_IS_ERR8ef=8fs/dc10ef=8ppsrread_d_mf8_vac10ef=8ppsrbufmread_d_mf8_va8fs/dc10ef=8__f=8writs op e=amptiLa> oructuaccreramh"op e=bufre3de=Ducfeqef=8ppsrd=kme8=feqpppp)c/p30p3flias ovorf         t>236ex  levelLw>p eorctuacf8_vac10ef=8ppsrbufmrectuacf8_vapppp /p30p7pppppppppppar7R=ppp nam82tiL>22srerdtiL40" cla8s=EXPcrerdtppppc/p30p3ppppppppppppp8"8pppp/f=8ttruct  op e=amptiLa> oructuaccreramh"comlef=8fs/dc10ef=8reramh30p9codargk300> op ef="+codlongde=D:4300> >30p3ppppppppppppp8Rearomlef=8fs/dc10ef=8reramh304+codargk30="+codNAMETOOLONGe8efd3530="+>30="mptiL51">p 518"3rrrrrrrr83a3041codargk30void eiLa8 oruc84fsind3630voi>30=3s="sref">pppp8R2="sorctuacf8_vac10ef=8ppsrbufmrectuacf8_vappppub8irect871ccspH8fs/dc1030=2codargk30nishedeiLa8 oruc84hrd23630nis>30=3pppppppppppps74ppppp nam73"+c>2srerdtiL40" cla8s=EXPcrerdtppppc/p30=3ppppppppppppp8Spppppt>236ex  levelLw>p eagai2op e=amptiLa> oagai2>p8romlef=8fs/dc10ef=8reramh3044codargk30spa  v84_rcss3l30spa>30=3pppppppppppaef=8ttruct 30=3s="sref">pppp7076=8fs/dc72T_S>2277 droppf="+16">am76>="l77pppppppppp"tap am86>="l84105=">10530=7ppppL51">p 518Re_dehcend82en3048codargk30052ptiL133"buflende=Dd3530052>30=3s="sref">pppp8pppppp">dh83l30=9codargk30ptiL133">105=">10530=2ass="sref">wa8"amptiL10382s=">2356ode=newp_rcupppp7ppppp75a305+codargk30class="com8e105f84rnt__530cla>30class="sref">wa8"amptiL10382 * find_inodr_number6frpppckv 2356ode=newp_rcupppp7ppppp75a3051codargk309052ptiL133"retvalde=D3430905>30c2ass="sref">wa8t7oid 2356ode=newp_rcupppp7ppppp75a3052codargk308aiks sub8irect85ppppp36308ai>30c2ass="sref">wa8">wpvoid r82HBI@pppp: Nppp6236findlloocthcepp from8ectoroot"oirec30c3codargk30pppppppp_path_raw8ef=23530ppp>30c2ass="sref">wa8"e_dehcend82 c>2356ode=newp_rcupppp7ppppp75a30c4codargk30elLw>p eve8a16">85rnt__530elL>30c2ass="sref">wa8" ce>is6no82mroCppckvwhether a h7ef="=already existsv 2356ode=newp_rcupppp7ppppp75a30c5codargk309052ptiL133"buflende=Dd130905>30c2ass="sref">wa8"76=8fs/dc82auoandpp8Rearc  clinodr number6s74it hasoanlinodr. Otherwise>2356ode=newp_rcupppp7ppppp75a30c6codargk30a href=9+8ode978530c2ass="sref">wa8"#pppph" c82aun0607=p8Rearedlloocthcepp from8ectoroot"oirec30c7codargk30uct p_rcss.8L4NULL30c2ass="sref">wa8"= /a>p= /82" loocthcepp from8ectoroot"oirec30c8codargk309052ptiL133"retvalde=D3430905>30c2ass="sref">wa8"59=8fs/dc82L40Th07=poutret607=used to post-process directova6stctingsv 30c2ass="sref">wa8"amptiL10382aunfiletiL51"s usdatssyntheticlinodr numbers,oandp07=necessa=">2356ode=newp_rcupppp7ppppp75a306+codargk30ptiL133">105=">10530ptass="sref">wa8"amptiL10382aunto keep c88a> o) workdatlloocthcepp from8ectoroot"oirec3061codargk30">p8rentt/a> /pp>30p2ass="sref">wa8t7oid 2310ca/a>i0ef=8reramh"coml030p2codargk309052ptiL133"buflende=D3430905>30p3pppppca/a>i0ef=8reramh"coml030p3codargk30quot;a hrd232 102 != 0d130quo>30p3s="s p05pino_rppppp p05pfind_inodr_number"tap  *fs/dc10ef=8ppsrda> /p_path,.ppppppppppppppppppp_path8ef=8ttruct 89clpp82pdirccwre= *fs/dc10ef=8ppsrda> /q *fsht/a>89clpp82pq *f_path8ef=8ttruct pnamr05f8retvalde=D)f-truc-truc f30p4codargk300> op ef="+codlongde=D34300> >30p3ppppinked8ef=8fs/dc10ef=8tar30p5codargk3052ptiL133"buflende=D++343052p>30p3s="sref">ppp *fs/dc10ef=8ppsrda> /p_path,.ppppppppppppppppppp_path8rp7076=8fs/dc72Tnhs op e=ampspinhs="l86pppppppppp"ta3630m86>30p6s="sref">pppp7076=8fs/dc72Tino_rm=kme8="sref">pino_rppppp p05pinopppp_dr0133"retvalde=Df=8fs/dc1030p7codargk30052ptiL133"buflende=Dd3530052>30p3mptiL51">p 518i7pppppp r83l30p8codargk30ptiL133">105=">10530p3"srass="sref"84ppppp">dh83"ref="+code=e=kme8,.pppppppppppp_drp7076=8fs/dc72Td_hash_and_lookuef="+codbufre3nu8_hash_and_lookue8a16"Tef=8fs/dc10ef=rirsht/a>89clpp82pdirccwre=ef=8ttruct pnamr05f8r133"retvalde=Df=8fs/dc1030p9codargk30gp.f">p8rentt/a> pde=Dd130gp.>30p3mptiL51">p 5185p"84ppppp">dh83"ref="+code=e=kme8,.ppppppppppppruinked8ef=8fs/dc10ef=8tar307+codargk30 >i\0>i .30 &ppppppppppppp8Samptia7R=8_enduct  op e=ampspinhs op ef="+d_inodrpppprnked8ef=8fs/dc10ef=8tar3071codargk309052ptiL133"retvalde=D3430905>30 2>stase: nno c7t2="sratru72="ppinopppp_dr8_enduct  op e=ampspinhs op ef="+d_inodrppppequ8ef=8h"comlef=8fsi_inom=kme8="sref">pi_inopppp133"retvalde=Df=8fs/dc103072codargk300> op ef="+codlongde=D:4300> >30 3ppppppppppppp7">wpvoid r72HBI>228tid8ptspa  class="comdf78accsp"84ppppp">dh83"ref="+code=e=kme8,.ppppppppppppr133"retvalde=Df=8fs/dc103073codargk30="+codNAMETOOLONGe8efd3530="+>30 3ppppppppppppL51">p 518Re_dehcend82en3074codargk30lLw>p eve8a16">87_rcss3630lLw>30 3pppppppppppap8Rearch=id882 ow>227tinom=kme8="sref">pinopppp133"retvalde=Df=8fs/dc103075codargk30f=ue searc8ing7<874ntpp530f=u>30 5ppppL51">p 518Re_dehcend82en3076codargk30 ehd0s>10 to hl>a hrd23530 eh>30 3s="sex  levelLw>p eEXPORT_SYMBOLm=kme8="sref">pEXPORT_SYMBOLaccsp"84ppppp">dh83"find_inodr_numberm=kme8="sref">pfind_inodr_number"tapr133"retvalde=Df=8fs/dc103077codargk30ersdon ref=8fs/aa hrd23530ers>30 3mptiL51">p 518i7pppppp r83l3078codargk30system call justdeequ23630sys>30 3"srastaticl"84ppppp">dh83"__initdatam=kme8="sref">p__initdatapppppunsigock d8aipp7076=8fs/dc72Tdhash_ppppie8targcur78kme89e/hash_ppppie8pppp133"retvalde=Df=8fs/dc103079codargk30e3 filled (whichdeequ23630e3 >30 9"srastaticl"> /pp__initppppp p05p= /83"sr>235 *fsht/a>89clpp82p *f_patrnked8ef=8fs/dc10ef=8tar308+codargk30), orld negativvdeequ23630), >30),ppppinked8ef=8fs/dc10ef=8tar3081codargk30o somethingslikvdeequ23630o s>30)1mptiL51">p 5185ppppp nam82tiL>22 *fsht/a>89clpp82p *f_patrnked8ef=8fs/dc10ef=8tar3082codargk3078"ivs should7no070le2273078">30)3ppppppppppppp7">wpvop8Rearc0133"retvalde=Df=8fs/dc103083codargk30uf, size_t size)070le22730uf,>30)3ppppppppppppp7076=8fs/dc72Tdhash_ppppie8targcur78kme89e/hash_ppppie8pppp_dr8_enduct 89clpp82p 0mple_ *ftoulaccsp"84ppppp">dh83" *fsht/a>89clpp82p *f_pate=prepeqc8ef=8h"comlef *fsht/a>89clpp82p *f_pate=0r133"retvalde=Df=8fs/dc103084codargk30r9tecr 9*      {070le22730r9t>30)3pppppppppppap8RearcL133"retvalde=Df=8fs/dc103085codargk30coml_Tnt retval;a hrd23730com>30)5ppppL51">p 518Re_dehcend82en3086codargk30 ehd0s>10 to he.a hrd23730 eh>30)3s="sex  levelLw>p e__setuef="+codbufre3nu__setueaccsp"ef=uc-truct 30)3mptiL51">p 518i7pppppp r83l3088codargk30=retvalff=8f= 0da hrd23730=re>30)3"srastaticlvoik targe8ef=8lef=8__initm=kme8="sref">p__initppppp p0530)9ppppinked8ef=8fs/dc10ef=8tar309+codargk30errnof=8-retval;a hrd23730err>30erpppppppppppaunsigock "> /p30e3mptiL51">p 518p2=8fs/dc183/30e2codargk30tic voida8f="+c89fs/*=Up30tic>30e3ppppppppppppta> pde=Df=8f0s>10 e78"ivIf hashds are di7907=* 3l30hrn>30e2ass="sref">wa8"e_dehcend82 77777777* hash allocationauntil vmalloc srect607=availare7lloocthcepp from8ectoroot"oirec3094codargk30e89052ptiL133"argke8ef3230e89>30e2ass="sref">wa8" ce>is6no82m77777777*tiL>2310ca/a>i0ef=8reramh"coml03095codargk308rentt/a> temp oru[64]32308re>30e3pppppppppppar7R=pp8rentt/a> sze8ef3230z.f>30e3flias ovorf         p8Rearomlef=8fs/dc10ef=8reramh3097codargk30wp_rcupppp7ppppp79he"* 430wp_>30e3mptiL51">p 518i7pppppp r83l3098codargk30f">p8rentt/a> fmtde=Dd3530f">>30e3"srass="sref"84ppppp">dh83"ref="+_hashtor> op ef="+code=erref="+_hashtor> pppp_dL51">p 518i7pppppp r83l3099codargk302ptiL133"argke8ef) + 135302pt>30e3ppppppppppppp8Samptitarge8ef=8lef=8alloc_large_ iL51"_hashop e=amptiLa> oalloc_large_ iL51"_hashaccsp"ef=uc-truct p 518i7pppppp r83l31"+codargk31"+coL133"argke8ef) + 13531"+c>31"+ppppppppppppp8Samptiiiiiiiiiiiiiiiiiiiiiiiiif10eof  *fs/dc10ef=8ppsrda> /hstct_bl_headc10ef=8ppsrbufmhstct_bl_head_patrLL51">p 518i7pppppp r83l31"1codargk31"aaa0531"3mptiL51">p 51832=8fsssssssssssssssssssssssssp7076=8fs/dc72Tdhash_ppppie8targcur78kme89e/hash_ppppie8ppppLL51">p 518i7pppppp r83l31"2codargk31"ic voida8f="+c89fs/*=Up31"ic>31"3ppppppppppppp7">wpvooooooooooooooooooooooooo13LL51">p 518i7pppppp r83l31"3codargk31"rntm7907=* 3l31"rn>3103ppppppppppppp8Spppppun_s83enssssssssssssssssp7076=8fs/dc72THASH_EARLYtargcur78kme89eHASH_EARLYppppLL51">p 518i7pppppp r83l31"4codargk31"89052ptiL133"argke8ef3231"89>31"3mptiL51">p 5p8Samptiiiiiiiiiiiiiiiiiiiiiiiiin nu78_enduct p8rhash_shifrppppLL51">p 518i7pppppp r83l31"5codargk31"rentt/a> temp oru[64]3231"re>31"3s="sref">pppp8d16=8fiiiiiiiiiiiiiiiiiiiiiiiin nu78_enduct phash_maseppppLL51">p 518i7pppppp r83l31"6codargk31".f">p8rentt/a> sze8ef3231".f>31"3flias ovorf                                 0LL51">p 518i7pppppp r83l31"7codargk31"p_rcupppp7ppppp79he"* 431"p_>31"3s="sref">rcum827pppppppppppp                0r133"retvalde=Df=8fs/dc1031"8codargk31"">p8rentt/a> fmtde=Dd3531"">>3103s="sref">pppp8pppppp">dh83l31"9codargk31"ptiL133"argke8ef) + 13531"pt>31"3pppppppppppp 2sroef="+codbufre3nucroepppp_dr01/pp8rhash_shifrpppp)1/pdh83"ref="+_hashtor> op ef="+code=erref="+_hashtor> pppp_8rentt/a> pde=Df=croef="+codbufre3nucroeppppr133"retvalde=Df=8fs/dc1031i1codargk31ehd0s>10 to he.3113s="sref">pppp8p2=8fs/dc183f=3112codargk319052ptiL133"buflende=Dd131905>3113mptiL51">p 5182nnnne""li83"3113codargk31hrntmevel8w>p e8107=* 3l31hrn>31i3ppppstaticlvoik targe8ef=8lef=8__initm=kme8="sref">p__initppppp p053113ppppinked8ef=8fs/dc10ef=8tar31i5codargk319052ptiL133"retvalde=D3431905>31i3s="sref">pppunsigock "> /phashef="8code=81h>3113s="sref">pppp826pppppp r83p3117codargk31ot;\0"a hrd232 123431ot;>31i3s="sref">rcuta> pde=Df=8f0s>10 e78"iviL>2310ca/a>i0ef=8reramh"coml031i8codargk31L133"buflende=D -lt; 1d131L13>3112ass="sref">wa8"59=8fs/dc82LLLLLLLLL* Apcon *fs/d  stote likec  clstcts,>2356ode=newp_rcupppp7ppppp75a31i9codargk310> op ef="+codlongde=D34310> >3112ass="sref">wa8"amptiL10382aLLLLLLLL* buc4it 07=probor>y not worth4it because6of   cl7ppppngdpurehd0s>10 to he.lerror valu2. So312+codargk31i/>i righte.312tass="sref">wa8"amptiL10382aLLLLLLLL* of   cl valu2.viL>2310ca/a>i0ef=8reramh"coml03121codargk3178_end> op e=eqc8ef=-1353178_>3122ass="sref">wa8t7oid 2310ca/a>i0ef=8reramh"coml03122codargk31ng">>i/>ia hrd233531ng">3123pppppppppppptsdh83"ref="+code=e=kme8,.ppppppppppppLL51">p 518i7pppppp r83l3123codargk31 hrntmevel8w>p e82> oru631 hr>31i3ppppppppppppp8Sppppp"84ppppp">dh83"SLAB_RECLAIM_ACCOUNisheddh83"SLAB_PANICsheddh83"SLAB_MEM_SPREADf=m=kme8="sref"SLAB_MEM_SPREADppppr133"retvalde=Df=8fs/dc103124codargk31">p8rentt/a> /pp>3123mptiL51">p 518R ce>is6no82f3125codargk31 namptiL1108pa78kmde=D3431 na>31i3s="sref">pppta> pde=Df=8f0s>10 e78"ivHash may have been set upsin>ppppp _init_earl+7*tiL>2310ca/a>i0ef=8reramh"coml03126codargk31op ef="+code=errore8ef3431op >31i3flias ovorf 185ppppp nam82tiL>22hashdi31i3s="sref">rcum827ppppp8Rearomlef=8fs/dc10ef=8reramh3128codargk31" namptiL11pa78kmde=D23431" n>3123s="sref">pppp8pppppp">dh83l3129codargk31>9052ptiL13d=">10590>31i3pppppppppppp"84ppppp">dh83"ref="+_hashtor> op ef="+code=erref="+_hashtor> pppp_dL51">p 518i7pppppp r83l313+codargk31p8rentt/a> d_shedde=Dd3531p8r>31p8mptiL51">p 5p8Samptitarge8ef=8lef=8alloc_large_ iL51"_hashop e=amptiLa> oalloc_large_ iL51"_hashaccsp"ef=uc-truct p 518i7pppppp r83l3131codargk31>9052ptiL13d=">10590>31p3s="sref">rcum85t/a>tttttttttttttttttttttttttf10eof  *fs/dc10ef=8ppsrda> /hstct_bl_headc10ef=8ppsrbufmhstct_bl_head_patrLL51">p 518i7pppppp r83l31p2codargk31"a hrd232 12 != 0d131&qu>31p3ppppppppppppp83nnnneeeeeeeeeeeeeeeeeeeeeeeeep7076=8fs/dc72Tdhash_ppppie8targcur78kme89e/hash_ppppie8ppppLL51">p 518i7pppppp r83l31p3codargk310> op ef="+codlongde=D34310> >3133ppppppppppppp8Sppppppppppppppppppppppppppppp13LL51">p 518i7pppppp r83l3134codargk31ptiL133">185=">183rnt__531pti>3133mptiL51">p 5p8Samptiiiiiiiiiiiiiiiiiiiiiiiii0LL51">p 518i7pppppp r83l3135codargk31nu78_end> op e=eqc8ef=3431nu7>3133s="sref">pppp8d16=8fiiiiiiiiiiiiiiiiiiiiiiiin nu78_enduct p8rhash_shifrppppLL51">p 518i7pppppp r83l3136codargk31e" namptiL11pa78kmde=D3431e" >31p3flias ovorf         iiiiiiiiiiiiiiiiiiiiiiiin nu78_enduct phash_maseppppLL51">p 518i7pppppp r83l3137codargk31p8ppppp83pp"writs3133s="sref">rcum827pppppppppppp                0LL51">p 518i7pppppp r83l3138codargk319052ptiL133"retvalde=D3431905>31p3ppppppppppppp8"8pppppppppppp                0r133"retvalde=Df=8fs/dc1031p9codargk310> op ef="+codlongde=D:4310> >31p3pppp33"retvalde=Df=8fs/dc10314+codargk31="+codNAMETOOLONGe8efd3531="+>3143" class="sre 2sroef="+codbufre3nucroepppp_dr01/pp8rhash_shifrpppp)1/prcum85t/a>tsp7a83>st>2361rINIT_HLIST_BL_HEADf=m=kme8="sref"INIT_HLIST_BL_HEADaccsp"84ppppp">dh83"ref="+_hashtor> op ef="+code=erref="+_hashtor> pppp_8rentt/a> pde=Df=croef="+codbufre3nucroeppppr133"retvalde=Df=8fs/dc1031=2codargk31nishedeiLa8 oruc84hrd23631nis>31=3ppppref">pppp8p2=8fs/dc183f=3143codargk319052ptiL133"buflende=Dd131905>3143mptiL51">p 518"3rrrrrrrr83a3144codargk31spa  v84_rcss3l31spa>3142ass="sref">wa8" ce>is6no82"ivSLABl7ppppn 2310ca/a>i0ef=8reramh"coml031=5codargk319052ptiL133"retvalde=D3431905>31=3s="s *fs/dc10ef=8ppsrda> /km1"_amh"cop ef="+code=erkm1"_amh"cpppp_8ef=8ttruct am86>="l84p eEXPORT_SYMBOLm=kme8="sref">pEXPORT_SYMBOLaccsp"84ppppp">dh83" != s_amh"cef="+codbufre3nu != s_amh"ceppppr133"retvalde=Df=8fs/dc1031=7codargk31ptiL133">105=">1053143mptiL51">p 518i7pppppp r83l3148codargk31052ptiL133"buflende=Dd3531052>3143s="sref">pppp8pppppEXPORT_SYMBOLm=kme8="sref">pEXPORT_SYMBOLaccsp"84ppppp">dh83"d_genocidrerror> op ef="+d_genocidrccwrr133"retvalde=Df=8fs/dc1031=9codargk31ptiL133">105=">1053143pppp33"retvalde=Df=8fs/dc10315+codargk31class="com8e105f84rnt__531cla>31class=voik targe8ef=8lef=8__initm=kme8="sref">p__initppppp p0531c2ass=inked8ef=8fs/dc10ef=8tar3152codargk318aiks sub8irect85ppppp36318ai>3153ppppppppppppts3153ppppppppppppp7076=8fs/dc72Tinodr_init_earl+code=e=kme8,.ppinodr_init_earl+accspr133"retvalde=Df=8fs/dc1031c4codargk31elLw>p eve8a16">85rnt__531elL>31c2ass=ref">pppp8p2=8fs/dc183f=31c5codargk319052ptiL133"buflende=Dd131905>31c2ass=ef">pppp8p2=8fs/dc183f=31c6codargk31a href=9+8ode978531c2ass=voik targe8ef=8lef=8__initm=kme8="sref">p__initppppp p0531c2ass=inked8ef=8fs/dc10ef=8tar3158codargk319052ptiL133"retvalde=D3431905>3153ppppppppppppunsigock d8aipp7076=8fs/dc72Treservrerror> op ef="+reservrpppp133"retvalde=Df=8fs/dc1031c9codargk31nishedeiLa8 oruc85" i23l31nis>3153pppp33"retvalde=Df=8fs/dc10316+codargk31ptiL133">105=">1053163" class="sre"sref">wa8" ce>is6no82"ivBese6hash f10es on=availare7 m1"ory,6veef=a reservr equal toiL>2310ca/a>i0ef=8reramh"coml03161codargk31">p8rentt/a> /pp>31p2ass="sref">wa8t7oid 2310ca/a>i0ef=8reramh"coml031p2codargk319052ptiL133"buflende=D3431905>3163mptiL51">p 5182nnnne""li83"31p3codargk31quot;a hrd232 102 != 0d131quo>3163ppppppppppppp7076=8fs/dc72Treservrerror> op ef="+reservrpppp_dr8_enduct  omid8fs/dp"84ppppp">dh83"m1"page8targcur78kme89em1"page8_pat -=ef=8ttruct  op ef="+codlongde=D34310> >3163pppppppppppaef=8ttruct  op ef="+reservrpppp133"retvalde=Df=8fs/dc1031p5codargk3152ptiL133"buflende=D++343152p>3162ass=ef">pppp8p2=8fs/dc183f=3166codargk31m86>="l86pppppppppp"ta3631m86>31p6s="sref">pppp7076=8fs/dc72T != s_amh"cef="+codbufre3nu != s_amh"cepppppdrp7076=8fs/dc72Tkm1"_amh"c_creatcop ef="+code=erkm1"_amh"c_creatcaccsp"ef=uc-truct p 518i7pppppp r83l31p7codargk31052ptiL133"buflende=Dd3531052>3163s="sref">rcum827ppppppppppppTef=8fs/dc10ef=SLAB_HWCACHE_ALIGNf=m=kme8="sref"SLAB_HWCACHE_ALIGNpppp|"84ppppp">dh83"SLAB_PANICshedpNULLccwrr133"retvalde=Df=8fs/dc1031p8codargk31ptiL133">105=">1053163s="sref">pppp8pppppp">dh83l31p9codargk31gp.f">p8rentt/a> pde=Dd131gp.>3163pppppppppppp"84ppppp">dh83"rpppp _initcode=e=kme8,.ppppppp _initaccspr133"retvalde=Df=8fs/dc10317+codargk31 >i\0>i .31 &ppppppppppppp7076=8fs/dc72Tinodr_initcode=e=kme8,.ppinodr_initaccspr133"retvalde=Df=8fs/dc103171codargk319052ptiL133"retvalde=D3431905>31 2>stase: nno p7076=8fs/dc72Tfilet_initcode=e=kme8,.ppfilet_initaccsp"84ppppp">dh83"m1"page8targcur78kme89em1"page8_patr133"retvalde=Df=8fs/dc103172codargk310> op ef="+codlongde=D:4310> >3173ppppppppppppts3173ppppppppppppp7076=8fs/dc72Tbdev_pppp _initcode=e=kme8,.ppbdev_pppp _initaccspr133"retvalde=Df=8fs/dc103174codargk31lLw>p eve8a16">87_rcss3631lLw>3173pppppppppppaef=8ttruct 31 5ppppL51">p 518Re_dehcend82en3176codargk31 ehd0s>10 to hl>a hrd23531 eh>31 3s="se/pre>
10 tfooter"> The original LXR software by cl1">p 518Rhttp://sourceforge.net/projects/lxr">LXR id p 518Rmailto:lxr@o hux.no">lxr@o hux.no_pat. 10 tsubfooter"> lxr.o hux.no kindly hostdtaby 1">p 518Rhttp://www.redpill-o hpro.no">Redpill L hpro AS_patopprovider of L huxpcon ultingoandpoperations services since 1995.