linux/net/sunrpc/cache.c
<<
Search1 div id/ofile_contents".
   1 /a> spa4 class="comment">/* /spa4.1   2 /a> spa4 class="comment"> * net/sunrpc/cache.c /spa4.1   3 /a> spa4 class="comment"> * /spa4.1   4 /a> spa4 class="comment"> * Generic code for 4.rious authenticav3.4-related caches /spa4.1   5 /a> spa4 class="comment"> * used by sunrpc clients and servers. /spa4.1   6 /a> spa4 class="comment"> * /spa4.1   7 /a> spa4 class="comment"> * Copyright (C) 2002 Neil Brown <neilb@cse.unsw.edu.au> /spa4.1   8 /a> spa4 class="comment"> * /spa4.1   9 /a> spa4 class="comment"> * Released under terms in GPL vers v3.2.  See COPYING. /spa4.1  
   spa4 class="comment"> * /spa4.1  11 /a> spa4 class="comment"> */ /spa4.1  12 /a>1  13 /a>#include <linux/typ>1  14 /a>#include <linux/fs.h /a>>1  15 /a>#include <linux/file.h /a>>1  16 /a>#include <linux/slab.h /a>>1  17 /a>#include <linux/signal.h /a>>1  18 /a>#include <linux/sched.h /a>>1  19 /a>#include <linux/kmod.h /a>>1  20 /a>#include <linux/list.h /a>>1  21 /a>#include <linux/module.h /a>>1  22 /a>#include <linux/ctyp<.h /a>>1  23 /a>#include <asm/uaccess.h /a>>1  24 /a>#include <linux/poll.h /a>>1  25 /a>#include <linux/seq_file.h /a>>1  26 /a>#include <linux/proc_fs.h /a>>1  27 /a>#include <linux/net.h /a>>1  28 /a>#include <linux/workqueue.h /a>>1  29 /a>#include <linux/mutex.h /a>>1  30 /a>#include <linux/pagemap.h /a>>1  31 /a>#include <asm/ioctls.h /a>>1  32 /a>#include <linux/sunrpc/typ>1  33 /a>#include <linux/sunrpc/cache.h /a>>1  34 /a>#include <linux/sunrpc/stats.h /a>>1  35 /a>#include <linux/sunrpc/rpc_pipe_fs.h /a>>1  36 /a>#include "netns.h /a>"1  37 /a>1  38 /a>#define	  a href="+code=RPCDBG_FACILITY" class="sref">RPCDBG_FACILITY /a>  a href="+code=RPCDBG_CACHE" class="sref">RPCDBG_CACHE /a>1  39 /a>1  40 /a>static  a href="+code=bool" class="sref">bool /a>  a href="+code=cache_defer_req" class="sref">cache_defer_req /a>(struct  a href="+code=cache_req" class="sref">cache_req /a> * a href="+code=req" class="sref">req /a>, struct  a href="+code=cache_head" class="sref">cache_head /a> * a href="+code=item" class="sref">item /a>);1  41 /a>static void  a href="+code=cache_revisit_request" class="sref">cache_revisit_request /a>(struct  a href="+code=cache_head" class="sref">cache_head /a> * a href="+code=item" class="sref">item /a>);1  42 /a>1  43 /a>static void  a href="+code=cache_init" class="sref">cache_init /a>(struct  a href="+code=cache_head" class="sref">cache_head /a> * a href="+code=h" class="sref">h /a>)1  44 /a>{1  45 /a>         a href="+code=time_t" class="sref">time_t /a>  a href="+code=now" class="sref">now /a> =  a href="+code=seconds_since_boot" class="sref">seconds_since_boot /a>();1  46 /a>         a href="+code=h" class="sref">h /a>-> a href="+code=next" class="sref">next /a> =  a href="+code=NULL" class="sref">NULL /a>;1  47 /a>         a href="+code=h" class="sref">h /a>-> a href="+code=flags" class="sref">flags /a> = 0;1  48 /a>         a href="+code=kref_init" class="sref">kref_init /a>(& a href="+code=h" class="sref">h /a>-> a href="+code=ref" class="sref">ref /a>);1  49 /a>         a href="+code=h" class="sref">h /a>-> a href="+code=expiry_time" class="sref">expiry_time /a> =  a href="+code=now" class="sref">now /a> +  a href="+code=CACHE_NEW_EXPIRY" class="sref">CACHE_NEW_EXPIRY /a>;1  50 /a>         a href="+code=h" class="sref">h /a>-> a href="+code=last_refresh" class="sref">last_refresh /a> =  a href="+code=now" class="sref">now /a>;1  51 /a>}1  52 /a>1  53 /a>static  a href="+code=inline" class="sref">inline /a> int  a href="+code=cache_is_expired" class="sref">cache_is_expired /a>(struct  a href="+code=cache_detail" class="sref">cache_detail /a> * a href="+code=detail" class="sref">detail /a>, struct  a href="+code=cache_head" class="sref">cache_head /a> * a href="+code=h" class="sref">h /a>)1  54 /a>{1  55 /a>        return  ( a href="+code=h" class="sref">h /a>-> a href="+code=expiry_time" class="sref">expiry_time /a> <  a href="+code=seconds_since_boot" class="sref">seconds_since_boot /a>()) ||1  56 /a>                ( a href="+code=detail" class="sref">detail /a>-> a href="+code=flush_time" class="sref">flush_time /a> >  a href="+code=h" class="sref">h /a>-> a href="+code=last_refresh" class="sref">last_refresh /a>);1  57 /a>}1  58 /a>1  59 /a>struct  a href="+code=cache_head" class="sref">cache_head /a> * a href="+code=sunrpc_cache_lookup" class="sref">sunrpc_cache_lookup /a>(struct  a href="+code=cache_detail" class="sref">cache_detail /a> * a href="+code=detail" class="sref">detail /a>,1  60 /a>                                       struct  a href="+code=cache_head" class="sref">cache_head /a> * a href="+code=key" class="sref">key /a>, int  a href="+code=hash" class="sref">hash /a>)1  61 /a>{1  62 /a>        struct  a href="+code=cache_head" class="sref">cache_head /a> ** a href="+code=head" class="sref">head /a>,  ** a href="+code=hp" class="sref">hp /a>;1  63 /a>        struct  a href="+code=cache_head" class="sref">cache_head /a> * a href="+code=new" class="sref">new /a> =  a href="+code=NULL" class="sref">NULL /a>, * a href="+code=freeme" class="sref">freeme /a> =  a href="+code=NULL" class="sref">NULL /a>;1  64 /a>1  65 /a>         a href="+code=head" class="sref">head /a> = & a href="+code=detail" class="sref">detail /a>-> a href="+code=hash_table" class="sref">hash_table /a>[ a href="+code=hash" class="sref">hash /a>];1  66 /a>1  67 /a>         a href="+code=read_lock" class="sref">read_lock /a>(& a href="+code=detail" class="sref">detail /a>-> a href="+code=hash_lock" class="sref">hash_lock /a>);1  68 /a>1  69 /a>        for ( a href="+code=hp" class="sref">hp /a>= a href="+code=head" class="sref">head /a>; * a href="+code=hp" class="sref">hp /a> !=  a href="+code=NULL" class="sref">NULL /a> ;  a href="+code=hp" class="sref">hp /a> = &(* a href="+code=hp" class="sref">hp /a>)-> a href="+code=next" class="sref">next /a>) {1  70 /a>                struct  a href="+code=cache_head" class="sref">cache_head /a> * a href="+code=tmp" class="sref">tmp /a> = * a href="+code=hp" class="sref">hp /a>;1  71 /a>                if ( a href="+code=detail" class="sref">detail /a>-> a href="+code=match" class="sref">match /a>( a href="+code=tmp" class="sref">tmp /a>,  a href="+code=key" class="sref">key /a>)) {1  72 /a>                        if ( a href="+code=cache_is_expired" class="sref">cache_is_expired /a>( a href="+code=detail" class="sref">detail /a>,  a href="+code=tmp" class="sref">tmp /a>))1  73 /a>                                 spa4 class="comment">/* This entry is expired, we will discard it. */ /spa4.1  74 /a>                                break;1  75 /a>                         a href="+code=cache_get" class="sref">cache_get /a>( a href="+code=tmp" class="sref">tmp /a>);1  76 /a>                         a href="+code=read_unlock" class="sref">read_unlock /a>(& a href="+code=detail" class="sref">detail /a>-> a href="+code=hash_lock" class="sref">hash_lock /a>);1  77 /a>                        return  a href="+code=tmp" class="sref">tmp /a>;1  78 /a>                }1  79 /a>        }1  80 /a>         a href="+code=read_unlock" class="sref">read_unlock /a>(& a href="+code=detail" class="sref">detail /a>-> a href="+code=hash_lock" class="sref">hash_lock /a>);1  81 /a>         spa4 class="comment">/* Didn't find anything, insert an empty entry */ /spa4.1  82 /a>1  83 /a>         a href="+code=new" class="sref">new /a> =  a href="+code=detail" class="sref">detail /a>-> a href="+code=alloc" class="sref">alloc /a>();1  84 /a>        if (! a href="+code=new" class="sref">new /a>)1  85 /a>                return  a href="+code=NULL" class="sref">NULL /a>;1  86 /a>         spa4 class="comment">/* must fully initialise 'new', else /spa4.1  87 /a> spa4 class="comment">         * we might get lose if we need to /spa4.1  88 /a> spa4 class="comment">         * cache_put it soon. /spa4.1  89 /a> spa4 class="comment">         */ /spa4.1  90 /a>         a href="+code=cache_init" class="sref">cache_init /a>( a href="+code=new" class="sref">new /a>);1  91 /a>         a href="+code=detail" class="sref">detail /a>-> a href="+code=init" class="sref">init /a>( a href="+code=new" class="sref">new /a>,  a href="+code=key" class="sref">key /a>);1  92 /a>1  93 /a>         a href="+code=write_lock" class="sref">write_lock /a>(& a href="+code=detail" class="sref">detail /a>-> a href="+code=hash_lock" class="sref">hash_lock /a>);1  94 /a>1  95 /a>         spa4 class="comment">/* check if entry appeared while we slept */ /spa4.1  96 /a>        for ( a href="+code=hp" class="sref">hp /a>= a href="+code=head" class="sref">head /a>; * a href="+code=hp" class="sref">hp /a> !=  a href="+code=NULL" class="sref">NULL /a> ;  a href="+code=hp" class="sref">hp /a> = &(* a href="+code=hp" class="sref">hp /a>)-> a href="+code=next" class="sref">next /a>) {1  97 /a>                struct  a href="+code=cache_head" class="sref">cache_head /a> * a href="+code=tmp" class="sref">tmp /a> = * a href="+code=hp" class="sref">hp /a>;1  98 /a>                if ( a href="+code=detail" class="sref">detail /a>-> a href="+code=match" class="sref">match /a>( a href="+code=tmp" class="sref">tmp /a>,  a href="+code=key" class="sref">key /a>)) {1  99 /a>                        if ( a href="+code=cache_is_expired" class="sref">cache_is_expired /a>( a href="+code=detail" class="sref">detail /a>,  a href="+code=tmp" class="sref">tmp /a>)) {1 100 /a>                                * a href="+code=hp" class="sref">hp /a> =  a href="+code=tmp" class="sref">tmp /a>-> a href="+code=next" class="sref">next /a>;1 101 /a>                                 a href="+code=tmp" class="sref">tmp /a>-> a href="+code=next" class="sref">next /a> =  a href="+code=NULL" class="sref">NULL /a>;1 102 /a>                                 a href="+code=detail" class="sref">detail /a>-> a href="+code=entries" class="sref">entries /a> --;1 103 /a>                                 a href="+code=freeme" class="sref">freeme /a> =  a href="+code=tmp" class="sref">tmp /a>;1 104 /a>                                break;1 105 /a>                        }1 106 /a>                         a href="+code=cache_get" class="sref">cache_get /a>( a href="+code=tmp" class="sref">tmp /a>);1 107 /a>                         a href="+code=write_unlock" class="sref">write_unlock /a>(& a href="+code=detail" class="sref">detail /a>-> a href="+code=hash_lock" class="sref">hash_lock /a>);1 108 /a>                         a href="+code=cache_put" class="sref">cache_put /a>( a href="+code=new" class="sref">new /a>,  a href="+code=detail" class="sref">detail /a>);1 109 /a>                        return  a href="+code=tmp" class="sref">tmp /a>;1 110 /a>                }1 111 /a>        }1 112 /a>         a href="+code=new" class="sref">new /a>-> a href="+code=next" class="sref">next /a> = * a href="+code=head" class="sref">head /a>;1 113 /a>        * a href="+code=head" class="sref">head /a> =  a href="+code=new" class="sref">new /a>;1 114 /a>         a href="+code=detail" class="sref">detail /a>-> a href="+code=entries" class="sref">entries /a>++;1 115 /a>         a href="+code=cache_get" class="sref">cache_get /a>( a href="+code=new" class="sref">new /a>);1 116 /a>         a href="+code=write_unlock" class="sref">write_unlock /a>(& a href="+code=detail" class="sref">detail /a>-> a href="+code=hash_lock" class="sref">hash_lock /a>);1 117 /a>1 118 /a>        if ( a href="+code=freeme" class="sref">freeme /a>)1 119 /a>                 a href="+code=cache_put" class="sref">cache_put /a>( a href="+code=freeme" class="sref">freeme /a>,  a href="+code=detail" class="sref">detail /a>);1 120 /a>        return  a href="+code=new" class="sref">new /a>;1 121 /a>}1 122 /a> a href="+code=EXPORT_SYMBOL_GPL" class="sref">EXPORT_SYMBOL_GPL /a>( a href="+code=sunrpc_cache_lookup" class="sref">sunrpc_cache_lookup /a>);1 123 /a>1 124 /a>1 125 /a>static void  a href="+code=cache_dequeue" class="sref">cache_dequeue /a>(struct  a href="+code=cache_detail" class="sref">cache_detail /a> * a href="+code=detail" class="sref">detail /a>, struct  a href="+code=cache_head" class="sref">cache_head /a> * a href="+code=ch" class="sref">ch /a>);1 126 /a>1 127 /a>static void  a href="+code=cache_fresh_locked" class="sref">cache_fresh_locked /a>(struct  a href="+code=cache_head" class="sref">cache_head /a> * a href="+code=head" class="sref">head /a>,  a href="+code=time_t" class="sref">time_t /a>  a href="+code=expiry" class="sref">expiry /a>)1 128 /a>{1 129 /a>         a href="+code=head" class="sref">head /a>-> a href="+code=expiry_time" class="sref">expiry_time /a> =  a href="+code=expiry" class="sref">expiry /a>;1 130 /a>         a href="+code=head" class="sref">head /a>-> a href="+code=last_refresh" class="sref">last_refresh /a> =  a href="+code=seconds_since_boot" class="sref">seconds_since_boot /a>();1 131 /a>         a href="+code=smp_wmb" class="sref">smp_wmb /a>();  spa4 class="comment">/* paired with smp_rmb() in cache_is_valid() */ /spa4.1 132 /a>         a href="+code=set_bit" class="sref">set_bit /a>( a href="+code=CACHE_VALID" class="sref">CACHE_VALID /a>, & a href="+code=head" class="sref">head /a>-> a href="+code=flags" class="sref">flags /a>);1 133 /a>}1 134 /a>1 135 /a>static void  a href="+code=cache_fresh_unlocked" class="sref">cache_fresh_unlocked /a>(struct  a href="+code=cache_head" class="sref">cache_head /a> * a href="+code=head" class="sref">head /a>,1 136 /a>                                 struct  a href="+code=cache_detail" class="sref">cache_detail /a> * a href="+code=detail" class="sref">detail /a>)1 137 /a>{1 138 /a>        if ( a href="+code=test_and_clear_bit" class="sref">test_and_clear_bit /a>( a href="+code=CACHE_PENDING" class="sref">CACHE_PENDING /a>, & a href="+code=head" class="sref">head /a>-> a href="+code=flags" class="sref">flags /a>)) {1 139 /a>                 a href="+code=cache_revisit_request" class="sref">cache_revisit_request /a>( a href="+code=head" class="sref">head /a>);1 140 /a>                 a href="+code=cache_dequeue" class="sref">cache_dequeue /a>( a href="+code=detail" class="sref">detail /a>,  a href="+code=head" class="sref">head /a>);1 141 /a>        }1 142 /a>}1 143 /a>1 144 /a>struct  a href="+code=cache_head" class="sref">cache_head /a> * a href="+code=sunrpc_cache_update" class="sref">sunrpc_cache_update /a>(struct  a href="+code=cache_detail" class="sref">cache_detail /a> * a href="+code=detail" class="sref">detail /a>,1 145 /a>                                       struct  a href="+code=cache_head" class="sref">cache_head /a> * a href="+code=new" class="sref">new /a>, struct  a href="+code=cache_head" class="sref">cache_head /a> * a href="+code=old" class="sref">old /a>, int  a href="+code=hash" class="sref">hash /a>)1 146 /a>{1 147 /a>         spa4 class="comment">/* The 'old' entry is to be replaced by 'new'. /spa4.1 148 /a> spa4 class="comment">         * If 'old' is not VALID, we update it directly, /spa4.1 149 /a> spa4 class="comment">         * otherwise we need to replace it /spa4.1 15   spa4 class="comment">         */ /spa4.1 151 /a>        struct  a href="+code=cache_head" class="sref">cache_head /a> ** a href="+code=head" class="sref">head /a>;1 152 /a>        struct  a href="+code=cache_head" class="sref">cache_head /a> * a href="+code=tmp" class="sref">tmp /a>;1 153 /a>1 154 /a>        if (! a href="+code=test_bit" class="sref">test_bit /a>( a href="+code=CACHE_VALID" class="sref">CACHE_VALID /a>, & a href="+code=old" class="sref">old /a>-> a href="+code=flags" class="sref">flags /a>)) {1 155 /a>                 a href="+code=write_lock" class="sref">write_lock /a>(& a href="+code=detail" class="sref">detail /a>-> a href="+code=hash_lock" class="sref">hash_lock /a>);1 156 /a>                if (! a href="+code=test_bit" class="sref">test_bit /a>( a href="+code=CACHE_VALID" class="sref">CACHE_VALID /a>, & a href="+code=old" class="sref">old /a>-> a href="+code=flags" class="sref">flags /a>)) {1 157 /a>                        if ( a href="+code=test_bit" class="sref">test_bit /a>( a href="+code=CACHE_NEGATIVE" class="sref">CACHE_NEGATIVE /a>, & a href="+code=new" class="sref">new /a>-> a href="+code=flags" class="sref">flags /a>))1 158 /a>                                 a href="+code=set_bit" class="sref">set_bit /a>( a href="+code=CACHE_NEGATIVE" class="sref">CACHE_NEGATIVE /a>, & a href="+code=old" class="sref">old /a>-> a href="+code=flags" class="sref">flags /a>);1 159 /a>                        else1 160 /a>                                 a href="+code=detail" class="sref">detail /a>-> a href="+code=update" class="sref">update /a>( a href="+code=old" class="sref">old /a>,  a href="+code=new" class="sref">new /a>);1 161 /a>                         a href="+code=cache_fresh_locked" class="sref">cache_fresh_locked /a>( a href="+code=old" class="sref">old /a>,  a href="+code=new" class="sref">new /a>-> a href="+code=expiry_time" class="sref">expiry_time /a>);1 162 /a>                         a href="+code=write_unlock" class="sref">write_unlock /a>(& a href="+code=detail" class="sref">detail /a>-> a href="+code=hash_lock" class="sref">hash_lock /a>);1 163 /a>                         a href="+code=cache_fresh_unlocked" class="sref">cache_fresh_unlocked /a>( a href="+code=old" class="sref">old /a>,  a href="+code=detail" class="sref">detail /a>);1 164 /a>                        return  a href="+code=old" class="sref">old /a>;1 165 /a>                }1 166 /a>                 a href="+code=write_unlock" class="sref">write_unlock /a>(& a href="+code=detail" class="sref">detail /a>-> a href="+code=hash_lock" class="sref">hash_lock /a>);1 167 /a>        }1 11f="net/sunrpc/cache.c#L16oL148"> 11f="73t/sunrpc/ache.c#L16oL148"> 11f="net/sunrpc/cac> 164 /a> a href="net/sunrpc/cache.c#L166" iGt/sunrpc/cache.c#L42" id/oL42" class="line" nam  42 /a>1  43 /a>static void  a href="+code=cache_init" class="sref">cache_init /a>(struct  a href="+code=cache_head" class="sref">cache_/a>;1          /sunrpc/canet/sunrpc/cache.c#L52" id/oL52" cloL162"> #L144" id/oL1_bootw" class="sref">new /a>- void  1et/sunrpc/cache.c#L52" id/oL52" 8cache_init /a>(struct  a href="+code=cache_head" class="sref">cache_/a>;1          /sunrpc/canet/sunrpc/cache.c#L52" id/oL52" cloL162"> #L144" id/oL1_bootw" class="sref">new nrpc/cache.c#L16oL148"> 11f="73t/sun2sunrp12ass="line" nam 121 /a>}1 166 /a>                 a href="+code=w         1     spa4 class="comment1">/* 1his entry is expired, et lose if we need to /spa4.1  75 /a>               1     1    a href="+c a href="+code=cache_init" classs="line" 1nam  76 /a>     1     1              "net/sunrpc/cache.c#Lef">key /a>);1 108 /a>      ; a href=1"+code=detail" class="sr1ef">d17hash_lock" class="sref">hashhref="+code=write_lock" class="sref">write_lock /a>(& a href="+code=detail" class="sref">dp /a>)) {1 108 /a>      ;ef="net/s  return  a href="+code=1tmp" 17"net/sunrpc/cache.c#L48" id/o">  67 /a>         a href="+code=read_lock" class="sref">read_lock /a>(& a href="+code=detail" class="sref">detail /a>-> a href="+code=hash_lock" class="sref">hash_lock /a>);1  17>freeme /a>,  a href="+code=detail" f">detail1 /a>-> a href="+code=1hash_17y_time /a> =  a href="+code=ID" class="sref">CACHE_VALID /a>, & a href="+code=old" class="sref">old /a>-> a href="+code=flags" class="sref">flags /a>)) {1  81 /  a href="+code=set_bit" class="sref">set_bit /a>( a href="+code=CACHE_NEGATIVE" class="sref">CACHE_NEGATIVE /a>, & a href="+code=old" class="sref">old /a>-> a href="+code=flags" class="sref">flags /a>);1/* Didn&1#39;t find anything, ins1ert a18oL142"> 142 /a>}1 160 /a>                                 a href="+code=detail" class="sr/a> --;1update /a>( a href="+code=old" class="sref">old /a>,">new /a>1 =  a href="+code=detail1" cla1s="sref">detai#L161" id/oL161" class="line" nam  84 /a>        if (!1 a hr18is entry is expired, ="sref">cache_fresh_locked /a>( a href="+code=old" class="sref">old /a>,  a href="+code=new" class="sref">new /a>p /a>)) {1expiry_time /a>);1  /a> --;1 154 /a>        ispa4 clas1s="comment">/* must full1y ini1ialise 'nes="line" nam 115 /a>         a href="+code=cache_getold" class="sref">old /a>-> a href="+code=flags" classam  87 /a> spa4 class="co1mment18hash_lock" class="sref">hashhref="+code=write_lock" class="sref">write_lock /a>unlock" class="sref">write_unlock /a>(& a href="+code=detail" cne" nam  88 /a> spa4 clas1s="co18"net/sunrpc/cache.c#L48" id/_lock /a>);1 108 /a>       spa4 cla1ss="comment">         */1 /spa18a>        for ( a href="+codunlock" class="sref">write_unlock /a>(& a href="+code=detail" classp /a>)) {1expiry_time /a>);1);1 163 /a>      it" class1="sref">cache_init /a>( 1a hre18y_time /a> =  a href="+code=unlock" class="sref">write_unlock /a>(& a href="+code=detail" class="sref">detail /a>-> a h0"line" nam 163 /a>      icache.c#1 91 /a>         a href="1+code18 1et/sunrpc/cache.c#L52" id//sunrpc/ache.c#L16oL148"> 11f="net/sunrpc/cac> 164 /a> a href="net/sunrpc/cache.c#L166" iGt/sunrpc/cache.c#L42" id/oL42" class="line" nam  42 /a>1ne1 /a>,  a href="+code=key" class="sr165" id/oL165" class="line" nam 165 /a>                }1)) {1 166 /a>                 a href="+code=wpc/cache.1c#L93" id/oL93" class="l1ine" 1am  93 /a>         a he.c#L165" id/oL165" class="line" nam 165 /a>                }1 166 /a>                 a href="+code=w4" id/oL914" class="line" nam  19c#L134" id/oL134" class="linhe.c#L/oL121"> 121 /a>}1 166 /a>                 a href="+code=w5" id/oL915" class="line" nam  15 /a>         "+code=new" class="sref">new /a>-> a href="+code=next" class="sref">next /a>/a>= a hr1ef="+code=head" class="s1ref">1ead /a a href="+code=cache_init" classsref">hp 1/a> !=  a href="+code=NU1LL" c1ass="snew" class="sre125" class="line" nam 125 /a>static void  a href="+code=cache_dequeue" clache_head /a> * a href="+code=new" class="sr>                 a href="+code=w5e" namne1xt /a19ref="+code=expiry" class="sref">expi class="s1ref">detail /a>-> a h1ref="19id/oL128" clL54" class="line" namnew /a>, struct  a href="+code=cache_head" class="sref">cache_head /a> * a hrefc" class="line" nahe.c#L1expiry_time" class="sref">expiry_time /a> <  a href="+code=seconds_since_boot" class="sref">seconds_since_boot /a>()) ||1  81 /  a n2sunrp12ass="lic" class="line" nahe.c#rpc/cache.c#L42" id/e=new" ccal=cache_head" class="sr ccal=  a nds_since_boot /a>()) ||1tmp /a2->2a href="+code=next" cl"+code=-new" class="sre1INVA" nam 12INVA"f="+code=next" class="sref">next /a2 href="+c2de=detail" class="sref">2etail2/a>-> a hre"+code=new" class="srec" class="line" nahe.c#rpc/cache.c#L42" id/e=new" ccal=cache_head" class="sr ccal=  a de=tmp" class="sr" class="line" nahe.c#L1econds_since_boot" class="sref">seconcode=next" class="sref">next /a2 2ref="+c2d" class="line" namcache_detail 2L105" cla2s="line" nam 102 /a> 20cache.c#L155" id/oL155" class="line2ref">cach2_get /a>( a href="+code=2mp" c204d/oL128" cl>write_lock /a>(& href= a href="+code= hre>->L54" class="line" nam);1new /a>, struct  a href="+code=cache_head" class="sref">cache_head /a> * a href="sref">h /a>-> a href="+code=expiry_time" class="sref">expiry_time /a> <  a href="+code=seconds_since_boot" class="sref">seconds_since_boot /a>()) ||1 107 /a>           2     2         a href="+code=head" class="s2a>(& 2 href="+code=detail" cla2s="sr2f">detail /a>-f="+code=test_bit" class="sref">test_bit /a>( a href="+code=CACHE_NEGATIVE" class="sref">CACHE_NEGATIVE /a>, & a href="+code=new" e.c#L49" id/oL49" class="line" nam  49 /a>         a href="+co href="net/sunrpc/cache.c#L159" 2         2         a href="+code=c2che_p2t" class="sref">cache_"+code=-new" class="sre1AGAIN nam 12AGAINf="+code=next" class="sref">next /a2 8       2             if ( a href2 /a>;2 112 /a>        " class="sref">cache_/a>;    * othnrpc/pc/cache.c#L52" id/oL52" cloL162"> #L1442 = * a hr2f="+code=head" class="sr2f">he2d /a>;1set_bit /a>( a href="+code=CACHE_NEGATIVE" class="sref">CACHE_NEGATIVE /a>, & a href="+code=old" e.c#L49" id/oL49" class="line" nam  49 /a>         a href="+co href="net/sunrpc/cache.c#L159" 2ss="line"2nam 113 /a>    2   * 21                        a hre"+code=-new" class="sre1NOENT nam 12NOENTf="+code=next" class="sref">next /a2href="+co2e=new" class="sref">new 2a>;1<21is entry is expired, #L16L62" id/oL62" class="line" na2682/a>++;1old /a>;1cache_/a>cache.c#L52" id/oL52" cloL162"> #L1442 ef">cach2a>);1flags1f="n barriertL5cache.c#L52" id/oL52" cloL162"> #L1442 " namdetail /a>-> a href2"+cod2=hash_t  a href="+code=cache_head" clllllllllllllllll* f="+code=new" class,;  sures tha;1  89 /a>2ache.c#L128" id/oL118" class="line2 nam<2oL118"t  a href="+code=cache_head" clllllllllllllllll* using theef="ne"sref">hftertt"+cosees thoL89" class="line" nam  89 /a>2a        2href="+code=freeme" clas2="sre211  89 /a>2a8       2f">detail /a>);1 spa4 class="comment">         */ /llllllllllllllll*/cache.c#L52" id/oL52" cloL162"> #L1442 he.c#L112ef">new /a>;1next /a2 /a>( a h2ef="+code=sunrpc_cache_l2okup"22href="+code=cache_fresh_locke"+code=0code=next" class="sref">next /a2 s="line"2123"> 123 /a>1cache_detail 2" nam 124 /a>1cache_detail 2"a>++;1 * a href="+code=2etail22de=head" class="sref">head /a>,1ch 2a>);1set_b163"o_negass_sref"  a hf">new /a>, struct  a href="+code=cache_head" class="sref">cache_head /a> * a href="sref">h /a>-> a href="+code=expiry_time" class="sref">expiry_time /a> <  a href="+code=seconds_since_boot" class="sref">seconds_since_boot /a>()) ||1time_t 2a>  a22 we update it directly, /spa4.1)1<2 href="net/sunrpc/cache.2#L12822" class="srefL54" class="line" nrvt" class="sref"rvf="+code=next" class="sref">next /a2/oL130" c2ass="line" nam 230 /a22de=hp" class="sref">hp /a>)-> a 2ef">head 2a>-> a href="+code=la2t_ref2esh" class="sref">last_refresID" class="sref">CACHE_VALID /a>, & a href="+code=old" class="sref">old /a>-> a href="+code=flags" class="sref">flags /a>)) {1();  spa4 class="commentrvt" class="sref"rvf="+f="+code=cache_getam);1 * a href="sref">h /a>-> a href="+code=econds_since_boot" class="sref">seconcode=next" class="sref">next /a2f="+code=2ACHE_VALID" class="sref"2CACHE2VALID /a>, &am  a href="+code=setrvt" class="sref"rvf="+f!==-new" class="sre1AGAIN nam 12AGAINf="+#L62" id/oL62" class="line" na2682L133"> 132 /a>}1cache_f/sunrpc/ache.c#L16oL148"> 11f="net/sunrpc/cac> 164 /a> a href="net/sunrpc/cache.c#L166" iGt/sunrpc/cache.c#L42" id/oL42" class="line" nam  42 /a>1cache_head /a> * a h2ef="+23lass="sref">old /a>;1"+code=new" class="srervt" class="sref"rvf="+code=next" class="sref">next /a2ef="net/s2nrpc/cache.c#L136" id/oL236" c234s entry is eail" class="sref">cache_detail 2         2                 struct 2a hre23hash_lock" class="sref">hashhe.c#L160" id/oL160" class="line" nam 160 /a>                                 a href="+code=detail" class="sre.c#L49" id/oL49" class="line" nam  49 /a>         a href="+co code=next" class="sref">next /a2ecode=tim2 138 /a>       2if ( 23"net/sunrpc/cache.c#L48" id/_lock " class="sref">write_unlock /a>(& a href="+code=detail" classe.c#L49" id/oL49" clae=econds_since_boline" nam 132 /a>         a href="+code=set_bit"+nam 160 /a>   W_EXPIRY                       W_EXPIRY"+co code=next" class="sref">next /a2ey /a>)1<2ode=flags" class="sref">2lags 23a>        for ( a href="+cod/sunrpc/ache.c#L16oL148"> 11f="net/sunrpc/cac> 164 /a> a href="net/sunrpc/cache.c#L166" iGt/sunrpc/cache.c#L42" id/oL42" class="line" nam  42 /a>1 123y_time /a> =  a href="+code=unlock" clasd/oL165" class="line" nam 165 /a>                }1 166 /a>                 a href="+code=2he_dequeu2 /a>( a href="+code=deta2l" cl2ss="sref">deta"+code=-new" class="sre1NOENT nam 12NOENTf="+code=next" class="sref">next /a2cache.c#L242" id/oL142" class="lin2" nam2/oL142ail" class="sref">cache_detail 2 class="s2ef">cache_head /a> * a h2ef="+2ode=suil" class="sref">cache_detail 2 133"> 132e /a>(struct  a href="+c2de=ca2he_det" class="sref">cache_/a>cache.c#L52" id/oL52" cloL162"> #L1442a> * a hr2f="+code=detail" class="2ref">2etail 4 class="comment">     ef="+cois tho gener/oLf="ne"manage">   routailnet/sal=  che.c#L52" id/oL52" cloL162"> #L1442af="net/s2/oL145" class="line" nam2/oL1424#L116t  a href="+code=cache_* tho authond/o8" on>2"> #spa4.1)1tmp /(lassr)a4.1)1<2rpc/cache.c#L149" id/oL129" cl241 #L1442aoL130" c2class="line" nam spa4 class="comment">     >cache.c#L52" id/oL52" cloL162"> #L1442ae_dequeu2ef="+code=cache_head" cl2ss="s2ef">cache_head /a> ** a href=* R+codes 0m  atheef="neef="+ef=nwiseus"sret/s #L1442 class="l2ne" nam 152 /a>2     2 struct  a href="+code=cache_* -2AGAINm  a ccal= is pending and>"+che.c oL4wisen " namdcache.c#L52" id/oL52" cloL162"> #L1442 class="s2ss="sref">tmp /a>;1 #L1442 133"> 132f="+code=test_bit" class2"sref25e_det" class="sref">cache_/_*            ccal= ">cplessdhbet/sunm +costmp /innrpc/p(icplying tharef="net/sunrpc/cache.c#L152" id/oL1522="sref">f2ags /a>)) {1     effffffffffftheef="ne"sunm oL4wisen  we need flags/caneer one)pa4.1 155 /a>             2   a 25#L116t  a href="+code=cache_* -2NOENTm  af="ne"sref">wL4wnegasivoL89" class="line" nam  89 /a>2 (! a hre2="+code=test_bit" class=2sref"25hash_t  a href="+code=cache_*/cache.c#L52" id/oL52" cloL162"> #L1442s="line" 2am 157 /a>     2     2      L54" class="line" namnew /a>, struct  a href="+code=cache_head" class="sref">cache_head /a> * a href="sref">h /a>-> a href="+code#L52" id/oL52" cloL162"> #L1442sy /a>)1<2ss="line" nam 128 /a>2                          expiry_time" class="sref">expiry_time /a> <  a href="+code=seconds_since_boot" class="sref">secoe=expiry_time" class="sref">ex"+c_time /a> <  a hre"+ccode=seconds_since_borqst>new /a>-> a rqst>seconds_since_boot /a>()) ||12159 /25        a href="+code=head" class="s2  a href=2+code=new" class="sref">2ew /a2);1next /a2oL161"> 121 /a>                   2     2 href="+code=clong  class="line" nrhe.c#L_aget" class="sref"rhe.c#L_age clae=econds_since_boaget" class="sref"age clacode=next" class="sref">next /a2oclass="s2ass="line" nam 262 /a26de=suil" class="sref">cache_detail 2         2         a href="+code=c2che_f2esh_unlocked" " class="sref">cache_/a>;Fir.c decidea"+code=" idus L4wis.c weef=nw*/cache.c#L52" id/oL52" cloL162"> #L1442         2    return  a href="+cod2=old"26" class="line" nam  rvt" class="sref"rvf="+f="+code=cache_getam);1 * a href="sref">h /a>-> a href="+code=econds_since_boot" class="sref">seconcode=next" class="sref">next /a2rite_unlo2k" class="sref">write_un2ock /26head /a> * a href="+code=ch" class=2>);1cache_/a>;nowoseem  aweewa54"   " irpc/a  ccal= */cache.c#L52" id/oL52" cloL162"> #L1442 ="line" 2unrpc/cache.c#L16oL148">211f="26"net/sunrpc/cache.c#L48" id/rhe.c#L_aget" class="sref"rhe.c#L_age claf="           }1seconds_since_boot /a>();1secoin cache_is_valid() */ /spa4.1next /a2ry /a>)1<2 class="line" nam        for ( a href="+codaget" class="sref"age cla id/oL132" class="line" nam 132 /a>         a href="+code=set_bit"f-=econds_since_boot" class="sref">secoin cache_is_valid() */ /spa4.1next /a2r/oL159" 2che_init /a>(struct  a h2ef="+26de=hp" class="sref">hp /a>)-> a 2 id/oL1_b2otw" class="sref">new /a2- voi26/oL81">  81 /  a href="+code=setrqst>new /a>-> a rqst>seco =03"> 103 /a>                                #L62" id/oL62" class="line" na2682bootw" cl2ss="sref">new nrpc/cache2c#L1627 /a>;1 12AGAINf="+#2" id/oL62" class="line" na2682bclass="s2href="+coa71a>( a( a hre2="+co2e=cache_is_expired" clss="line" nam  rvt" class="sref"rvf="+f="-new" class="sre1NOENT nam 12NOENTf="+code=next" class="sref">next /a2         2     spa4 class="comment2">/* 2his entry is e} #L16L  a href="+code=setrvt" class="sref"rvf="+f===-new" class="sre1AGAIN nam 12AGAINf="+ ||r ( a href="+codaget" class="sref"age cla n cacache.c#L48" id/rhe.c#L_aget" class="sref"rhe.c#L_age cla/2#L62" id/oL62" class="line" na2682b        2>  75 /a>               2     27lass="sref">old /a>;1ad /a> * a href=prL54a class="line" n=prL54a  a ha class="srefexping">"RPC:d /a>;1Wa54" class,;ne"age=%ld, age=%ld\n"cache.ce#L52" id/oL52" cloL162"> #L1442s="line" 2nam  76 /a>     2     2              e_is_expired" clss="line" nam  rhe.c#L_aget" class="sref"rhe.c#L_age clae=econds_since_boaget" class="sref"age clancode=next" class="sref">next /a2; a href=2"+code=detail" class="sr2ef">d27hash_lock" cl="net/su  a code=test_bit" class=>cache.c#L160" id/oL160" class=>cache.c#L1ine" nam 160 /a> de=head" class="sref">head /a>);1  49 /a>         a href="+co #L62" id/oL62" class="line" na2682b="line" 2  return  a href="+code=2tmp" 27href="+code=test_and_clear_biswitcha href="+code=setam * a href="sref">h /a>-> a href="+code=econds_since_boot" class="sref">secon#L62" id/oL62" class="line" na2682by /a>)1<20" class="line" nam  27                             ca16L-new" class="sre1INVA" nam 12INVA"f="+:2" id/oL62" class="line" na2682b/oL159" 2 /a>-> a href="+code=2hash_27                        else1head /a>);1  49 /a>         a href="+co code=next" class="sref">next /a2/cache.c#2L81" id/oL81" class="lin2e" na27/cache.c#L121" id/oL111111111head /a>);1seconcode=next" class="sref">next /a2>/* Didn&2#39;t find anything, ins2ert a28oL142"> 142 /a>}1set_b163"o_negass_sref"  a had /a> * a href="sref">h /a>-> a href="+code=econds_since_boot" class="sref">seconcode=next" class="sref">next /a2">new /a>2 =  a href="+code=detail2" cla28=cache_is_expired" clss="lineeeeeeeeebreakcode=next" class="sref">next /a2"        24">  84 /a>        if (!2 a hr28is entry is expired,         ca16L-new" class="sre1AGAIN nam 12AGAINf="+:2" id/oL62" class="line" na2682old /a>;1head /a>);1  49 /a>         a href="+co code=next" class="sref">next /a2spa4 clas2s="comment">/* must full2y ini28             e_is_expired" clss="line" nam  ra hre"+ass="sref">head /a>);1seconcode=next" class="sref">next /a2> a href=2>  87 /a> spa4 class="co2mment28hash_lock" cl="net/suss="lineeeeeeeeebreakcode=next" class="sref">next /a2"="line" 2oL88">  88 /a> spa4 clas2s="co28href="+code=test_and_clear_biail" class="sref">cache_detail 2 spa4 cla2ss="comment">         */2 /spa28                     ail" class="sref">cache_detail 2 /oL159" 2="sref">cache_init /a>( 2a hre28y_time /a> = ail" class="sref">cache_detail 2 cache.c#2 91 /a>         a href="2+code28 1et/il" class="sref">cache_detail 2a>( a hre2f="+code=new" class="sre2f">ne29148"> 11f="73t/suhref="+code=setrvt" class="sref"rvf="+f===-new" class="sre1AGAIN nam 12AGAINf="+#L62" id/oL62" class="line" na2682pc/cache.2c#L93" id/oL93" class="l2ine" 29=cache_is_expired" cl  a n2sunrp12ass="lics="srefferx"+c_time /a> <  a hreefferx"+c#L141" id/oL141" clarqst>new /a>-> a rqst>secoe=econds_since_boot" class="sref">secon#L62" id/oL62" class="line" na26824" id/oL924" class="line" nam  29sh_unlocked" class="sref">cach class="sref">cache_/a>cache.c#L52" id/oL52" cloL162"> #L14425" id/oL925" class="line" nam  29tail 4 class="comment">                             * R+che.c wL4wnoc deferred; h>cald/oL1L4wis.ccache.c#L52" id/oL52" cloL162"> #L14425pa4 clas2ef="+code=head" class="s2ref">29#L116t  a href="+code=cache_head" clllllllllllllllll* weef=nwourselves:L89" class="line" nam  89 /a>2sref">hp 2/a> !=  a href="+code=NU2LL" c29hash_t  a href="+code=cache_head" clllllllllllllllll*/cache.c#L52" id/oL52" cloL162"> #L14425e" namne2xt /a29href="+code=test_and_clear_bi" nam  rvt" class="sref"rvf="+f="+code=cache_getam);1 * a href="sref">h /a>-> a href="+code=econds_since_boot" class="sref">seconcode=next" class="sref">next /a2 class="s2ref">detail /a>-> a h2ref="29                               a href="+code=setrvt" class="sref"rvf="+f===-new" class="sre1AGAIN nam 12AGAINf="+#2" id/oL62" class="line" na2682         2             if ( a href2="+co29                        else1 12TIMEDOUTf="+code=next" class="sref">next /a2         2         * a href="+code2=hp" 29/cache.c#L121" id/oL1ail" class="sref">cache_detail 3ef="+code3tmp" class="sref">tmp /a3->3a href="+code=ail" class="sref">cache_detail 3e1="+code3t#L93" id/oL93" class="l3etail30ALID /a>, &am  a href="+code=setrvt" class="sref"rvf="+#2" id/oL62" class="line" na2683 2ref="+c3d" class="line" namcache_f 166 /a>                 a href="+code=3L105" cla3s="line" nam 103 /a> 30 /a>         "+code=new" class="srervt" class="sref"rvf="+code=next" class="sref">next /a3ref">cach3_get /a>( a href="+code=3mp" c30ad /a a href="+code=cache_init" clas3e" nam 107 /a>           3     30ss="snew" class="sre125" class="line" nam 125 /a>static void  a href="+code=cacham                 a href="+code=3L6 namne3s="sr30ref="+code=expiry" class="sref">exp3         3         a href="+code=c3che_p301 #L1443 8       3             if ( a href3 /a>;30> spa4 class="comment">     >>2"> #s         be periodical=y he_rnedpa4.1cache_head /a> ** a href=* Fortt"+cowe"main> 1n a li.c o af="neref">ca anda4.1he31struct  a href="+code=cache_* a current poin>ertL5   tha;1li.c and>L5   the href="+.1 113 /a>    3   * 31sunrpt  a href="+code=cache_* fortt"a;1sref"pa4.1new 3a>;1<31e_det" class="sref">cache_/_*a4.1     efE.c# ;1cach3a>);1talas tho li.c =" tha;1sref"  .1detail /a>-> a href3"+cod3=hash_t  a href="+code=cache_* looking fortrite_un tha;1f=nwiseremovedpa4.1getseremovedm  :L89" class="line" nam  89 /a>3a8       3f">detail /a>);1 spa4 class="comment">     * -ass="t /a>("ss beforo current h1  89 /a>3ahe.c#L113ef">new /a>;1cache_head /a> ** a href=* -ass="lc/cache.c#L ;1  89 h9" class="line" nam  89 /a>3 /a>( a h3ef="+code=sunrpc_cache_l3okup"32struct  a href="+code=cache_* h9" class="line" nam  89 /a>3 1="+code3123"> 123 /a>1("sftt"a;1href="+.1 124 /a>1cache_/_* ss getting ="netfull="net/fortso * a href="+code=3etail32tail 4 class="comment">     e"+.1cach3=cache_head" class="sref3>cach32#L116t  a href="+code=cache_*fss="che.cton o a=quot;how o ten"   "f=nwa1href==quot; ss =nwin>ere.ctng onoL89" class="line" nam  89 /a>3sref">ch 3a>);1Ls =nswered>L5 pirpcby tho use o atho =quot; nam" cla=quot; fieldf=" thoL89" class="line" nam  89 /a>3sche.c#L13_t" class="sref">time_t 3a>  a32L118"t  a href="+code=cache_*ff="neref">capa4.1)1<3 href="net/sunrpc/cache.3#L128321  89 /a>3/oL130" c3ass="line" nam 330 /a32> spa4 class="comment">     * t"a;1+cowep /in   the fucodepa4.1-> a href="+code=la3t_ref32f">cache_head /a> ** a href=* Whif= "f=nntng,"sft_het /a>(";1t"a;1+coearliertt"a" thoL89" class="line" nam  89 /a>3 href="+c3de=smp_wmb" class="sref"3smp_w33struct  a href="+code=cache_* current  nam" cla ;1(";1}1cache_/_* ;1cache_head /a> * a h3ef="+33tail 4 class="comment">     e"+.1 #L1443         3                 struct 3a hre33hash_t  a href="+code=cache_* tho  nam" cla h1 138 /a>       3if ( 33L118"t  a href="+code=cache_*a4.1)1<3ode=flags" class="sref">3lags 331 #L1443 oL130" c39" class="line" nam 133de=hp" class="sref">hp /a>)-> a 3he_dequeu3 /a>( a href="+code=deta3l" cl3ss="sr128" cl>write_lock /a>LIST_HEA="sref">CACHE_NELIST_HEA=  a href="+code=cacham                 a href="+code=3cache.c#L342" id/oL142" class="lin3" nam3/oL142128" cl>write_lock /a>DEFINE_SPINLOCK class="line" nDEFINE_SPINLOCK  a href="+code=cacham                 a href="+code=3c="+code=3ef">cache_head /a> * a h3ef="+3ode=su128" clf">new /a>, struct  a href="+code=cache_head" class="sref">cache_head /a> * a hrefcurrent"+code=cache_head" clasurrent"+code=f="+code=next" class="sref">next /a3 133"> 133e /a>(struct  a href="+c3de=ca3he_det128" clL54" class="line" naurrent"indexcache_head" clasurrent"indexf="+code=next" class="sref">next /a3 105" cla3f="+code=detail" class="3ref">34cache.c#L155" id/oL155" class="line3af="net/s3/oL145" class="line" nam3/oL14344d/oL128" clvoid=econds_since_bolo_amnew /a>, struct  a work_f">newline" namnewche_head /a> * a hrefworkline" nam                 a href="+code=3c        3hash /a>)1new /a>, struct  a delayed_workline" namnext /a3 che.c#L13* If 'old' is no3 VALI34ref="+code=expiry" class="sref">exp3sy /a>)1<3rpc/cache.c#L149" id/oL139" cl341new /a>, struct  a href="+code=cache_head" class="sref">cache_head /a> * a hrefc" class="line" nahe.c##2" id/oL62" class="line" na2683aoL130" c3class="line" namlast_refresrw claLef">key /a>);1  a h"net/sunrpc/cache.c#c" class="line" nahe.c#rpc/cache.c#L42" id/oL42" class="line" nam  42 /a>1 152 /a>3     35 /a>();  spa4 class="commentINIT_LIST_HEA="sref">CACHE_NEINIT_LIST_HEA=  a h"net/sunrpc/cache.c#c" class="line" nahe.c#rpc/cache.c#L42" id/" nam class="line" n" nam2 /a>1tmp /a>;1  93 /a>         a spin" class="line" nam                 a href="+code=3 133"> 133f="+code=test_bit" class3"sref35c#L134" id/oL134" class="linh" class="line" nahe.c#rpc/cache.c#L42" id/ nam" cla class="line" n nam" claa4"+f="0code=next" class="sref">next /a3="sref">f3ags /a>)) {1  h" class="line" nahe.c#rpc/cache.c#L42" id/unlock" class="sref">write_unlockf="0code=next" class="sref">next /a3=f="net/s35"> 155 /a>             3   a 35             "net/sunrpc/cacatomicche. class="sref">watomicche.  a h"net/sunrpc/cache.c#c" class="line" nahe.c#rpc/cache.c#L42" id/reader" class="sref">wreader" clae=0"line" nam 163 /a>     3 (! a hre3="+code=test_bit" class=3sref"35hash_lock" class="sref">hashc" class="line" nahe.c#rpc/cache.c#L42" id/lc/caclosm class="line" nlc/caclosmlockf="0code=next" class="sref">next /a3=che.c#L13am 157 /a>     3     35"net/sunrpc/cache.c#L48" id/_" class="line" nahe.c#rpc/cache.c#L42" id/lc/cawarnline" namnext /a3=y /a>)1<3ss="line" nam 138 /a>35a>        for ( a href="+codli.c"ad" class="line" nli.c"ad"  a h"net/sunrpc/cache.c#c" class="line" nahe.c#rpc/cache.c#L42" id/othor" class="sref">wothor" clae="net/sunrpc/cache.c#cm                 a href="+code=3d/oL159" 3lass="line" nam3159 /35y_time /a> =  a href="+code=spin"c/ache.c#L16oL148"> 1spin"c/ache  a h"net/sunrpc/cache.c#cm                 a href="+code=3 e_dequeu3+code=new" class="sref">3ew /a35 1et/il" class="sref">cache_detail 3oL161"> 131 /a>                   3     3 href="+code=c" class="sref">cache_/a>;" irpctho ce_rntng processc*/cache.c#L52" id/oL52" cloL162"> #L1443oclass="s3ass="line" nam 362 /a36m  93 /a>         a s> #dulsreflayed_workline" nam #dulsreflayed_work  a h"net/sunrpc/cache.c#cm 163 /a>     3         3         a href="+code=c3che_f36e_detail" class="sref">cache_detail 3         3    return  a href="+cod3=old"36" clanew" class="sre125" class="line" nam 125 /a>static void  a href="+code=cachclass=et/su_href="+code=cache_head" claclass=et/su_href="+code=  a "line" nam 163 /a>     3 f="net/s3k" class="sref">write_un3ock /36head /a> * a href="+code=ch" class=3>);1oy_href="+code=cache_head" claclass=edef">oy_href="+code=  a hf">new /a>, struct  a href="+code=cache_head" class="sref">cache_head /a> * a hrefc" class="line" nahe.c##2" id/oL62" class="line" na2683 ="line" 3unrpc/cache.c#L16oL148">311f="36 we update it directly, /spa4.1)1<3 class="line" nam        for ( a href="+codef="nef=rget" class="sref"ef="nef=rge  a href="+code=cacha" class="line" nahe.c##line" nam 163 /a>     3 /oL159" 3che_init /a>(struct  a h3ef="+36y_time /a> =  a href="+code=spin" class="line" nam                 a href="+code=3 id/oL1_b3otw" class="sref">new /a3- voi36sh" class="sref">last_refresID" class="sref">CACHE_VALID /a>, & a href="+code=old" cc" class="line" nahe.c#rpc/cache.c#L42" id/oL42" class="line" nam  42 /a>1new nrpc/cache3c#L1637148"> 11f="73t/suhref="+code=seth" class="line" nahe.c#rpc/cache.c#L42" id/unlock" class="sref">write_unlockf||r ( a href="+codatomiccriry_time /a> < atomiccriryamp; a href="+code=old" cc" class="line" nahe.c#rpc/cache.c#L42" id/inusm class="line" ninusm2 /a>#L62" id/oL62" class="line" na2683bclass="s3href="+coa71a>( a( a hre3="+co3e=cache_is_expired" clef">last_refresID" clc/ache.c#L16oL148"> 11f="net/sunrpc/cac> 164 /a> a href="nc" class="line" nahe.c#rpc/cache.c#L42" id/oL42" class="line" nam  42 /a>1/* 37is entry is expired, ="sref">cache_fspin"c/ache.c#L16oL148"> 1spin"c/ache  a h"net/sunrpc/cache.c#cm                 a href="+code=3b        3>  75 /a>               3     37lass="sref">old /a>;1goto ="sref">cache_fo="key /a>);1  76 /a>     3     3              ail" class="sref">cache_detail 3; a href=3"+code=detail" class="sr3ef">d37hash_lock" clt/suhref="+code=sethurrent"+code=cache_head" clasurrent"+code=f="+ =03"> 103 /a>     c" class="line" nahe.c##2" id/oL62" class="line" na2683b="line" 3  return  a href="+code=3tmp" 37href="+code=test_and_href="+code=sethurrent"+code=cache_head" clasurrent"+code=f="+ =3"> 103 /a>                                                 a href="+code=3by /a>)1<30" class="line" nam  37a>        for ( a href="+codli.c"eflLef">key /a>);1  a h"net/sunrpc/cache.c#c" class="line" nahe.c#rpc/cache.c#L42" id/othor" class="sref">wothor" cla>                 a href="+code=3b/oL159" 3 /a>-> a href="+code=3hash_37y_time /a> =  a href="+code=ID" clc/ache.c#L16oL148"> 11f="net/sunrpc/cac> 164 /a> a href="nc" class="line" nahe.c#rpc/cache.c#L42" id/oL42" class="line" nam  42 /a>1last_refresspin"c/ache.c#L16oL148"> 1spin"c/ache  a h"net/sunrpc/cache.c#cm                 a href="+code=3>/* Didn&3#39;t find anything, ins3ert a38148"> 11f="73t/suhref="+code=setli.c"emptykey /a>);1#L62" id/oL62" class="line" na2683">new /a>3 =  a href="+code=detail3" cla38=cache_is_expired" cl" class="sref">cache_/a>;moduls musc/isebetng c/acaded so its safe"   kmp /tho workerc*/cache.c#L52" id/oL52" cloL162"> #L1443"        34">  84 /a>        if (!3 a hr38is entry is expired, sunrpc/cache.c#cmncflLeflayed_work_sync class="line" namncflLeflayed_work_sync  a h"net/sunrpc/cache.c#cm        3net/sunrpc/cache.c#L85" 3id/oL38lass="sref">oail" class="sref">cache_detail 3spa4 clas3s="comment">/* must full3y ini38             "+code                 a href="+code=3> a href=3>  87 /a> spa4 class="co3mment38ss="snew" class="sreo="key /a>);1  88 /a> spa4 clas3s="co38"net/sunrpc/cache.c#L48" id/prL54a class="line" nprL54a  a hache.c#L48" id/KERN_ERR class="line" nKERN_ERRche_hr class="srefexping">"nfsd: f 16ede   ss=egi.cerc%sff="ne\n"cache.ceL134" class="linh" class="line" nahe.c#rpc/cache.c#L42" id/ aseconds_since_boo asef="+>                 a href="+code=3>y /a>)1<3ss="comment">         */3 /spa38     ail" class="sref">cache_detail 3s/oL159" 3="sref">cache_init /a>( 3a hre38y_timnew" class="sre125" class="line" nam 125 /a>static void  a href="+code=cachclass=edef">oy_href="+code=cache_head" claclass=edef">oy_href="+code=  a >                 a href="+code=3>id/oL1_b3 91 /a>         a href="3+code38 1et/il" class="sref">cache_detail 3a>( a hre3f="+code=new" class="sre3f">ne39struct  a href="+code=cachea>;"e_rnaf="ne"te_un to1findtso #L1443pc/cache.3c#L93" id/oL93" class="l3ine" 39sunrpt  a href="+code=cache_* and>"e_rns/itpa4.1  39e_det" class="sref">cache_/_* It>"+codes 13t/sit he_rnedtso  39tail 4 class="comment">     efffffffffff 0m  ait didn="netL1find anything t"+coh1  89 /a>35pa4 clas3ef="+code=head" class="s3ref">39#L116t  a href="+code=cache_efffffffffff-13t/sit fep /of  tho end o atho li.cpa4.1 !=  a href="+code=NU3LL" c39hash_t  a href="+code=cache_*/cache.c#L52" id/oL52" cloL162"> #L14435e" namne3xt /a39href=128" clL54" class="line" namdetail /a>-> a h3ref="39     62" id/oL62" class="line" na2683         3             if ( a href3="+co39             L54" class="line" nrvt" class="sref"rvf="+f="0code=next" class="sref">next /a3         3         * a href="+code3=hp" 39/cache.c#L121f">new /a>, struct  a li.c"piry_time /a> < li.c"piryche_head /a> * a href nam class="line" n nam                     a href="+code=4ef="+code4tmp" class="sref">tmp /a4->4a href                a href="+code=4e1="+code4t#L93" id/oL93" class="l4etail40m  93 /a>         a spin" class="line" nam                 a href="+code=4 2ref="+c4d" class="line" nam 40 /a>         t  a href="+code=cachea>;find a suihref= href= + aweedon="netL1alriryy have ono_*/cache.c#L52" id/oL52" cloL162"> #L1444ref">cach4_get /a>( a href="+code=4mp" c40             whif= uhref="+code=sethurrent"+code=cache_head" clasurrent"+code=f="+ =03"> 103 /a>                                 ||#L52" id/oL52" cloL162"> #L1444r5f">cach4_a> !=  a href="+code=NU4     40hash_lock" cl="nehref="+code=sethurrent"indexcache_head" clasurrent"indexf="+ n ca03"> 103 /a>     current"+code=cache_head" clasurrent"+code=f="+rpc/cache.c#L42" id/oL42"sizeconds_since_boooL42"size  a >L62" id/oL62" class="line" na2684L6 namne4s="sr40href="+code=test_and_t/suhref="+code=sethurrent"+code=cache_head" clasurrent"+code=f="+#2" id/oL62" class="line" na2684         4         a href="+code=c4che_p40                             ad /a> * a href nam class="line" n nam    f="+code=cache_getaurrent"+code=cache_head" clasurrent"+code=f="+rpc/cache.c#L42" id/othor" class="sref">wothor" cla.ad /a> * a href nam class="line" n nam                     a href="+code=4e8       4             if ( a href4 /a>;40                     #L16                a href="+code=4e9       4         * a href="+code4nam * a href nam class="line" n nam    f="+code=cache_getam * a href nam class="line" n nam                     a href="+code=4 = * a hr4f="+code=head" class="sr4f">he41 /a>;1L62" id/oL62" class="line" na2684 1="+code4nam 113 /a>    4   * 41=cache_is_expired" clss="line" nam  hurrent"+code=cache_head" clasurrent"+code=f="+ =3"> 103 /a>                                                 a href="+code=4href="+co4e=new" class="sref">new 4a>;1<41sh_unlocked" class="sref">cachf">last_refresspin"c/ache.c#L16oL148"> 1spin"c/ache  a h"net/sunrpc/cache.c#cm                 a href="+code=4h105" cla4href="net/sunrpc/cache.c4L115"41lass="sref">old /a>;1next /a4hef">cach4a>);1cache_detail 4h" namdetail /a>-> a href4"+cod41hash_lock" cl="net/su" nam  hurrent"+code=cache_head" clasurrent"+code=f="+ =3"> 103 /a>     li.c"eref"ass="sref">set_li.c"eref"  a href="+code=cach nam class="line" n nam    e=expiry_time" class="sref">ex+code=cache_head" class="sref">cache_eL134" class="linothor" class="sref">wothor" cla>                 a href="+code=4ache.c#L148" id/oL118" class="line4 nam<41href="+code=test_and_t/suhref="+code=sethurrent"+code=cache_head" clasurrent"+code=f="+rpc/cache.c#L42" id/ nam" cla class="line" n nam" claa4"+fn cacache.c#L48" id/line" nam 132 /a>         a href="+code=set_bit"#2" id/oL62" class="line" na2684h        4href="+code=freeme" clas4="sre41                             ad /a> * a hrefhurrent"indexcache_head" clasurrent"indexf="+ 03"> 103 /a>     current"+code=cache_head" clasurrent"+code=f="+rpc/cache.c#L42" id/oL42"sizeconds_since_boooL42"size  a                  a href="+code=4a8       4f">detail /a>);1new /a>;1 * a hrefhurrent"indexcache_head" clasurrent"indexf="+ 030code=next" class="sref">next /a4 /a>( a h4ef="+code=sunrpc_cache_l4okup"42oL142"> 142 /a>}1 132 /a>         a href="+code=set_bit"+30*60code=next" class="sref">next /a4 1="+code4123"> 123 /a>1cache_detail 4" nam 124 /a>1cache_detail 4"105" cla4ail /a> * a href="+code=4etail42cache.c#L155" id/oL155" class="line4"ef">cach4=cache_head" class="sref4>cach42             "  a href="+code=cachea>;find a non-empty bucketf=" tho href= */cache.c#L52" id/oL52" cloL162"> #L1444sref">ch 4a>);1 #L1444sche.c#L14_t" class="sref">time_t 4a>  a42href="+code=test_andhref="+code=sethurrent"indexcache_head" clasurrent"indexf="+ nlcacache.c#L48" id/current"+code=cache_head" clasurrent"+code=f="+rpc/cache.c#L42" id/oL42"sizeconds_since_boooL42"size  a  "net/"net/#L52" id/oL52" cloL162"> #L1444s        4 href="net/sunrpc/cache.4#L12842                    ache.c#L48" id/current"+code=cache_head" clasurrent"+code=f="+rpc/cache.c#L42" id/oL42"href=conds_since_boooL42"href="+a>[href="+code=sethurrent"indexcache_head" clasurrent"indexf="+] =03"> 103 /a>                                ##L52" id/oL52" cloL162"> #L1444s8       4ass="line" nam 430 /a42                     href="+code=sethurrent"indexcache_head" clasurrent"indexf="+++/#L52" id/oL52" cloL162"> #L1444s9       4a>-> a href="+code=la4t_ref42 1et/il" class="sref">cache_detail 4 href="+c4de=smp_wmb" class="sref"4smp_w43href="+code=c" class="sref">cache_/a>;find a "e_rnref= sref">=" tho bucketfand>"e_rn itret/sse4"    namwbucketf*/cache.c#L52" id/oL52" cloL162"> #L1444f="+code=4ACHE_VALID" class="sref"4CACHE43de=suil" class="sref">cache_detail 4f nam}1L62" id/oL62" class="line" na2684f105" cla4ef">cache_head /a> * a h4ef="+43lass="sref">old /a>;1expiry_time" class="sref">expiry_time /a> <  a href="+code=seconds_since_boce.c#L49" id/oL49c" clae=*seconds_since_boc>new /a>-> a cp  a                  a href="+code=4ef="net/s4nrpc/cache.c#L136" id/oL436" c43             e_is_expf">new /a>, struct  a href="+code=cache_head" class="sref">cache_head /a> * a href=cache_head" clad  a                  a href="+code=4eref">ch 4                 struct 4a hre43hash_                a href="+code=4eche.c#L14 138 /a>       4if ( 43href="+code=test_and_href="+code=setID" class="sref">CACHE_VALID /a>, & a href="+code=old" ccurrent"+code=cache_head" clasurrent"+code=f="+rpc/cache.c#L42" id/oL42" class="line" nam  42 /a>14lags 431 143                     h class="sref">cache_/a>;Ok,;nowoto "e_rn t"+cof">and>*/cache.c#L52" id/oL52" cloL162"> #L1444f9       4 /a>( a href="+code=deta4l" cl43 1et/il" class="sref">cache_detail 4cache.c#L442" id/oL142" class="lin4" nam44oL142"> 142 /a>}1new /a>-> a cp  a  =="net/ ache.c#L48" id/current"+code=cache_head" clasurrent"+code=f="+rpc/cache.c#L42" id/oL42"href=conds_since_boooL42"href="+a>[href="+code=sethurrent"indexcache_head" clasurrent"indexf="+]1cache_head /a> * a h4ef="+44=cache_is_expired" clfortuhref="+code=sethe.c#L49" id/oL49c" cla ==seconds_since_boc>new /a>-> a cp  a  / ache.c#L48" id/ce.c#L49" id/oL49c" cla / ache.c#L48" id/c>new /a>-> a cp  a  =="net/ ache.c#L48" id/ce.c#L49" id/oL49c" clarpc/cache.c#L42" id/ nam class="line" n nam    e=href="+code=sethe.c#L49" id/oL49c" cla ==seconds_since_boc>new /a>-> a cp  a >L62" id/oL62" class="line" na2684 133"> 134e /a>(struct  a href="+c4de=ca44sh_unlocked" class="sref">cact/suhref="+code=sethurrent"+code=cache_head" clasurrent"+code=f="+rpc/cache.c#L42" id/ nam" cla class="line" n nam" claa4"+fn cacache.c#L48" id/ce.c#L49" id/oL49c" clarpc/cache.c#L42" id/s="sref">seconds_since_boot /a>();1 #L1444 105" cla4f="+code=detail" class="4ref">44lass="sref">old /a>;1seconds_since_boot /a>();1next /a4af="net/s4/oL145" class="line" nam4/oL1444             e_is_expired" cl  a n2sunrp12ass="lics="sris_t /a>e/key /a>);1e/  a href="+code=cachrurrent"+code=cache_head" clasurrent"+code=f="+e=href="+code=sethe.c#L49" id/oL49c" cla"#2" id/oL62" class="line" na2684c        4hash /a>)1next /a4ache.c#L14* If 'old' is no4 VALI44ref="+code=expiry" class="sref">exp4sy /a>)1<4rpc/cache.c#L149" id/oL149" cl44                             seconds_since_boc>new /a>-> a cp  a  id/oL132" class="ce.c#L49" id/oL49c" clarpc/cache.c#L42" id/ nam class="line" n nam                     a href="+code=4aoL130" c4class="line" nam 103 /a>                                                 a href="+code=4ae_dequeu4ef="+code=cache_head" cl4ss="s44/cache.c#L121" id/oL111111111ad /a> * a hrefhurrent"+code=cache_head" clasurrent"+code=f="+rpc/cache.c#L42" id/unlock" class="sref">write_unlock--                 a href="+code=4 class="l4ne" nam 152 /a>4     45oL142"> 142 /a>}1next /a4 ="+code=4ss="sref">tmp /a>;1next /a4 133"> 134f="+code=test_bit" class4"sref45sh_unlocked" class="s}il" class="sref">cache_detail 4="sref">f4ags /a>)) {1 155 /a>             4   a 45             e_is_exphref="+code=setID" clc/ache.c#L16oL148"> 11f="net/sunrpc/cac> 164 /a> a href="ncurrent"+code=cache_head" clasurrent"+code=f="+rpc/cache.c#L42" id/oL42" class="line" nam  42 /a>1  =cache_head" clad  a  03"> 103 /a>     current"+code=cache_head" clasurrent"+code=f="+1 157 /a>     4     45href="+code=test_and_t/sun2sunrp12ass="lice.c#L49" id/oL49c" cla" 148 /a>45                             ad /a> * a hrefhurrent"indexcache_head" clasurrent"indexf="+ ++/#L52" id/oL52" cloL162"> #L1444d/oL159" 4lass="line" nam4159 /45                     href="+code=setspin"c/ache.c#L16oL148"> 1spin"c/ache  a h"net/sunrpc/cache.c#cm                 a href="+code=4 e_dequeu4+code=new" class="sref">4ew /a45/cache.c#L121" id/oL1t/suhref="+code=sethe.c#L49" id/oL49c" cla"L62" id/oL62" class="line" na2684oL161"> 141 /a>                   4     46oL142"> 142 /a>}1head /a>);1  49 /a>         a href="+co " 462 /a46=cache_is_expired" clss="lineeeeeeeee/a>, struct  a href="+c" nam class="line" nhref="+c" nam  a href="+code=cachrurrent"+code=cache_head" clasurrent"+code=f="+e=href="+code=sethe.c#L49" id/oL49c" cla"                 a href="+code=4         4         a href="+code=c4che_f46sh_unlocked" class="sref">cachf">last_refreshref=""+ass="sref">head /a>);1f4    return  a href="+cod4=old"46lass="sref">old /a>;1last_refreshref="f="key /a>);1  =cache_head" clad  a "                 a href="+code=4 f="net/s4k" class="sref">write_un4ock /46             e_is_expail" class="sref">cache_detail 4>);1411f="46href="+code=test_and_href="+code=setspin"c/ache.c#L16oL148"> 1spin"c/ache  a h"net/sunrpc/cache.c#cm                 a href="+code=4ry /a>)1<4 class="line" nam(struct  a h4ef="+46y_time /a> = "+code=new" class="srervt" class="sref"rvf="+code=next" class="sref">next /a4 id/oL1_b4otw" class="sref">new /a4- voi46sh" cail" class="sref">cache_detail 4bootw" cl4ss="sref">new nrpc/cache4c#L1647 href                a href="+code=4bclass="s4href="+coa71a>( a( a hre4="+co47sunrpt  a href="+code=cachea>cache.c#L52" id/oL52" cloL162"> #L1444b        4     spa4 class="comment4">/* 47e_det" class="sref">cache_/_* We wan4"   regular=y he_rnctho c"> #, so we         s> #dulstso  75 /a>               4     47tail 4 class="comment">     e/cache.c#L52" id/oL52" cloL162"> #L1444bf="net/s4nam  76 /a>     4     474d/oL128" clvoid=econds_since_bolo_amnew /a>, struct  a work_f">newline" namnewche_head /a> * a hrefworkline" nam#L52" id/oL52" cloL162"> #L1444b);1d47hash_62" id/oL62" class="line" na2684b="line" 4  return  a href="+code=4tmp" 47href="+code=tL54" class="line" neflayline" namnext /a4by /a>)1<40" class="line" nam  47a>        fort/suhref="+code=sethm#L52" id/oL52" cloL162"> #L1444b/oL159" 4 /a>-> a href="+code=4hash_47                     href="+code=seteflayline" nam * a hrefHZ class="line" nHZ  a >                 a href="+code=4bid/oL1_b4L81" id/oL81" class="lin4e" na47 1et/il" class="sref">cache_detail 4>/* Didn&4#39;t find anything, ins4ert a48148"> 11f="73t/suhref="+code=setli.c"emptykey /a>);1#il" class="sref">cache_detail 4>class="s4 =  a href="+code=detail4" cla48=cache_is_expired" cl"ref="+code=seteflayline" namnext /a4"        44">  84 /a>        if (!4 a hr48is en                a href="+code=4>        4net/sunrpc/cache.c#L85" 4id/oL48lass="sref">ot/suhref="+code=seteflayline" namcache_detail 4>f="net/s4s="comment">/* must full4y ini48             e_is_exphref="+code=sets> #dulsreflayed_workline" nam #dulsreflayed_work  a h"net/sunrpc/cache.c#cmnext /a4");1  87 /a> spa4 class="co4mment48ss="sail" class="sref">cache_detail 4"="line" 4oL88">  88 /a> spa4 clas4s="co48ref="+code=expiry" class="sref">exp4>y /a>)1<4ss="comment">         */4 /spa481cache_init /a>( 4a hre48> spa4 class="comment">    a>cache.c#L52" id/oL52" cloL162"> #L1444>id/oL1_b4 91 /a>         a href="4+code48f">cache_head /a> ** a href=* Ce_rncall>2"> #s promptly.  T"+cojusc/cal=sff="ne_"e_rn  che.c#L52" id/oL52" cloL162"> #L1444a>( a hre4f="+code=new" class="sre4f">ne49struct  a href="+code=cache=* repeated=y until we arstsuro tha;1sveryaf="ne"has"had a "hmncf     che.c#L52" id/oL52" cloL162"> #L1444aclass="s4c#L93" id/oL93" class="l4ine" 49sunrpt  a href="+code=cache_* be ful=y he_rned  che.c#L52" id/oL52" cloL162"> #L1444a        44" class="line" nam  49e_det" class="sref">cache_/_*/cache.c#L52" id/oL52" cloL162"> #L14444        45" class="line" nam  49tail he_head /a> * a hreff="ne_f="+cL"e_rner class="line"f="+c  a hvoid#2" id/oL62" class="line" na26845pa4 clas4ef="+code=head" class="s4ref">49#L11662" id/oL62" class="line" na26844 a href=4/a> !=  a href="+code=NU4LL" c49hash_lock" clwhif= uhref="+code=sethm#L52" id/oL52" cloL162"> #L14445e" namne4xt /a49href="+code=test_and_href="+code=sethond_res> #dline" nam #d  a h)code=next" class="sref">next /a4 class="s4ref">detail /a>-> a h4ref="497ash_lock" clwhif= uhref="+code=sethm#L52" id/oL52" cloL162"> #L14445/oL159" 4             if ( a href4="+co49                     href="+code=sethond_res> #dline" nam #d  a h)code=next" class="sref">next /a4 id/oL1_b4         * a href="+code4=hp" 49sh" cail" class="sref">cache_detail 5ef="+code5tmp" class="sref">tmp /a5->5a hrefhref="+code=set125" class="line" nam 125 /a>static void  a href="+code=cachf="ne_f="+cL"e_rner class="line"f="+c  a )code=next" class="sref">next /a5e1="+code5t#L93" id/oL93" class="l5etail50de=suil" class="sref">cache_detail 5 2ref="+c5d" class="line" nam * a hreff="ne_f=rget" class="sref"ef="nef=rge  a hf">new /a>, struct  a href="+code=cache_head" class="sref">cache_head /a> * a href=code=cache_head" cla+code=f="+#2" id/oL62" class="line" na2685 3ref="+c5d" class="line" nam 50 /a> 62" id/oL62" class="line" na2685ref">cach5_get /a>( a href="+code=5mp" c50             ad /a> * a href=code=cache_head" cla+code=f="+rpc/cache.c#L42" id/> u a h1         a hru a h1next /a5r5f">cach5_a> !=  a href="+code=NU5     50hash_lock" clad /a> * a href=code=cache_head" cla+code=f="+rpc/cache.c#L42" id/ nam" cla class="line" n nam" claa4"+fid/oL132" class="line" nam 132 /a>         a href="+code=set_bit"code=next" class="sref">next /a5r6f">cach5_e=next" class="sref">ne5s="sr50"net/sunrpc/cache.c#L48" id/_="ne_f="+cL"e_rner class="line"f="+c  a h"code=next" class="sref">next /a5r7f">cach5_ef">detail /a>-> a h5che_p50a>        for ( a href="+cod=code=cache_head" cla+code=f="+rpc/cache.c#L42" id/> u a h1         a hru a h1next /a5e8       5             if ( a href5 /a>;50     ail" class="sref">cache_detail 5e9       5         * a href="+code5nam 125 /a>static void  a href="+code=cachf="ne_f=rget" class="sref"ef="nef=rge  a "code=next" class="sref">next /a5 = * a hr5f="+code=head" class="sr5f">he51 href                a href="+code=5 1="+code5nam 113 /a>    5   * 51de=suil" class="sref">cache_detail 5href="+co5e=new" class="sref">new 5a>;1<51e_det" class="sref">cache_/a>cache.c#L52" id/oL52" cloL162"> #L1445h105" cla5href="net/sunrpc/cache.c5L115"51tail 4 class="comment">     efDeferralfand>Rsunrpcing of>Rsche.cspa4.1cach5a>);1cach5">detail /a>-> a href5"+cod51hash_t  a href="+code=cache_* If aLf="ne"lookup;finds aLpending sref", wea4.1cach58" id/oL118" class="line5 nam<51L118"t  a href="+code=cache_*         deferctho cache.cfand>/sunrpcsit laterpa4.1cach5href="+code=freeme" clas5="sre511detail /a>);1 spa4 class="comment">    c* indexed by "f">new ef="nef="+ *"pa4.1new /a>;1cache_head /a> ** a href=* As/it may be wasteful    store aLwholo cache.ca4.1( a h5ef="+code=sunrpc_cache_l5okup"52struct  a href="+code=cache=* f">newure, we allowotho cache.cf   provide aa4.1 123 /a>1 124 /a>1cache_/_* ="netf">new ef="nedeferred/cac="neta4.1 * a href="+code=5etail52tail 4 class="comment">     efT"+coef="nedeferred/cac/contains aLcach5=cache_head" class="sref5>cach52#L116t  a href="+code=cache_eficf   be>/sunrpced whenaf="ne"info +coavde=ref="+.1cach5a>);1 #L1445sche.c#L15_t" class="sref">time_t 5a>  a52ref="+code=expiry" class="sref">exp5s        5 href="net/sunrpc/cache.5#L12852     #defunrl>write_lock /a>DFR_HASHSIZEt" class="sref"DFR_HASHSIZE>       href="+code=cachPAGE_SIZEt" class="sref"PAGE_SIZE>   /sizeofhf">new /a>, struct  a li.c"piry_time /a> < li.c"piryche_>#il" class="sref">cache_detail 5s8       5ass="line" nam 530 /a52     #defunrl>write_lock /a>DFR_HASHt" class="sref"DFR_HASH  a href="+code=cachpcemt" class="sref"pcem cla"L ((((long)ref="+code=cachpcemt" class="sref"pcem cla"pc/cpc/c4 ^ (((long)ref="+code=cachpcemt" class="sref"pcem cla"pc/cpc/c13))c%l>write_lock /a>DFR_HASHSIZEt" class="sref"DFR_HASHSIZE>   #il" class="sref">cache_detail 5s9       5a>-> a href="+code=la5t_ref52 1et/il" class="sref">cache_detail 5 href="+c5de=smp_wmb" class="sref"5smp_w53href=#defunrl>write_lock /a>DFR_MAX /a>         a DFR_MAX>    300  for  class="sref">cache_/a>;???_*/cache.c#L52" id/oL52" cloL162"> #L1445f="+code=5ACHE_VALID" class="sref"5CACHE53de=suil" class="sref">cache_detail 5f nam}1write_lock /a>DEFINE_SPINLOCK /a>         a DEFINE_SPINLOCK  a href="+code=cachf="ne_defer" class="line" namnext /a5f105" cla5ef">cache_head /a> * a h5ef="+53lass=128" cl>write_lock /a>LIST_HEA="sref">CACHE_NELIST_HEA=  a href="+code=cachf="ne_defer" i.c class="line" namnext /a5fef">cach5nrpc/cache.c#L136" id/oL536" c534d/oL128" clf">new /a>, struct  a hli.c"piry_time /a> < hli.c"piryche_href="+code=cachf="ne_defer"oL42 class="line" nam   ]1ch 5                 struct 5a hre53hash_128" clL54" class="line" namnext /a5eche.c#L15 138 /a>       5if ( 53ref="+code=expiry" class="sref">exp5ey /a>)1<5ode=flags" class="sref">5lags 531new /a>, struct  a href="+cferred/cac class="line" nhref="+cferred/cacche_head /a> * a href=cac class="line" ndcacche_#il" class="sref">cache_detail 5e8       59" class="line" nam 153     62" id/oL62" class="line" na2685f9       5 /a>( a href="+code=deta5l" cl53sh" class="sref">last_refreshli.c"eflLef">key /a>);1  a h"net/sunrpc/cache.c#=cac class="line" ndcacche_rpc/cache.c#L42" id/oL42key /a>);1next /a5cache.c#L542" id/oL142" class="lin5" nam54148"> 11f="73t/sun2sunrp12ass="lili.c"emptykey /a>);1#L62" id/oL62" class="line" na2685c="+code=5ef">cache_head /a> * a h5ef="+54=cache_is_expired" cl2sunrp12ass="lili.c"eflLef">key /a>);1  a h"net/sunrpc/cache.c#=cac class="line" ndcacche_rpc/cache.c#L42" id/recenc class="line" nrecencche_>code=next" class="sref">next /a5c nam(struct  a href="+c5de=ca54sh_unlocked" class="s class="line" nam54lass="sref">oail" class="sref">cache_detail 5af="net/s5/oL145" class="line" nam5/oL1454     ail" class="sref">cache_detail 5aref">ch 5hash /a>)1new /a>, struct  a href="+cferred/cac class="line" nhref="+cferred/cacche_head /a> * a href=cac class="line" ndcacche_e=expiry_time" class="sref">expiry_time /a> <  a href="+code=seconds_since_bopcemt" class="sref"pcem cla"                a href="+code=5ay /a>)1<5rpc/cache.c#L149" id/oL159" cl54     62" id/oL62" class="line" na2685aoL130" c5class="line" nam);1cache_detail 5 class="l5ne" nam 152 /a>5     55oL142"> 142 /ref="+code=cachINIT_LIST_HEA="sref">CACHE_NEINIT_LIST_HEA=  a h"net/sunrpc/cache.c#=cac class="line" ndcacche_rpc/cache.c#L42" id/recenc class="line" nrecencche_>code=next" class="sref">next /a5 ="+code=5ss="sref">tmp /a>;1  93 /a>         a hli.c"add"piry_time /a> < hli.c"add"piry  a h"net/sunrpc/cache.c#=cac class="line" ndcacche_rpc/cache.c#L42" id/oL42key /a>);1next /a5  namcache_detail 5="sref">f5ags /a>)) {1 155 /a>             5   a 554d/oL128" clvoid=econds_since_bosetup"+cferra=cache_head" clacetup"+cferra=  a hf">new /a>, struct  a href="+cferred/cac class="line" nhref="+cferred/cacche_head /a> * a href=cac class="line" ndcacche_e.c#L155" id/oL155" class="line5=ref">ch 5="+code=test_bit" class=5sref"55hash_lock" cl="net/suuuuuuuuuuuuexpiry_time" class="sref">expiry_time /a> <  a href="+code=seconds_since_bopcemt" class="sref"pcem clae.c#L155" id/oL155" class="line5=che.c#L15am 157 /a>     5     55href="+code=test_and____________L54" class="line" naount_         a aount_ 158 /a>55     62" id/oL62" class="line" na2685d/oL159" 5lass="line" nam5159 /55     2" id/oL62" class="line" na2685d9       5+code=new" class="sref">5ew /a55sh" class="sref">last_refres=cac class="line" ndcacche_rpc/cache.c#L42" id/pcemt" class="sref"pcem clafid/oL132" class="pcemt" class="sref"pcem clacode=next" class="sref">next /a5oL161"> 151 /a>                   5     56 href                a href="+code=5oclass="s5ass="line" nam 562 /a56m  93 /a>         a spin" class="line" namnext /a5         5         a href="+code=c5che_f56is en                a href="+code=5 "sref">f5    return  a href="+cod5=old"56lass="sref">oeconds_since_bo__oL42"deferred/cac class="line" n__oL42"deferred/cac  a had /a> * a href=cac class="line" ndcacche_e=ref="+code=cachpcemt" class="sref"pcem cla"                 a href="+code=5 f="net/s5k" class="sref">write_un5ock /56                     a href="+code=5 ref">ch 5f="net/sunrpc/cache.c#L157" id56hash_lock" clt/suhref="+code=sethount_         a aount_511f="56href="+code=test_and_href="+code=setam #L1445ry /a>)1<5 class="line" nam);1next /a5 /oL159" 5che_init /a>(struct  a h5ef="+56y_time /a> = ail" class="sref">cache_detail 5 id/oL1_b5otw" class="sref">new /a5- voi56 1et/il" class="sref">cache_detail 5bootw" cl5ss="sref">new nrpc/cache5c#L1657oL142"> 142 /ref="+code=cachspin"c/ache.c#L16oL148"> 1spin"c/ache  a h"net/sunrpc/cache.c#cmnext /a5bclass="s5href="+coa71a>( a( a hre5="+co57de=suil" class="sref">cache_detail 5b        5     spa4 class="comment5">/* 57sh_unail" class="sref">cache_detail 5b        5>  75 /a>               5     57cache.c#L155" id/oL155" class="line5bf="net/s5nam  76 /a>     5     574d/oL12piry_time" class="srthriry"deferred/cac class="line" nthriry"deferred/cacL142"62" id/oL62" class="line" na2685b);1d57hash_lock" clf">new /a>, struct  a href="+cferred/cac class="line" nhref="+cferred/cacche_hhref="+code=setoLndf=conds_since_boooLndf= clacode=next" class="sref">next /a5b="line" 5  return  a href="+code=5tmp" 57href="+code=tf">new /a>, struct  a hompletionline" namnext /a5by /a>)1<50" class="line" nam  57a>   }code=next" class="sref">next /a5b/oL159" 5 /a>-> a href="+code=5hash_57     2" id/oL62" class="line" na2685bid/oL1_b5L81" id/oL81" class="lin5e" na57 1et/128" clvoid=econds_since_bohref="re128rt_thriry class="line" nhref="re128rt_thriry  a hf">new /a>, struct  a href="+cferred/cac class="line" nhref="+cferred/cacche_head /a> * a href=cac class="line" ndcacche_e=L54" class="line" ntoo_manykey /a>);162" id/oL62" class="line" na2685>class="s5 =  a href="+code=detail5" cla58=cache_is_exp12piry_time" class="srthriry"deferred/cac class="line" nthriry"deferred/cacL142"ead /a> * a href=c class="line" ndc clafi2" id/oL62" class="line" na2685>        54">  84 /a>        if (!5 a hr58sh_unlocked" class="s class="line" naontainer"ofline" nam * a href=cac class="line" ndcacche_e=12piry_time" class="srthriry"deferred/cac class="line" nthriry"deferred/cacL142e=ref="+code=cachoLndf=conds_since_boooLndf= cla"code=next" class="sref">next /a5>        5net/sunrpc/cache.c#L85" 5id/oL58lass="sref">oeconds_since_boaompleta /a>         a aompleta  a h"net/sunrpc/cache.c#=c class="line" ndc clarpc/cache.c#L42" id/fompletionline" namnext /a5>f="net/s5s="comment">/* must full5y ini58     ail" class="sref">cache_detail 5");1  87 /a> spa4 class="co5mment58hash_                a href="+code=5"="line" 5oL88">  88 /a> spa4 clas5s="co586new /a>, struct  a href="cac class="line" nhref="cacL142"ead /a> * a hrefcac class="line" ncacche_e=expiry_time" class="sref">expiry_time /a> <  a href="+code=seconds_since_bopcemt" class="sref"pcem cla"                a href="+code=5>y /a>)1<5ss="comment">         */5 /spa58     62" id/oL62" class="line" na2685s/oL159" 5="sref">cache_init /a>( 5a hre588cache_is_exp12piry_time" class="srthriry"deferred/cac class="line" nthriry"deferred/cacL142"ref="+code=cachsleeper class="line" nsleeperche_code=next" class="sref">next /a5>id/oL1_b5 91 /a>         a href="5+code58/cache.c#L121f">new /a>, struct  a href="+cferred/cac class="line" nhref="+cferred/cacche_head /a> * a href=cac class="line" ndcacche_ =="net/sunrpc/cache.c#sleeper class="line" nsleeperche_.ad /a> * a hrefoLndf=conds_since_boooLndf= clacode=next" class="sref">next /a5a>( a hre5f="+code=new" class="sre5f">ne59 href                a href="+code=5aclass="s5c#L93" id/oL93" class="l5ine" 59m  93 /a>         a sleeper class="line" nsleeperche_.ad /a> * a hrefhompletionline" nam * a hrefhompletionline" namnext /a5a        54" class="line" nam  592  93 /a>         a =cac class="line" ndcacche_rpc/cache.c#L42" id/reunrpc class="line" ncaunrpcche_hid/oL132" class="href="re128rt_thriry class="line" nhref="re128rt_thriry  a code=next" class="sref">next /a5a        55" class="line" nam  59cache.c#L155" id/oL155" class="line55pa4 clas5ef="+code=head" class="s5ref">59             ad /a> * a hrefsetup"+cferra=cache_head" clacetup"+cferra=  a had /a> * a href=cac class="line" ndcacche_e=ref="+code=cachpcemt" class="sref"pcem cla, 0"code=next" class="sref">next /a5a);1 !=  a href="+code=NU5LL" c59hash_                a href="+code=55e" namne5xt /a59href="+code=tt/sun2sunrp12ass="lite.c"t_request" class="te.c"t_r  a href="+code=cachf="+code=head" class="sref">head /a>);1  49 /a>         a href="+co  ||                a href="+code=55y /a>)1<5ref">detail /a>-> a h5ref="59                 ache.c#L42" id/wapc/for_aompletion_L54erruptible h1);1 * a hrefhompletionline" namcache_/a>;Tho completion wasn="nett completed, so we     cache.c#L52" id/oL52" cloL162"> #L1446ef="+code6tmp" class="sref">tmp /a6->60struct  a href="+code=cache=================*oto "e_rn upcache.c#L52" id/oL52" cloL162"> #L1446e1="+code6t#L93" id/oL93" class="l6etail60sunrpt  a href="+code=cache_================*/cache.c#L52" id/oL52" cloL162"> #L1446 2ref="+c6d" class="line" namnext /a6 3ref="+c6d" class="line" nam 60lass="sref">old /a>;1t/sun2sunrp12ass="lihli.c"unoL42#dline" nam * a hrefoLndf=conds_since_boooLndf= cla.ad /a> * a hrefoL42key /a>);1cach6_get /a>( a href="+code=6mp" c60             locked" class="s class="line" n__unoL42"deferred/cac class="line" n__unoL42"deferred/cac  a h"net/sunrpc/cache.c#sleeper class="line" nsleeperche_.ad /a> * a hrefoLndf=conds_since_boooLndf= cla"code=next" class="sref">next /a6 5f">cach6_a> !=  a href="+code=NU6     60hash_lock" cl="net/suuuuuuuuuref="+code=cachspin"c/ache.c#L16oL148"> 1spin"c/ache  a h"net/sunrpc/cache.c#cmnext /a6r6f">cach6_e=next" class="sref">ne6s="sr60href="+code=test_and_} #L16L62" id/oL62" class="line" na2686r7f">cach6_ef">detail /a>-> a h6che_p60                             a class="sref">cache_/a>;href="reunrpc/cache.c alriryy remov  cache.c#L52" id/oL52" cloL162"> #L1446e8f">cach6_            if ( a href6 /a>;60> spa4 class="comment">    ccccccccccccccccccccccccc* t"+cofromotho oL42 href=, but oL4n="nettcache.c#L52" id/oL52" cloL162"> #L1446e9f">cach6_        * a href="+code6namcache_head /a> ** a href=cccccccccccccccccccccccc* cal=ed rpc/c/sunrpcsyet.  It will veryasoon  che.c#L52" id/oL52" cloL162"> #L1446 = * a hr6f="+code=head" class="sr6f">he61struct  a href="+code=cache=================cccccccc* and>we         wapclfortitpa4.1 113 /a>    6   * 61sunrpt  a href="+code=cache_================cccccccc*/cache.c#L52" id/oL52" cloL162"> #L1446href="+co6e=new" class="sref">new 6a>;1<61sh_unlocked" class="sref">cachf">last_refresspin"c/ache.c#L16oL148"> 1spin"c/ache  a h"net/sunrpc/cache.c#cmnext /a6h105" cla6href="net/sunrpc/cache.c6L115"61lass="sref">old /a>;1last_refreswapc/for_aompletionkey /a>);1 * a hrefhompletionline" namnext /a6hef">cach6a>);1cache_detail 6h5f">cach6">detail /a>-> a href6"+cod61hash_lock" cl}il" class="sref">cache_detail 6h6f">cach68" id/oL118" class="line6 nam<61L118"}il" class="sref">cache_detail 6h7f">cach6href="+code=freeme" clas6="sre611detail /a>);1 spa128" clvoid=econds_since_bohref="limitLdefer9 /a>         a href="limitLdefer9  a hvoid#2" id/oL62" class="line" na2686h9       6ef">new /a>;1ca62" id/oL62" class="line" na2686 /a>( a h6ef="+code=sunrpc_cache_l6okup"62href="+code=c" class="sref">cache_/a>;Makstsuro wo oLven="nett exc     ne"limit of>allow   deferredcache.c#L52" id/oL52" cloL162"> #L1446 1="+code6123"> 123 /a>1 124 /a>1cache_/_cccccccc*/cache.c#L52" id/oL52" cloL162"> #L1446 105" cla6ail /a> * a href="+code=6etail62lass="sref">of">new /a>, struct  a href="+cferred/cac class="line" nhref="+cferred/cacche_head /a> * a href=iscar=cache_head" cladiscar=che_hid/oL132" class="                                            a href="+code=6 ef">cach6=cache_head" class="sref6>cach62                     a href="+code=6 5f">cach6a>);1         a DFR_MAX>   #2" id/oL62" class="line" na2686sche.c#L16_t" class="sref">time_t 6a>  a62href="+code=test_and_"+code                 a href="+code=6 7f">cach6 href="net/sunrpc/cache.6#L128621 630 /a62              class="line" nspin" class="line" namnext /a6s9       6a>-> a href="+code=la6t_ref62 1et/il" class="sref">cache_detail 6 href="+c6de=smp_wmb" class="sref"6smp_w63href="+code=c" class="sref">cache_/a>;Consider removing si nerctho fir.c orctho ="stc*/cache.c#L52" id/oL52" cloL162"> #L1446f="+code=6ACHE_VALID" class="sref"6CACHE631ash_lock" clt/suhref="+code=sethm         a DFR_MAX>   #L62" id/oL62" class="line" na2686f nam}1 #L1446f105" cla6ef">cache_head /a> * a h6ef="+63lass="sref">old /a>;1last_refres=iscar=cache_head" cladiscar=che_hid/oL132" class="li.c"eref"cache_head" clali.c"eref"  a href="+code=cachc="ne_defer" i.c class="line" nam * a href nam class="line" n nam    e#L52" id/oL52" cloL162"> #L1446fef">cach6nrpc/cache.c#L136" id/oL636" c63             locked" class="ssssssssssssssssssssssf">new /a>, struct  a href="+cferred/cac class="line" nhref="+cferred/cacche_e=ref="+code=cachcacenc class="line" nrecencche_>code=next" class="sref">next /a6eref">ch 6                 struct 6a hre63hash_lock" cl="net/su#L16                a href="+code=6eche.c#L16 138 /a>       6if ( 63href="+code=test_and_________hf">last_refres=iscar=cache_head" cladiscar=che_hid/oL132" class="li.c"eref"cache_head" clali.c"eref"  a href="+code=cachc="ne_defer" i.c class="line" nam * a hrefprevt" class="sref"prev    e#L52" id/oL52" cloL162"> #L1446f7f">cach6ode=flags" class="sref">6lags 63                             sssssssssssssssssssssf">new /a>, struct  a href="+cferred/cac class="line" nhref="+cferred/cacche_e=ref="+code=cachcacenc class="line" nrecencche_>code=next" class="sref">next /a6e8       69" class="line" nam 163                     href="+code=set__unoL42"deferred/cac class="line" n__unoL42"deferred/cac  a hhf">last_refres=iscar=cache_head" cladiscar=che_>code=next" class="sref">next /a6e9       6 /a>( a href="+code=deta6l" cl63sh" class="sr}il" class="sref">cache_detail 6cache.c#L642" id/oL142" class="lin6" nam64oL142"> 142 /ref="+code=cachspin"c/ache.c#L16oL148"> 1spin"c/ache  a h"net/sunrpc/cache.c#cmnext /a6c="+code=6ef">cache_head /a> * a h6ef="+641ash_lock" clt/suhref="+code=set=iscar=cache_head" cladiscar=che_>ode=next" class="sref">next /a6c nam(struct  a href="+c6de=ca64sh_unlocked" class="s class="line" n=iscar=cache_head" cladiscar=che_rpc/cache.c#L42" id/reunrpc class="line" ncaunrpcche_uhref="+code=set=iscar=cache_head" cladiscar=che_, 1>code=next" class="sref">next /a6c105" cla6f="+code=detail" class="6ref">64lass=}il" class="sref">cache_detail 6cef">cach6/oL145" class="line" nam6/oL1464                     a href="+code=6aref">ch 6hash /a>)1;R+code=">nelt/sand>onlylt/sa>deferred cache.c +co" namd.c*/cache.c#L52" id/oL52" cloL162"> #L1446ache.c#L16* If 'old' is no6 VALI646new /a>, struct  a href="cac class="line" nhref="cacL142"ead /a> * a hrefcac class="line" ncacche_e=expiry_time" class="sref">expiry_time /a> <  a href="+code=seconds_since_bopcemt" class="sref"pcem cla"                a href="+code=6ay /a>)1<6rpc/cache.c#L149" id/oL169" cl64     62" id/oL62" class="line" na2686aoL130" c6class="line" namnext /a6c9       6ef="+code=cache_head" cl6ss="s64 1et/il" class="sref">cache_detail 6 class="l6ne" nam 152 /a>6     65148"> 11f="73t/suhref="+code=setcac class="line" ncacche_rpc/cache.c#L42" id/thriry"wapc class="line" nthriry"wapc"+co  62" id/oL62" class="line" na2686 ="+code=6ss="sref">tmp /a>;1  93class="s class="line" nhref="wapc/cac class="line" nhref="wapc/cac  a had /a> * a hrefcac class="line" ncacche_e=econds_since_bopcemt" class="sref"pcem cla"code=next" class="sref">next /a6  namhead /a>);1  49 /a>         a href="+co "                a href="+code=6="sref">f6ags /a>)) {1old /a>;1next /a6=f="net/s65"> 155 /a>             6   a 65             }il" class="sref">cache_detail 6=ref">ch 6="+code=test_bit" class=6sref"65hash_lock" clad /a> * a href=cac class="line" ndcacche_ ==href="+code=setcac class="line" ncacche_rpc/cache.c#L42" id/+cfer class="line" ndcfer  a had /a> * a hrefcac class="line" ncacche_"code=next" class="sref">next /a6 che.c#L16am 157 /a>     6     65href="+code=tt/suad /a> * a href=cac class="line" ndcacche_ =id/oL132" class="                           "                a href="+code=6=y /a>)1<6ss="line" nam 168 /a>65                     "+code=new" class="srefaL16 /a>         a haL16che_code=next" class="sref">next /a6=oL130" c6lass="line" nam6159 /65              class="line" nsetup"+cferra=cache_head" clacetup"+cferra=  a had /a> * a href=cac class="line" ndcacche_e=ref="+code=cachpcemt" class="sref"pcem cla, 1>code=next" class="sref">next /a6d9       6+code=new" class="sref">6ew /a65sh" class="srt/sun2sunrp12ass="lite.c"t_request" class="te.c"t_r  a href="+code=cachf="+code=head" class="sref">head /a>);1  49 /a>         a href="+co "                a href="+code=6oL161"> 161 /a>                   6     660  93class="s   a href="+code=cachea>;Bit could oLve beenafleared beforo wo manag     cache.c#L52" id/oL52" cloL162"> #L1446oclass="s6ass="line" nam 662 /a66sunrpt  a href="+code=cache_================* cet upctho +cferra=, so         /sunrpcsjusc/inaf=s="+.1cache_/_cccccccc========*/cache.c#L52" id/oL52" cloL162"> #L1446 "sref">f6    return  a href="+cod6=old"66lass="sref">old /a>;1/a>, struct  a href="caunrpc/cache.c class="line" nhref="caunrpc/cache.c  a href="+code=cachpcemt" class="sref"pcem cla"code=next" class="sref">next /a6 f="net/s6k" class="sref">write_un6ock /66                     a href="+code=6 ref">ch 6f="net/sunrpc/cache.c#L167" id66hash_lock" clad /a> * a hrefhref="limitLdefer9 /a>         a href="limitLdefer9  a h"code=next" class="sref">next /a6 che.c#L16unrpc/cache.c#L16oL148">611f="66href="+code=t"+code=new" class="sre">neequest" class="t>neche_code=next" class="sref">next /a6ry /a>)1<6 class="line" namcache_detail 6 /oL159" 6che_init /a>(struct  a h6ef="+66     2" id/oL62" class="line" na2686 id/oL1_b6otw" class="sref">new /a6- voi66 1et/128" clvoid=econds_since_bohref="reunrpc/cache.c class="line" nhref="caunrpc/cache.c  a hexpiry_time" class="sref">expiry_time /a> <  a href="+code=seconds_since_bopcemt" class="sref"pcem cla"                a href="+code=6bootw" cl6ss="sref">new nrpc/cache6c#L1667148">62" id/oL62" class="line" na2686bclass="s6href="+coa71a>( a( a hre6="+co67=cache_is_exp12piry_time" class="srhref="+cferred/cac class="line" nhref="+cferred/cacche_head /a> * a href=cac class="line" ndcacche_code=next" class="sref">next /a6b        6     spa4 class="comment6">/* 672cache_is_exp12piry_time" class="srli.c"piry_time /a> < li.c"piryche__time" class="srpendingt" class="sref"pendingche_code=next" class="sref">next /a6b"sref">f6>  75 /a>               6     67lass="sref">of">new /a>, struct  a hli.c"n  at" class="sref"hli.c"n  ache_head /a> * a hreflp_time /a> < lp href=ead /a> * a hreftmp_time /a> < tmpche_code=next" class="sref">next /a6bf="net/s6nam  76 /a>     6     67             L54" class="line" noL42key /a>);1d67hash_                a href="+code=6b="line" 6  return  a href="+code=6tmp" 67"net/sunrpc/cache.c#L48" id/INIT_LIST_HEA="sref">CACHE_NEINIT_LIST_HEA=  a h"net/sunrpc/cache.c#pendingt" class="sref"pendingche_"                 a href="+code=6by /a>)1<60" class="line" nam  67a>        for ( a href="+codspin" class="line" namnext /a6b/oL159" 6 /a>-> a href="+code=6hash_67     2" id/oL62" class="line" na2686bid/oL1_b6L81" id/oL81" class="lin6e" na67sh" class="sref">last_refreshli.c"for_ee" "eref"_safat" class="sref"hli.c"for_ee" "eref"_safa  a had /a> * a href=cac class="line" ndcacche_e=ref="+code=cachlp_time /a> < lp href=ad /a> * a hreftmp_time /a> < tmpche_f="net/sunrpc/cache.c#c="ne_defer"oL42 class="line" nam);1);1/* Didn&6#39;t find anything, ins6ert a680  93class="st/suad /a> * a href=cac class="line" ndcacche_rpc/cache.c#L42" id/pcemt" class="sref"pcem clafiid/oL132" class="pcemt" class="sref"pcem cla  62" id/oL62" class="line" na2686>class="s6 =  a href="+code=detail6" cla68m  93class="slass="sref">last_refres__unoL42"deferred/cac class="line" n__unoL42"deferred/cac  a hhf">last_refres=cac class="line" ndcacche_#code=next" class="sref">next /a6>        64">  84 /a>        if (!6 a hr68sh_unlocked" class="slass="sref">last_refresli.c"addkey /a>);1old /a>;1}il" class="sref">cache_detail 6>f="net/s6s="comment">/* must full6y ini68                     a href="+code=6");1  87 /a> spa4 class="co6mment68hash_lock" clad /a> * a hrefspin"c/ache.c#L16oL148"> 1spin"c/ache  a h"net/sunrpc/cache.c#cmnext /a6"="line" 6oL88">  88 /a> spa4 clas6s="co68ref="+code=expiry" class="sref">exp6>y /a>)1<6ss="comment">         */6 /spa68a>        forwhilesun2sunrp12ass="lili.c"emptykey /a>);1/oL159" 6="sref">cache_init /a>( 6a hre68                     href="+code=set=cac class="line" ndcacche_ ==href="+code=setli.c"eref"cache_head" clali.c"eref"  a href="+code=cachpendingt" class="sref"pendingche_.ad /a> * a href nam class="line" n nam    esf">new /a>, struct  a href="+cferred/cac class="line" nhref="+cferred/cacche_e=ref="+code=cachcacenc class="line" nrecencche_>code=next" class="sref">next /a6>id/oL1_b6 91 /a>         a href="6+code68/cache.c#L121" id/oL1 ref="+code=setli.c"eflLef">key /a>);1  a h"net/sunrpc/cache.c#=cac class="line" ndcacche_rpc/cache.c#L42" id/recenc class="line" nrecencche_>code=next" class="sref">next /a6a>( a hre6f="+code=new" class="sre6f">ne690  93class="s unrpc/cache.c#=cac class="line" ndcacche_rpc/cache.c#L42" id/reunrpc class="line" ncaunrpcche_uhref="+code=set=cac class="line" ndcacche_e=0"code=next" class="sref">next /a6aclass="s6c#L93" id/oL93" class="l6ine" 69m  93}il" class="sref">cache_detail 6a        64" class="line" nam  69sh_unail" class="sref">cache_detail 6a        65" class="line" nam  69cache.c#L155" id/oL155" class="line65pa4 clas6ef="+code=head" class="s6ref">69     void=econds_since_bohref=""e_rn"+cferred class="line" nhref=""e_rn"+cferredche_uvoid=ead /a> * a hrefowner class="line" nowner  a )2" id/oL62" class="line" na2686a);1 !=  a href="+code=NU6LL" c69hash_62" id/oL62" class="line" na26865e" namne6xt /a69href="+code=tf">new /a>, struct  a href="+cferred/cac class="line" nhref="+cferred/cacche_head /a> * a href=cac class="line" ndcacche_f=ead /a> * a hreftmp_time /a> < tmpche_code=next" class="sref">next /a65y /a>)1<6ref">detail /a>-> a h6ref="69             12piry_time" class="srli.c"piry_time /a> < li.c"piryche__time" class="srpendingt" class="sref"pendingche_code=next" class="sref">next /a65/oL159" 6             if ( a href6="+co69     2" id/oL62" class="line" na2686 id/oL1_b6         * a href="+code6=hp" 69 1et/il" class="sref">cache_detail 7ef="+code7tmp" class="sref">tmp /a7->70oL142"> 142 /ref="+code=cachINIT_LIST_HEA="sref">CACHE_NEINIT_LIST_HEA=  a h"net/sunrpc/cache.c#pendingt" class="sref"pendingche_"                 a href="+code=7e1="+code7t#L93" id/oL93" class="l7etail70m  93 /a>         a spin" class="line" namnext /a7 2ref="+c7d" class="line" nam 70lass="sref">oeconds_since_boli.c"for_ee" "eref"_safat" class="sref"li.c"for_ee" "eref"_safa  a had /a> * a href=cac class="line" ndcacche_e=ref="+code=cachtmp_time /a> < tmpche_f="net/sunrpc/cache.c#c="ne_defer" i.c class="line" nam 62" id/oL62" class="line" na2687ref">cach7_get /a>( a href="+code=7mp" c70             locked" t/suad /a> * a href=cac class="line" ndcacche_rpc/cache.c#L42" id/owner class="line" nowner  a fiid/oL132" class="owner class="line" nowner  a ) 62" id/oL62" class="line" na2687r5f">cach7_a> !=  a href="+code=NU7     70hash_lock" cl="net/suuuuuuuuuref="+code=cach__unoL42"deferred/cac class="line" n__unoL42"deferred/cac  a hhf">last_refres=cac class="line" ndcacche_#code=next" class="sref">next /a7r6f">cach7_e=next" class="sref">ne7s="sr70href="+code=test_and_"sref">oeconds_since_boli.c"addkey /a>);1cach7_ef">detail /a>-> a h7che_p70                     ail" class="sref">cache_detail 7e8f">cach7_            if ( a href7 /a>;70y_time /a> = ail" class="sref">cache_detail 7e9f">cach7_        * a href="+code7namlast_refresspin"c/ache.c#L16oL148"> 1spin"c/ache  a h"net/sunrpc/cache.c#cmnext /a7 = * a hr7f="+code=head" class="sr7f">he71 href                a href="+code=7 1="+code7nam 113 /a>    7   * 71m  93whilesun2sunrp12ass="lili.c"emptykey /a>);1new 7a>;1<71sh_unlocked" class="shref="+code=set=cac class="line" ndcacche_ ==href="+code=setli.c"eref"cache_head" clali.c"eref"  a href="+code=cachpendingt" class="sref"pendingche_.ad /a> * a href nam class="line" n nam    esf">new /a>, struct  a href="+cferred/cac class="line" nhref="+cferred/cacche_e=ref="+code=cachcacenc class="line" nrecencche_>code=next" class="sref">next /a7h105" cla7href="net/sunrpc/cache.c7L115"71lass="sref">old /a>;1 ref="+code=setli.c"eflLef">key /a>);1  a h"net/sunrpc/cache.c#=cac class="line" ndcacche_rpc/cache.c#L42" id/recenc class="line" nrecencche_>code=next" class="sref">next /a7hef">cach7a>);1code=next" class="sref">next /a7h5f">cach7">detail /a>-> a href7"+cod71hash_lock" cl}il" class="sref">cache_detail 7h6f">cach78" id/oL118" class="line7 nam<71L118"}il" class="sref">cache_detail 7h7f">cach7href="+code=freeme" clas7="sre711detail /a>);1 spa4 class="comment">    /*cache.c#L52" id/oL52" cloL162"> #L1447h9       7ef">new /a>;1cache_head /a> ** a href=* communicate with user-he_c="+.1( a h7ef="+code=sunrpc_cache_l7okup"72struct  a href="+code=cache=*cache.c#L52" id/oL52" cloL162"> #L1447 1="+code7123"> 123 /a>1 #hrefpc/c/channelpa4.1 124 /a>1cache_/_* On riry, you get a full cache.c, orcb clapa4.1 * a href="+code=7etail72lass=" class="sref">cache_/_* On write, rn update cache.c +coprocessedpa4.1cach7=cache_head" class="sref7>cach72     " class="sref">cache_/_* Poll workslt/sanything    /sry, and>always>allows writepa4.1cach7a>);1 #L1447 6f">cach7_t" class="sref">time_t 7a>  a72href=" class="sref">cache_/_* Impleacheed by sreked li.c of>rsche.csp  E">  open filesoL4cache.c#L52" id/oL52" cloL162"> #L1447 7f">cach7 href="net/sunrpc/cache.7#L128721cache_/_* a rpc/cprivate thac also exi.cs/inat"+coli.cp  New>rsche.cs are addedcache.c#L52" id/oL52" cloL162"> #L1447s8       7ass="line" nam 730 /a72> spa4 class="comment">    c*oto tho end>and>may wakeup>and>preceding /sryerspa4.1-> a href="+code=la7t_ref72f">cache_head /a> ** a href=* New>rsryers are addedoto tho piry.  If, on /sry, an pcem +cofound>witha4.1cache_/_*/cache.c#L52" id/oL52" cloL162"> #L1447f105" cla7ef">cache_head /a> * a h7ef="+73cache.c#L155" id/oL155" class="line7fef">cach7nrpc/cache.c#L136" id/oL736" c734d/oL128" clhref="+code=setDEFINE_SPINLOCK /a>         a DEFINE_SPINLOCKche_uhref="+code=set" nam" class="line" namcode=next" class="sref">next /a7eref">ch 7                 struct 7a hre73hash_128" clhref="+code=setDEFINE_MUTEX /a>         a DEFINE_MUTEXche_uhref="+code=set" nam"io_mutexss="line" namcode=next" class="sref">next /a7e6f">cach7 138 /a>       7if ( 73ref="+code=expiry" class="sref">exp7f7f">cach7ode=flags" class="sref">7lags 73     f">new /a>, struct  a href="" nam class="line" nhref="" namash_l62" id/oL62" class="line" na2687e8       79" class="line" nam 1738cache_is_exp12piry_time" class="srli.c"piry_time /a> < li.c"piryche__d /a>;1 ref="+code=setli.c_time /a> < li.cche_code=next" class="sref">next /a7e9       7 /a>( a href="+code=deta7l" cl73sh" class="srL54"de=test_and_"sref">oeconds_since_borsryer class="line" ncaryerche_cs   a href="+code=cachea>;t/s0,othon cache.c */cache.c#L52" id/oL52" cloL162"> #L1447cache.c#L742" id/oL142" class="lin7" nam74oL142}code=next" class="sref">next /a7c="+code=7ef">cache_head /a> * a h7ef="+741ash_f">new /a>, struct  a href="cache.c class="line" nhref="cache.c  a l62" id/oL62" class="line" na2687c nam(struct  a href="+c7de=ca742cache_is_exp12piry_time" class="srhref="" nam class="line" nhref="" namash_lef">oeconds_since_boc class="line" ncche_code=next" class="sref">next /a7c105" cla7f="+code=detail" class="7ref">74lass="sref">of">new /a>, struct  a href="piry_time /a> <  a href="+code=======seconds_since_bopcemt" class="sref"pcem clacode=next" class="sref">next /a7cef">cach7/oL145" class="line" nam7/oL1474             charde=test_and_"sref">o*lhref="+code=setbufline" namnext /a7cref">ch 7hash /a>)1oeconds_since_bolenline" namnext /a7c6f">cach7* If 'old' is no7 VALI746h" class="srL54"de=test_and_"sref">oeconds_since_borsryer9 /a>         a rsryer9 clacode=next" class="sref">next /a7c7f">cach7rpc/cache.c#L149" id/oL179" cl74a>   }code=next" class="sref">next /a7aoL130" c7class="line" namnew /a>, struct  a href="caryer class="line" nhref="caryer  a l62" id/oL62" class="line" na2687c9       7ef="+code=cache_head" cl7ss="s74/cache.c#L121f">new /a>, struct  a href="" nam class="line" nhref="" namash_lef">oeconds_since_boc class="line" ncche_code=next" class="sref">next /a7 class="l7ne" nam 152 /a>7     75148"> 11f="73t54"de=test_and_"sref">oeconds_since_booffsec class="line" noffsecche_cs   a href="+code=cachea>;t/snon-0, wo oLve a ne"c54"on  nam cache.c */cache.c#L52" id/oL52" cloL162"> #L1447 ="+code=7ss="sref">tmp /a>;1next /a7  namf7ags /a>)) {1new /a>, struct  a file class="line" nfileche_head /a> * a hreffilp_time /a> < filpche_e=chardref="+code=cach__user class="line" n__userche_head /a> * a hrefbufline" namcach75"> 155 /a>             7   a 75             e_is_expd_"sref">oeconds_since_boloff_c class="line" nloff_cche_head /a> * a hrefppo9 /a>         a ppo9    esf">new /a>, struct  a href="+ctai=cache_head" clahref="+ctai=che_head /a> * a hrefcy class="line" nh=che_>ode=next" class="sref">next /a7=ref">ch 7="+code=test_bit" class=7sref"75hash_62" id/oL62" class="line" na2687 che.c#L17am 157 /a>     7     75href="+code=tf">new /a>, struct  a href="caryer class="line" nhref="caryer  a lead /a> * a hrefcp_time /a> < rpche_ ==href="+code=setfilp_time /a> < filpche_rpc/cache.c#L42" id/private_data /a>         a private_datache_code=next" class="sref">next /a7 7f">cach7ss="line" nam 178 /a>75             12piry_time" class="srhref="cache.c class="line" nhref="cache.c  a lead /a> * a hrefcc class="line" nccche_code=next" class="sref">next /a7 oL130" c7lass="line" nam7159 /758cache_is_exp12piry_time" class="srin  at" class="sref"in  ache_head /a> * a hrefin  at" class="sref"in  ache_h==href="+code=setfilp_time /a> < filpche_rpc/cache.c#L42" id/f_pat2key /a>);1 * a hrefderef"cache_head" claderef"  a rpc/cache.c#L42" id/+_in  at" class="sref"+_in  ache_code=next" class="sref">next /a7 9       7+code=new" class="sref">7ew /a75sh" class="srL54"ache.c#L42" id/err class="line" nerrche_code=next" class="sref">next /a7oL161"> 171 /a>                   7     76 href                a href="+code=7oclass="s7ass="line" nam 762 /a761ash_lock" clt/suhref="+code=sethounc class="line" nhounc clafiid0>ode=next" class="sref">next /a7         7         a href="+code=c7che_f76sh_unlocked" class="s"+code=0code=next" class="sref">next /a7o"sref">f7    return  a href="+cod7=old"76cache.c#L155" id/oL155" class="line7 f="net/s7k" class="sref">write_un7ock /76             ad /a> * a hrefmutex" class="line" namcs   a href="+code=cachea>;protery_again.c multiplo concurrencchche.c#L52" id/oL52" cloL162"> #L1447 ref">ch 7f="net/sunrpc/cache.c#L177" id76hash_t  a href="+code=cache==============================*>rsryers onat"+cofiles*/cache.c#L52" id/oL52" cloL162"> #L1447 che.c#L17unrpc/cache.c#L16oL148">711f="76href="ache.c#L42" id/againss="line" nam #L1447 7f">cach7 class="line" nam        for ( a href="+codspin" class="line" namcode=next" class="sref">next /a7 /oL159" 7che_init /a>(struct  a h7ef="+76                a href="+code=cachea>;        find  nam cache.c */cache.c#L52" id/oL52" cloL162"> #L1447 id/oL1_b7otw" class="sref">new /a7- voi76sh" class="srwhilesuad /a> * a hrefcp_time /a> < rpche_rpc/cache.c#L42" id/c class="line" ncche_.ad /a> * a hrefli.c_time /a> < li.cche_.ad /a> * a href nam class="line" n nam     !=="net/sunrpc/cache.c#cy class="line" nh=che_rpc/cache.c#L42" id/c nam class="line" n" namash_l"net/"net/#L52" id/oL52" cloL162"> #L1447bootw" cl7ss="sref">new nrpc/cache7c#L16770  93class="href="+code=setli.c"eref"cache_head" clali.c"eref"  a href="+code=cachcp_time /a> < rpche_rpc/cache.c#L42" id/c class="line" ncche_.ad /a> * a hrefli.c_time /a> < li.cche_.ad /a> * a href nam class="line" n nam    esf">new /a>, struct  a href="" nam class="line" nhref="" namash_e=ref="+code=cachli.c_time /a> < li.cche_>ode=next" class="sref">next /a7bclass="s7href="+coa71a>( a( a hre7="+co77=cache_is_expppppppprpc/cache.c#L42" id/reryer class="line" ncaryerche_  62" id/oL62" class="line" na2687b        7     spa4 class="comment7">/* 77sh_unlocked" class="s12piry_time" class="srli.c"piry_time /a> < li.c"piryche__ead /a> * a href nam class="line" n nam     ==href="+code=setcp_time /a> < rpche_rpc/cache.c#L42" id/c class="line" ncche_.ad /a> * a hrefli.c_time /a> < li.cche_.ad /a> * a href nam class="line" n nam    /#L52" id/oL52" cloL162"> #L1447b"sref">f7>  75 /a>               7     77lass="sref">old /a>;1 ref="+code=setli.c"mov _time /a> < li.c"mov   a h"net/sunrpc/cache.c#cp_time /a> < rpche_rpc/cache.c#L42" id/c class="line" ncche_.ad /a> * a hrefli.c_time /a> < li.cche_e=ref="+code=cach nam class="line" n nam    >code=next" class="sref">next /a7bf="net/s7nam  76 /a>     7     77             }il" class="sref">cache_detail 7b);1d77hash_lock" clt/suhref="+code=setcp_time /a> < rpche_rpc/cache.c#L42" id/c class="line" ncche_.ad /a> * a hrefli.c_time /a> < li.cche_.ad /a> * a href nam class="line" n nam    fiid"net/sunrpc/cache.c#cy class="line" nh=che_rpc/cache.c#L42" id/c nam class="line" n" namash_  62" id/oL62" class="line" na2687bche.c#L17  return  a href="+code=7tmp" 77href="+code=test_and_ ( a href="+codspin"c/ache.c#L16oL148"> 1spin"c/ache  a h"net/sunrpc/cache.c#" nam" class="line" namcode=next" class="sref">next /a7by /a>)1<70" class="line" nam  77                     ad /a> * a hrefmutex"c/ache.c#L16oL148"> 1mutex"c/ache  a h"net/sunrpc/cache.c#in  at" class="sref"in  ache_rpc/cache.c#L42" id/p_mutexss="line" namcode=next" class="sref">next /a7b/oL159" 7 /a>-> a href="+code=7hash_77                     href="+code=setBUG_ONss="line" namcode=next" class="sref">next /a7bid/oL1_b7L81" id/oL81" class="lin7e" na77/cache.c#L121" id/oL1"+code=0code=next" class="sref">next /a7>/* Didn&7#39;t find anything, ins7ert a780  93}il" class="sref">cache_detail 7>class="s7 =  a href="+code=detail7" cla78m  93 /a>         a cc class="line" nccche_ ==href="+code=setcontainer_ofline" nam * a hrefli.c_time /a> < li.cche_.ad /a> * a href nam class="line" n nam    esf">new /a>, struct  a href="cache.c class="line" nhref="cache.c  a e=ref="+code=cachc class="line" ncche_.ad /a> * a hrefli.c_time /a> < li.cche_>code=next" class="sref">next /a7>        74">  84 /a>        if (!7 a hr78sh_unlocked" href="+code=setBUG_ONss="line" nam * a hrefreryer class="line" ncaryerche_ code=next" class="sref">next /a7>"sref">f7net/sunrpc/cache.c#L85" 7id/oL78lass="sref">ot/suhref="+code=setcp_time /a> < rpche_rpc/cache.c#L42" id/offsec class="line" noffsecche_fiid0>ode=next" class="sref">next /a7>f="net/s7s="comment">/* must full7y ini78             e_is_exp unrpc/cache.c#cc class="line" nccche_rpc/cache.c#L42" id/rsryer9 /a>         a rsryer9 cla++code=next" class="sref">next /a7>);1  87 /a> spa4 class="co7mment78hash_lock" clad /a> * a hrefspin"c/ache.c#L16oL148"> 1spin"c/ache  a h"net/sunrpc/cache.c#" nam" class="line" namcode=next" class="sref">next /a7"="line" 7oL88">  88 /a> spa4 clas7s="co78ref="+code=expiry" class="sref">exp7>y /a>)1<7ss="comment">         */7 /spa78a>        fort/suhref="+code=setcp_time /a> < rpche_rpc/cache.c#L42" id/offsec class="line" noffsecche_fiid0l"net/"net/ n2sunrp12ass="lite.c"t_request" class="te.c"t_r  a href="+code=cachf="+code=head" class="sref">head /a>);1  49 /a>         a href="+co " 62" id/oL62" class="line" na2687>/oL159" 7="sref">cache_init /a>( 7a hre78                     href="+code=seterr class="line" nerrche_ ==-href="+code=setEAGAINss="line" nam #L1447>id/oL1_b7 91 /a>         a href="7+code78/cache.c#L121" id/oL1 ref="+code=setspin" class="line" namcode=next" class="sref">next /a7a>( a hre7f="+code=new" class="sre7f">ne790  93class="s unrpc/cache.c#li.c"mov _time /a> < li.c"mov   a h"net/sunrpc/cache.c#cp_time /a> < rpche_rpc/cache.c#L42" id/c class="line" ncche_.ad /a> * a hrefli.c_time /a> < li.cche_e="net/sunrpc/cache.c#cc class="line" nccche_rpc/cache.c#L42" id/c class="line" ncche_.ad /a> * a hrefli.c_time /a> < li.cche_>code=next" class="sref">next /a7aclass="s7c#L93" id/oL93" class="l7ine" 79=cache_is_expppppppplad /a> * a hrefspin"c/ache.c#L16oL148"> 1spin"c/ache  a h"net/sunrpc/cache.c#" nam" class="line" namcode=next" class="sref">next /a7a        74" class="line" nam  79sh_unlocked" }u#L16 62" id/oL62" class="line" na2687a        75" class="line" nam  79lass="sref">old /a>;1t/suhref="+code=setcp_time /a> < rpche_rpc/cache.c#L42" id/offsec class="line" noffsecche_f+_time" class="srhounc class="line" nhounc cla n cacache.c#L48" id/cc class="line" nccche_rpc/cache.c#L42" id/lenline" namode=next" class="sref">next /a75pa4 clas7ef="+code=head" class="s7ref">79             e_is_expd_"sref"href="+code=sethounc class="line" nhounc claficache.c#L48" id/cc class="line" nccche_rpc/cache.c#L42" id/lenline" nam < rpche_rpc/cache.c#L42" id/offsec class="line" noffsecche_code=next" class="sref">next /a75);1 !=  a href="+code=NU7LL" c79hash_lock" cl="net/suhref="+code=seterr class="line" nerrche_ ==-href="+code=setEFAULTss="line" namnext /a75="line" 7de=next" class="sref">ne7xt /a79href="+code=test_and_t/suhref="+code=sethopy_to_user class="line" nhopy_to_user  a href="+code=cachbufline" namdetail /a>-> a h7ref="79                             gotooeconds_since_boouc class="line" noucche_code=next" class="sref">next /a75/oL159" 7             if ( a href7="+co79                     href="+code=setcp_time /a> < rpche_rpc/cache.c#L42" id/offsec class="line" noffsecche_f+==href="+code=setcounc class="line" nhounc clacode=next" class="sref">next /a75id/oL1_b7         * a href="+code7=hp" 79/cache.c#L121" id/oL1t/suhref="+code=setcp_time /a> < rpche_rpc/cache.c#L42" id/offsec class="line" noffsecche_fpc/cicache.c#L48" id/cc class="line" nccche_rpc/cache.c#L42" id/lenline" namtmp /a8->800  93class="s        href="+code=setcp_time /a> < rpche_rpc/cache.c#L42" id/offsec class="line" noffsecche_f==0code=next" class="sref">next /a8e1="+code8t#L93" id/oL93" class="l8etail80=cache_is_exppppppppl        href="+code=setspin" class="line" namcode=next" class="sref">next /a8 2ref="+c8d" class="line" namlast_refresli.c"mov _time /a> < li.c"mov   a h"net/sunrpc/cache.c#cp_time /a> < rpche_rpc/cache.c#L42" id/c class="line" ncche_.ad /a> * a hrefli.c_time /a> < li.cche_e="net/sunrpc/cache.c#cc class="line" nccche_rpc/cache.c#L42" id/c class="line" ncche_.ad /a> * a hrefli.c_time /a> < li.cche_>code=next" class="sref">next /a8 3ref="+c8d" class="line" nam 80lass="sref">old /a>;1 * a hrefspin"c/ache.c#L16oL148"> 1spin"c/ache  a h"net/sunrpc/cache.c#" nam" class="line" namcode=next" class="sref">next /a8ref">cach8_get /a>( a href="+code=8mp" c80             locked" }il" class="sref">cache_detail 8r5f">cach8_a> !=  a href="+code=NU8     80hash_lock" cl="net/suhref="+code=seterr class="line" nerrche_ ==0code=next" class="sref">next /a8e6f">cach8_e=next" class="sref">ne8s="sr80href="+code=t}il" class="sref">cache_detail 8r7f">cach8_ef">detail /a>-> a h8che_p80      econds_since_boouc class="line" noucche_:#L52" id/oL52" cloL162"> #L1448e8f">cach8_            if ( a href8 /a>;80y_time /a> = t/suhref="+code=setcp_time /a> < rpche_rpc/cache.c#L42" id/offsec class="line" noffsecche_fiid0> 62" id/oL62" class="line" na2688e9f">cach8_        * a href="+code8nam;        relea16 rq */cache.c#L52" id/oL52" cloL162"> #L1448 = * a hr8f="+code=head" class="sr8f">he810  93class="s unrpc/cache.c#spin" class="line" namcode=next" class="sref">next /a8 1="+code8nam 113 /a>    8   * 81=cache_is_expppppppplad /a> * a hrefcc class="line" nccche_rpc/cache.c#L42" id/rsryer9 /a>         a rsryer9 cla--code=next" class="sref">next /a8 2ref="+c8e=new" class="sref">new 8a>;1<81sh_unlocked" class="st/suhref="+code=setcc class="line" nccche_rpc/cache.c#L42" id/rsryer9 /a>         a rsryer9 clafiid0l"net/"net/ode=next" class="sref">next /a8 3ref="+c8href="net/sunrpc/cache.c8L115"81lass="sref">old /a>;11111n2sunrp12ass="lite.c"t_request" class="te.c"t_r  a href="+code=cachf="+code=head" class="sref">head /a>);1  49 /a>         a href="+co " 62de=next" class="sref">next /a8 ef">cach8a>);1 < li.c"efl  a h"net/sunrpc/cache.c#cc class="line" nccche_rpc/cache.c#L42" id/c class="line" ncche_.ad /a> * a hrefli.c_time /a> < li.cche_>code=next" class="sref">next /a8h5f">cach8">detail /a>-> a href8"+cod81hash_lock" cl="net/suclass="s unrpc/cache.c#spin"c/ache.c#L16oL148"> 1spin"c/ache  a h"net/sunrpc/cache.c#" nam" class="line" namcode=next" class="sref">next /a8h6f">cach88" id/oL118" class="line8 nam<81href="+code=test_and_"sref">oeconds_since_bohref="puc class="line" nhref="puc  a href="+code=cachcc class="line" nccche_rpc/cache.c#L42" id/pcemt" class="sref"pcem cla, econds_since_bohy class="line" nh=che_>code=next" class="sref">next /a8h7f">cach8href="+code=freeme" clas8="sre81                             econds_since_bokfree class="line" nkfree  a href="+code=cachcc class="line" nccche_rpc/cache.c#L42" id/bufline" namcode=next" class="sref">next /a8h8f">cach8f">detail /a>);1code=next" class="sref">next /a8h9f">cach8ef">new /a>;1next /a8 /a>( a h8ef="+code=sunrpc_cache_l8okup"820  93class="s        href="+code=setspin"c/ache.c#L16oL148"> 1spin"c/ache  a h"net/sunrpc/cache.c#" nam" class="line" namcode=next" class="sref">next /a8 1="+code8123"> 123 /a>1  93}il" class="sref">cache_detail 8 ref="+co824"> 124 /a>1 * a href="+code=8etail82lass="sref">old /a>;1gotooeconds_since_boagainss="line" namnext /a8 ef">cach8=cache_head" class="sref8>cach82             ad /a> * a hrefmutex"c/ache.c#L16oL148"> 1mutex"c/ache  a h"net/sunrpc/cache.c#in  at" class="sref"in  ache_rpc/cache.c#L42" id/p_mutexss="line" namcode=next" class="sref">next /a8 5f">cach8a>);1next /a8 6f">cach8_t" class="sref">time_t 8a>  a82L118"}il" class="sref">cache_detail 8 7f">cach8 href="net/sunrpc/cache.8#L128821 830 /a828ash_f"8" clhref="+code=setssize_c class="line" nssize_cche__time" class="srhref="do"downcal=cache_head" clahref="+o"downcal=  a hchardead /a> * a hrefkaddr class="line" nkaddr cla, con.c chardref="+code=cach__user class="line" n__userche_head /a> * a hrefbufline" namcach8a>-> a href="+code=la8t_ref82/cache.c#L121" id/oL13class="s        href="+code=setsize_c class="line" nsize_cche__time" class="srhounc class="line" nhounc claesf">new /a>, struct  a href="+ctai=cache_head" clahref="+ctai=che_head /a> * a hrefcy class="line" nh=che_>ode=next" class="sref">next /a8 href="+c8de=smp_wmb" class="sref"8smp_w83148">62" id/oL62" class="line" na2688 1="+code8ACHE_VALID" class="sref"8CACHE83m  93 /a>         a ssize_c class="line" nssize_cche__time" class="srrec class="line" nrecche_code=next" class="sref">next /a8 ref="+co8 /a>}1cache_head /a> * a h8ef="+83lass="sref">ot/suhref="+code=sethounc class="line" nhounc clafiid0>ode=next" class="sref">next /a8fef">cach8nrpc/cache.c#L136" id/oL836" c83             e_is_exp"+code=-href="+code=setEINVALss="line" namnext /a8 5f">cach8                 struct 8a hre83hash_lock" clt/suhref="+code=sethopy_from_user class="line" nhopy_from_user  a href="+code=cachkaddr class="line" nkaddr cla, ref="+code=cachbufline" namcach8 138 /a>       8if ( 83href="+code=test_and_"+code=-href="+code=setEFAULTss="line" namnext /a8f7f">cach8ode=flags" class="sref">8lags 83a>        for ( a href="+codkaddr class="line" nkaddr cla[href="+code=sethounc class="line" nhounc cla]fica  a href="+cf">ingt>'\0'cache.ccode=next" class="sref">next /a8f8       89" class="line" nam 1838cache_is_exptime" class="srrec class="line" nrecche_ ==href="+code=setcy class="line" nh=che_rpc/cache.c#L42" id/href="parsm class="line" nhref="parsm  a href="+code=cachcy class="line" nh=che_e=ref="+code=cachkaddr class="line" nkaddr cla, ref="+code=cachhounc class="line" nhounc cla code=next" class="sref">next /a8f9f">cach8 /a>( a href="+code=deta8l" cl83sh" class="srLfsun2sunrp12ass="lirec class="line" nrecche_"                a href="+code=8cache.c#L842" id/oL142" class="lin8" nam840  93class="s unrpc/cache.c#rec class="line" nrecche_ ==href="+code=setcounc class="line" nhounc clacode=next" class="sref">next /a8c="+code=8ef">cache_head /a> * a h8ef="+84m  93"+code=new" class="srerec class="line" nrecche_code=next" class="sref">next /a8c nam(struct  a href="+c8de=ca84sh_unail" class="sref">cache_detail 8c105" cla8f="+code=detail" class="8ref">84cache.c#L155" id/oL155" class="line8cef">cach8/oL145" class="line" nam8/oL14844d/oL128" clhref="+code=setssize_c class="line" nssize_cche__time" class="srhref="slow"downcal=cache_head" clahref="slow"downcal=  a hcon.c chardref="+code=cach__user class="line" n__userche_head /a> * a hrefbufline" namch 8hash /a>)1new /a>, struct  a href="+ctai=cache_head" clahref="+ctai=che_head /a> * a hrefcy class="line" nh=che_>ode=next" class="sref">next /a8c6f">cach8* If 'old' is no8 VALI846h" c62" id/oL62" class="line" na2688c7f">cach8rpc/cache.c#L149" id/oL189" cl84             128" clchardref="+code=cachwrite_bufline" nam #L1448aoL130" c8class="line" namnext /a8c9       8ef="+code=cache_head" cl8ss="s84 1et/il" class="sref">cache_detail 8 class="l8ne" nam 152 /a>8     85148"> 11f="73t/suhref="+code=sethounc class="line" nhounc clafpc/cicsizeofuhref="+code=setwrite_bufline" namtmp /a>;1next /a8  namcode=next" class="sref">next /a8="sref">f8ags /a>)) {1oeconds_since_borec class="line" nrecche_ ==href="+code=setcref="do"downcal=cache_head" clahref="+o"downcal=  a hhref="+code=setwrite_bufline" namcode=next" class="sref">next /a8=ef">cach85"> 155 /a>             8   a 85             ad /a> * a hrefmutex"c/ache.c#L16oL148"> 1mutex"c/ache  a h"net/sunrpc/cache.c#" nam"io_mutexss="line" namcode=next" class="sref">next /a8=ref">ch 8="+code=test_bit" class=8sref"85hash_econds_since_boouc class="line" noucche_:#L52" id/oL52" cloL162"> #L1448 che.c#L18am 157 /a>     8     85href="+code=t"+code=new" class="srerec class="line" nrecche_code=next" class="sref">next /a8 7f">cach8ss="line" nam 188 /a>85     ail" class="sref">cache_detail 8 oL130" c8lass="line" nam8159 /85     2" id/oL62" class="line" na2688 9       8+code=new" class="sref">8ew /a85sh" cf"8" clhref="+code=setssize_c class="line" nssize_cche__time" class="srhref="downcal=cache_head" clahref="+oa href=cac class="line" ndcacche_rpc/cache.c#L42"a> 842iline" nhunrpc=code=next" clasine" nhunrpc class="line" nh=che_mappngche_.ad /a> * a mappngcc/cache.c#L48cref">ch 8hash /a>)1 * a hrefbufline" namch 8hash /a>)1new /a>, struct  a href="+ctai=cache_head" clahref="+ctai=che_head /a> * a hrefcy class="line" nh=che_>ode=next" class="sref">next /a8c6f">cach8* If 'oldef="+code8c7che_f76sh_unlocked" cl8ss="s8+code=e" na2688c7f">cach8rpc/cache.c#L href="+c8d7=old"76cache.c#L155" i8/oL1586, struct  a href="piry_time /a> <pagc=code=next" clapagc class="line" nh=che_pagc=code=next" clapagc cla>next /a8 7f">cach8ss="line" namf">write_8n7ock /76             ad8/a> *8a hrefmutex" cddr class="line" nkaddr cla, con.c chardref="+code>next /a8 7f">cach8ss="line" namfit" class177" id76hash_t  a href=8+code86 hrefspin"c/ache.c#L16oL148">ize_cche__time" class="srrec class="line" nrecche_ ==-href="+code=setEINVALss="line" namnext /a8 7f">cach8ss="line" namf7 /a>    >711f="76href="ache.c#L48" id/86s="sref">exp7>y /a>)1<7ss="comment"8 nam        for (8a hre86+code=setcp_time /a> < rpche_nc clafpc/cicsizeofuhref="+code=setw/a> < rpche_PAGE_/sunrpSIZEafpc/cicsizeofuPAGE_/sunrpSIZEref">next /a8c6f">cach8* If 'oldemnext /a8 7f">cach8ss="line" namfss="sref"a7- voi76sh" class="srwh8lesua86ache_detail 8 class="l8ne" nam  93cl8ss="h8ef="+code=setlry_time /a> <pagc=code=next" clapagc clasime /a> < filpchnd_or_creclaspagc=code=next" clachnd_or_creclaspagcte_bufline" nam * a mappngcc/cace.c#fline" namnext /a8=ref">ch 8="+code=test_>( a( a h8e7="+co77=cache_is_exppp8ppppr8c/cache.c#L42" class="line" nrecchpagc=code=next" clapagc cla>next /a8c6f">cach8* If 'oldss="comme8t7">/* 77sh_unlocked" cl8ss="s82piry_time" class="srl class="line" noucche_cc cha#L52" id/oL52" cloc chacode>next /a8 7f">cach8ss="line" nam         8 7     77lass="sref">old8/a>;187 class="line8cef">cach8/oL145" class76 /a>   8 7     77             }i8" cla87 hrefmutex"c/ache.c#L16oL148dr cla, con.c chardref="+codesime /a> < filpkmapa, con.c chardremapte_bufline" nam>next /a8 7f">cach8ss="line" nam it" classr7ef">d77hash_lock" clt/8uhref87 hrefspin"c/ache.c#L16oL148"e_ ==href="+code=setcref="do"downcal=cache_head" clahref="+o"downcal=  a hhref="+code=setwrite_bufline" namcode=next" class="sref">next /a8=ef">cach85"> 155 /a>  ref="+cod8=7tmp" 77href="+code=tes8_and_8( a href="+codfline" nam>next /a8 7f">cach8ss="line" nam nam  77               8     87"+codkaddr class="line" nkadcache.spagc=code=next" clacache.spagcte_bufline" nam>next /a8 7f">cach8ss="line" nam m>next /a8 7f">cach8ss="line" nam ss="sref"n7e" na77/cache.c#L121" 8d/oL18+code=0code=neec class="line" nrecche_code=next" class="sref">next /a8 7f">cach8ss="line" namything, i8s7ert a780  93}i8" cla8s="sres="line" noucche_cc cha#L52" id/oL52" cloc chacode"> #L1448 che.c#L18am 1code=deta8l7" cla78m  93 /8>    88" class="srerec class="line" nrecche_head" clahref="slow"downcal=  a hcon.c chardref="+code=c namcode=next" class="sref">next /a8=ef">cach85"> 155 /a>        if 8!7 a hr78sh_unlocked" hr8f="+c88cache_detail 8c105" cla8f="+code=detache.c#L858 7id/oL78lass="sref">ot/8uhref88 class="line8cef">cach8/oL145" class* must fu8l7y ini78             e_8s_exp88=setssize_c class="line" nssize_cche__time" class="srhref="slow"downcal=cache_headde=caow"downcal=  a hcon.cde=cache_rpc/cache.c#L42"a> 842iche_head /a> * a hreffilp_time /a> < filpche_e=chardref="+code=cach__usch__user class="line" n__userche_head /a> * a hrefbufline" namch 8hash /a>)1 *88ass="s="s        href="+code=setlass="line" nsize_cche__time" class="srhounc class="line" nhounc claesf">new /a>, struct  a hass="line" nhouff_cche_head /a> * a hrefppo9 /a>         a ppo9    esf">new /a>, struct  a he.c#L48cref">ch 8hash /a>)1oeconds_since_bohref="pu rhref="cache.c class="line" nhef="+ctai=che_head /a> * a hrefcy class="line" nh=che_>ode=next" class="sref">next /a8c6f">cach8* If 'old         8/7 /spa78a>        fort/8uhref8"+codee" na2688c7f">cach8rpc/cache.c#L_init /a>8 7a hre78               8     88e" class="srin  at" class="sref"in line" nhunrpc=code=next" clasine" nhunrpc class="line" nh=che_mappngche_.ad /a> * a mappngcc/catime /a> < filpche_rpc/cache.c#L42" id/f_pat2key /a>);1 * a pamappngcref">next /a8 7f">cach8ss="line" namyss="sref""7+code78/cache.c#L121" 8d/oL188, struct  a href="" nam class="line ache_head /a> * a hrefin  at" class="sref"in  ache_h==href="+code=setfilp_time /a> < filpche_rpc/cache.c#L42" id/f_pat2key /a>);1 * a hrefderef"cache_head" claderef"  a rpc/cache.c#L42" id/+_in  at" class="sref"+_in  ache_code=next" class="sref">next /a7 9       7+code=new" c8 class="s8e7f">ne790  93cl8ss="s89f="+code=setlry_time /a> <size_cche__time" class="srrec class="line" nrecche_ ==-href="+code=setEINVALss="line" namnext /a8c9       8ef="+code=cac3" class=8l7ine" 79=cache_is_exppp8ppppl8d /a> next /a8c9       8ef="+code=cac3     if 8974">  79sh_unlocked" }u8L16 689+code=seterr classs="line" nrecchrpc/cache.c#L42" id/href="parsm class="line" nhref="parsm  a href="+code=cachcy clas>next /a8c6f">cach8* If 'olde" nam  79lass="sref">old8/a>;18/suhref="+code=setcp_t class="line" noucche_code=next" class="sref">next /a8  nam79             e_8s_exp8_"srefnext /a8  namcs   a href="+code=cachenext /a8  nam * a mappngcc/cace namcode=next" class="sref">next /a8=ef">cach85"> 155 /a>  a>-> a8h7ref="79               8     89"+codkaddr class="line" nkad"> 1mutex"c/ache  a h"net/sunrpc/cache.c#in  at" class="sref"in  ache_rpc/cache.c#L42" id/p_mutexss="line" namcode=next" class="sref">next /a8 5f">cach8a>);1 #L1448 che.c#L18am 1href="+co8e7=hp" 79/cache.c#L121" 8d/oL189code=0code=neec class="line" nrecche_code=next" class="sref">next /a8 7f">cach8ss="line" na9ref">tmp 9a8->800  93cl9ss="s9      _detail 8c105" cla8f="+code=det93" class=9l8etail80=cache_is_exppp9ppppl90 /a> next /a8c9       8ef="+code=ca9e" namnext /a8 5f">cach8a>);1 80lass="sref">old9/a>;190 class="line8cef">cach8/oL145" clas9ref="+cod9=8mp" c80             lo9ked" 90=setssize_c unsigned class="line" nerrchode=caco+oa href=cac class="linco+oche_rpc/cache.c#L42"a> 842iche_head /a> * a hreffilp_time /a> < filpche_e=chardref="+code=cach__u         a ppo9 o+o_tabe_head /a> * a hr o+o_tabe_lp_time /a> < filpwa_r  a href="+codewa_rsref he.c#L48cref">ch 8hash /a>)1ode=next" class="sref">next /a8c6f">cach8* If 'ol9s="sref">9e8s="sr80href="+code=t}i9" cla90="line" na2688c7f">cach8rpc/cache.c#9a>-> a9h8che_p80      econds_si9ce_bo90"+codkaddr clunsigned class="line" nerrchmas/ache  a h"net/suas/ref">next /a8 7f">cach8ss="line" na9r8-> a9h7="+co79               9uhref90e" class="srin  at" class="sref"in "+code=c="caryer  a lead /a> * a hrefcp_time /a> < rpche_ ==href="+code=setfilp_time /a> < filpche_rpc/cache.c#L42" id/private_data /a>         a private_datache_code=next" class="sref">next /a7 7f">cach7ss="line" na9href="+co9e8namoeconds_since_boc cs="line" nh=che_>code=next" classcsref">next /a7 oL130" c7lass="line" 9" class="9r8f">he810  93cl9ss="s91href="+code=7oclass="s7ass="line" n9113 /a>  9 8   * 81=cache_is_exppp9ppppl91   a ssize_c class="line" ns o+o_wa_r  a href="+code o+o_wa_rche_rfline" namnext /a8 5f">cach8a>);1ne9 8a>;1<81sh_unlocked" cl9ss="s91href="+code=8f105" cla8ef">cache_he9rpc/cache9c8L115"81lass="sref">old9/a>;19111n2sunrp12as>;proteryed by " nam"io_malwaymallow de=ca" cloL162"> #L1448aoL130" c8class="line"9"net/sunr9c8cache81             e_9s_exp91 hrefmutex"c/ache.c#L16oL148mas/ache  a h"net/suas/ref"time /a> < filpPOLL_OUhe_code=next" clPOLL_OUhref"t|me /a> < filpPOLLWRNORMe_code=next" clPOLLWRNORMref">next /a7 oL130" c7lass="line" 9"="+code=9f8"+cod81hash_lock" cl="9et/su9lass="next /a7 oL130" c7lass="line" 9"="sref">9e8 nam<81href="+code=tes9_and_9sref">oeconds_ class="line" nrecche==href="+code=setfilp_>next /a8c6f">cach8* If 'ol9reeme" cl9s8="sre81               9     9       econds_since_boec class="line" nrecchmas/ache  a h"net/suas/ref">next /a8 7f">cach8ss="line" na9);1 <sspin" cla  a h"net/sunrpc/cache.c#" nam" class="line" namcode=next" class="sref">next /a8 1="+code8nam9rpc_cache9l8okup"820  93cl9ss="s92href="+code=7oclass="s7ass="line" n91  93}i9" cla9s="sref">cachefore /a> < rpche_ncode=next" classcsref"y class="line" nh=che_rpc/cache.c#L42" id/c class="line" ncche_.ad /a> * a hrefli.c_ti; class="line" nh=che_rcode=next" classcsref"line" namcode=next" class="sref#cy class="line" nh=che_rpc/cache.c#L42" id/c nam class="line" n" namash_l"net/"net/#L52" id/oL5>next /a8 1="+code8nam9rsref">ne9e8/sunr82sh_unlocked" t/9uhref92piry_time" class="="line" nh=che_rcode=next" classcsref"time /a> < filplali.c"eref"  a href="+code=cachcp_time /a> < rpche_rcode=next" classcsref"line" namcode=next" class="srefass="line" n nam    esf">new /a>, struct  a href="" nam class="line" nhref="" namash_e=ref="+code=cachli.c_time /a> < li.cche_>ode=next" class="sref">>next /a8c6f">cach8* If 'ol9ref="+cod9=8etail82lass="sref">old9/a>;19otooeconds_since_boagaclasss="line" nrecchrcode=next" classcsref"line" nam < filpPOLL    "            POLL  ref"t|me /a> < filpPOLLRDNORMe_code=next" clPOLLRDNORM/oL5>next /a8 1="+code8nam9r="+code=9c8cache82hash_lock" cl"+9ode=n92ef="+code=seterr clase_bohrefb" ck>next /a8 1="+code8nam9r="sref">9 8a>  a82L118"}il" class9"sref92ref">oeconds_since_bo_detail 8c105" cla8f="+code=det9nrpc/cach9.8#L128821code=next" class="sref">next /a8 1="+code8123"> 123 /a9mnext /a8 7f">cach8ss="line" na9f="+code=9a8t_ref82/cache.c#L121" 9d/oL19class=_detail 8c105" cla8f="+code=det9lass="sre9"8smp_w83148">62" id/oL69" cla93href="+code=7oclass="s7ass="line" n9lass="sre9"8CACHE83m  93 /9>    9    a size_c class="line" nerrchode=caioctctai=che_head /a> * a ioctcche_rpc/cache.c#L42"a> 842i ache_head /a> * a hrefin  at" class="sref"in  ac_head /a> * a hreft  a href="" nam class="lineche_head /a> * a hreffilp_time /a> < filpche_e=chardref="+code=cach__"+code=7oclass="s7ass="line" n9lsref">ne9p8/cach83is en          9     93ss="sref">last_refresli.c"mounsigned class="line" nerrchompc/cache.c#L42" imaddr clunsigned long class="sref"in lrche_.ad /a> * a lrcach__"+code=7oclass="s7ass="line" n9lef="+cod9h8ef="+83lass="sref">ot/9uhref93 href=ad /a> * a hrefspin"c/ref="cache.c class="line" nhef="+ctai=che_head /a> * a hrefcy class="line" nh=che_>ode=next" class="sref">next /a8c6f">cach8* If 'ol9L136" id/9L836" c83             e_9s_exp9+code=e" na2687b        7     spa4 cl9    struc9 8a hre83hash_lock" clt/9uhref9"+code=sethopy_lass="line" nerrchla -=href="+code=setcp_timef">next /a8e6f">cach8_e=next" cla9 /a>     9 8if ( 83href="+code=tes9_and_9+code=-href="+n  at" class="sref"in "+code=c="caryer  a lead /a> * a hrefcp_time /a> < rpche_ ==href="+code=setfilp_time /a> < filpche_rpc/cache.c#L42" id/private_data /a>         a private_datache_code=next" class="sref">next /a7 7f">cach7ss="line" na9ass="sref9>8lags 83a>        for (9a hre937ode=-href="+n  at" class="sref"in "+codef="" namash_lef">oeconds_since_boc cs="line" nh=che_>code=next" classcsref">next /a7 oL130" c7lass="line" 9e" nam 1838cache_is_expti9e" cl93"line" na2688 9       8+code=new" c9"+code=de9a8l" cl83sh" class="srLf9un2su9rp12ass="lirec clas="line" nerrchompc/cache.c#L42" imaddr #cy s="line" nerrchFIONREADode=next" classFIONREADref"t||_request" class="e==href="+code=setfilp_>next /a8c6f">cach8* If 'ol9 class="l9n8" nam840  93cl9ss="s9unrpc/cache.c#rec clasEINVALss="line" namnext /a8 5f">cach8            9d /a> * a9h8ef="+84m  93"+9ode=n94 /a> next /a8c9       8ef="+code=ca9 a href="9c8de=ca84sh_unail" class9"sref94e=setmutex" class="line" namsspin" cla  a h"net/sunrpc/cache.c#" nam" class="line" namcode=next" class="sref">next /a8 1="+code8nam9il" class9"8ref">84cache.c#L155" i9/oL159" class="line8cef">cach8/oL145" clas9="line" n9m8/oL14844d/oL128" clhre9="+co94 hrefmutex"c/a;proteryed by " nam"io_monly chnd the etcgthsEImaining ioteurrnam =cachc ,loL162"> #L1448aoL130" c8class="line"9href="net9s8nrpc/84hash_lock" cl="9et/su9lass="a;proteryed by " nam"i#rec clas_mor the etcgthsof the truc =cachc clL162"> #L1448aoL130" c8class="line"9h/a>     9o8 VALI846h" c62" id/oL69" cla9s="lina;proteryed by " nam"i#rec clas_cloL162"> #L1448aoL130" c8class="line"9149" id/o9189" cl84             129" clc9ardref="+code=fore /a> < rpche_ncode=next" classcsref"y class="line" nh=che_rpc/cache.c#L42" id/c class="line" ncche_.ad /a> * a hrefli.c_ti; class="line" nh=che_rcode=next" classcsref"line" namcode=next" class="sref#cy class="line" nh=che_rpc/cache.c#L42" id/c nam class="line" n" namash_l"net/"net/#L52" id/oL5>next /a8 1="+code8nam9nam < filplali.c"eref"  a href="+code=cachcp_time /a> < rpche_rcode=next" classcsref"line" namcode=next" class="srefass="line" n nam    esf">new /a>, struct  a href="" nam class="line" nhref="" namash_e=ref="+code=cachli.c_time /a> < li.cche_>ode=next" class="sref">>next /a8c6f">cach8* If 'ol9he_head" 9l8ss="s84 1et/il" class=9sref"94suhref="+code=setcp_time ss="line" nrecchrcode=next" classcsref"line" nam 152 /9>8     85148"> 11f="73t/9uhref95      href="+code=setspin"c/an  at" class="sref"in "+code=cachc ryer  a lead /a> * a hrachc clc cs="line" nh=che_>aryer  a lead /a>+codesi" na2687b        7     spa4 cl92 /a> * a9r8f="ne85=cache_is_exppp9ppppl9otooeconds_since_boouccccccccccccccccc="line" nh=che_>onefcner_oe=ref="+code=cac>onefcner_oetime /a> < rpche_rcode=next" classcsref" href="" nam class="line" nhre=cachc ryer  a lead /a> * a hrachc clc ime /a> < li.cd /a> * a hrefli.c_ti">next /a8 1="+code8nam9_bit" cla9s8"sref85sh_unlocked" hr9f="+c95ss="sref">last_refresli.c"moss="line" nerrchla -=href="+code=setcp_timef="line" nh=che_>aryer  a lead /a>+codeline" nam < rpche_rpc/cache.c#L42" id/offsec class="line" noffsecche_code=next" class="sref">next /a75);1 !=  a hr9a href="n9t8sunrp85lass="sref">oec9nds_s95 href=ad /a> * a hrefspin"c/ab" ck>next /a8 1="+code8nam9         9 8   a 85             ad9/a> *95 hrefmutex"c/////////_detail 8c105" cla8f="+code=det9bit" clas9=8sref"85hash_econds_sin9e_boo95 hrefspin"c/ache.c#L16oL148">spinin"c/ache  a h"net/sunrpc/cache.c#" nam" class="line" namcode=next" class="sref">next /a8 1="+code8123"> 123 /a957 /a>   9 8     85href="+code=t"+9ode=n95s="sref">exp7>y /a>)1<7ss="comment"99188 /a>85     ail" class9"sref95rdref="+code=ec class="line" nrecchputserche_head /a> * a putserchtime /a> < rpche_la -=href="+code=setcp_ti, (_lass="line" nerrchuserche_head /a> * a hrefbufline")class="sref"in lrche_.ad /a> * a lrcach_">next /a8 1="+code8123"> 123 /a95am8159 /85     2" id/oL629 clas9="line_detail 8c105" cla8f="+code=det9be_head" 9>8ew /a85sh" cf"8" clhre9="+co95ache_detail 8 class="l8ne" nam 842i ache_head /a> * a hrefin  at" class="sref"in  ache_head /a> * a hrefin  at href="" nam class="lineche_head /a> * a hreffilp_time /a> < filpche_e=chardref="+code=cach__"+code=7oclass="s7ass="line" n9mode=next" class="sref">next /a8c6f">cach8* If 'ol9ef="+code9c7che_f76sh_unlocked" cl9ss="s9+code=e" na2688c7f">cach8rpc/cache.c#9 href="+c9d7=old"76cache.c#L155" i9/oL1596, struct  a href="piry_time /a> <"+code=c="caryer  a lead /a> * a hrefcp_time /a> < rpche_ ==href="+code=setfilp_time /a> < filpNULhe_code=next" clNULhref">next /a75);1 !=  a hr9f">write_9n7ock /76             ad9/a> *96"srefnext /a8  nam < rpche_rpc/cache.c#L42" id/c nam class="line" n" nowncaryer  a lead /aowncaref">>next /a8c6f">cach8* If 'ol9f7 /a>   9>711f="76href="ache.c#L49" id/96code=-href="+code=setEFAULTss="line" namnext /a75);1 !=  a hr9f/oL158">9"7  43 76a>        for (9a hre96"+codspin" class="line" nam < rpche_ ache_head /a> * a hrefin  at he /a> < filpche_e=chardref="+code=cach_">next /a8 1="+code8123"> 123 /a9em < rpche_che_rpc/cache.c#L42" id/f_pat2key /a>);1 * a hpamchecode=am" c s="line" nerrchFMODE_READode=next" classFMODE_READs="line" na2687b        7     spa4 cl9fss="sref9a7- voi76sh" class="srwh9lesua96 a href="+code=cachea>a> < rpche_ ==href="+code=setfilp_time /a> < filpkmalloc=href="+code=sekmallocche_rpite_bu /a> < rpche_ ==href="+code=setfilp_)c#fline" namnext /a8=ref">ch 8="+code=test9 nrpc/cac9e7c#L16770  93cl9ss="h97      href="+code=set class="line" nrecche==href="+code=setfilp_>next /a8c6f">cach8* If 'ol9>( a( a h9e7="+co77=cache_is_exppp9ppppr97tooeconds_since_booucccccccccEFAULTss="line" namnext /a8 7f">cach8ss="line" na9ss="comme9t7">/* 77sh_unlocked" cl9ss="s92piry_time" class="srl/a> < rpche_rpc/cache.c#L42" id/offsec class="line" noffsecche_code=next" class="sref"mef">next /a8e6f">cach8_e=next" cla9         9 7     77lass="sref">old9/a>;197 href=ad /a> * a href="line" nh=che_rpc/cache.c#L42" id/c class="line" ncche_.ad /a> * a hrefli.c_tiass="line" n namryerche_  62" id/oL62" class="lmef1>next /a8e6f">cach8_e=next" cla9 ">write_9 7     77             }i9" cla97 hrefmutex"c/////////class="sref"in ltomic_inc=href="+code=seltomic_incc#" nam" class="line" namrpc/cache.c#L42" id/c nam class="line" n" nsryer9 clafiid0l"net/"net/ode=nex">next /a8=ref">ch 8="+code=test9 it" clas9r7ef">d77hash_lock" clt/9uhref97ef="+code=seterr claslass="line" namsspin" cla  a h"net/sunrpc/cache.c#" nam" class="line" namcode=next" class="sref">next /a8 1="+code8nam9ref="+cod9=7tmp" 77href="+code=tes9_and_97code=-href="+code=sete /a> < filplali.adpc/cache.c#L42" lali.adpc#" nam" class="line" namrpc/cache.c#L42" id/c class="line" ncche_.ad /a> * a hrefli.c_tiass="line" n namche_>ode=next" class="sref"_uam"io_mutexss="line"rpc/cache.c#L42" id/c nam class="line" n" namash_l"net/"net/#L52" id/oL5">next /a8 1="+code8nam9r/oL158">9870">  77               9     97      econds_since_boche.c#L16oL148">spinin"c/ache  a h"net/sunrpc/cache.c#" nam" class="line" namcode=next" class="sref">next /a8 1="+code8123"> 123 /a9 m <che_rpc/cache.c#L42" id/private_data /a>         a private_datache_code=next" class="sref"time /a> < filprpc/cache.c#L42" id/c c>next /a8 1="+code8123"> 123 /a9ything, i9s7ert a780  93}i9" cla98      href="+EFAULTs">next /a8e6f">cach8_e=next" cla9code=deta9l7" cla78m  93 /9>    98" cla_detail 8c105" cla8f="+code=det9      if 9!7 a hr78sh_unlocked" hr9f="+c98href="+code=8f105" cla8ef">cache_he9che.c#L859 7id/oL78lass="sref">ot/9uhref98 classize_c class="line" nerrchode=ca=c id/o=code=next" claode=ca=c id/oche_rpc/cache.c#L42"a> 842i ache_head /a> * a hrefin  at" class="sref"in  ache_head /a> * a hrefin  at href="" nam class="lineche_head /a> * a hreffilp_time /a> < filpche_e=chardref="+code=cach__"+code=7oclass="s7ass="line" n9* must fu9l7y ini78             e_9s_exp98 hrefmutex"c///////////////// ref="cache.c class="line" nhef="+ctai=che_head /a> * a hrefcy class="line" nh=che_>ode=next" class="sref">next /a8c6f">cach8* If 'ol94 class="9o7mment78hash_lock" clad9/a> *98ass="e" na2687b        7     spa4 cl94ef="+cod9s7s="co78ref="+code=expi9y" cl98code=-href="+n  at" class="sref"in "+code=c="caryer  a lead /a> * a hrefcp_time /a> < rpche_ ==href="+code=setfilp_time /a> < filpche_rpc/cache.c#L42" id/private_data /a>         a private_datache_code=next" class="sref">next /a7 7f">cach7ss="line" na9         9/7 /spa78a>        fort/9uhref98c/cache.c#L48s8       8ass="line" n9_init /a>9 7a hre78               9     98+code=setcp_time /a> < rpche_e==href="+code=setfilp_>ne" na2687b        7     spa4 cl9yss="sref9"7+code78/cache.c#L121" 9d/oL198 a href="+code=cachea>a> < rpche_sspin" cla  a h"net/sunrpc/cache.c#" nam" class="line" namcode=next" class="sref">next /a8 1="+code8nam9 class="s9e7f">ne790  93cl9ss="s99      href="+code=set cla/a> < rpche_rpc/cache.c#L42" id/offsec class="line" noffsecche_code=next" class="sref">ne" na2687b        7     spa4 cl93" class=9l7ine" 79=cache_is_exppp9ppppl99tooeconds_since_booucccccccccn  at" class="sref"in "+codef="" namash_lef">oeconds_since_boc cs="line" nh=che_>code=next" classcsref">next /a7 oL130" c7lass="line" 93     if 9974">  79sh_unlocked" }u9L16 699ss="sref">last_refresli.c"mosfore /a> < rpche_ncode=next" classcsref"y class="line" nh=che_rpc/cache.c#L42" id/c class="line" ncche_.ad /a> * a hrefli.c_ti; class="line" nh=che_rcode=next" classcsref"line" namcode=next" class="sref#cy class="line" nh=che_rpc/cache.c#L42" id/c nam class="line" n" namash_l"net/"net/#L52" id/oL5>next /a8 1="+code8nam9e" nam  79lass="sref">old9/a>;19/suhref="+code=setcp_t"+code=cachea>a> < rpche_rcode=next" classcsref"time /a> < filplali.c"eref"  a href="+code=cachcp_time /a> < rpche_rcode=next" classcsref"line" namcode=next" class="srefass="line" n nam    esf">new /a>, struct  a href="" nam class="line" nhref="" namash_e=ref="+code=cachli.c_time /a> < li.cche_>ode=next" class="sref">>next /a8c6f">cach8* If 'ol9d" class=9s7ref">79             e_9s_exp99 hrefmutex"c///////////////// ode=set class="line" nrecchrcode=next" classcsref"line" nama> < rpche_ronefcner_oe=ref="+code=cac>onefcner_oetime /a> < rpche_rcode=next" classcsref" href="" nam class="line" nhre=cachc ryer  a lead /a> * a hrachc clc ime /a> < li.cd /a> * a hrefli.c_ti"" na2687b        7     spa4 cl9def="+cod9e7xt /a79href="+code=tes9_and_99ref">oeconds_since_bohref="pu rhhhhhhhhhhhhhhhhhhhhhham class="line" n" nsryer9 clafiid0l"net/"net/ode=nex-->next /a8 1="+code8nam9e        9h7ref="79               9     99      econds_since_booooooooooooooooooooooooob" ck>next /a8 1="+code8nam9if ( a hr9f7="+co79               9     99      econds_since_booooooooooooooooo_detail 8c105" cla8f="+code=det9href="+co9e7=hp" 79/cache.c#L121" 9d/oL199lass="s        href="+code=se/a> < rpche_rpc/cache.c#L42" id/offsec class="line" noffsecche_code=next" class="sref"mef">next /a8e6f">cach8_e=next" cla10ref">tmp 10ref"p" 79/cache.c#L121" 10ref>10reass="s        href="_de/pre>tmp77/be/5ef68846377ccc02370afd52fcd809fa526b_3/10ref>ext /a8e6f">cach8_e=next" cla10r1f">tmp 10r7ine" 79=cache_is_exppp10r7i>10rtooeconds_since_boouce /a> < filplali.dectai=che_head /alali.decc#" nam" class="line" namrpc/cache.c#L42" id/c class="line" ncche_.ad /a> * a hrefli.c_tiass="line" n namche_>ode=next" class="sref"">next /a8 1="+code8nam10r2f">tmp 10r74">  79sh_unlocked" }u10r74>10rpiry_time" class="srl/a> < rpche_>spinin"c/ache  a h"net/sunrpc/cache.c#" nam" class="line" namcode=next" class="sref">next /a8 1="+code8123"> 123 /a10r3f">tmp 10r75">  79lass="sref">old10r75>10r class="line8cef">cach8/oL145" clas10r4f">tmp 10r7ref">79             e_10r7r>10r hrefmutex"c/////////class="sref"in che_rpc/cache.c#L42" id/private_data /a>         a private_datache_code=next" class="sref"time /a> < filpNULhe_code=next" clNULhref">next /a75);1 !=  a hr10r5f">tmp 10r7LL" c79hash_lock" cl="10r7L>10ref="+code=seterr claslass="line" namkfre namash_e=ref="+kfre time /a> < rpche_e==href="+code=setfilp_>>next /a75);1 !=  a hr10r6f">tmp 10r7xt /a79href="+code=tes10r7x>10rs="sref">exp7>y /a>)1<7ss="comment"10r7f">tmp 10r7ref="79               10r7r>10r      econds_since_boche.c#L16oL148"rpc/cache.c#L42" id/c nam class="line" n" nacht_clo/o=code=next" claacht_clo/oref"time /a> < filpse>onds_since_booche__time" class=e>onds_since_booctime >>next /a75);1 !=  a hr10r8f">tmp 10r7="+co79               10r7=>10r      econds_since_boclass="sref"in ltomic_dec=href="+code=seltomic_decc#" nam" class="line" namrpc/cache.c#L42" id/c nam class="line" n" nsryer9 clafiid0l"net/"net/ode=nex">next /a8=ref">ch 8="+code=test10r9f">tmp 10r7=hp" 79/cache.c#L121" 10r7=>10rlass="s      _detail 8c105" cla8f="+code=det101ef">tmp 10r8f">he810  93cl10r8f>cl10L16ode=next"ry_time /a>le_gchtp8=next"ry_time /a>le_gchtp8next"ry_ /a> < rpche_rcodeache.c#L42" id/c nam class="line" n" nowncaryer  a lead /aowncaref">>next /a8=ref">ch 8="+code=test10r9f"1tmp 10r7in * 81=cache_is_exppp9pppin * 0L16ass="srerec class="lxt /a8e6f">cach8_e=next" cla10ref"1tmp 10r74";1<81sh_unlocked" cl9ss=4";1<0L16e_detail 8c105" cla8f="+code=detacheL16tmp 10r75"15"81lass="sref">old9/a>5"15"0L16ss="line8cef">cach8/oL145" clas10r4f"1tmp 10r7reche81             e_9s_ereche0L16fnext /a8  nam 842i achnhef="+ctai=che_head /a> * a hrefcy class="line" nh=che_>ode+ctai=che_head /a> * cy class="f="" nam class="line" nhre=cachde=che_head /a> * a hrefhde=cs="line" nh=che_>codead /a> * a hrefdch"" na2687b        7     spa4 cl9defL16tmp 10r7resre81               9   resre0L16ee" na2688c7f">cach8rpc/cache.c#L_inL16tmp 10r7="t/s81               9   ="t/s0L16lass="srin  at" class="sref"in "+code=c=" namash_lef">oeconds_since_boc cs="line" nh=che_>code=next" classcsref">next /a7 oL130" c7lass="line" 93  L16tmp 10r7=hunr81/cache.c#L121" 9d/o=hunr0L16ode=next"ry_time /a> <sspin" cla  a h"net/sunrpc/cache.c#" nam" class="line" namcode=next" class="sref">next /a8 1="+code8nam9rpc102tmp 10r8f"up"820  93cl9ss=f"up">f"upde=next"ry_time /a> <sspi.deccfor_e13"ref"  a href="+code=cachcpfor_e13"ref"   /a> < rpche_rcode=next" classcsref" href=class="line" nam * cy class="lass="line" n" namash_l"net/"net/#L52" id/oL5>nex/a> < li.cche_>ode=next" class="sref">>nex /a8 1="+code8nam9rpc102tmp 10r7insun82m  93}i9" cinsun>f"uconds_since_boouce /ass="line" nrecchrcode=next" classcsref"line" namf"usref">last_refresli.c"mosforet" class="sref"in "+code=cachc ryer  a lead /a> * a hrachc clc cs="line" nh=che_>aryer  a lead /a>+codesi" na < rpche_ronefcner_oe=ref="+code=cac>onefcner_oetime /a> < rpche_rcode=next" classcsref" href="" nam class="line" nhre=cachc ryer  a lead /a> * a hrachc clc ime /a> < li.cd /a> * a hrefli.c_ti"" nat /a8 1="+code8nam9rpc102tmp 10r75"ail82lass="sref">old9/a>5"ail>f"uef="+code=setcp_t"+code=caches="line" nerrchompc/r  a lead /a>+codeline" nam * a hrefintem#cy clasne" nh=che_>codead /a> * a hrefdch"" na2687b        7     spa4 cl9defL12tmp 10r7reach82             ad9/a>reach>f"ufmutex"c///////////////// ode=set clafcneinuet /a8 1="+code8nam9rpc102tmp 10r7LLche82hash_lock" cl"+9odeLLche>f"u+code=seterr clase_bohrefp_t"s="line" nerrchompc/r  a lead /a>+codeline" namneclas0a2687b        7     spa4 cl9defL12tmp 10r7xt  a82L118"}il" class9"srxt  a>f"u>oeconds_since_bohref="pu rhhhhhhhhhhfcneinuet /a8 1="+code8nam9rpc102tmp 10r7re128821 < filplali.dectai=che_head /alali.decc#" nam" class="line" namrpc//r  a lead /a>+codeline" nam * a hrefli.c_tiass="line" n namche_>ode=next" class="sref"">next /a8 1="+code8nam10r2f"2tmp 10r7=" /a828ash_f"8" clhre9="+=" /a>f"u  econds_since_booooooooooooo< rpche_>spinin"c/ache  a h"net/sunrpc/cache.c#" nam" class="line" namcode=next" class="sref">next /a8 1="+code8123"> 123 /a10r3f"2tmp 10r7=href82/cache.c#L121" 9d/o=href>f"u="s        href="+code=se/a> < rpche_rpc/a hracry_time /a>le_gchta hracry_ /a> < rpche_rcoder  a lead /a>+codeline" nam * a hrefintem#cy /a> < li.cd /a+ctai=che_head /a> * cy class="xt /a8 1="+code8123"> 123 /a10r3f"3tmp 10r8f"p_w83148">62" id/oL69" cf"p_w>f"p_"s        href="+code=se/a> < rpche_rpc/ namash_e=ref="+kfre time /a> < rpche_e==her  a lead /a>+codeline" nam 123 /a10r3f"3tmp 10r7inCHE83m  93 /9>  inCHE>f"pconds_since_booucccccccccn  a< rpche_rpc/ namash_e=ref="+kfre time /a> < rpche_e==her  a lead /a>+codelinext /a8 1="+code8123"> 123 /a10r3f"3tmp 10r74"ach83is en          9   4"ach>f"psref">last_refresli.c"mosforelass="t /a8 1="+code8123"> 123 /a10r3f"3tmp 10r75"="+83lass="sref">ot/9uhr5"="+>f"pef="+code=setcp_t"+coail 8c105" cla8f="+code=detacheL13tmp 10r7re" c83             e_9s_ere" c>f"pfmutex"c/ache.c#L16oL148mas/nin"c/ache  a h"net/sunrpc/cache.c#" nam" class="line" namcode=next" class="sref">next /a8 1="+code8123"> 123 /a10r3f"3tmp 10r7LLhre83hash_lock" clt/9uhrLLhre>f"p5_detail 8c105" cla8f="+code=detacheL13tmp 10r7xt ( 83href="+code=tes9_anxt ( >f"pref">exp7>y /a>)1<7ss="comment"10r7f"3tmp 10r7regs 83a>        for (9a hregs >f"p  ecooteryed by " nam"io_monl62"> #L1448aoL130" c8class="line"9149f"ptmp 10r7="> 1838cache_is_expti9e" ="> 1>f"p8 ecooteryed by " nam"io_mo * Support roueinese /a>text-based upche_s.62"> #L1448aoL130" c8class="line"9149f"ptmp 10r7=h cl83sh" class="srLf9un2=h cl>f"p9 ecooteryed by " nam"io_mo * Fields are separated by c clas.62"> #L1448aoL130" c8class="line"9149f"4tmp 10r8f"nam840  93cl9ss=f"nam>f"na ecooteryed by " nam"io_mo * Fields are either mangled to quote c cla tab new3">  slosh with slosh62"> #L1448aoL130" c8class="line"9149f"4tmp 10r7in="+84m  93"+9odein="+>f"n1 ecooteryed by " nam"io_mo * /a>48aexified with a lde=iote\x62"> #L1448aoL130" c8class="line"9149f"4tmp 10r74"=ca84sh_unail" class9"sr4"=ca>f"n2 ecooteryed by " nam"io_mo * Record is>terminated with new3"> .62"> #L1448aoL130" c8class="line"9149f"4tmp 10r75"f">84cache.c#L155" i9/oL5"f">>f"n3 ecooteryed by " nam"io_mo *62"> #L1448aoL130" c8class="line"9149f"4tmp 10r7reL14844d/oL128" clhre9="+reL14>f"n4 ecooteryed by " nam"io_mo *162"> #L1448aoL130" c8class="line"9149f"ntmp 10r7LLpc/84hash_lock" cl="9et/LLpc/>f"n"next /a7 oL130" c7lass="line" 9"="L14tmp 10r7xtALI846h" c62" id/oL69" cxtALI>f"nref">void.c class="line" qwordc/cache.c#L42" laliqwordc/canam" class*ine" nh=che_>arybpef="+code=setfilbpe#cy /as="line" nh=che_>aryc/cache.c#L42" idh__usch__lass*.c#L16oL148mas/ntr  a lead /a>+contr"" na2687b        7     spa4 cl9defL14tmp 10r7re cl84             129" cre cl>f"nee" na2688c7f">cach8rpc/cache.c#L_inL14tmp 10r7="5  848cache_is_expti9e" ="5  >f"n  econds_sinc_lass*.c#L16oL148mas/bef="+code=setfilbpsi" na ine" nh=che_>arybpef="+code=setfilbpe#cy t /a8 1="+code8123"> 123 /a10r3f"4tmp 10r7=h="s84 1et/il" class=9sre=h="s>f"nss="lirec clas="line" nerrchla -=href="+code=setcp_timef">neine" nh=che_>aryc/cache.c#L42" idh__usct /a8 1="+code8123"> 123 /a10r3f"5tmp 10r8f"   85148"> 11f="73t/9uhrf"   >f"   econds_sinc_lass< rpche_e==he  a lead /a>+cod_usct /a8 1="+code8123"> 123 /a10r3f"5tmp 10r7in"ne85=cache_is_exppp9pppin"ne>f"  next /a8c9       8ef="+code=ca9 a f" tmp 10r74"ref85sh_unlocked" hr9f="4"ref>f" e=seterr classs="ine" nerrchla -=href="+code=setcp_timef">< 0)elass="t /a8 1="+code8123"> 123 /a10r3f"5tmp 10r75"nrp85lass="sref">oec9nds5"nrp>f" ss="line8cef">cach8/oL145" clas10r4f"5tmp 10r7re a 85             ad9/a>re a >f" fmutex"c/achewhile ( < rpche_e==he  a lead /a>+cod_usc=*.c#L16oL148mas/ntr  a lead /a>+contr"" n++)=classc s="line" nerrchFMOD=href="+code=setcp_timef"a2687b        7     spa4 cl9defL15tmp 10r7LLef"85hash_econds_sin9e_bLLef">f" +code=seterr clase_boswitch < rpche_e==he  a lead /a>+cod_usc na2687b        7     spa4 cl9d cf"5tmp 10r7xt   85href="+code=t"+9odext   >f" >oeconds_since_bohrefcaseroteryed by " ntre_.a>' '62"> #LL1448 che.c#L18am 1href" tmp 10r7re/a>85     ail" class9"srre/a>>f"   econds_since_booooocaseroteryed by " ntre_.a>'\t'62"> #LL1448 che.c#L18am 1href" tmp 10r7="9 /85     2" id/oL629 cl="9 />f"   econds_since_booooocaseroteryed by " ntre_.a>'\n'62"> #LL1448 che.c#L18am 1href" tmp 10r7=h /a85sh" cf"8" clhre9="+=h /a>f" ="s        href="+codcaseroteryed by " ntre_.a>'\\'62"> #LL1448 che.c#L18am 1href"6tmp 10r8f"   76 href          9   f"   >f"  code=seterr clase_bohrefp_t"s="line" nerrchompc=href="+code=setcp_timef">>= 4 na2687b        7     spa4 cl9d cf"6tmp 10r7in /a761ash_lock" clt/9uhrin /a>f" conds_since_boouccccccccccccccccc="li*.c#L16oL148mas/bef="+code=setfilbpsi" ++na &teryed by " ntre_.a>'\\'62"> #Lt /a8 1="+code8123"> 123 /a10r3f"6tmp 10r74"e_f76sh_unlocked" cl9ss=4"e_f>f" sref">last_refresli.c"mosforecccc="li*.c#L16oL148mas/bef="+code=setfilbpsi" ++na &teryed by " ntre_.a>'0'62"> #L + ( < rpche_e==he  a lead /a>+cod_usc c s="l0300)>>6xt /a8 1="+code8123"> 123 /a10r3f"6tmp 10r75"ld"76cache.c#L155" i9/oL5"ld">f" ef="+code=setcp_t"+code=cachea>a> "li*.c#L16oL148mas/bef="+code=setfilbpsi" ++na &teryed by " ntre_.a>'0'62"> #L + ( < rpche_e==he  a lead /a>+cod_usc c s="l0070)>>3xt /a8 1="+code8123"> 123 /a10r3f"6tmp 10r7rek /76             ad9/a>rek />f" fmutex"c///////////////// ode=set cla*.c#L16oL148mas/bef="+code=setfilbpsi" ++na &teryed by " ntre_.a>'0'62"> #L + ( < rpche_e==he  a lead /a>+cod_usc c s="l0007)>>0xt /a8 1="+code8123"> 123 /a10r3f"6tmp 10r7LL id76hash_t  a href=9+coLL id>f" +code=seterr clase_bohrefp_t"ail 8c105" cla8f="+code=detacheL16tmp 10r7xtf="76href="ache.c#L49" ixtf=">f" >oeconds_since_bohref="pu rhhine" nerrchompc=href="+code=setcp_timef">-= 4t /a8 1="+code8123"> 123 /a10r3f"6tmp 10r7re43 76a>        for (9a hre43 >f"   econds_since_boooooooooooook>next /a8 1="+code8nam9if f" tmp 10r7="="+76               9a h="="+>f"   econds_since_booooodefaultL1448 che.c#L18am 1href"6tmp 10r7=hvoi76sh" class="srwh9les=hvoi>f" ="s        href="+code=se/a> *.c#L16oL148mas/bef="+code=setfilbpsi" ++na < rpche_e==he  a lead /a>+cod_usct /a8 1="+code8123"> 123 /a10r3f"7tmp 10r8f"L16770  93cl9ss=f"L16>f"L1oeconds_since_bohref="pu rhhine" nerrchompc=href="+code=setcp_timef"ext /a8 1="+code8nam9e  f"Ltmp 10r7in+co77=cache_is_exppp9pppin+co>f"Lconds_since_booucccccail 8c105" cla8f="+code=detacheL17tmp 10r74"/* 77sh_unlocked" cl9ss=4"/* >f"Le=seterr classs="ine" nerrchla -e  a lead /a>+cod_usc |/a> < filpPOLL=href="+code=setcp_timef"><1)line" nerrchla -=href="+code=setcp_timef">ne-xt /a8e6f">cach8_e=next" cla9 ">f"Ltmp 10r75"   77lass="sref">old9/a>5"   >f"Lef="+code=setelsera2687b        7     spa4 cl9d cf"7tmp 10r7re   77             }i9" cre   >f"Lfmutex"c/////////////*.c#L16oL148mas/bef="+code=setfilbpsi" ++na &teryed by " ntre_.a>' '62"> #Lt /a8 1="+code8123"> 123 /a10r3f"7tmp 10r7LL">d77hash_lock" clt/9uhrLL">d>f"L+code=seterr claslass="line" namkfre=href="+code=setcp_timef"ext /a8 1="+code8nam9e  f"Ltmp 10r7xtp" 77href="+code=tes9_anxtp" >f"L>oeconds_sincail 8c105" cla8f="+code=detacheL17tmp 10r7re>  77               9   re>  >f"L  econds_sincine" nh=che_>arybpef="+code=setfilbpe#cy na < rpche_e==hbef="+code=setfilbpsi" t /a8 1="+code8nam9e  f"Ltmp 10r7="sh_77               9   ="sh_>f"L8 econds_sincine" nh=che_>aryc/cache.c#L42" idh__usc /a> < filplali.href="+code=setcp_timef"t /a8 1="+code8nam9e  f"Ltmp 10r7=h na77/cache.c#L121" 9d/o=h na>f"L=_detail 8c105" cla8f="+code=det9las108tmp 10r8f"t a780  93}i9" cf"t a>f"t  ecoo < filplaliEXPORT_SYMBOL_GPode=next" class="XPORT_SYMBOL_GPo /a> < rpche_e==hqwordc/cache.c#L42" laliqwordc/canam"xt /a8 1="+code8123"> 123 /a10r3f"8tmp 10r7incla78m  93 /9>  incla>f"t next /a8c9       8ef="+code=ca9 a f"8tmp 10r74" hr78sh_unlocked" hr9f="4" hr>f"t2ef">void.c class="line" qwordc/cahexche.c#L42" laliqwordc/cahexnam" class*ine" nh=che_>arybpef="+code=setfilbpe#cy /as="line" nh=che_>aryc/cache.c#L42" idh__usch__lass*.c#L16oL148mas/ref="+code=cachhounc clas,as="line" nerrchla -b.href="+code=setcpb_timef"a2687b        7     spa4 cl9defL18tmp 10r75"/oL78lass="sref">ot/9uhr5"/oL>f"t3e" na2688c7f">cach8rpc/cache.c#L_inL18tmp 10r7reini78             e_9s_ereini>f"tfmutex"c/////_lass*.c#L16oL148mas/bef="+code=setfilbpsi" na ine" nh=che_>arybpef="+code=setfilbpe#cy t /a8 1="+code8123"> 123 /a10r3f"8tmp 10r7LLent78hash_lock" clad9/a>LLent>f"te=sethopy_lass="line" nerrchla -=href="+code=setcp_timef">neine" nh=che_>aryc/cache.c#L42" idh__usct /a8 1="+code8123"> 123 /a10r3f"8tmp 10r7xt"co78ref="+code=expi9y" xt"co>f"tref">exp7>y /a>)1<7ss="comment"10r7f"8tmp 10r7respa78a>        fort/9uhrrespa>f"t  econds_sincss="ine" nerrchla -=href="+code=setcp_timef">< 0)elass="t /a8 1="+code8123"> 123 /a10r3f"8tmp 10r7="hre78               9   ="hre>f"te" na2688 9       8+code=new" c9"+cf"ttmp 10r7=hode78/cache.c#L121" 9d/o=hode>f"tss="lirec clas="line" nerrchompc=href="+code=setcp_timef">> 2 na2687b        7     spa4 cl9d cf"9tmp 10r8f">ne790  93cl9ss=f">ne>f">nmutex"c/////////////*.c#L16oL148mas/bef="+code=setfilbpsi" ++na &teryed by " ntre_.a>'\\'62"> #Lt /a8 1="+code8123"> 123 /a10r3f"9tmp 10r7ine" 79=cache_is_exppp9pppine" >f">conds_since_boouccccc*.c#L16oL148mas/bef="+code=setfilbpsi" ++na &teryed by " ntre_.a>'x'62"> #Lt /a8 1="+code8123"> 123 /a10r3f"9tmp 10r74">  79sh_unlocked" }u9L164">  >f">_time" class="srl/a> < rpche_>spi=href="+code=setcp_timef">-= 2t /a8 1="+code8123"> 123 /a10r3f"9tmp 10r75">  79lass="sref">old9/a>5">  >f">ef="+code=setcp_t"+cowhile (ine" nerrchla -b.href="+code=setcpb_timef"=classc s="line" nerrchFMOD=href="+code=setcp_timef">>= 2 na2687b        7     spa4 cl9d cf"9tmp 10r7ref">79             e_9s_eref">>f">fmutex"c///////////////// odegned long_lass< rpche_e==he  a lead /a>+cod_uscna ine" nh=che_>arybef="+code=cachhounc clas++t /a8 1="+code8123"> 123 /a10r3f"9tmp 10r7LL" c79hash_lock" cl="9et/LL" c>f">+code=seterr clase_bohrefp_t"*.c#L16oL148mas/bef="+code=setfilbpsi" ++na &teryed by " ntre_.a>'0'62"> #L + ( < rpche_e==he  a lead /a>+cod_uscc s="0xf0)>>4) + (< rpche_e==he  a lead /a>+cod_usccgt;=0xa0)*(&teryed by " ntre_.a>'a'62"> #L-&teryed by " ntre_.a>'9'62"> #L-1xt /a8 1="+code8123"> 123 /a10r3f"9tmp 10r7xt /a79href="+code=tes9_anxt /a>f">>oeconds_since_bohref="pu rhh*.c#L16oL148mas/bef="+code=setfilbpsi" ++na &teryed by " ntre_.a>'0'62"> #L + (< rpche_e==he  a lead /a>+cod_uscc s="0x0f) + ( < rpche_e==he  a lead /a>+cod_uscc s="0x0f)cgt;=0x0a)*(&teryed by " ntre_.a>'a'62"> #L-&teryed by " ntre_.a>'9'62"> #L-1xt /a8 1="+code8123"> 123 /a10r3f"9tmp 10r7ref="79               9   ref=">f">  econds_since_booooooooooooo> < filplali.href="+code=setcp_timef">-= 2t /a8 1="+code8123"> 123 /a10r3f"9tmp 10r7="+co79               9   ="+co>f">  econds_since_booooooooooooo< rpche_>spib.href="+code=setcpb_timef"ext /a8 1="+code8nam9e  f"9tmp 10r7=hp" 79/cache.c#L121" 9d/o=hp" >f">="s        href="+codail 8c105" cla8f="+code=det9las11>tmp 10ref1p" 79/cache.c#L121" 10ref110rea1s="s        hrail 8c105" cla8f="+code=det9las11>1mp 10ref1p" 79=cache_is_exppp9pppi110rto1econds_since_bs="line" nerrchompcb.href="+code=setcpb_timef"=|/a> < filpPOLL=href="+code=setcp_timef"<1)line" nerrchla -=href="+code=setcp_timef">ne-xt /a8e6f">cach8_e=next" cla9 ">f1>tmp 10r741>  79sh_unlocked" }u10r74110rpi1y_time" class=elsera2687b        7     spa4 cl9d cf1>tmp 10r751>  79lass="sref">old10r75110r c10ef="+code=setcp_t"+co*.c#L16oL148mas/bef="+code=setfilbpsi" ++na &teryed by " ntre_.a>' '62"> #Lt /a8 1="+code8123"> 123 /a10r3f1>tmp 10r7r1f">79             e_10r7r110r h1efmutex"c/////////class="sref"in che_=href="+code=setcp_timef"ext /a8 1="+code8nam9e  f1>tmp 10r7L1" c79hash_lock" cl="10r7L110ref1"+code=seterr ail 8c105" cla8f="+code=det9las11>6mp 10r7L1"/a79href="+code=tes9_anx110rs=10>oeconds_sincine" nh=che_>arybpef="+code=setfilbpe#cy na < rpche_e==hbef="+code=setfilbpsi" t /a8 1="+code8nam9e  f1>tmp 10r7r1f="79               10r7r110r  10  econds_sincine" nh=che_>aryc/cache.c#L42" idh__usc /a> < filplali.href="+code=setcp_timef"t /a8 1="+code8nam9e  f1>tmp 10r7=1+co79               10r7=110r  10e_detail 8c105" cla8f="+code=det9be_ 109mp 10r7=1+" 79/cache.c#L121" 9d/o=110rla1s="s  o < filplaliEXPORT_SYMBOL_GPode=next" class="XPORT_SYMBOL_GPo /a> < rpche_e==hqwordc/cahexche.c#L42" laliqwordc/cahexnam"xt /a8 1="+code8123"> 123 /a10r3f1>tmp 10r8f1>he810  93cl10r8f1cl10L11="+code=7oclass="s7ass="line" n9lasL111mp 10ref1 * 81=cache_is_exppp9pppi1 * 0L11 size_c clasvoid.c class="line" warn_no_ref"eyer  a lead /aowncwarn_no_ref"eyer /a> ache.c#L42"a> 842i achnhef="+ctai=che_head /a> * a hrefcy class="line" nh=che_>ode+ctai=che_head /a> * cy class="a2687b        7     spa4 cl9defL11tmp 10r741;1<81sh_unlocked" cl9ss=41;1<0L11=e" na2688c7f">cach8rpc/cache.c#9 hrL11tmp 10r75115"81lass="sref">old9/a>5115"0L113onds_since_bs="line" nerrchompc+ctai=che_head /a> * cy class="lass="line" n" namaslclo/warnef="+code=setcp_clo/warnonds_lasne" nh=che_>cod+ctai=che_head /a> * cy class="lass="line" n" namaslclo/o=code=next" claacht_clo/oref"time na2687b        7     spa4 cl9d cf11tmp 10r7r1che81             e_9s_er1che0L11fmutex"c/////////class="sref"in che_+ctai=che_head /a> * cy class="lass="line" n" namaslclo/warnef="+code=setcp_clo/warnonds_asne" nh=che_>cod+ctai=che_head /a> * cy class="lass="line" n" namaslclo/o=code=next" claacht_clo/oref"timet /a8 1="+code8123"> 123 /a10r3f1>tmp 10r7L1cod81hash_lock" cl="9et/L1cod0L11+code=seterr clase_bos="line" nerrchompc+ctai=che_head /a> * cy class="lass="line" n" namaswarn_no_ref"eyer  a lead /aowncwarn_no_ref"eyer /a>a2687b        7     spa4 cl9defL116mp 10r7L1am<81href="+code=tes9_anx1am<0L11>oeconds_since_bohref="pu rhhine" nerrchompc+ctai=che_head /a> * cy class="lass="line" n" namaswarn_no_ref"eyer  a lead /aowncwarn_no_ref"eyer /a>line" nerrchompc+ctai=che_head /a> * cy class="/a> < li.cd /a+ctai=che_head /a> * cy class="lass="line" n" nacht_clo/o=code=next" claacht_clo/oref"time las0at /a8 1="+code8123"> 123 /a10r3f1>tmp 10r7r1sre81               9   r1sre0L11  econds_sincail 8c105" cla8f="+code=det9be_ 16tmp 10r7=1t/s81               9   =1t/s0L11e_detail 8c105" cla8f="+code=det9be_ 16tmp 10r7=1unr81/cache.c#L121" 9d/o=1unr0L11_detail 8 class="l8ne" nam  93cl9ss=f1up">f12 size_c clas< rpche_e==hboo=che_head /a> * boo= econL42"a> 842i achnhef="ref"eyers_exode=next" class="snhef="ref"eyers_exode /a> ache.c#L42"a> 842i achnhef="+ctai=che_head /a> * a hrefcy class="line" nh=che_>ode+ctai=che_head /a> * cy class="a2687b        7     spa4 cl9defL12tmp 10r7i1sun82m  93}i9" ci1sun>f1ucondsa2687b        7     spa4 cl9d cf1utmp 10r741unr82sh_unlocked" t/9uhr41unr>f12e=seterr classs="ine" nerrchla -ic_deccrde=che_head /a> * ic_deccrde= /a> class="line" nam * cy class="lass="line" n" namasr9 clafiid0l"net/"net/ode=nex">nexa2687b        7     spa4 cl9defL12tmp 10r751ail82lass="sref">old9/a>51ail>f1uef="+code=setcp_t"+colass="line" nrecchputschede=next" claachtchedtimet /a8 1="+code8123"> 123 /a10r3f12tmp 10r7r1ach82             ad9/a>r1ach>f1ufmutex"c/////s="line" nerrchompc+ctai=che_head /a> * cy class="lass="line" n" namaslclo/o=code=next" claacht_clo/oref"time /as0a2687b        7     spa4 cl9defL12tmp 10r7L1che82hash_lock" cl"+9odeL1che>f1u+code=seterr clase_booteryed by " nam"io_monl This a4 cl was never timeed *162"> #L1448aoL130" c8class="line"9149f12tmp 10r7x1  a82L118"}il" class9"srx1  a>f1u>oeconds_since_bohreflass="line" nrecchputsfalode=next" claachtfalodtimet /a8 1="+code8123"> 123 /a10r3f12tmp 10r7r1128821 * cy class="lass="line" n" namaslclo/o=code=next" claacht_clo/oref"time < "line" n" namasnds_since_booche__time" class=e>onds_since_booctime >>nex - 30a2687b        7     spa4 cl9defL12tmp 10r7=1 /a828ash_f"8" clhre9="+=1 /a>f1u  econds_since_booooooteryed by " nam"io_monl62"> #L1448aoL130" c8class="line"9149f12tmp 10r7=1ref82/cache.c#L121" 9d/o=1ref>f129 ecooteryed by " nam"io_mo                 * We cchewe /a>tcl possibility>tcat someone might62"> #L1448aoL130" c8class="line"9149f13tmp 10r8f1p_w83148">62" id/oL69" cf1p_w>f13a ecooteryed by " nam"io_mo                 * re_c rt a flinc cla daemon without re_c rtiotetcl62"> #L1448aoL130" c8class="line"9149f13tmp 10r7i1CHE83m  93 /9>  i1CHE>f131 ecooteryed by " nam"io_mo                 * linver; but after 30 nds_sin, we give up.62"> #L1448aoL130" c8class="line"9149f13tmp 10r741ach83is en          9   41ach>f132 ecooteryed by " nam"io_mo                 *162"> #L1448aoL130" c8class="line"9149f13tmp 10r751="+83lass="sref">ot/9uhr51="+>f1pef="+code=setcp_t"+coflass="line" nrecchputsfalode=next" claachtfalodtimet /a8 1="+code8123"> 123 /a10r3f13tmp 10r7r1" c83             e_9s_er1" c>f1pfmutex"c/achelass="line" nrecchputschede=next" claachtchedtimet /a8 1="+code8123"> 123 /a10r3f13tmp 10r7L1hre83hash_lock" clt/9uhrL1hre>f1p5_detail 8c105" cla8f="+code=detacheL13tmp 10r7x1 ( 83href="+code=tes9_anx1 ( >f1pref">exp7>y /a>)1<7ss="comment"10r7f13tmp 10r7r1gs 83a>        for (9a hr1gs >f1p  ecooteryed by " nam"io_monl62"> #L1448aoL130" c8class="line"9149f1ptmp 10r7=1> 1838cache_is_expti9e" =1> 1>f1p8 ecooteryed by " nam"io_mo * regef"er ryeupche_ hc clc  to flin-c cla and lass= iteupe /a>ode=ex byetcl62"> #L1448aoL130" c8class="line"9149f13tmp 10r7=1 cl83sh" class="srLf9un2=1 cl>f1p9 ecooteryed by " nam"io_mo * upche_ daemon.62"> #L1448aoL130" c8class="line"9149f14tmp 10r8f1nam840  93cl9ss=f1nam>f1na ecooteryed by " nam"io_mo *62"> #L1448aoL130" c8class="line"9149f14tmp 10r7i1="+84m  93"+9odei1="+>f1n1 ecooteryed by " nam"io_mo * Eine hc clc  is at moc  one page long.62"> #L1448aoL130" c8class="line"9149f14tmp 10r741=ca84sh_unail" class9"sr41=ca>f1n2 ecooteryed by " nam"io_mo *162"> #L1448aoL130" c8class="line"9149f14tmp 10r751f">84cache.c#L155" i9/oL51f">>f1n3 ecos="line" nerrchla -class=_a hracripe_upche_time" class=e>onlass=_a hracripe_upche_ /a> ache.c#L42"a> 842i achnhef="+ctai=che_head /a> * a hrefcy class="line" nh=che_>ode+ctai=che_head /a> * cy class="f="" nam class="line" nhre=cachde=che_head /a> * a hrefhde=cs="line" nh=che_>codad /a> * a hrefdh"" node=7oclass="s7ass="line" n9* mf1ntmp 10r7r1L14844d/oL128" clhre9="+r1L14>f14fmutex"c/////////clasvoid.> < rpche_ ==ha hrefhc ryer  a lead /a> * a hrachc clc ime ) ache.c#L42"a> 842i achnhef="+ctai=che_head /a> * a hrefcy class="liode=7oclass="s7ass="line" n9* mf1ntmp 10r7L1pc/84hash_lock" cl="9et/L1pc/>f14+code=seterr clase_bohrefp_t"+code=cachea>a"" nam class="line" nhre=cachde=che_head /a> * a hrefhde=cs="liode=7oclass="s7ass="line" n9* mf1ntmp 10r7x1ALI846h" c62" id/oL69" cx1ALI>f14>oeconds_since_bohref="pu rhhhhhhhhhhhhhhhhclass*iode=7oclass="s7ass="line" n9* mf1ntmp 10r7r1 cl84             129" cr1 cl>f14  econds_since_booooooooooooooooooooooooob"s="lixa2687b        7     spa4 cl9defL14tmp 10r7=15  848cache_is_expti9e" =15  >f1n  ecoa2687b        7     spa4 cl9d cf14tmp 10r7=1="s84 1et/il" class=9sre=1="s>f14_detail 8 class="l8ne" nam 11f="73t/9uhrf1   >f1   econds_sinc_lassine" nh=che_>arybef="+code=cachhounc clast /a8 1="+code8123"> 123 /a10r3f15tmp 10r7i1"ne85=cache_is_exppp9pppi1"ne>f15conds_since_bt" class="sref"in "+code=cachc ryer  a lead /a> * a hrachc clc cs="line" nh=che_>aryer=next" classcsrefr">next /a7 oL130" c7lass="line" 93  L1 tmp 10r741ref85sh_unlocked" hr9f="41ref>f1 e=seterr clas_lass*.c#L16oL148mas/bef="+code=setfilbpsi" t /a7 oL130" c7lass="line" 93  L1 tmp 10r751nrp85lass="sref">oec9nds51nrp>f153onds_since_bs="line" nerrchla -=href="+code=setcp_timef"t /a7 oL130" c7lass="line" 93  L1 tmp 10r7r1 a 85             ad9/a>r1 a >f15fnext /a8  namf1 +code=seterr ss="line" nrecchrcodehef="ref"eyers_exode=next" class="snhef="ref"eyers_exode /a> ne" nh=che_>ode+ctai=che_head /a> * cy class="a na2687b        7     spa4 cl9d cf15tmp 10r7x1   85href="+code=t"+9odex1   >f1 >oeconds_since_bohref"line" n" namaswarn_no_ref"eyer  a lead /aowncwarn_no_ref"eyer /a>line" nerrchompc+ctai=che_head /a> * cy class="at /a8 1="+code8123"> 123 /a10r3f1 tmp 10r7r1/a>85     ail" class9"srr1/a>>f1   econds_since_boooooLTss="line" namf15rssize_c _detail 8c105" cla8f="+code=det9 ssf15tmp 10r7=1 /a85sh" cf"8" clhre9="+=1 /a>f15_detail 8 class="l8ne" namf1  code=seterr ne" nh=che_>arybef="+code=cachhounc clas_asne" nh=che_>codkmcchee  a lead /a>+cokmcchee /a>line" nerrchompcPAGE_SIZE  a lead /a>+coPAGE_SIZEss="/a> < li.cd /aGFP_KERNEode=next" class=GFP_KERNEoss="at /a8 1="+code8123"> 123 /a10r3f16tmp 10r7i1 /a761ash_lock" clt/9uhri1 /a>f16conds_since_bs="lline" nrecchrcodref="+code=cachhounc clasx /a8 1="+code8123"> 123 /a10r3f16tmp 10r741e_f76sh_unlocked" cl9ss=41e_f>f1 sref">last_refresli.cLTss="line" namf16ss="line8cef">cach8/oL145" clas10r4f16tmp 10r7r1k /76             ad9/a>r1k />f16fmutex"c/ache.c#L16oL148mas/er=next" classcsrefr">nex_asne" nh=che_>codkmcchee  a lead /a>+cokmcchee /a>lsizeof.> < rpche_ ==har=next" classcsrefr">nex)/a> < li.cd /aGFP_KERNEode=next" class=GFP_KERNEoss="at /a8 1="+code8123"> 123 /a10r3f16tmp 10r7L1 id76hash_t  a href=9+coL1 id>f16+code=seterr ss="line" nrecchrcoder=next" classcsrefr">nex)na2687b        7     spa4 cl9d cf16tmp 10r7x1f="76href="ache.c#L49" ix1f=">f1 >oeconds_since_bohrefne" nh=che_>codknamash_e=ref="+kfre time /a> < rpche_e==href="+code=cachhounc clasxt /a8 1="+code8123"> 123 /a10r3f16tmp 10r7r143 76a>        for (9a hr143 >f1   econds_since_boooooLTss="line" namf16rssize_c _detail 8c105" cla8f="+code=det9 ssf16tmp 10r7=1voi76sh" class="srwh9les=1voi>f16_detail 8 class="l8ne" nam  93cl9ss=f1L16>f17 code=seterr ne" nh=che_>arybef="+code=setfilbpsi" na ne" nh=che_>arybef="+code=cachhounc clastline" nerrchla -=href="+code=setcp_timef">neine" nerrchompcPAGE_SIZE  a lead /a>+coPAGE_SIZEss="t /a7 oL130" c7lass="line" 93  L1Ltmp 10r7i1+co77=cache_is_exppp9pppi1+co>f17 next /a8c9       8ef="+code=ca9 a f17tmp 10r741/* 77sh_unlocked" cl9ss=41/* >f1Le=seterr class="sref"in "+code=cachc ryer  a lead /a> * a hrachc clc cs="line" nerrchompc+ctai=che_head /a> * cy class="/a> < li.cd /aad /a> * a hrefdh"" nof"upde=next"ry_time /bef="+code=setfilbpsi" next"ry_time /bef="+co  129" cre cl>f"nee" na268t /a7 oL130" c7lass="line" 93  L1Ltmp 10r751   77lass="sref">old9/a>51   >f17ss="line8cef">cach8/oL145" clas10r4f17tmp 10r7r1   77             }i9" cr1   >f17fmutex"c/////s="line" nerrchompc=href="+code=setcp_timef">< 0)ea2687b        7     spa4 cl9d cf17tmp 10r7L1">d77hash_lock" clt/9uhrL1">d>f1L+code=seterr claslass="line" namkfreknamash_e=ref="+kfre time /a> < rpche_e==href="+code=cachhounc clasxt /a8 1="+code8123"> 123 /a10r3f1Ltmp 10r7x1p" 77href="+code=tes9_anx1p" >f17>oeconds_since_bohrefne" nh=che_>codknamash_e=ref="+kfre time /a> < rpche_e==her=next" classcsrefr">nex)t /a8 1="+code8123"> 123 /a10r3f1Ltmp 10r7r1>  77               9   r1>  >f17  econds_since_boooooLTss="line" namf17rssize_c _detail 8c105" cla8f="+code=det9 ssf1Ltmp 10r7=1 na77/cache.c#L121" 9d/o=1 na>f17ode=next"ry_time /a> <sspier=next" classcsrefr">nex" nam * a hrefli.c_tiass="line" n namche_che_  62" id/oL62" class="line">next /a8e6f">cach8_e=next" cla10ref18tmp 10r8f1t a780  93}i9" cf1t a>f18 code=seterr ne" nh=che_>aryer=next" classcsrefr">nex" nam * a hrefintem#cy ca < rpche_e==he hracgcode=next" class=e hracgco /a> < rpche_e==had /a> * a hrefdh"" n)t /a8 1="+code8123"> 123 /a10r3f18tmp 10r7i1cla78m  93 /9>  i1cla>f181code=seterr ne" nh=che_>aryer=next" classcsrefr">nex" namcodbef="+code=cachhounc clast /a8 1="+code8123"> 123 /a10r3f18tmp 10r741 hr78sh_unlocked" hr9f="41 hr>f18e=seterr class="sref"in "+codr=next" classcsrefr">nex" namneine" nerrchompcPAGE_SIZE  a lead /a>+coPAGE_SIZEss=" -line" nerrchla -=href="+code=setcp_timef"t /a7 oL130" c7lass="line" 93  L18tmp 10r751/oL78lass="sref">ot/9uhr51/oL>f183=seterr class="sref"in "+codr=next" classcsrefr">nex" namnecnext /a8e6f">cach8_e=next" cla10ref18tmp 10r7r1ini78             e_9s_er1ini>f18fmutex"c/ache.c#L16oL148mas/nin"ca  a h"net/sunrpc/cache.c#" nam" class="line" namcode=next" class="sref">next /a8 1="+code8nam9rpc118tmp 10r7L1ent78hash_lock" clad9/a>L1ent>f1te=sethopy_lasine" nerrchla -=deccadd_tai=che_head /a> * =deccadd_tai=nam" class="line" namnex" nam * a hrefli.c_tiass="line" n namche_>ode=next" class="sref"">nef=class="line" nam * cy class="lass="line" n" namash_l"net/"net/#L52" id/oL5>nexxt /a8 1="+code8nam9rpc118tmp 10r7x1"co78ref="+code=expi9y" x1"co>f186mutex"c/ache.c#L16oL148mas/nin"c/ache  a h"net/sunrpc/cache.c#" nam" class="line" namcode=next" class="sref">next /a8 1="+code8123"> 123 /a10r3f18tmp 10r7r1spa78a>        fort/9uhrr1spa>f1t  econds_sinc"line" n" namaswake_up  a lead /aowncwake_upnam" class="line" namnext /a8 1="+code8123"> 123 /a10r3f18tmp 10r7=1hre78               9   =1hre>f18rssize_c _detlass="lxt /a8e6f">cach8_e=next" cla10ref1ttmp 10r7=1ode78/cache.c#L121" 9d/o=1ode>f18=_detail 8c105" cla8f="+code=det9las119tmp 10r8f1>ne790  93cl9ss=f1>ne>f19  ecoo < filplaliEXPORT_SYMBOL_GPode=next" class="XPORT_SYMBOL_GPo /a> < rpche_e==hclass=_a hracripe_upche_time" class=e>onlass=_a hracripe_upche_ /a>xt /a8 1="+code8123"> 123 /a10r3f19tmp 10r7i1e" 79=cache_is_exppp9pppi1e" >f19 next /a8c9       8ef="+code=ca9 a f19tmp 10r741>  79sh_unlocked" }u9L1641>  >f192 ecooteryed by " nam"io_monl62"> #L1448aoL130" c8class="line"9149f19tmp 10r751>  79lass="sref">old9/a>51>  >f193 ecooteryed by " nam"io_mo * parse a message from flin-c cla and pby  it62"> #L1448aoL130" c8class="line"9149f19tmp 10r7r1f">79             e_9s_er1f">>f194 ecooteryed by " nam"io_mo * to ryeappropriate a4 cl62"> #L1448aoL130" c8class="line"9149f19tmp 10r7L1" c79hash_lock" cl="9et/L1" c>f1>+codeoteryed by " nam"io_mo * Messages are, like hc clc s, separated into fields by62"> #L1448aoL130" c8class="line"9149f19tmp 10r7x1 /a79href="+code=tes9_anx1 /a>f1>>oecooteryed by " nam"io_mo * c clas and +c notas as \xHEXSTRING /a>embedded \nnn octal62"> #L1448aoL130" c8class="line"9149f19tmp 10r7r1f="79               9   r1f=">f19  ecooteryed by " nam"io_mo *62"> #L1448aoL130" c8class="line"9149f19tmp 10r7=1+co79               9   =1+co>f198 ecooteryed by " nam"io_mo * Message is62"> #L1448aoL130" c8class="line"9149f19tmp 10r7=1p" 79/cache.c#L121" 9d/o=1p" >f199 ecooteryed by " nam"io_mo * etlaply a4 cl1" 9 expiry key ...hfcneio_....62"> #L1448aoL130" c8class="line"9149f2>tmp 10ref2p" 79/cache.c#L121" 10ref210rea20a ecooteryed by " nam"io_mo *62"> #L1448aoL130" c8class="line"9149f2>1mp 10ref2p" 79=cache_is_exppp9pppi210rto201 ecooteryed by " nam"io_mo * key and fcneio_ are both parsed by a4 cl62"> #L1448aoL130" c8class="line"9149f2>tmp 10r742>  79sh_unlocked" }u10r74210rpi202 ecooteryed by " nam"io_mo *162"> #L1448aoL130" c8class="line"9149f2>tmp 10r752>  79lass="sref">old10r75210r c20ss="line8cef">cach8/oL145" clas10r4f2>tmp 10r7r2f">79             e_10r7r210r h2efmute#def   c"line" n" namasisodigie=next" class="sisodigie /a> < rpche_e==henext" classcsref>nex)n < rpche_e==hisdigie=next" class="sisdigie /a> < rpche_e==henext" classcsref>nex)nclassc s="line" nerrchFMODe  a lead /a>+cod_usc clt;= &teryed by " ntre_.a>'7'62"> #Lx /a8 1="+code8123"> 123 /a10r3f2>tmp 10r7L2" c79hash_lock" cl="10r7L210ref2"+codes="line" nerrchla -qwordcgcode=next" class=qwordcgco /a> class*ine" nh=che_>arybpef="+code=setfilbpe#cy /a_lass*.c#L16oL148mas/dyer  a lead /a> * dlc ime /as="line" nerrchla -bufsize="+code=cachhounc sizeclasx /a8 1="+code8123"> 123 /a10r3f2>6mp 10r7L2"/a79href="+code=tes9_anx210rs=20>oecoa2687b        7     spa4 cl9d cf2>tmp 10r7r2f="79               10r7r210r  20  econds_sincoteryed by " nam"io_monl lass="lbytas copied, /a>-1 on err/a>*162"> #L1448aoL130" c8class="line"9149f2>8mp 10r7r2fco79               9   =210r  20  econds_sinc_lass*.c#L16oL148mas/bef="+code=setfilbpsi" na ine" nh=che_>arybpef="+code=setfilbpe#cy t /a8 1="+code8123"> 123 /a10r3f209mp 10r7=2+" 79/cache.c#L121" 9d/o=210rla20ss="lirec clas="line" nerrchla -=href="+code=setcp_timef">next /a8e6f">cach8_e=next" cla10ref2>tmp 10r8f2>he810  93cl10r8f2cl10L21="+code=7oclass="s7ass="line" n9lasL211mp 10ref2 * 81=cache_is_exppp9pppi2 * 0L211code=seterr while (*.c#L16oL148mas/bef="+code=setfilbpsi" naa &teryed by " ntre_.a>' '62"> #L)line" nerrchla -bef="+code=setfilbpsi" ++t /a8e6f">cach8_e=next" cla10ref2>tmp 10r742;1<81sh_unlocked" cl9ss=42;1<0L21=e" n /a8e6f">cach8_e=next" cla10ref2>tmp 10r75215"81lass="sref">old9/a>5215"0L213onds_since_bs="line" nerrchompcbef="+code=setfilbpsi" [0]naa &teryed by " ntre_.a>'\\'62"> #Lnclassc s="line" nerrchFMODbef="+code=setfilbpsi" [1]naa &teryed by " ntre_.a>'x'62"> #L)la2687b        7     spa4 cl9d cf21tmp 10r7r2che81             e_9s_er2che0L21fmutex"c/////////classteryed by " nam"io_monl HEX STRING *162"> #L1448aoL130" c8class="line"9149f2>tmp 10r7L2cod81hash_lock" cl="9et/L2cod0L21+code=seterr clase_bo.c#L16oL148mas/bef="+code=setfilbpsi" n+= 2t /a8 1="+code8123"> 123 /a10r3f216mp 10r7L2am<81href="+code=tes9_anx2am<0L21>oeconds_since_bohrefwhile (ine" nerrchla -=href="+code=setcp_timef">< ine" nerrchla -bufsize="+code=cachhounc sizeclasxla2687b        7     spa4 cl9d cf21tmp 10r7r2sre81               9   r2sre0L21  econds_since_booooooooooooos="line" nerrchla -ad /a> * a hrefdh"" nofine" nerrchla -=ef="+code=setcp_#cy t /a8 1="+code8123"> 123 /a10r3f26tmp 10r7=2t/s81               9   =2t/s0L21e" na2688 9       8+code=new" c9"+cf26tmp 10r7=2unr81/cache.c#L121" 9d/o=2unr0L21="s        href="+code=se/a> < rpche_rpc/ad /a> * a hrefdh"" n>neine" nerrchompchex_to_biref="+code=setcphex_to_bir /a> < rpche_e==href="+code=setfilbpsi" [0]xt /a8 1="+code8123"> 123 /a10r3f2=tmp 10r8f2up"820  93cl9ss=f2up">f22 code=seterr clase_bohrefp_t"s="line" nerrchompcad /a> * a hrefdh"" n>< 0) /a8 1="+code8123"> 123 /a10r3f2=1mp 10ref2sun82m  93}i9" ci2sun>f22conds_since_boouccccccccccccccccc="lik>next /a8 1="+code8nam9if f2utmp 10r742unr82sh_unlocked" t/9uhr42unr>f22=e" n /a8e6f">cach8_e=next" cla10ref22tmp 10r752ail82lass="sref">old9/a>52ail>f2uef="+code=setcp_t"+coe=se/a> < rpche_rpc/=ef="+code=setcp_#cy >neine" nerrchompchex_to_biref="+code=setcphex_to_bir /a> < rpche_e==href="+code=setfilbpsi" [1]xt /a8 1="+code8123"> 123 /a10r3f2=tmp 10r7r2ach82             ad9/a>r2ach>f22fmutex"c///////////////// odes="line" nerrchompc=ef="+code=setcp_#cy >< 0) /a8 1="+code8123"> 123 /a10r3f2=tmp 10r7L2che82hash_lock" cl"+9odeL2che>f2u+code=seterr clase_bocccccccccccc="lik>next /a8 1="+code8nam9if f2u6mp 10r7L2  a82L118"}il" class9"srx2  a>f22ref">exp7>y /a>)1<7ss="comment"10r7f22tmp 10r7r2128821 * a hrefdh"" n><< 4) /a> < filpPOLL=ef="+code=setcp_#cy t /a8 1="+code8123"> 123 /a10r3f22tmp 10r7=2 /a828ash_f"8" clhre9="+=2 /a>f2u  econds_since_boooooe=se/a> < rpche_rpc/bef="+code=setfilbpsi" n+= 2t /a8 1="+code8123"> 123 /a10r3f22tmp 10r7=2ref82/cache.c#L121" 9d/o=2ref>f22="s        href="+code=se/a> < rpche_rpc/=href="+code=setcp_timef"++t /a8e6f">cach8_e=next" cla10ref23tmp 10r8f2p_w83148">62" id/oL69" cf2p_w>f2p_"s        href="+codail 8c105" cla8f="+code=det9las123tmp 10r7i2CHE83m  93 /9>  i2CHE>f2pconds_since_b}=elsera2687b        7     spa4 cl9d cf23tmp 10r742ach83is en          9   42ach>f2psref">last_refresli.csteryed by " nam"io_monl text with \nnn octal quotiote*162"> #L1448aoL130" c8class="line"9149f23tmp 10r752="+83lass="sref">ot/9uhr52="+>f2pef="+code=setcp_t"+cowhile (*.c#L16oL148mas/bef="+code=setfilbpsi" n!a &teryed by " ntre_.a>' '62"> #Lnclassc s="l*.c#L16oL148mas/bef="+code=setfilbpsi" n!a &teryed by " ntre_.a>'\n'62"> #Lnclassc s="l*.c#L16oL148mas/bef="+code=setfilbpsi" nclassc s="line" nerrchFMOD=href="+code=setcp_timef">< ine" nerrchla -bufsize="+code=cachhounc sizeclas-1xla2687b        7     spa4 cl9d cf23tmp 10r7r2" c83             e_9s_er2" c>f23fmutex"c///////////////// odes="l*.c#L16oL148mas/bef="+code=setfilbpsi" naa &teryed by " ntre_.a>'\\'62"> #Lnclassc s="2687b        7     spa4 cl9d cf23tmp 10r7L2hre83hash_lock" clt/9uhrL2hre>f23+code=seterr clase_bocccccccccccc"line" n" namasisodigie=next" class="sisodigie /a> < rpche_e==href="+code=setfilbpsi" [1]xnclassc s="l < rpche_e==href="+code=setfilbpsi" [1] clt;= &teryed by " ntre_.a>'3'62"> #L)lclassc s="2687b        7     spa4 cl9d cf236mp 10r7L2 ( 83href="+code=tes9_anx2 ( >f23>oeconds_since_bohref="pu rhhhhhh"line" n" namasisodigie=next" class="sisodigie /a> < rpche_e==href="+code=setfilbpsi" [2])lclassc s="2687b        7     spa4 cl9d cf23tmp 10r7r2gs 83a>        for (9a hr2gs >f23  econds_since_booooooooooooooooo"line" n" namasisodigie=next" class="sisodigie /a> < rpche_e==href="+code=setfilbpsi" [3]a na2687b        7     spa4 cl9d cf2ptmp 10r7=2> 1838cache_is_expti9e" =2> 1>f23  econds_since_boooooe=se/a> //// odes="line" nerrchla -byte="+code=cachhounyte#cy >ne(*++.c#L16oL148mas/bef="+code=setfilbpsi" n-&teryed by " ntre_.a>'0'62"> #Lxt /a8 1="+code8123"> 123 /a10r3f23tmp 10r7=2 cl83sh" class="srLf9un2=2 cl>f23="s        href="+code=se/a> oooooooo"line" n" namasbef="+code=setfilbpsi" ++t /a8e6f">cach8_e=next" cla10ref24tmp 10r8f2nam840  93cl9ss=f2nam>f24 code=seterr clase_bohrefp_t"oooooooo"line" n" namasbyte="+code=cachhounyte#cy >ne("line" n" namasbyte="+code=cachhounyte#cy ><< 3) /al*.c#L16oL148mas/bef="+code=setfilbpsi" ++n- &teryed by " ntre_.a>'0'62"> #Lxt /a8 1="+code8123"> 123 /a10r3f24tmp 10r7i2="+84m  93"+9odei2="+>f24conds_since_boouccccccccccccccccc="li"line" n" namasbyte="+code=cachhounyte#cy >ne("line" n" namasbyte="+code=cachhounyte#cy ><< 3) /al*.c#L16oL148mas/bef="+code=setfilbpsi" ++n- &teryed by " ntre_.a>'0'62"> #Lxt /a8 1="+code8123"> 123 /a10r3f24tmp 10r742=ca84sh_unail" class9"sr42=ca>f24sref">last_refresli.c"mosforecccc="li*.c#L16oL148mas/dyer  a lead /a> * dlc ime ++na "line" n" namasbyte="+code=cachhounyte#cy t /a8 1="+code8123"> 123 /a10r3f24tmp 10r752f">84cache.c#L155" i9/oL52f">>f24ef="+code=setcp_t"+code=cachea>a> "li< rpche_rpc/=href="+code=setcp_timef"++t /a8e6f">cach8_e=next" cla10ref2ntmp 10r7r2L14844d/oL128" clhre9="+r2L14>f24fmutex"c/////////classsssssss}=elsera2687b        7     spa4 cl9d cf2ntmp 10r7L2pc/84hash_lock" cl="9et/L2pc/>f24+code=seterr clase_bohrefp_t"+code=ca*.c#L16oL148mas/dyer  a lead /a> * dlc ime ++na *.c#L16oL148mas/bef="+code=setfilbpsi" ++t /a8e6f">cach8_e=next" cla10ref2n6mp 10r7L2ALI846h" c62" id/oL69" cx2ALI>f24>oeconds_since_bohref="pu rhhhhhhhhhh< rpche_rpc/=href="+code=setcp_timef"++t /a8e6f">cach8_e=next" cla10ref2ntmp 10r7r2 cl84             129" cr2 cl>f24  econds_since_boooooooooooooail 8c105" cla8f="+code=det9las124tmp 10r7=25  848cache_is_expti9e" =25  >f24  econds_since_boooooail 8c105" cla8f="+code=det9las124tmp 10r7=2="s84 1et/il" class=9sre=2="s>f24="s        hrail 8c105" cla8f="+code=det9las125tmp 10r8f2   85148"> 11f="73t/9uhrf2   >f25="+code=7oclass="s7ass="line" n9lasL25tmp 10r7i2"ne85=cache_is_exppp9pppi2"ne>f25conds_since_bs="l*.c#L16oL148mas/bef="+code=setfilbpsi" n!a &teryed by " ntre_.a>' '62"> #Lnclassc s="l*.c#L16oL148mas/bef="+code=setfilbpsi" n!a &teryed by " ntre_.a>'\n'62"> #Lnclassc s="l*.c#L16oL148mas/bef="+code=setfilbpsi" n!a &teryed by " ntre_.a>'\0'62"> #Lx /a8 1="+code8123"> 123 /a10r3f2 tmp 10r742ref85sh_unlocked" hr9f="42ref>f25sref">last_refresli.cLTss="lixt /a8e6f">cach8_e=next" cla9 ">f2 tmp 10r752nrp85lass="sref">oec9nds52nrp>f253onds_since_bwhile (*.c#L16oL148mas/bef="+code=setfilbpsi" naa &teryed by " ntre_.a>' '62"> #L)line" nerrchla -bef="+code=setfilbpsi" ++t /a8e6f">cach8_e=next" cla10ref2 tmp 10r7r2 a 85             ad9/a>r2 a >f25fmutex"c/////ine" nh=che_>arybpef="+code=setfilbpe#cy na < rpche_e==hbef="+code=setfilbpsi" t /a8 1="+code8nam9e  f25tmp 10r7L2ef"85hash_econds_sin9e_bL2ef">f2 +code=seterr *.c#L16oL148mas/dyer  a lead /a> * dlc ime na &teryed by " ntre_.a>'\0'62"> #Lt /a8 1="+code8123"> 123 /a10r3f25tmp 10r7x2   85href="+code=t"+9odex2   >f2 >oeconds_sinclass="line" nrecchputs=href="+code=setcp_timef"t /a7 oL130" c7lass="line" 93  L2 tmp 10r7r2/a>85     ail" class9"srr2/a>>f2   ecoail 8c105" cla8f="+code=det9las125tmp 10r7=29 /85     2" id/oL629 cl=29 />f25rssizine" nrecchputsEXPORT_SYMBOL_GPode=next" class="XPORT_SYMBOL_GPo /a> < rpche_e==hqwordcgcode=next" class=qwordcgco /a>xt /a8 1="+code8123"> 123 /a10r3f25tmp 10r7=2 /a85sh" cf"8" clhre9="+=2 /a>f25_detail 8 class="l8ne" namf26="+code=7oclass="s7ass="line" n9lasL26tmp 10r7i2 /a761ash_lock" clt/9uhri2 /a>f261 ecooteryed by " nam"io_monl62"> #L1448aoL130" c8class="line"9149f26tmp 10r742e_f76sh_unlocked" cl9ss=42e_f>f262 ecooteryed by " nam"io_mo * support /proc8class="line"/$CACHENAME/fcneio_62"> #L1448aoL130" c8class="line"9149f26tmp 10r752ld"76cache.c#L155" i9/oL52ld">f263 ecooteryed by " nam"io_mo * as a seqfile.62"> #L1448aoL130" c8class="line"9149f26tmp 10r7r2k /76             ad9/a>r2k />f264 ecooteryed by " nam"io_mo * We a4ll lass=a hracshow pby ioteNULLe /a>tcl ntem to62"> #L1448aoL130" c8class="line"9149f26tmp 10r7L2 id76hash_t  a href=9+coL2 id>f26+codeoteryed by " nam"io_mo * gco a hde=ne,>tcln pby  eane hcal ntem in>tcl a4 cl62"> #L1448aoL130" c8class="line"9149f26tmp 10r7x2f="76href="ache.c#L49" ix2f=">f26>oecooteryed by " nam"io_mo *162"> #L1448aoL130" c8class="line"9149f26tmp 10r7r243 76a>        for (9a hr243 >f2   eco1448aoL130" c8class="line"9149f26tmp 10r7=2="+76               9a h=2="+>f26rssizt" class="sref"in "+cohandle="+code=cachhouhandleoecona2687b        7     spa4 cl9d cf26tmp 10r7=2voi76sh" class="srwh9les=2voi>f26="s        hrache.c#L42"a> 842i achnhef="+ctai=che_head /a> * a hrefcy class="line" nh=che_>odec=che_head /a> * admef"t /a7 oL130" c7lass="line" 93  L27tmp 10r8f2L16770  93cl9ss=f2L16>f27 code}t /a7 oL130" c7lass="line" 93  L27tmp 10r7i2+co77=cache_is_exppp9pppi2+co>f27 next /a8c9       8ef="+code=ca9 a f27tmp 10r742/* 77sh_unlocked" cl9ss=42/* >f2Le=set_c clasvoid.ine" nh=che_>odec__c rtche_head /a> * a__c rt /a> ache.c#L42"a> 842i achseq_fileche_head /a> * seq_filess="line" nh=che_>odemd /a> * a hrefim"" nofine" nerrchla -=off_e=next" class="sroff_ess="line" nh=che_>odepofiid0l"net/"net/pof /a>x /a8c9       8ef="+code=ca9 a f27tmp 10r752   77lass="sref">old9/a>52   >f273=seterr class="sref"in "+co__acquirefiid0l"net/"net/__acquiref /a> < rpche_e==hc=che_head /a> * admef"lass="line" n" namashashclache_>code=next" chashclach /a>x /a8c9       8ef="+code=ca9 a f27tmp 10r7r2   77             }i9" cr2   >f27fmutea2687b        7     spa4 cl9d cf27tmp 10r7L2">d77hash_lock" clt/9uhrL2">d>f27e=sethopy_lasine" nerrchla -=off_e=next" class="sroff_ess="line" nerrchla -ref="+code=setcpimef">neine" nh=che_>arypofiid0l"net/"net/pof /a>t /a7 oL130" c7lass="line" 93  L27tmp 10r7x2p" 77href="+code=tes9_anx2p" >f27>oeconds_sincgned longs="line" nerrchla -aashe_>code=next" chash"" nofine" nerrchla -io_rye_>code=next" cio_ry /a>t /a7 oL130" c7lass="line" 93  L27tmp 10r7r2>  77               9   r2>  >f27  econds_sinc"" nam class="line" nhre=cachde=che_head /a> * a hrefhde=cs="line" nh=che_>codche_>code=next" cch /a>t /a7 oL130" c7lass="line" 93  L27tmp 10r7=2sh_77               9   =2sh_>f27rssize_c _detache.c#L42"a> 842i achnhef="+ctai=che_head /a> * a hrefcy class="line" nh=che_>odec=che_head /a> * admef">ne( ache.c#L42"a> 842i achhandle="+code=cachhouhandleoeco*)ne" nh=che_>odemd /a> * a hrefim"" nlass="line" n" namasprivate="+code=cachhouprivate /a>xlass="line" n" namasc=che_head /a> * admef"t /a7 oL130" c7lass="line" 93  L27tmp 10r7=2 na77/cache.c#L121" 9d/o=2 na>f27_detail 8 class="l8ne" nam  93}i9" cf2t a>f28="+code=7oclass="s7ass="line" n9lasL28tmp 10r7i2cla78m  93 /9>  i2cla>f281code=seterr ne" nh=che_>aryode=clache_>code=next" code=clach /a> class="line" nam * admef"lass="line" n" namashashclache_>code=next" chashclach /a>xt /a7 oL130" c7lass="line" 93  L28tmp 10r742 hr78sh_unlocked" hr9f="42 hr>f28e=seterr classs="line" nrecchrcodref="+code=setcpimef"--x /a8c9       8ef="+code=ca9 a f28tmp 10r752/oL78lass="sref">ot/9uhr52/oL>f28ef="+code=setcp_t"+colass="line" nrecchputsSEQ_START_TOKENde=next" class=SEQ_START_TOKENmef"t /a7 oL130" c7lass="line" 93  L28tmp 10r7r2ini78             e_9s_er2ini>f28fmutex"c/ache.c#L16oL148mas/aashe_>code=next" chash"" nna < rpche_e==href="+code=setcpimef">>> 32t /a8 1="+code8123"> 123 /a10r3f28tmp 10r7L2ent78hash_lock" clad9/a>L2ent>f2te=sethopy_lasine" nerrchla -io_rye_>code=next" cio_ry /a>na < rpche_e==href="+code=setcpimef">& s="l (1LL<<32x - 1xt /a8 1="+code8123"> 123 /a10r3f28tmp 10r7x2"co78ref="+code=expi9y" x2"co>f28ref">exp7>y /a>)1<7ss="comment"10r7f28tmp 10r7r2spa78a>        fort/9uhrr2spa>f2t  econds_sinc /a> < rpche_e==hche_>code=next" cch /a>=="line" nam * admef"lass="line" n" namashashctable="+code=cachhouhashctablesi" [.c#L16oL148mas/aashe_>code=next" chash"" n]"line" nerrchFMODehe_>code=next" cch /a>tline" nerrchFMODehe_>code=next" cch /a>=="line" namcode=next" cch /a>lass="line" n" namasnexe=next" class="snexe /a>x /a8c9       8ef="+code=ca9 a f28tmp 10r7=2hre78               9   =2hre>f28  econds_since_boooooss="line" nrecchrcodio_rye_>code=next" cio_ry /a>--x /a8c9       8ef="+code=ca9 a f28tmp 10r7=2ode78/cache.c#L121" 9d/o=2ode>f28="s        href="+code=se/a> lass="line" nrecchputsche_>code=next" cch /a>t /a7 oL130" c7lass="line" 93  L29tmp 10r8f2>ne790  93cl9ss=f2>ne>f29 code=seterr ne" nh=che_>aryref="+code=setcpimef">& s="= ~ (1LL<<32x - 1xt /a8 1="+code8123"> 123 /a10r3f29tmp 10r7i2e" 79=cache_is_exppp9pppi2e" >f291code=seterr dona2687b        7     spa4 cl9d cf29tmp 10r742>  79sh_unlocked" }u9L1642>  >f29sref">last_refresli.csc#L16oL148mas/aashe_>code=next" chash"" n++t /a8e6f">cach8_e=next" cla10ref29tmp 10r752>  79lass="sref">old9/a>52>  >f29ef="+code=setcp_t"+cone" nh=che_>aryref="+code=setcpimef">+= 1LL<<32t /a8e6f">cach8_e=next" cla10ref29tmp 10r7r2f">79             e_9s_er2f">>f29fmutex"c/ache}bwhileline" nerrchompcaashe_>code=next" chash"" nn< ine" nerrchla -e=che_head /a> * admef"lass="line" n" namashashcsize="+code=cachhouhashcsizemef">& s="c s="2687b        7     spa4 cl9d cf29tmp 10r7L2" c79hash_lock" cl="9et/L2" c>f29+code=seterr clase_bo.c#L16oL148mas/e=che_head /a> * admef"lass="line" n" namashashctable="+code=cachhouhashctablesi" [.c#L16oL148mas/aashe_>code=next" chash"" n]==="line" namcode=next" cNULL /a>xt /a7 oL130" c7lass="line" 93  L29tmp 10r7x2 /a79href="+code=tes9_anx2 /a>f29>oeconds_sincs="line" nerrchompcaashe_>code=next" chash"" nn>= &ne" nerrchla -e=che_head /a> * admef"lass="line" n" namashashcsize="+code=cachhouhashcsizemef"x /a8c9       8ef="+code=ca9 a f29tmp 10r7r2f="79               9   r2f=">f29  econds_since_boooooLTss="l="line" namcode=next" cNULL /a>t /a7 oL130" c7lass="line" 93  L29tmp 10r7=2+co79               9   =2+co>f29  econds_sincine" nh=che_>arypofiid0l"net/"net/pof /a>na < rpche_e==href="+code=setcpimef"+xt /a8e6f">cach8_e=next" cla9 ">f29tmp 10r7=2p" 79/cache.c#L121" 9d/o=2p" >f29="s        hrlass="line" nrecchputsc=che_head /a> * admef"lass="line" n" namashashctable="+code=cachhouhashctablesi" [.c#L16oL148mas/aashe_>code=next" chash"" n]" /a8e6f">cach8_e=next" cla9 ">f3>tmp 10ref3p" 79/cache.c#L121" 10ref310rea30a ecoail 8c105" cla8f="+code=det9las13>1mp 10ref3p" 79=cache_is_exppp9pppi310rto30 next /a8c9       8ef="+code=ca9 a f3>tmp 10r743>  79sh_unlocked" }u10r74310rpi30e=set_c clasvoid.ine" nh=che_>odec_nexe=next" class="sc_nexe /a> ache.c#L42"a> 842i achseq_fileche_head /a> * seq_filess="line" nh=che_>odemd /a> * a hrefim"" nofvoid.ine" nh=che_>odeef="+code=setfilp"" nofine" nerrchla -=off_e=next" class="sroff_ess="line" nh=che_>odepofiid0l"net/"net/pof /a>x /a8c9       8ef="+code=ca9 a f3>tmp 10r753>  79lass="sref">old10r75310r c30ss="la2687b        7     spa4 cl9d cf3>tmp 10r7r3f">79             e_10r7r310r h30fmutex"c/ache"" nam class="line" nhre=cachde=che_head /a> * a hrefhde=cs="line" nh=che_>codche_>code=next" cch /a>na < rpche_e==hef="+code=setfilp"" n" /a8e6f">cach8_e=next" cla9 ">f3>5mp 10r7r3f c79hash_lock" cl="9et/L310ref30+code=seterr s="line" nerrchla -aashe_>code=next" chash"" n>ne(*ne" nh=che_>arypofiid0l"net/"net/pof /a>n>> 32xt /a7 oL130" c7lass="line" 93  L3>6mp 10r7L3"/a79href="+code=tes9_anx310rs=306mutex"c/ache"" nam class="line" nhre=cac+ctai=che_head /a> * a hrefcy class="line" nh=che_>odec=che_head /a> * admef">ne( ache.c#L42"a> 842i achhandle="+code=cachhouhandleoeco*)ne" nh=che_>odemd /a> * a hrefim"" nlass="line" n" namasprivate="+code=cachhouprivate /a>xlass="line" n" namasc=che_head /a> * admef"t /a7 oL130" c7lass="line" 93  L3>tmp 10r7r3f="79               10r7r310r  30  eco1448aoL130" c8class="line"9149f3>8mp 10r7r3fco79               9   =310r  30  econds_sincs="line" nerrchompcef="+code=setfilp"" nnaa &ne" nrecchputsSEQ_START_TOKENde=next" class=SEQ_START_TOKENmef"x /a8c9       8ef="+code=ca9 a f3>9mp 10r7r3f" 79/cache.c#L121" 9d/o=310rla30="s        href="+codine" nerrchla -aashe_>code=next" chash"" n>next /a8e6f">cach8_e=next" cla10ref3>tmp 10r8f3>he810  93cl10r8f3cl10L31 code=seterr elsers="line" nerrchompcehe_>code=next" cch /a>lass="line" n" namasnexe=next" class="snexe /a>naa &ne" nrecchputsNULLe_>code=next" cNULL /a>xna2687b        7     spa4 cl9d cf311mp 10ref3 * 81=cache_is_exppp9pppi3 * 0L31conds_since_booucccccsc#L16oL148mas/aashe_>code=next" chash"" n++t /a8e6f">cach8_e=next" cla10ref3>tmp 10r743;1<81sh_unlocked" cl9ss=43;1<0L31sref">last_refresli.c*ne" nh=che_>arypofiid0l"net/"net/pof /a>n+= 1LL<<32t /a8e6f">cach8_e=next" cla10ref3>tmp 10r75315"81lass="sref">old9/a>5315"0L313onds_since_b}=elsera2687b        7     spa4 cl9d cf31tmp 10r7r3che81             e_9s_er3che0L31fmutex"c/////////clas++ine" nh=che_>arypofiid0l"net/"net/pof /a>t /a7 oL130" c7lass="line" 93  L3>tmp 10r7L3cod81hash_lock" cl="9et/L3cod0L31+code=seterr clase_bolass="line" nrecchputsche_>code=next" cch /a>lass="line" n" namasnexe=next" class="snexe /a>t /a7 oL130" c7lass="line" 93  L3>6mp 10r7L3am<81href="+code=tes9_anx3am<0L31>oeconds_sincail 8c105" cla8f="+code=det9las131tmp 10r7r3sre81               9   r3sre0L31  econds_sinc*ne" nh=che_>arypofiid0l"net/"net/pof /a>n& s="= ~ (1LL<<32x - 1xt /a8 1="+code8123"> 123 /a10r3f36tmp 10r7=3t/s81               9   =3t/s0L31  econds_sincwhile (ine" nerrchla -aashe_>code=next" chash"" nn< ine" nerrchla -e=che_head /a> * admef"lass="line" n" namashashcsize="+code=cachhouhashcsizemef">& s="c s="2687b        7     spa4 cl9d cf36tmp 10r7=3unr81/cache.c#L121" 9d/o=3unr0L31="s        href="+coine" nrecchputsc=che_head /a> * admef"lass="line" n" namashashctable="+code=cachhouhashctablesi" [.c#L16oL148mas/aashe_>code=next" chash"" n]naa &ne" nrecchputsNULLe_>code=next" cNULL /a>xna2687b        7     spa4 cl9d cf3=tmp 10r8f3up"820  93cl9ss=f3up">f32 code=seterr clase_bosc#L16oL148mas/aashe_>code=next" chash"" n++t /a8e6f">cach8_e=next" cla10ref3=1mp 10ref3sun82m  93}i9" ci3sun>f32conds_since_boouccccc*ne" nh=che_>arypofiid0l"net/"net/pof /a>n+= 1LL<<32t /a8e6f">cach8_e=next" cla10ref3utmp 10r743unr82sh_unlocked" t/9uhr43unr>f322oeconds_sincail 8c105" cla8f="+code=det9las132tmp 10r753ail82lass="sref">old9/a>53ail>f323onds_since_bs="line" nerrchompcaashe_>code=next" chash"" nn>= &ne" nerrchla -e=che_head /a> * admef"lass="line" n" namashashcsize="+code=cachhouhashcsizemef"x /a8c9       8ef="+code=ca9 a f3=tmp 10r7r3ach82             ad9/a>r3ach>f32fmutex"c/////////////LTss="l="line" namcode=next" cNULL /a>t /a7 oL130" c7lass="line" 93  L3=tmp 10r7L3che82hash_lock" cl"+9odeL3che>f3u+code=seterr ++ine" nh=che_>arypofiid0l"net/"net/pof /a>t /a7 oL130" c7lass="line" 93  L3u6mp 10r7L3  a82L118"}il" class9"srx3  a>f32>oeconds_sinclass="line" nrecchputsc=che_head /a> * admef"lass="line" n" namashashctable="+code=cachhouhashctablesi" [.c#L16oL148mas/aashe_>code=next" chash"" n]" /a8e6f">cach8_e=next" cla9 ">f32tmp 10r7r3128821f32="s  _c clasvoid.ne" nh=che_>odec_stoef="+code=setfilc_stoe /a> ache.c#L42"a> 842i achseq_fileche_head /a> * seq_filess="line" nh=che_>odemd /a> * a hrefim"" nofvoid.ine" nh=che_>odeef="+code=setfilp"" nx /a8c9       8ef="+code=ca9 a f33tmp 10r8f3p_w83148">62" id/oL69" cf3p_w>f33 code=seterr ne" nh=che_>ary__releasefiid0l"net/"net/__releasef /a> ine" nrecchputsc=che_head /a> * admef"lass="line" n" namashashclache_>code=next" chashclach /a>x /a8c9       8ef="+code=ca9 a f33tmp 10r7i3CHE83m  93 /9>  i3CHE>f3pcondsa2687b        7     spa4 cl9d cf33tmp 10r743ach83is en          9   43ach>f3psref">last_re"" nam class="line" nhre=cac+ctai=che_head /a> * a hrefcy class="line" nh=che_>odec=che_head /a> * admef">ne( ache.c#L42"a> 842i achhandle="+code=cachhouhandleoeco*)ne" nh=che_>odemd /a> * a hrefim"" nlass="line" n" namasprivate="+code=cachhouprivate /a>xlass="line" n" namasc=che_head /a> * admef"t /a7 oL130" c7lass="line" 93  L33tmp 10r753="+83lass="sref">ot/9uhr53="+>f333=seterr class="sref"in "+coode=c/ache  a h"net/sunrpcode=c/ache  /a> class="line" nam * admef"lass="line" n" namashashclache_>code=next" chashclach /a>xt /a7 oL130" c7lass="line" 93  L33tmp 10r7r3" c83             e_9s_er3" c>f33fmuteail 8c105" cla8f="+code=det9las133tmp 10r7L3hre83hash_lock" clt/9uhrL3hre>f33+codeil 8c105" cla8f="+code=det9las1336mp 10r7L3 ( 83href="+code=tes9_anx3 ( >f33>oeco_c class="line" nerrchla -ccshowf="+code=setfilc_show /a> ache.c#L42"a> 842i achseq_fileche_head /a> * seq_filess="line" nh=che_>odemd /a> * a hrefim"" nofvoid.ine" nh=che_>odeef="+code=setfilp"" nx /a8c9       8ef="+code=ca9 a f33tmp 10r7r3gs 83a>        for (9a hr3gs >f33  ecoa2687b        7     spa4 cl9d cf33tmp 10r7=3> 1838cache_is_expti9e" =3> 1>f33rssize_c _detache.c#L42"a> 842i achnhef="hde=che_head /a> * a hrefhde=cs="line" nh=che_>codcef="+code=setfilce#cy na < rpche_e==hef="+code=setfilp"" n" /a8e6f">cach8_e=next" cla9 ">f33tmp 10r7=3 cl83sh" class="srLf9un2=3 cl>f33="s        hrache.c#L42"a> 842i achnhef="+ctai=che_head /a> * a hrefcy class="line" nh=che_>odec=che_head /a> * admef">ne( ache.c#L42"a> 842i achhandle="+code=cachhouhandleoeco*)ne" nh=che_>odemd /a> * a hrefim"" nlass="line" n" namasprivate="+code=cachhouprivate /a>xlass="line" n" namasc=che_head /a> * admef"t /a7 oL130" c7lass="line" 93  L34tmp 10r8f3nam840  93cl9ss=f3nam>f34="+code=7oclass="s7ass="line" n9lasL34tmp 10r7i3="+84m  93"+9odei3="+>f34conds_since_bs="line" nerrchompcef="+code=setfilp"" nnaa &ne" nrecchputsSEQ_START_TOKENde=next" class=SEQ_START_TOKENmef"x /a8c9       8ef="+code=ca9 a f34tmp 10r743=ca84sh_unail" class9"sr43=ca>f34sref">last_refresli.class="line" nrecchputsc=che_head /a> * admef"lass="line" n" namasa hracshowche_head /a> * a hrefshow /a> ne" nh=che_>odemd /a> * a hrefim"" nofine" nrecchputsc=che_head /a> * admef"ofine" nrecchputsNULLe_>code=next" cNULL /a>xt /a7 oL130" c7lass="line" 93  L34tmp 10r753f">84cache.c#L155" i9/oL53f">>f34ss="line8cef">cach8/oL145" clas10r4f3ntmp 10r7r3L14844d/oL128" clhre9="+r3L14>f34fmutex"c/ache.c#L16oL148mas/ifdebuge_>code=next" cifdebug /a> ne" nh=che_>odeCACHEe_>code=next" cCACHEmef"x /a8c9       8ef="+code=ca9 a f34tmp 10r7L3pc/84hash_lock" cl="9et/L3pc/>f34+code=seterr clase_boL42"a> 842i achseq_printf="+code=cachhouseq_printf /a> ne" nh=che_>odemd /a> * a hrefim"" nofiteryed by " ntre_.a>"# expiry=%ldclafcnt=%d flags=%lx\n"62"> #L, /a8c9       8ef="+code=ca9 a f346mp 10r7L3ALI846h" c62" id/oL69" cx3ALI>f34>oeconds_since_bohref="pu rhhhhhine" nrecchputsconvert_to_wallclache_>code=next" cconvert_to_wallclach /a> ine" nrecchputscef="+code=setfilce#cy lass="line" n" namasexpiry_time="+code=cachhouexpiry_timemef"x, /a8c9       8ef="+code=ca9 a f34tmp 10r7r3 cl84             129" cr3 cl>f34  econds_since_booooooooooooohhhine" nrecchputsatomic_rde=che_head /a> * atomic_rde= /a> class="line" nam"line" n namche_chfcoune=next" class="schfcounemef"x,hine" nrecchputscef="+code=setfilce#cy lass="line" n" namasflagsf="+code=setfilflags /a>xt /a7 oL130" c7lass="line" 93  L34tmp 10r7=35  848cache_is_expti9e" =35  >f34  econds_sinc"line" n" namasa hracgcode=next" class=e hracgco /a> < rpche_e==hcef="+code=setfilce#cy xt /a7 oL130" c7lass="line" 93  L34tmp 10r7=3="s84 1et/il" class=9sre=3="s>f34="s        hrs="line" nerrchompce hrachrache_>code=next" cc hrachrach /a> ine" nrecchputsc=che_head /a> * admef",hine" nrecchputscef="+code=setfilce#cy ofine" nrecchputsNULLe_>code=next" cNULL /a>xx /a8c9       8ef="+code=ca9 a f35tmp 10r8f3   85148"> 11f="73t/9uhrf3   >f35 code=seterr clase_bosteryed by " nam"io_monl c hrachrach doas a c hracput on fclaure *162"> #L1448aoL130" c8class="line"9149f35tmp 10r7i3"ne85=cache_is_exppp9pppi3"ne>f35conds_since_booucccccsc#L16oL148mas/seq_printf="+code=cachhouseq_printf /a> ne" nh=che_>odemd /a> * a hrefim"" nofiteryed by " ntre_.a>"# "62"> #Lxt /a7 oL130" c7lass="line" 93  L3 tmp 10r743ref85sh_unlocked" hr9f="43ref>f35sref">last_reelsera2687b        7     spa4 cl9d cf3 tmp 10r753nrp85lass="sref">oec9nds53nrp>f35ef="+code=setcp_t"+cos="line" nerrchompce hracis_expire=che_head /a> * a hrefis_expire= /a> ine" nrecchputsc=che_head /a> * admef",hine" nrecchputscef="+code=setfilce#cy xx /a8c9       8ef="+code=ca9 a f35tmp 10r7r3 a 85             ad9/a>r3 a >f35fmutex"c/////////////ooucccccsc#L16oL148mas/seq_printf="+code=cachhouseq_printf /a> ne" nh=che_>odemd /a> * a hrefim"" nofiteryed by " ntre_.a>"# "62"> #Lxt /a7 oL130" c7lass="line" 93  L3 tmp 10r7L3ef"85hash_econds_sin9e_bL3ef">f35+code=seterr clase_bo.c#L16oL148mas/e hracputche_head /a> * a hrefput /a> < rpche_e==hcef="+code=setfilce#cy ofine" nrecchputsc=che_head /a> * admef"xt /a7 oL130" c7lass="line" 93  L3 6mp 10r7L3   85href="+code=t"+9odex3   >f35>oeconds_sincail 8c105" cla8f="+code=det9las13 tmp 10r7r3/a>85     ail" class9"srr3/a>>f35  eco1448aoL130" c8class="line"9149f35tmp 10r7=39 /85     2" id/oL629 cl=39 />f35rssize_c _detlass="line" nrecchputsc=che_head /a> * admef"lass="line" n" namasa hracshowche_head /a> * a hrefshow /a> ne" nh=che_>odemd /a> * a hrefim"" nofine" nrecchputsc=che_head /a> * admef"ofine" nrecchputscef="+code=setfilce#cy xt /a7 oL130" c7lass="line" 93  L35tmp 10r7=3 /a85sh" cf"8" clhre9="+=3 /a>f35=_detail 8c105" cla8f="+code=det9las136tmp 10r8f3   76 href          9   f3   >f36="+code=7oclass="s7ass="line" n9lasL36tmp 10r7i3 /a761ash_lock" clt/9uhri3 /a>f361 eco_c clasconstrache.c#L42"a> 842i achseq_oper clons="+code=cachhouseq_oper clonsssizeine" nerrchompce hrachcneio__oef="+code=setfilc hrachcneio__oemef">nea2687b        7     spa4 cl9d cf36tmp 10r743e_f76sh_unlocked" cl9ss=43e_f>f36sref">last_re"line" n namche__c rtche_head /a> * _c rt /a> ca < rpche_e==he__c rtche_head /a> * a__c rt /a>, /a8c9       8ef="+code=ca9 a f36tmp 10r753ld"76cache.c#L155" i9/oL53ld">f363ref">last_re"line" n namche_nexe=next" class="snexe /a>n ca < rpche_e==he_nexe=next" class="sc_nexe /a>, /a8c9       8ef="+code=ca9 a f36tmp 10r7r3k /76             ad9/a>r3k />f364ref">last_re"line" n namche__coef="+code=setfilstoe /a>n ca < rpche_e==he_stoef="+code=setfilc_stoe /a>, /a8c9       8ef="+code=ca9 a f36tmp 10r7L3 id76hash_t  a href=9+coL3 id>f365ref">last_re"line" n namche__howche_head /a> * show /a>n ca < rpche_e==he_showf="+code=setfilc_show /a>, /a8c9       8ef="+code=ca9 a f366mp 10r7L3f="76href="ache.c#L49" ix3f=">f36>oeco}t /a7 oL130" c7lass="line" 93  L36tmp 10r7r343 76a>        for (9a hr343 >f3   eco1448aoL130" c8class="line"9149f36tmp 10r7=3="+76               9a h=3="+>f36rssizt" class="line" nerrchla -ccneio__oehref="+code=setcpccneio__oehr /a> ache.c#L42"a> 842i achin ace_>code=next" cin acss="line" nh=che_>odein ace_>code=next" cin acss=",rache.c#L42"a> 842i achfileche_head /a> * filess="line" nh=che_>odefileche_head /a> * filess=", /a8c9       8ef="+code=ca9 a f36tmp 10r7=3voi76sh" class="srwh9les=3voi>f36="s        href="+code=se/a> ache.c#L42"a> 842i achnhef="+ctai=che_head /a> * a hrefcy class="line" nh=che_>odec=che_head /a> * admef"x /a8c9       8ef="+code=ca9 a f37tmp 10r8f3L16770  93cl9ss=f3L16>f37 codea2687b        7     spa4 cl9d cf37tmp 10r7i3+co77=cache_is_exppp9pppi3+co>f37conds_since_bt" class="sref"in "+cohandle="+code=cachhouhandleoeconine" nh=che_>odehan="+code=cachhouhanmef"t /a7 oL130" c7lass="line" 93  L37tmp 10r743/* 77sh_unlocked" cl9ss=43/* >f37=e" n /a8e6f">cach8_e=next" cla10ref37tmp 10r753   77lass="sref">old9/a>53   >f373onds_since_bs="lline" nrecchrcodc=che_head /a> * admef">|| line" nrecchrcodtry_modulacgcode=next" class=try_modulacgco /a> ine" nrecchputsc=che_head /a> * admef"lass="line" n" namasownerche_head /a> * owner#cy xx /a8c9       8ef="+code=ca9 a f37tmp 10r7r3   77             }i9" cr3   >f37fmutex"c/////////////LTss="l-"line" n" namasEACCESche_head /a> * EACCESmef"t /a7 oL130" c7lass="line" 93  L37tmp 10r7L3">d77hash_lock" clt/9uhrL3">d>f37e=sethopy_lasine" nerrchla -han="+code=cachhouhanmef"ca < rpche_e==h__seq_open_private="+code=cachhou__seq_open_private /a> ine" nrecchputsfileche_head /a> * filess=", class="line" namaryhan="+code=cachhouhanmef")xt /a7 oL130" c7lass="line" 93  L37tmp 10r7x3p" 77href="+code=tes9_anx3p" >f37>oeconds_sincs="line" nerrchompcaan="+code=cachhouhanmef"caa &ne" nrecchputsNULLe_>code=next" cNULL /a>xna2687b        7     spa4 cl9d cf37tmp 10r7r3>  77               9   r3>  >f37  econds_since_booooone" nh=che_>odemodulacputche_head /a> * modulacput /a> ine" nrecchputsc=che_head /a> * admef"lass="line" n" namasownerche_head /a> * owner#cy xt /a7 oL130" c7lass="line" 93  L37tmp 10r7=3sh_77               9   =3sh_>f37  econds_since_boooooLTss="l-"line" n" namasENOMEMche_head /a> * ENOMEMmef"t /a7 oL130" c7lass="line" 93  L37tmp 10r7=3 na77/cache.c#L121" 9d/o=3 na>f37="s        hrail 8c105" cla8f="+code=det9las138tmp 10r8f3t a780  93}i9" cf3t a>f38="+code=7oclass="s7ass="line" n9lasL38tmp 10r7i3cla78m  93 /9>  i3cla>f381code=seterr ne" nh=che_>aryaan="+code=cachhouhanmef"lass="line" n" namasc=che_head /a> * admef"ca < rpche_e==he=che_head /a> * admef"t /a7 oL130" c7lass="line" 93  L38tmp 10r743 hr78sh_unlocked" hr9f="43 hr>f38e=seterr clasLTss="lxt /a8e6f">cach8_e=next" cla10ref38tmp 10r753/oL78lass="sref">ot/9uhr53/oL>f38ef="+ail 8c105" cla8f="+code=det9las138tmp 10r7r3ini78             e_9s_er3ini>f38fmuteil 8c105" cla8f="+code=det9las138tmp 10r7L3ent78hash_lock" clad9/a>L3ent>f3te=sett" class="line" nerrchla -ccneio__releaseef="+code=setcpccneio__release /a> ache.c#L42"a> 842i achin ace_>code=next" cin acss="line" nh=che_>odein ace_>code=next" cin acss=",rache.c#L42"a> 842i achfileche_head /a> * filess="line" nh=che_>odefileche_head /a> * filess=", /a8c9       8ef="+code=ca9 a f38tmp 10r7x3"co78ref="+code=expi9y" x3"co>f38>oeconds_since_bohrefache.c#L42"a> 842i achnhef="+ctai=che_head /a> * a hrefcy class="line" nh=che_>odec=che_head /a> * admef"x /a8c9       8ef="+code=ca9 a f38tmp 10r7r3spa78a>        fort/9uhrr3spa>f38  ecoa2687b        7     spa4 cl9d cf38tmp 10r7=3hre78               9   =3hre>f38  econds_sincs="line" nerrchla -rcode=next" class=retmef"ca < rpche_e==hseq_release_private="+code=cachhouseq_release_private /a> ine" nrecchputsin ace_>code=next" cin acss=",rne" nh=che_>odefileche_head /a> * filess="xt /a7 oL130" c7lass="line" 93  L38tmp 10r7=3ode78/cache.c#L121" 9d/o=3ode>f38="s        hrne" nh=che_>odemodulacputche_head /a> * modulacput /a> ine" nrecchputsc=che_head /a> * admef"lass="line" n" namasownerche_head /a> * owner#cy xt /a7 oL130" c7lass="line" 93  L39tmp 10r8f3>ne790  93cl9ss=f3>ne>f39 code=seterr lass="line" nrecchputsrcode=next" class=retmef"t /a7 oL130" c7lass="line" 93  L39tmp 10r7i3e" 79=cache_is_exppp9pppi3e" >f391codeail 8c105" cla8f="+code=det9las139tmp 10r743>  79sh_unlocked" }u9L1643>  >f39=e" n /a8e6f">cach8_e=next" cla10ref39tmp 10r753>  79lass="sref">old9/a>53>  >f39ef="+t" class="line" nerrchla -open_flushe_>code=next" copen_flush /a> ache.c#L42"a> 842i achin ace_>code=next" cin acss="line" nh=che_>odein ace_>code=next" cin acss=",rache.c#L42"a> 842i achfileche_head /a> * filess="line" nh=che_>odefileche_head /a> * filess=", /a8c9       8ef="+code=ca9 a f39tmp 10r7r3f">79             e_9s_er3f">>f39fmutex"c/////////////ooucccccache.c#L42"a> 842i achnhef="+ctai=che_head /a> * a hrefcy class="line" nh=che_>odec=che_head /a> * admef"x /a8c9       8ef="+code=ca9 a f39tmp 10r7L3" c79hash_lock" cl="9et/L3" c>f39+codea2687b        7     spa4 cl9d cf39tmp 10r7x3 /a79href="+code=tes9_anx3 /a>f39>oeconds_sincs="lline" nrecchrcodc=che_head /a> * admef">|| line" nrecchrcodtry_modulacgcode=next" class=try_modulacgco /a> ine" nrecchputsc=che_head /a> * admef"lass="line" n" namasownerche_head /a> * owner#cy xx /a8c9       8ef="+code=ca9 a f39tmp 10r7r3f="79               9   r3f=">f39  econds_since_boooooLTss="l-"line" n" namasEACCESche_head /a> * EACCESmef"t /a7 oL130" c7lass="line" 93  L39tmp 10r7=3+co79               9   =3+co>f39rssize_c _detlass="line" nrecchputsnonseekable_oehref="+code=setcpnonseekable_oehr /a> ine" nrecchputsin ace_>code=next" cin acss=",rne" nh=che_>odefileche_head /a> * filess="xt /a7 oL130" c7lass="line" 93  L39tmp 10r7=3p" 79/cache.c#L121" 9d/o=3p" >f39=_detail 8c105" cla8f="+code=det9las14>tmp 10ref4p" 79/cache.c#L121" 10ref410rea40="+code=7oclass="s7ass="line" n9lasL4>1mp 10ref4p" 79=cache_is_exppp9pppi410rto401f="+t" class="line" nerrchla -release_flushe_>code=next" crelease_flush /a> ache.c#L42"a> 842i achin ace_>code=next" cin acss="line" nh=che_>odein ace_>code=next" cin acss=",rache.c#L42"a> 842i achfileche_head /a> * filess="line" nh=che_>odefileche_head /a> * filess=", /a8c9       8ef="+code=ca9 a f4>tmp 10r744>  79sh_unlocked" }u10r74410rpi40sref">last_refresli.c"mosforeache.c#L42"a> 842i achnhef="+ctai=che_head /a> * a hrefcy class="line" nh=che_>odec=che_head /a> * admef"x /a8c9       8ef="+code=ca9 a f4>tmp 10r754>  79lass="sref">old10r75410r c40ss="la2687b        7     spa4 cl9d cf4>tmp 10r7r4f">79             e_10r7r410r h40fmutex"c/achene" nh=che_>odemodulacputche_head /a> * modulacput /a> ine" nrecchputsc=che_head /a> * admef"lass="line" n" namasownerche_head /a> * owner#cy xt /a7 oL130" c7lass="line" 93  L4>5mp 10r7r4f c79hash_lock" cl="9et/L410ref40+code=seterr LTss="lxt /a8e6f">cach8_e=next" cla10ref4>6mp 10r7L4"/a79href="+code=tes9_anx410rs=406muteail 8c105" cla8f="+code=det9las14>7mp 10r7L4"="79               9   r410r  40  eco1448aoL130" c8class="line"9149f4>8mp 10r7r4fco79               9   =410r  40rssizt" clas< rpche_e==hsaize_e=next" class="ssaize_essizeine" nerrchompcode=cflushe_>code=next" cree=cflush /a> ache.c#L42"a> 842i achfileche_head /a> * filess="line" nh=che_>odefileche_head /a> * filess=", char < rpche_e==h__userche_head /a> * __userss="line" nh=che_>odebuf="+code=cachhoubufss=", /a8c9       8ef="+code=ca9 a f4>9mp 10r7r4f" 79/cache.c#L121" 9d/o=410rla40="s        href="+coddddddddddd< rpche_e==hsize_e=next" class="ssize_essizeine" nerrchompccoune=next" class="scounemef"ofine" nerrchla -=off_e=next" class="sroff_ess="line" nh=che_>odeppofiid0l"net/"net/ppof /a>, /a8c9       8ef="+code=ca9 a f4>tmp 10r8f4>he810  93cl10r8f4cl10L41 code=seterr clase_bo.c"mosforeache.c#L42"a> 842i achnhef="+ctai=che_head /a> * a hrefcy class="line" nh=che_>odec=che_head /a> * admef"x /a8c9       8ef="+code=ca9 a f411mp 10ref4 * 81=cache_is_exppp9pppi4 * 0L41condsa2687b        7     spa4 cl9d cf4>tmp 10r744;1<81sh_unlocked" cl9ss=44;1<0L41sref">last_rechar < rpche_e==htbuf="+code=cachhoutbufss="[22]" /a8e6f">cach8_e=next" cla9 ">f4>tmp 10r75415"81lass="sref">old9/a>5415"0L413onds_since_bgned longlong < rpche_e==hef="+code=setfilp"" n>neine" nh=che_>aryppofiid0l"net/"net/ppof /a>" /a8e6f">cach8_e=next" cla9 ">f4>tmp 10r7r4che81             e_9s_er4che0L41fmutex"c/achene" nh=che_>odesize_e=next" class="ssize_essizeine" nerrchompc=href="+code=setcp_timef"t /a7 oL130" c7lass="line" 93  L4>tmp 10r7L4cod81hash_lock" cl="9et/L4cod0L41+codeil 8c105" cla8f="+code=det9las14>6mp 10r7L4am<81href="+code=tes9_anx4am<0L41>oeconds_sincne" nh=che_>odesnprintf="+code=cachhousnprintf /a> ne" nh=che_>odetbuf="+code=cachhoutbufss=",raizeof(ne" nh=che_>odetbuf="+code=cachhoutbufss=")ofiteryed by " ntre_.a>"%lu\n"62"> #L,hine" nrecchputsconvert_to_wallclache_>code=next" cconvert_to_wallclach /a> ine" nrecchputsc=che_head /a> * admef"lass="line" n" namasflush_time="+code=cachhouflush_timemef")xt /a7 oL130" c7lass="line" 93  L41tmp 10r7r4sre81               9   r4sre0L41  econds_sincine" nerrchompc=href="+code=setcp_timef"ca < rpche_e==hstr=href="+code=setcpstr=hr /a> ne" nh=che_>odetbuf="+code=cachhoutbufss="xt /a7 oL130" c7lass="line" 93  L418mp 10r7r4t/s81               9   =4t/s0L41  econds_sincs="line" nerrchompcef="+code=setfilp"" nn>= &ne" nerrchla -=href="+code=setcp_timef"x /a8c9       8ef="+code=ca9 a f419mp 10r7r4unr81/cache.c#L121" 9d/o=4unr0L41="s        href="+co LTss="lxt /a8e6f">cach8_e=next" cla10ref4=tmp 10r8f4up"820  93cl9ss=f4up">f42 code=seterr ne" nh=che_>ary=href="+code=setcp_timef"c-a < rpche_e==hef="+code=setfilp"" n" /a8e6f">cach8_e=next" cla9 ">f4=1mp 10ref4sun82m  93}i9" ci4sun>f42conds_since_bs="line" nerrchompc=href="+code=setcp_timef"c> ine" nerrchompccoune=next" class="scounemef"x /a8c9       8ef="+code=ca9 a f4utmp 10r744unr82sh_unlocked" t/9uhr44unr>f42sref">last_refresli.csc#L16oL148mas/=href="+code=setcp_timef"ca < rpche_e==hcoune=next" class="scounemef"" /a8e6f">cach8_e=next" cla9 ">f4=tmp 10r754ail82lass="sref">old9/a>54ail>f423onds_since_bs="line" nerrchompccopy_to_userche_head /a> * copy_to_user /a> ne" nh=che_>odebuf="+code=cachhoubufss=", (void*) ne" nh=che_>odetbuf="+code=cachhoutbufss="+< rpche_e==hef="+code=setfilp"" nx,hine" nrecchputs=href="+code=setcp_timef"xx /a8c9       8ef="+code=ca9 a f4utmp 10r7r4ach82             ad9/a>r4ach>f42fmutex"c/////////////LTss="l-"line" n" namasEFAULTche_head /a> * EFAULTmef"" /a8e6f">cach8_e=next" cla9 ">f4=tmp 10r7L4che82hash_lock" cl"+9odeL4che>f4u+code=seterr ine" nh=che_>aryppofiid0l"net/"net/ppof /a>n+= ine" nerrchompc=href="+code=setcp_timef"t /a7 oL130" c7lass="line" 93  L4u6mp 10r7L4  a82L118"}il" class9"srx4  a>f42>oeconds_sinclass="line" nrecchputs=href="+code=setcp_timef"t /a7 oL130" c7lass="line" 93  L4utmp 10r7r4128821f42="s  _c clas< rpche_e==hsaize_e=next" class="ssaize_essizeine" nerrchompcwrite_flushe_>code=next" cwrite_flush /a> ache.c#L42"a> 842i achfileche_head /a> * filess="line" nh=che_>odefileche_head /a> * filess=", constrchar < rpche_e==h__userche_head /a> * __userss="line" nh=che_>odebuf="+code=cachhoubufss=", /a8c9       8ef="+code=ca9 a f43tmp 10r8f4p_w83148">62" id/oL69" cf4p_w>f43 code=seterr clase_bo.c"mosfored< rpche_e==hsize_e=next" class="ssize_essizeine" nerrchompccoune=next" class="scounemef"ofine" nerrchla -=off_e=next" class="sroff_ess="line" nh=che_>odeppofiid0l"net/"net/ppof /a>, /a8c9       8ef="+code=ca9 a f43tmp 10r7i4CHE83m  93 /9>  i4CHE>f43conds_since_boouccccccccccccccccache.c#L42"a> 842i achnhef="+ctai=che_head /a> * a hrefcy class="line" nh=che_>odec=che_head /a> * admef"x /a8c9       8ef="+code=ca9 a f43tmp 10r744ach83is en          9   44ach>f4psref"a2687b        7     spa4 cl9d cf43tmp 10r754="+83lass="sref">ot/9uhr54="+>f433=seterr claschar < rpche_e==htbuf="+code=cachhoutbufss="[20]" /a8e6f">cach8_e=next" cla9 ">f43tmp 10r7r4" c83             e_9s_er4" c>f434=seterr claschar ine" nh=che_>odebef="+code=setfilbpsi" , ine" nh=che_>odeeef="+code=setfilep"" n" /a8e6f">cach8_e=next" cla9 ">f43tmp 10r7L4hre83hash_lock" clt/9uhrL4hre>f43+codeil 8c105" cla8f="+code=det9las1436mp 10r7L4 ( 83href="+code=tes9_anx4 ( >f43>oeconds_sincs="line" nh=che_>aryppofiid0l"net/"net/ppof /a>n||eine" nerrchompccoune=next" class="scounemef"c> aizeof(ne" nh=che_>odetbuf="+code=cachhoutbufss=")-1x /a8c9       8ef="+code=ca9 a f43tmp 10r7r4gs 83a>        for (9a hr4gs >f43  econds_since_boooooLTss="l-"line" n" namasEINVAode=next" class="INVAo"" n" /a8e6f">cach8_e=next" cla9 ">f43tmp 10r7=4> 1838cache_is_expti9e" =4> 1>f43  econds_sincs="line" nerrchompccopy_from_userche_head /a> * copy_from_user /a> ne" nh=che_>odetbuf="+code=cachhoutbufss=",rne" nh=che_>odebuf="+code=cachhoubufss=", ine" nerrchompccoune=next" class="scounemef"xx /a8c9       8ef="+code=ca9 a f43tmp 10r7=4 cl83sh" class="srLf9un2=4 cl>f43="s        href="+co LTss="l-"line" n" namasEFAULTche_head /a> * EFAULTmef"" /a8e6f">cach8_e=next" cla9 ">f44tmp 10r8f4nam840  93cl9ss=f4nam>f44 code=seterr ne" nh=che_>arytbuf="+code=cachhoutbufss="[ine" nerrchompccoune=next" class="scounemef"]>next /a8e6f">cach8_e=next" cla10ref44tmp 10r7i4="+84m  93"+9odei4="+>f441code=seterr ne" nh=che_>arysimple_achtou=che_head /a> * simple_achtou= /a> ne" nh=che_>odetbuf="+code=cachhoutbufss=",rclass="line" namf44e=seterr classs="ine" nh=che_>odeeef="+code=setfilep"" n>& s="c s=" ine" nh=che_>odeeef="+code=setfilep"" n !=fiteryed by " ntre_.a>'\n'62"> #Lx /a7 oL130" c7lass="line" 93  L44tmp 10r754f">84cache.c#L155" i9/oL54f">>f44ef="+code=setcp_t"+colass="l-"line" n" namasEINVAode=next" class="INVAo"" n" /a8e6f">cach8_e=next" cla9 ">f4ntmp 10r7r4L14844d/oL128" clhre9="+r4L14>f44fmuteil 8c105" cla8f="+code=det9las144tmp 10r7L4pc/84hash_lock" cl="9et/L4pc/>f44+code=seterr ne" nh=che_>odebef="+code=setfilbpsi" ca < rpche_e==htbuf="+code=cachhoutbufss="" /a8e6f">cach8_e=next" cla9 ">f4n6mp 10r7L4ALI846h" c62" id/oL69" cx4ALI>f44>oeconds_sincne" nh=che_>odec=che_head /a> * admef"lass="line" n" namasflush_time="+code=cachhouflush_timemef"ca < rpche_e==hget_expirye_>code=next" cget_expiry /a> class="line" namf44  econds_sincine" nerrchompcc=che_head /a> * admef"lass="line" n" namasnexehrache_>code=next" cnexehrachmef"ca < rpche_e==hseconds_since_booe=next" class="sseconds_since_booe /a> xt /a7 oL130" c7lass="line" 93  L44tmp 10r7=45  848cache_is_expti9e" =45  >f44  econds_sinc"line" n" namasa hracflushe_>code=next" ca hracflush /a> xt /a7 oL130" c7lass="line" 93  L44tmp 10r7=4="s84 1et/il" class=9sre=4="s>f44_detail 8 class="l8ne" nam 11f="73t/9uhrf4   >f45 code=seterr ine" nh=che_>aryppofiid0l"net/"net/ppof /a>n+= ine" nerrchompccoune=next" class="scounemef"" /a8e6f">cach8_e=next" cla9 ">f45tmp 10r7i4"ne85=cache_is_exppp9pppi4"ne>f45conds_since_blass="line" nrecchputscoune=next" class="scounemef"" /a8e6f">cach8_e=next" cla9 ">f45tmp 10r744ref85sh_unlocked" hr9f="44ref>f45sref"ail 8c105" cla8f="+code=det9las14 tmp 10r754nrp85lass="sref">oec9nds54nrp>f45ss="line8cef">cach8/oL145" clas10r4f45tmp 10r7r4 a 85             ad9/a>r4 a >f45fmute_c clas< rpche_e==hsaize_e=next" class="ssaize_essizeine" nerrchompca hracree=cprocffiid0l"net/"net/a hracree=cprocff /a> ache.c#L42"a> 842i achfileche_head /a> * filess="line" nh=che_>odefilef="+code=setfilfiless=", char < rpche_e==h__userche_head /a> * __userss="line" nh=che_>odebuf="+code=cachhoubufss=", /a8c9       8ef="+code=ca9 a f4 tmp 10r7L4ef"85hash_econds_sin9e_bL4ef">f45+code=seterr clase_boooooooooooooooooo< rpche_e==hsize_e=next" class="ssize_essizeine" nerrchompccoune=next" class="scounemef"ofine" nerrchla -=off_e=next" class="sroff_ess="line" nh=che_>odeppofiid0l"net/"net/ppof /a>x /a7 oL130" c7lass="line" 93  L4 6mp 10r7L4   85href="+code=t"+9odex4   >f45>oecoa2687b        7     spa4 cl9d cf4 tmp 10r7r4/a>85     ail" class9"srr4/a>>f45  econds_sincache.c#L42"a> 842i achnhef="+ctai=che_head /a> * a hrefcy class="line" nh=che_>odec=che_head /a> * admef">nene" nh=che_>odePDEche_head /a> * PDE /a> ne" nh=che_>odefilef="+code=setfilfiless="lass="line" n" namasf_pathe_>code=next" cf_pathss=""line" n namche_dio_rye_>code=next" cdio_ry /a>-ass="line" n" namasd_in ace_>code=next" cd_in acss=")-ass="line" n" namasdatae_>code=next" cdatamef"" /a8e6f">cach8_e=next" cla9 ">f45tmp 10r7=49 /85     2" id/oL629 cl=49 />f45e" na2688 9       8+code=new" c9"+cf45tmp 10r7=4 /a85sh" cf"8" clhre9="+=4 /a>f45="s        hrlass="line" nrecchputsc hracree=iid0l"net/"net/a hracree= /a> ne" nh=che_>odefilef="+code=setfilfiless=",rne" nh=che_>odebuf="+code=cachhoubufss=", ine" nerrchompccoune=next" class="scounemef", ine" nerrchompcppofiid0l"net/"net/ppof /a>,fine" nrecchputsc=che_head /a> * admef"xt /a7 oL130" c7lass="line" 93  L46tmp 10r8f4   76 href          9   f4   >f46a ecoail 8c105" cla8f="+code=det9las146tmp 10r7i4 /a761ash_lock" clt/9uhri4 /a>f46 next /a8c9       8ef="+code=ca9 a f46tmp 10r744e_f76sh_unlocked" cl9ss=44e_f>f462mute_c clas< rpche_e==hsaize_e=next" class="ssaize_essizeine" nerrchompca hracwrite_procffiid0l"net/"net/a hracwrite_procff /a> ache.c#L42"a> 842i achfileche_head /a> * filess="line" nh=che_>odefilef="+code=setfilfiless=", constrchar < rpche_e==h__userche_head /a> * __userss="line" nh=che_>odebuf="+code=cachhoubufss=", /a8c9       8ef="+code=ca9 a f46tmp 10r754ld"76cache.c#L155" i9/oL54ld">f46ef="+code=setcp_t"+cooooooooooooooooooo< rpche_e==hsize_e=next" class="ssize_essizeine" nerrchompccoune=next" class="scounemef"ofine" nerrchla -=off_e=next" class="sroff_ess="line" nh=che_>odeppofiid0l"net/"net/ppof /a>x /a7 oL130" c7lass="line" 93  L46tmp 10r7r4k /76             ad9/a>r4k />f464ref"a2687b        7     spa4 cl9d cf46tmp 10r7L4 id76hash_t  a href=9+coL4 id>f465ref">last_reache.c#L42"a> 842i achnhef="+ctai=che_head /a> * a hrefcy class="line" nh=che_>odec=che_head /a> * admef">nene" nh=che_>odePDEche_head /a> * PDE /a> ne" nh=che_>odefilef="+code=setfilfiless="lass="line" n" namasf_pathe_>code=next" cf_pathss=""line" n namche_dio_rye_>code=next" cdio_ry /a>-ass="line" n" namasd_in ace_>code=next" cd_in acss=")-ass="line" n" namasdatae_>code=next" cdatamef"" /a8e6f">cach8_e=next" cla9 ">f466mp 10r7L4f="76href="ache.c#L49" ix4f=">f46>oeco /a8e6f">cach8_e=next" cla9 ">f46tmp 10r7r443 76a>        for (9a hr443 >f467"s        hrlass="line" nrecchputsc hracwriteiid0l"net/"net/a hracwrite /a> ne" nh=che_>odefilef="+code=setfilfiless=",rne" nh=che_>odebuf="+code=cachhoubufss=", ine" nerrchompccoune=next" class="scounemef", ine" nerrchompcppofiid0l"net/"net/ppof /a>,fine" nrecchputsc=che_head /a> * admef"xt /a7 oL130" c7lass="line" 93  L46tmp 10r7=4="+76               9a h=4="+>f46rssizail 8c105" cla8f="+code=det9las146tmp 10r7=4voi76sh" class="srwh9les=4voi>f46_detail 8 class="l8ne" nam  93cl9ss=f4L16>f47 code_c clasgned longs="line" nerrchla -c hracpoll_procffiid0l"net/"net/a hracpoll_procff /a> ache.c#L42"a> 842i achfileche_head /a> * filess="line" nh=che_>odefilef="+code=setfilfiless=", ine" nerrchompcpoll_table="+code=cachhoupoll_tabless="line" nh=che_>odewaie=next" class="swaie /a>x /a7 oL130" c7lass="line" 93  L47tmp 10r7i4+co77=cache_is_exppp9pppi4+co>f47condsa2687b        7     spa4 cl9d cf47tmp 10r744/* 77sh_unlocked" cl9ss=44/* >f47sref">last_re"" nam class="line" nhre=cac+ctai=che_head /a> * a hrefcy class="line" nh=che_>odec=che_head /a> * admef">nene" nh=che_>odePDEche_head /a> * PDE /a> ne" nh=che_>odefilef="+code=setfilfiless="lass="line" n" namasf_pathe_>code=next" cf_pathss=""line" n namche_dio_rye_>code=next" cdio_ry /a>-ass="line" n" namasd_in ace_>code=next" cd_in acss=")-ass="line" n" namasdatae_>code=next" cdatamef"" /a8e6f">cach8_e=next" cla9 ">f47tmp 10r754   77lass="sref">old9/a>54   >f47ss="line8cef">cach8/oL145" clas10r4f47tmp 10r7r4   77             }i9" cr4   >f47fmutex"c/////lass="line" nrecchputsc hracpolliid0l"net/"net/a hracpoll /a> ne" nh=che_>odefilef="+code=setfilfiless=",rne" nh=che_>odewaie=next" class="swaie /a>,fine" nrecchputsc=che_head /a> * admef"xt /a7 oL130" c7lass="line" 93  L47tmp 10r7L4">d77hash_lock" clt/9uhrL4">d>f47e=setail 8c105" cla8f="+code=det9las147tmp 10r7x4p" 77href="+code=tes9_anx4p" >f47>oeco /a8e6f">cach8_e=next" cla9 ">f47tmp 10r7r4>  77               9   r4>  >f47  eco_c claslong < rpche_e==ha hracioctl_procffiid0l"net/"net/a hracioctl_procff /a> ache.c#L42"a> 842i achfileche_head /a> * filess="line" nh=che_>odefilef="+code=setfilfiless=", /a8e6f">cach8_e=next" cla9 ">f47tmp 10r7=4sh_77               9   =4sh_>f47  econds_since_boooooooooooooooooooogned longs="line" nerrchla -cm=che_head /a> * amdmef"ofgned longlong < rpche_e==harge_>code=next" carg /a>x /a7 oL130" c7lass="line" 93  L47tmp 10r7=4 na77/cache.c#L121" 9d/o=4 na>f47="s  a2687b        7     spa4 cl9d cf48tmp 10r8f4t a780  93}i9" cf4t a>f480ref">last_re"" nam class="line" nhin ace_>code=next" cin acss="line" nh=che_>odein ace_>code=next" cin acss=">nene" nh=che_>odefilef="+code=setfilfiless="lass="line" n" namasf_pathe_>code=next" cf_pathss=""line" n namche_dio_rye_>code=next" cdio_ry /a>-ass="line" n" namasd_in ace_>code=next" cd_in acss="t /a7 oL130" c7lass="line" 93  L48tmp 10r7i4cla78m  93 /9>  i4cla>f48conds_since_bt" class="sref"in "+core=cac+ctai=che_head /a> * a hrefcy class="line" nh=che_>odec=che_head /a> * admef">nene" nh=che_>odePDEche_head /a> * PDE /a> ne" nh=che_>odein ace_>code=next" cin acss=")-ass="line" n" namasdatae_>code=next" cdatamef"" /a8e6f">cach8_e=next" cla9 ">f48tmp 10r744 hr78sh_unlocked" hr9f="44 hr>f48=e" n /a8e6f">cach8_e=next" cla10ref48tmp 10r754/oL78lass="sref">ot/9uhr54/oL>f483mutex"c/////lass="line" nrecchputsc hracioctliid0l"net/"net/a hracioctl /a> ne" nh=che_>odein ace_>code=next" cin acss=",rne" nh=che_>odefilef="+code=setfilfiless=",rne" nh=che_>odecm=che_head /a> * amdmef"of< rpche_e==harge_>code=next" carg /a>,fine" nrecchputsc=che_head /a> * admef"xt /a7 oL130" c7lass="line" 93  L48tmp 10r7r4ini78             e_9s_er4ini>f48fmuteail 8c105" cla8f="+code=det9las148tmp 10r7L4ent78hash_lock" clad9/a>L4ent>f48+codeil 8c105" cla8f="+code=det9las148tmp 10r7x4"co78ref="+code=expi9y" x4"co>f48>oeco_c class="line" nerrchla -c hracopen_procffiid0l"net/"net/a hracopen_procff /a> ache.c#L42"a> 842i achin ace_>code=next" cin acss="line" nh=che_>odein ace_>code=next" cin acss=",rache.c#L42"a> 842i achfileche_head /a> * filess="line" nh=che_>odefilef="+code=setfilfiless="x /a7 oL130" c7lass="line" 93  L48tmp 10r7r4spa78a>        fort/9uhrr4spa>f48  ecoa2687b        7     spa4 cl9d cf48tmp 10r7=4hre78               9   =4hre>f48rssize_c _detache.c#L42"a> 842i achnhef="+ctai=che_head /a> * a hrefcy class="line" nh=che_>odec=che_head /a> * admef">nene" nh=che_>odePDEche_head /a> * PDE /a> ne" nh=che_>odein ace_>code=next" cin acss=")-ass="line" n" namasdatae_>code=next" cdatamef"" /a8e6f">cach8_e=next" cla9 ">f48tmp 10r7=4ode78/cache.c#L121" 9d/o=4ode>f48_detail 8 class="l8ne" namne790  93cl9ss=f4>ne>f49 code=seterr lass="line" nrecchputsa hracopeniid0l"net/"net/a hracopen /a> ne" nh=che_>odein ace_>code=next" cin acss=",rne" nh=che_>odefilef="+code=setfilfiless=",rne" nh=che_>odec=che_head /a> * admef"xt /a7 oL130" c7lass="line" 93  L49tmp 10r7i4e" 79=cache_is_exppp9pppi4e" >f491codeail 8c105" cla8f="+code=det9las149tmp 10r744>  79sh_unlocked" }u9L1644>  >f49=e" n /a8e6f">cach8_e=next" cla10ref49tmp 10r754>  79lass="sref">old9/a>54>  >f49ef="+t" class="line" nerrchla -a hracrelease_procffiid0l"net/"net/a hracrelease_procff /a> ache.c#L42"a> 842i achin ace_>code=next" cin acss="line" nh=che_>odein ace_>code=next" cin acss=",rache.c#L42"a> 842i achfileche_head /a> * filess="line" nh=che_>odefilef="+code=setfilfiless="x /a7 oL130" c7lass="line" 93  L49tmp 10r7r4f">79             e_9s_er4f">>f494ref"a2687b        7     spa4 cl9d cf49tmp 10r7L4" c79hash_lock" cl="9et/L4" c>f495ref">last_reache.c#L42"a> 842i achnhef="+ctai=che_head /a> * a hrefcy class="line" nh=che_>odec=che_head /a> * admef">nene" nh=che_>odePDEche_head /a> * PDE /a> ne" nh=che_>odein ace_>code=next" cin acss=")-ass="line" n" namasdatae_>code=next" cdatamef"" /a8e6f">cach8_e=next" cla9 ">f49tmp 10r7x4 /a79href="+code=tes9_anx4 /a>f49>oeco /a8e6f">cach8_e=next" cla9 ">f49tmp 10r7r4f="79               9   r4f=">f497"s        hrlass="line" nrecchputsc hracreleaseef="+code=setcpc hracrelease /a> ne" nh=che_>odein ace_>code=next" cin acss=",rne" nh=che_>odefilef="+code=setfilfiless=",rne" nh=che_>odec=che_head /a> * admef"xt /a7 oL130" c7lass="line" 93  L49tmp 10r7=4+co79               9   =4+co>f49rssizail 8c105" cla8f="+code=det9las149tmp 10r7=4p" 79/cache.c#L121" 9d/o=4p" >f49_detail 8 class="l8ne" namtmp 10ref5p" 79/cache.c#L121" 10ref510rea50 code_c clasconstrache.c#L42"a> 842i achfile_oper clons="+code=cachhoufile_oper clonsssizeine" nerrchompcc hracfile_oper clons_procffiid0l"net/"net/a hracfile_oper clons_procffmef">nea2687b        7     spa4 cl9d cf5>1mp 10ref5p" 79=cache_is_exppp9pppi510rto50conds_since_b"line" n namche_ownerche_head /a> * owner#cy oooooooooonene" nh=che_>odeTHIS_MODULEche_head /a> * THIS_MODULEss=", /a8e6f">cach8_e=next" cla9 ">f5>tmp 10r745>  79sh_unlocked" }u10r74510rpi50sref">last_re"line" n namche_llseek=next" class="srlseek#cy ooooooooonene" nh=che_>odeno_llseek=next" class="sno_llseekss=", /a8e6f">cach8_e=next" cla9 ">f5>3mp 10r745>  79lass="sref">old9/a>5510r c503ref">last_re"line" n namche_ree=iid0l"net/"net/ree= /a> oooooooooonene" nh=che_>odea hracree=cprocffiid0l"net/"net/a hracree=cprocff /a>, /a8e6f">cach8_e=next" cla9 ">f5>4mp 10r745>">79             e_9s_er510r h50fmutex"c/ache"line" n namche_writeiid0l"net/"net/write /a>oooooooooonene" nh=che_>odea hracwrite_procffiid0l"net/"net/a hracwrite_procff /a>, /a8e6f">cach8_e=next" cla9 ">f5>5mp 10r745> c79hash_lock" cl="9et/L510ref50+code=seterr "line" n namche_polliid0l"net/"net/poll /a> oooooooooonene" nh=che_>odea hracpoll_procffiid0l"net/"net/a hracpoll_procff /a>, /a8e6f">cach8_e=next" cla9 ">f5>6mp 10r745>/a79href="+code=tes9_anx510rs=506code=seterr "line" n namche_unlachedcioctliid0l"net/"net/unlachedcioctlmef">nene" nh=che_>odea hracioctl_procffiid0l"net/"net/a hracioctl_procff /a>,osteryed by " nam"io_monl for FIONREAD *162"> #L1448aoL130" c8class="line"9149f5>7mp 10r7L5"="79               9   r510r  507onds_since_b"line" n namche_openiid0l"net/"net/open /a> oooooooooonene" nh=che_>odea hracopen_procffiid0l"net/"net/a hracopen_procff /a>, /a8e6f">cach8_e=next" cla9 ">f5>8mp 10r7L5"co79               9   =510r  508ref">last_re"line" n namche_releaseef="+code=setcprelease /a>oooooooonene" nh=che_>odea hracrelease_procffiid0l"net/"net/a hracrelease_procff /a>, /a8e6f">cach8_e=next" cla9 ">f5>9mp 10r7L5"" 79/cache.c#L121" 9d/o=510rla50="s  }t /a7 oL130" c7lass="line" 93  L5>tmp 10r8f5>he810  93cl10r8f5cl10L51="+code=7oclass="s7ass="line" n9lasL511mp 10ref5 * 81=cache_is_exppp9pppi5 * 0L511f="+t" class="line" nerrchla -ccneio__oehr_procffiid0l"net/"net/acneio__oehr_procff /a> ache.c#L42"a> 842i achin ace_>code=next" cin acss="line" nh=che_>odein ace_>code=next" cin acss=",rache.c#L42"a> 842i achfileche_head /a> * filess="line" nh=che_>odefilef="+code=setfilfiless="x /a7 oL130" c7lass="line" 93  L5>tmp 10r745;1<81sh_unlocked" cl9ss=45;1<0L51sref"a2687b        7     spa4 cl9d cf5>tmp 10r75515"81lass="sref">old9/a>5515"0L513onds_since_bache.c#L42"a> 842i achnhef="+ctai=che_head /a> * a hrefcy class="line" nh=che_>odec=che_head /a> * admef">nene" nh=che_>odePDEche_head /a> * PDE /a> ne" nh=che_>odein ace_>code=next" cin acss=")-ass="line" n" namasdatae_>code=next" cdatamef"" /a8e6f">cach8_e   spa4 cl9d cf5>4mp 10r745che81             e_9s_er5che0L51fmuteil 8c105" cla8f="+code=det9las15>tmp 10r7L5cod81hash_lock" cl="9et/L5cod0L51+code=seterr LTss="line" nerrchla -ccneio__oehriid0l"net/"net/acneio__oehr /a> ne" nh=che_>odein ace_>code=next" cin acss=",rne" nh=che_>odefilef="+code=setfilfiless=",rne" nh=che_>odec=che_head /a> * admef"xt /a7 oL130" c7lass="line" 93  L5>6mp 10r7L5am<81href="+code=tes9_anx5am<0L516muteail 8c105" cla8f="+code=det9las151tmp 10r7r5sre81               9   r5sre0L51  eco1448aoL130" c8class="line"9149f518mp 10r7r5t/s81               9   =5t/s0L51rssizt" class="line" nerrchla -ccneio__release_procffiid0l"net/"net/acneio__release_procff /a> ache.c#L42"a> 842i achin ace_>code=next" cin acss="line" nh=che_>odein ace_>code=next" cin acss=",rache.c#L42"a> 842i achfileche_head /a> * filess="line" nh=che_>odefilef="+code=setfilfiless="x /a7 oL130" c7lass="line" 93  L5>9mp 10r7L5unr81/cache.c#L121" 9d/o=5unr0L51="s  a2687b        7     spa4 cl9d cf5=tmp 10r8f5up"820  93cl9ss=f5up">f520ref">last_re"" nam class="line" nhnhef="+ctai=che_head /a> * a hrefcy class="line" nh=che_>odec=che_head /a> * admef">nene" nh=che_>odePDEche_head /a> * PDE /a> ne" nh=che_>odein ace_>code=next" cin acss=")-ass="line" n" namasdatae_>code=next" cdatamef"" /a8e6f">cach8_e   spa4 cl9d cf5=1mp 10ref5sun82m  93}i9" ci5sun>f52 next /a8c9       8ef="+code=ca9 a f5utmp 10r745unr82sh_unlocked" t/9uhr45unr>f52e=seterr clasLTss="line" nerrchla -ccneio__releaseiid0l"net/"net/acneio__release /a> ne" nh=che_>odein ace_>code=next" cin acss=",rne" nh=che_>odefilef="+code=setfilfiless=",rne" nh=che_>odec=che_head /a> * admef"xt /a7 oL130" c7lass="line" 93  L5=tmp 10r755ail82lass="sref">old9/a>55ail>f52ef="+ail 8c105" cla8f="+code=det9las15utmp 10r7r5ach82             ad9/a>r5ach>f52fmuteil 8c105" cla8f="+code=det9las15=tmp 10r7L5che82hash_lock" cl"+9odeL5che>f52e=sett" clasconstrache.c#L42"a> 842i achfile_oper clons="+code=cachhoufile_oper clonsssizeine" nerrchompcccneio__file_oper clons_procffiid0l"net/"net/acneio__file_oper clons_procffmef">nea2687b        7     spa4 cl9d cf5u6mp 10r7L5  a82L118"}il" class9"srx5  a>f526code=seterr "line" n namche_openiid0l"net/"net/open /a> oooooooooonene" nh=che_>odeacneio__oehr_procffiid0l"net/"net/acneio__oehr_procff /a>, /a8e6f">cach8_e=next" cla9 ">f5utmp 10r7r5128821 oooooooooonene" nh=che_>odeseq_ree=iid0l"net/"net/seq_ree= /a>, /a8e6f">cach8_e=next" cla9 ">f5u8mp 10r7r5 /a828ash_f"8" clhre9="+=5 /a>f528ref">last_re"line" n namche_llseek=next" class="srlseek#cy ooooooooonene" nh=che_>odeseq_lseek=next" class="sseq_lseek /a>, /a8e6f">cach8_e=next" cla9 ">f5u9mp 10r7L5ref82/cache.c#L121" 9d/o=5ref>f529onds_since_b"line" n namche_releaseef="+code=setcprelease /a>oooooooonene" nh=che_>odeacneio__release_procffiid0l"net/"net/acneio__release_procff /a>, /a8e6f">cach8_e=next" cla9 ">f53tmp 10r8f5p_w83148">62" id/oL69" cf5p_w>f53 code}t /a7 oL130" c7lass="line" 93  L53tmp 10r7i5CHE83m  93 /9>  i5CHE>f53 next /a8c9       8ef="+code=ca9 a f53tmp 10r745ach83is en          9   45ach>f532mute_c class="line" nerrchla -open_flush_procffiid0l"net/"net/open_flush_procff /a> ache.c#L42"a> 842i achin ace_>code=next" cin acss="line" nh=che_>odein ace_>code=next" cin acss=",rache.c#L42"a> 842i achfileche_head /a> * filess="line" nh=che_>odefilef="+code=setfilfiless="x /a7 oL130" c7lass="line" 93  L53tmp 10r755="+83lass="sref">ot/9uhr55="+>f53ss="la2687b        7     spa4 cl9d cf53tmp 10r7r5" c83             e_9s_er5" c>f534=seterr clas"" nam class="line" nhnhef="+ctai=che_head /a> * a hrefcy class="line" nh=che_>odec=che_head /a> * admef">nene" nh=che_>odePDEche_head /a> * PDE /a> ne" nh=che_>odein ace_>code=next" cin acss=")-ass="line" n" namasdatae_>code=next" cdatamef"" /a8e6f">cach8_e   spa4 cl9d cf53tmp 10r7L5hre83hash_lock" clt/9uhrL5hre>f53+codeil 8c105" cla8f="+code=det9las1536mp 10r7L5 ( 83href="+code=tes9_anx5 ( >f53>oeconds_sinclass="line" nrecchputsopen_flushe_>code=next" copen_flush /a> ne" nh=che_>odein ace_>code=next" cin acss=",rne" nh=che_>odefilef="+code=setfilfiless=",rne" nh=che_>odec=che_head /a> * admef"xt /a7 oL130" c7lass="line" 93  L53tmp 10r7r5gs 83a>        for (9a hr5gs >f53  ecoail 8c105" cla8f="+code=det9las153tmp 10r7=5> 1838cache_is_expti9e" =5> 1>f53e" na2688 9       8+code=new" c9"+cf53tmp 10r7=5 cl83sh" class="srLf9un2=5 cl>f539mute_c class="line" nerrchla -release_flush_procffiid0l"net/"net/release_flush_procff /a> ache.c#L42"a> 842i achin ace_>code=next" cin acss="line" nh=che_>odein ace_>code=next" cin acss=",rache.c#L42"a> 842i achfileche_head /a> * filess="line" nh=che_>odefilef="+code=setfilfiless="x /a7 oL130" c7lass="line" 93  L54tmp 10r8f5nam840  93cl9ss=f5nam>f54 codea2687b        7     spa4 cl9d cf54tmp 10r7i5="+84m  93"+9odei5="+>f54conds_since_bt" class="sref"in "+core=cac+ctai=che_head /a> * a hrefcy class="line" nh=che_>odec=che_head /a> * admef">nene" nh=che_>odePDEche_head /a> * PDE /a> ne" nh=che_>odein ace_>code=next" cin acss=")-ass="line" n" namasdatae_>code=next" cdatamef"" /a7b        7     spa4 cl9d cf54tmp 10r745=ca84sh_unail" class9"sr45=ca>f54=e" n /a8e6f">cach8_e=next" cla10ref54tmp 10r755f">84cache.c#L155" i9/oL55f">>f543mutex"c/////lass="line" nrecchputsrelease_flushe_>code=next" crelease_flush /a> ne" nh=che_>odein ace_>code=next" cin acss=",rne" nh=che_>odefilef="+code=setfilfiless=",rne" nh=che_>odec=che_head /a> * admef"xt /a7 oL130" c7lass="line" 93  L5ntmp 10r7r5L14844d/oL128" clhre9="+r5L14>f54fmuteail 8c105" cla8f="+code=det9las154tmp 10r7L5pc/84hash_lock" cl="9et/L5pc/>f54+codeil 8c105" cla8f="+code=det9las15n6mp 10r7L5ALI846h" c62" id/oL69" cx5ALI>f54>oeco_c clasne" nh=che_>odesaize_e=next" class="ssaize_essizeine" nerrchompcode=cflush_procffiid0l"net/"net/ree=cflush_procff /a> ache.c#L42"a> 842i achfileche_head /a> * filess="line" nh=che_>odefilef="+code=setfilfiless=", char < rpche_e==h__userche_head /a> * __userss="line" nh=che_>odebuf="+code=cachhoubufss=", /a8c9       8ef="+code=ca9 a f54tmp 10r7r5 cl84             129" cr5 cl>f54  econds_since_booooooooooooooooone" nh=che_>odesize_e=next" class="ssize_essizeine" nerrchompccoune=next" class="scounemef"ofine" nerrchla -=off_e=next" class="sroff_ess="line" nh=che_>odeppofiid0l"net/"net/ppof /a>x /a7 oL130" c7lass="line" 93  L54tmp 10r7=55  848cache_is_expti9e" =55  >f54  ecoa2687b        7     spa4 cl9d cf54tmp 10r7=5="s84 1et/il" class=9sre=5="s>f549onds_since_bt" class="sref"in "+core=cac+ctai=che_head /a> * a hrefcy class="line" nh=che_>odec=che_head /a> * admef">nene" nh=che_>odePDEche_head /a> * PDE /a> ne" nh=che_>odefilef="+code=setfilfiless="lass="line" n" namasf_pathe_>code=next" cf_pathss=""line" n namche_dio_rye_>code=next" cdio_ry /a>-ass="line" n" namasd_in ace_>code=next" cd_in acss=")-ass="line" n" namasdatae_>code=next" cdatamef"" /a7b        7     spa4 cl9d cf55tmp 10r8f5   85148"> 11f="73t/9uhrf5   >f55="+code=7oclass="s7ass="line" n9lasL55tmp 10r7i5"ne85=cache_is_exppp9pppi5"ne>f55conds_since_blass="line" nrecchputsode=cflushe_>code=next" cree=cflush /a> ne" nh=che_>odefilef="+code=setfilfiless=",rne" nh=che_>odebuf="+code=cachhoubufss=", ine" nerrchompccoune=next" class="scounemef", ine" nerrchompcppofiid0l"net/"net/ppof /a>,fine" nrecchputsc=che_head /a> * admef"xt /a7 oL130" c7lass="line" 93  L55tmp 10r745ref85sh_unlocked" hr9f="45ref>f55sref"ail 8c105" cla8f="+code=det9las15 tmp 10r755nrp85lass="sref">oec9nds55nrp>f55ss="line8cef">cach8/oL145" clas10r4f55tmp 10r7r5 a 85             ad9/a>r5 a >f55fmute_c clas< rpche_e==hsaize_e=next" class="ssaize_essizeine" nerrchompcwrite_flush_procffiid0l"net/"net/write_flush_procff /a> ache.c#L42"a> 842i achfileche_head /a> * filess="line" nh=che_>odefilef="+code=setfilfiless=",ine8cef">cach8/oL145" clas10r4f55tmp 10r7L5ef"85hash_econds_sin9e_bL5ef">f55+code=seterr clase_boooooooooooooooooo constrchar < rpche_e==h__userche_head /a> * __userss="line" nh=che_>odebuf="+code=cachhoubufss=", /a8c9       8ef="+code=ca9 a f5 6mp 10r7L5   85href="+code=t"+9odex5   >f556code=seterr clase_boooooooooooooooooo ne" nh=che_>odesize_e=next" class="ssize_essizeine" nerrchompccoune=next" class="scounemef"ofine" nerrchla -=off_e=next" class="sroff_ess="line" nh=che_>odeppofiid0l"net/"net/ppof /a>x /a7 oL130" c7lass="line" 93  L5 tmp 10r7r5/a>85     ail" class9"srr5/a>>f55  ecoa2687b        7     spa4 cl9d cf55tmp 10r7=59 /85     2" id/oL629 cl=59 />f55rssize_c _detache.c#L42"a> 842i achnhef="+ctai=che_head /a> * a hrefcy class="line" nh=che_>odec=che_head /a> * admef">nene" nh=che_>odePDEche_head /a> * PDE /a> ne" nh=che_>odefilef="+code=setfilfiless="lass="line" n" namasf_pathe_>code=next" cf_pathss=""line" n namche_dio_rye_>code=next" cdio_ry /a>-ass="line" n" namasd_in ace_>code=next" cd_in acss=")-ass="line" n" namasdatae_>code=next" cdatamef"" /a7b        7     spa4 cl9d cf55tmp 10r7=5 /a85sh" cf"8" clhre9="+=5 /a>f55_detail 8 class="l8ne" namf56 code=seterr lass="line" nrecchputswrite_flushe_>code=next" cwrite_flush /a> ne" nh=che_>odefilef="+code=setfilfiless=",rne" nh=che_>odebuf="+code=cachhoubufss=", ine" nerrchompccoune=next" class="scounemef", ine" nerrchompcppofiid0l"net/"net/ppof /a>,fine" nrecchputsc=che_head /a> * admef"xt /a7 oL130" c7lass="line" 93  L56tmp 10r7i5 /a761ash_lock" clt/9uhri5 /a>f561codeail 8c105" cla8f="+code=det9las156tmp 10r745e_f76sh_unlocked" cl9ss=45e_f>f56=e" n /a8e6f">cach8_e=next" cla10ref56tmp 10r755ld"76cache.c#L155" i9/oL55ld">f56ef="+t" clasconstrache.c#L42"a> 842i achfile_oper clons="+code=cachhoufile_oper clonsssizeine" nerrchompcc hracflush_oper clons_procffiid0l"net/"net/a hracflush_oper clons_procffmef">nea2687b        7     spa4 cl9d cf56tmp 10r7r5k /76             ad9/a>r5k />f56fmutex"c/ache"line" n namche_openiid0l"net/"net/open /a> oooooooooonene" nh=che_>odeopen_flush_procffiid0l"net/"net/open_flush_procff /a>, /a8c9       8ef="+code=ca9 a f56tmp 10r7L5 id76hash_t  a href=9+coL5 id>f565ref">last_re"line" n namche_ree=iid0l"net/"net/ree= /a> oooooooooonene" nh=che_>odeode=cflush_procffiid0l"net/"net/ree=cflush_procff /a>, /a8c9       8ef="+code=ca9 a f566mp 10r7L5f="76href="ache.c#L49" ix5f=">f566code=seterr "line" n namche_writeiid0l"net/"net/write /a>oooooooooonene" nh=che_>odewrite_flush_procffiid0l"net/"net/write_flush_procff /a>, /a8c9       8ef="+code=ca9 a f56tmp 10r7r543 76a>        for (9a hr543 >f567onds_since_b"line" n namche_releaseef="+code=setcprelease /a>oooooooonene" nh=che_>oderelease_flush_procffiid0l"net/"net/release_flush_procff /a>, /a8c9       8ef="+code=ca9 a f56tmp 10r7=5="+76               9a h=5="+>f568ref">last_re"line" n namche_llseek=next" class="srlseek#cy ooooooooonene" nh=che_>odeno_llseek=next" class="sno_llseekss=", /a8e6f">cach8_e=next" cla9 ">f56tmp 10r7=5voi76sh" class="srwh9les=5voi>f56="s  }t /a7 oL130" c7lass="line" 93  L57tmp 10r8f5L16770  93cl9ss=f5L16>f57="+code=7oclass="s7ass="line" n9lasL57tmp 10r7i5+co77=cache_is_exppp9pppi5+co>f571f="+t" clasvoidene" nh=che_>oderemove_a hracproc_io_riefiid0l"net/"net/remove_a hracproc_io_rief /a> ache.c#L42"a> 842i achnhef="+ctai=che_head /a> * a hrefcy class="line" nh=che_>odec=che_head /a> * admef",rache.c#L42"a> 842i ach="s=next" class="sneess="line" nh=che_>ode="s=next" class="sneess="x /a7 oL130" c7lass="line" 93  L57tmp 10r745/* 77sh_unlocked" cl9ss=45/* >f57sref"a2687b        7     spa4 cl9d cf57tmp 10r755   77lass="sref">old9/a>55   >f573onds_since_bache.c#L42"a> 842i ach     s_="s=next" class="s     s_="sss="line" nh=che_>odesref="+code=setcpsimef"t /a7 oL130" c7lass="line" 93  L57tmp 10r7r5   77             }i9" cr5   >f57fmuteil 8c105" cla8f="+code=det9las157tmp 10r7L5">d77hash_lock" clt/9uhrL5">d>f575ref">last_res="line" nerrchompcc=che_head /a> * admef"lass="line" n" namasuche_head /a> * uss=""line" n namche_procffiid0l"net/"net/procff /a>"line" n namche_proc_io_iid0l"net/"net/proc_io_mef">nnene" nh=che_>odeNULode=next" class=NULoss="x /a7 oL130" c7lass="line" 93  L576mp 10r7L5p" 77href="+code=tes9_anx5p" >f576code=seterr clase_bolass="t /a7 oL130" c7lass="line" 93  L57tmp 10r7r5>  77               9   r5>  >f577ref">last_res="line" nerrchompcc=che_head /a> * admef"lass="line" n" namasuche_head /a> * uss=""line" n namche_procffiid0l"net/"net/procff /a>"line" n namche_flush_io_iid0l"net/"net/flush_io_ss="x /a7 oL130" c7lass="line" 93  L57tmp 10r7=5sh_77               9   =5sh_>f57  econds_since_booooone" nh=che_>oderemove_proc_io_rye_>code=next" cremove_proc_io_ry /a> nteryed by " ntre_.a>"flush"62"> #L,hine" nrecchputsc=che_head /a> * admef"lass="line" n" namasuche_head /a> * uss=""line" n namche_procffiid0l"net/"net/procff /a>"line" n namche_proc_io_iid0l"net/"net/proc_io_mef"xt /a7 oL130" c7lass="line" 93  L57tmp 10r7=5 na77/cache.c#L121" 9d/o=5 na>f579ref">last_res="line" nerrchompcc=che_head /a> * admef"lass="line" n" namasuche_head /a> * uss=""line" n namche_procffiid0l"net/"net/procff /a>"line" n namche_channel_io_iid0l"net/"net/channel_io_ss="x /a7 oL130" c7lass="line" 93  L58tmp 10r8f5t a780  93}i9" cf5t a>f580ref">last_ree_booooone" nh=che_>oderemove_proc_io_rye_>code=next" cremove_proc_io_ry /a> nteryed by " ntre_.a>"channel"62"> #L,hine" nrecchputsc=che_head /a> * admef"lass="line" n" namasuche_head /a> * uss=""line" n namche_procffiid0l"net/"net/procff /a>"line" n namche_proc_io_iid0l"net/"net/proc_io_mef"xt /a7 oL130" c7lass="line" 93  L58tmp 10r7i5cla78m  93 /9>  i5cla>f58conds_since_bs="line" nerrchompcc=che_head /a> * admef"lass="line" n" namasuche_head /a> * uss=""line" n namche_procffiid0l"net/"net/procff /a>"line" n namche_ccneio__io_iid0l"net/"net/ccneio__io_ss="x /a7 oL130" c7lass="line" 93  L58tmp 10r745 hr78sh_unlocked" hr9f="45 hr>f58sref">last_refresli.csc#L16oL148mas/remove_proc_io_rye_>code=next" cremove_proc_io_ry /a> nteryed by " ntre_.a>"ccneio_"62"> #L,hine" nrecchputsc=che_head /a> * admef"lass="line" n" namasuche_head /a> * uss=""line" n namche_procffiid0l"net/"net/procff /a>"line" n namche_proc_io_iid0l"net/"net/proc_io_mef"xt /a7 oL130" c7lass="line" 93  L58tmp 10r755/oL78lass="sref">ot/9uhr55/oL>f583mutex"c/////ine" nrecchputsc=che_head /a> * admef"lass="line" n" namasuche_head /a> * uss=""line" n namche_procffiid0l"net/"net/procff /a>"line" n namche_proc_io_iid0l"net/"net/proc_io_mef"onene" nh=che_>odeNULode=next" class=NULoss="t /a7 oL130" c7lass="line" 93  L58tmp 10r7r5ini78             e_9s_er5ini>f584mutex"c/////ine" nrecchputssref="+code=setcpsimef"onene" nh=che_>odenet_generic=next" class="snee_generic /a> ne" nh=che_>ode="s=next" class="sneess=",hine" nrecchputs     s_="s_i=iid0l"net/"net/s    s_="s_i=mef"xt /a7 oL130" c7lass="line" 93  L58tmp 10r7L5ent78hash_lock" clad9/a>L5ent>f58+code=seterr ne" nh=che_>oderemove_proc_io_rye_>code=next" cremove_proc_io_ry /a> nne" nrecchputsc=che_head /a> * admef"lass="line" n" namaslad9=next" class="snamcss=",rne" nh=che_>odesref="+code=setcpsimef"lass="line" n" namasproc_="s_s="iid0l"net/"net/proc_="s_s="mef"xt /a7 oL130" c7lass="line" 93  L586mp 10r7L5"co78ref="+code=expi9y" x5"co>f586muteail 8c105" cla8f="+code=det9las158tmp 10r7r5spa78a>        fort/9uhrr5spa>f58  eco1448aoL130" c8class="line"9149f58tmp 10r7=5hre78               9   =5hre>f58rssiz#ifdefrne" nh=che_>odeCONFIG_PROC_FSiid0l"net/"net/CONFIG_PROC_FS eco1448aoL130" c8class="line"9149f58tmp 10r7=5ode78/cache.c#L121" 9d/o=5ode>f589mute_c class="line" nerrchla -create_a hracproc_io_riefiid0l"net/"net/create_a hracproc_io_rief /a> ache.c#L42"a> 842i achnhef="+ctai=che_head /a> * a hrefcy class="line" nh=che_>odec=che_head /a> * admef",rache.c#L42"a> 842i ach="s=next" class="sneess="line" nh=che_>ode="s=next" class="sneess="x /a7 oL130" c7lass="line" 93  L59tmp 10r8f5>ne790  93cl9ss=f5>ne>f59 codea2687b        7     spa4 cl9d cf59tmp 10r7i5e" 79=cache_is_exppp9pppi5e" >f59conds_since_bt" class="sref"in "+coproc_dir_io_rye_>code=next" cproc_dir_io_ryss="line" nh=che_>odepe_>code=next" cpss="t /a7 oL130" c7lass="line" 93  L59tmp 10r745>  79sh_unlocked" }u9L1645>  >f59sref">last_re"" nam class="line" nh     s_="s=next" class="s     s_="sss="line" nh=che_>odesref="+code=setcpsimef"t /a7 oL130" c7lass="line" 93  L59tmp 10r755>  79lass="sref">old9/a>55>  >f59ss="line8cef">cach8/oL145" clas10r4f59tmp 10r7r5f">79             e_9s_er5f">>f594mutex"c/////ine" nrecchputssref="+code=setcpsimef"onene" nh=che_>odenet_generic=next" class="snee_generic /a> ne" nh=che_>ode="s=next" class="sneess=",hine" nrecchputs     s_="s_i=iid0l"net/"net/s    s_="s_i=mef"xt /a7 oL130" c7lass="line" 93  L59tmp 10r7L5" c79hash_lock" cl="9et/L5" c>f59+code=seterr ne" nh=che_>odec=che_head /a> * admef"lass="line" n" namasuche_head /a> * uss=""line" n namche_procffiid0l"net/"net/procff /a>"line" n namche_proc_io_iid0l"net/"net/proc_io_mef"onene" nh=che_>odeproc_mkdiriid0l"net/"net/proc_mkdir /a> nne" nrecchputsc=che_head /a> * admef"lass="line" n" namaslad9=next" class="snamcss=",rne" nh=che_>odesref="+code=setcpsimef"lass="line" n" namasproc_="s_s="iid0l"net/"net/proc_="s_s="mef"xt /a7 oL130" c7lass="line" 93  L59tmp 10r7x5 /a79href="+code=tes9_anx5 /a>f596code=seterr s="line" nerrchompcc=che_head /a> * admef"lass="line" n" namasuche_head /a> * uss=""line" n namche_procffiid0l"net/"net/procff /a>"line" n namche_proc_io_iid0l"net/"net/proc_io_mef">nnene" nh=che_>odeNULode=next" class=NULoss="x /a7 oL130" c7lass="line" 93  L59tmp 10r7r5f="79               9   r5f=">f59  econds_since_booooogotoene" nh=che_>odeout_nomemiid0l"net/"net/out_nomemmef"t /a7 oL130" c7lass="line" 93  L59tmp 10r7=5+co79               9   =5+co>f59  econds_sinc"line" n" namasa=che_head /a> * admef"lass="line" n" namasuche_head /a> * uss=""line" n namche_procffiid0l"net/"net/procff /a>"line" n namche_channel_io_iid0l"net/"net/channel_io_ss="onene" nh=che_>odeNULode=next" class=NULoss="t /a7 oL130" c7lass="line" 93  L59tmp 10r7=5p" 79/cache.c#L121" 9d/o=5p" >f599 econds_sinc"line" n" namasa=che_head /a> * admef"lass="line" n" namasuche_head /a> * uss=""line" n namche_procffiid0l"net/"net/procff /a>"line" n namche_ccneio__io_iid0l"net/"net/ccneio__io_ss="onene" nh=che_>odeNULode=next" class=NULoss="t /a7 oL130" c7lass="line" 93  L6>tmp 10ref6p" 79/cache.c#L121" 10ref610rea60="+code=7oclass="s7ass="line" n9lasL6>1mp 10ref6p" 79=cache_is_exppp9pppi610rto60conds_since_bne" nh=che_>odepe_>code=next" cpss="onene" nh=che_>odeproc_create_datae_>code=next" cproc_create_data /a> nteryed by " ntre_.a>"flush"62"> #L,hine" nrecchputsS_IFREGe_>code=next" cS_IFREG /a>|ine" nrecchputsS_IRUSRe_>code=next" cS_IRUSR /a>|ine" nrecchputsS_IWUSRe_>code=next" cS_IWUSR /a>, /a8e6f">cach8_e=next" cla9 ">f6>tmp 10r746>  79sh_unlocked" }u10r74610rpi60sref">last_refresli.cst_refresli.csc#L16oL148mas/c=che_head /a> * admef"lass="line" n" namasuche_head /a> * uss=""line" n namche_procffiid0l"net/"net/procff /a>"line" n namche_proc_io_iid0l"net/"net/proc_io_mef", /a8e6f">cach8_e=next" cla9 ">f6>3mp 10r746>  79lass="sref">old9/a>5610r c603ref">last_reeeeeeeeeeeeeeeeeeeeee&="line" n" namasc hracflush_oper clons_procffiid0l"net/"net/a hracflush_oper clons_procffmef",fine" nrecchputsc=che_head /a> * admef"xt /a7 oL130" c7lass="line" 93  L6>4mp 10r746>">79             e_9s_er610r h604mutex"c/////ine" nrecchputsc=che_head /a> * admef"lass="line" n" namasuche_head /a> * uss=""line" n namche_procffiid0l"net/"net/procff /a>"line" n namche_flush_io_iid0l"net/"net/flush_io_ss="onene" nh=che_>odepe_>code=next" cpss="t /a7 oL130" c7lass="line" 93  L6>5mp 10r746> c79hash_lock" cl="9et/L610ref605ref">last_res="line" nerrchompcpe_>code=next" cpss="onnene" nh=che_>odeNULode=next" class=NULoss="x /a7 oL130" c7lass="line" 93  L6>6mp 10r746>/a79href="+code=tes9_anx610rs=606code=seterr clase_bogotoene" nh=che_>odeout_nomemiid0l"net/"net/out_nomemmef"t /a7 oL130" c7lass="line" 93  L6>7mp 10r7L6"="79               9   r610r  60  eco1448aoL130" c8class="line"9149f6>8mp 10r7L6"co79               9   =610r  608ref">last_res="line" nerrchompcc=che_head /a> * admef"lass="line" n" namasa hracupcalliid0l"net/"net/a hracupcallref">||/ine" nrecchputsc=che_head /a> * admef"lass="line" n" namasa hracparseef="+code=setcpc hracparsess="xea2687b        7     spa4 cl9d cf6>9mp 10r7L6"" 79/cache.c#L121" 9d/o=610rla609code=seterr clase_bone" nh=che_>odepe_>code=next" cpss="onene" nh=che_>odeproc_create_datae_>code=next" cproc_create_data /a> nteryed by " ntre_.a>"channel"62"> #L,hine" nrecchputsS_IFREGe_>code=next" cS_IFREG /a>|ine" nrecchputsS_IRUSRe_>code=next" cS_IRUSR /a>|ine" nrecchputsS_IWUSRe_>code=next" cS_IWUSR /a>, /a8e6f">cach8_e=next" cla9 ">f6>tmp 10r8f6>he810  93cl10r8f6cl10L610ref">last_ree_booooofresli.cst_refresli.csc#L16oL148mas/c=che_head /a> * admef"lass="line" n" namasuche_head /a> * uss=""line" n namche_procffiid0l"net/"net/procff /a>"line" n namche_proc_io_iid0l"net/"net/proc_io_mef", /a8e6f">cach8_e=next" cla9 ">f611mp 10ref6 * 81=cache_is_exppp9pppi6 * 0L611ref">last_ree_booooofresli.cst_refresli.c&="line" n" namasc hracfile_oper clons_procffiid0l"net/"net/a hracfile_oper clons_procffmef",fine" nrecchputsc=che_head /a> * admef"xt /a7 oL130" c7lass="line" 93  L6>tmp 10r746;1<81sh_unlocked" cl9ss=46;1<0L61sref">last_refresli.csc#L16oL148mas/a=che_head /a> * admef"lass="line" n" namasuche_head /a> * uss=""line" n namche_procffiid0l"net/"net/procff /a>"line" n namche_channel_io_iid0l"net/"net/channel_io_ss="onene" nh=che_>odepe_>code=next" cpss="t /a7 oL130" c7lass="line" 93  L6>tmp 10r75615"81lass="sref">old9/a>5615"0L613ref">last_reeeeeeeees="line" nerrchompcpe_>code=next" cpss="onnene" nh=che_>odeNULode=next" class=NULoss="x /a7 oL130" c7lass="line" 93  L6>4mp 10r746che81             e_9s_er6che0L614ref">last_ree_booooofresli.cgotoene" nh=che_>odeout_nomemiid0l"net/"net/out_nomemmef"t /a7 oL130" c7lass="line" 93  L6>tmp 10r7L6cod81hash_lock" cl="9et/L6cod0L61+code=seterr ail 8c105" cla8f="+code=det9las16>6mp 10r7L6am<81href="+code=tes9_anx6am<0L616code=seterr s="line" nerrchompcc=che_head /a> * admef"lass="line" n" namasa hracshowiid0l"net/"net/a hracshowss="xea2687b        7     spa4 cl9d cf61tmp 10r7r6sre81               9   r6sre0L61  econds_since_booooone" nh=che_>odepe_>code=next" cpss="onene" nh=che_>odeproc_create_datae_>code=next" cproc_create_data /a> nteryed by " ntre_.a>"ccneio_"62"> #L,hine" nrecchputsS_IFREGe_>code=next" cS_IFREG /a>|ine" nrecchputsS_IRUSRe_>code=next" cS_IRUSR /a>|ine" nrecchputsS_IWUSRe_>code=next" cS_IWUSR /a>, /a8e6f">cach8_e=next" cla9 ">f6>8mp 10r7L6t/s81               9   =6t/s0L61  econds_since_boooooooooooooooooooocsc#L16oL148mas/a=che_head /a> * admef"lass="line" n" namasuche_head /a> * uss=""line" n namche_procffiid0l"net/"net/procff /a>"line" n namche_proc_io_iid0l"net/"net/proc_io_mef", /a8e6f">cach8_e=next" cla9 ">f619mp 10r7L6unr81/cache.c#L121" 9d/o=6unr0L619code=seterr clase_booooooooooooooooo&="line" n" namasccneio__file_oper clons_procffiid0l"net/"net/acneio__file_oper clons_procffmef",fine" nrecchputsc=che_head /a> * admef"xt /a7 oL130" c7lass="line" 93  L6=tmp 10r8f6up"820  93cl9ss=f6up">f620ref">last_ree_booooone" nh=che_>odea=che_head /a> * admef"lass="line" n" namasuche_head /a> * uss=""line" n namche_procffiid0l"net/"net/procff /a>"line" n namche_ccneio__io_iid0l"net/"net/ccneio__io_ss="onene" nh=che_>odepe_>code=next" cpss="t /a7 oL130" c7lass="line" 93  L6=1mp 10ref6sun82m  93}i9" ci6sun>f621ref">last_ree_booooos="line" nerrchompcpe_>code=next" cpss="onnene" nh=che_>odeNULode=next" class=NULoss="x /a7 oL130" c7lass="line" 93  L6utmp 10r746unr82sh_unlocked" t/9uhr46unr>f62sref">last_refresli.cst_refregotoene" nh=che_>odeout_nomemiid0l"net/"net/out_nomemmef"t /a7 oL130" c7lass="line" 93  L6=tmp 10r756ail82lass="sref">old9/a>56ail>f623code=seterr ail 8c105" cla8f="+code=det9las16utmp 10r7r6ach82             ad9/a>r6ach>f62fmutex"c/////lass="l0t /a7 oL130" c7lass="line" 93  L6=tmp 10r7L6che82hash_lock" cl"+9odeL6che>f62e=setne" nh=che_>odeout_nomemiid0l"net/"net/out_nomemmef": /a7 oL130" c7lass="line" 93  L6=6mp 10r7L6  a82L118"}il" class9"srx6  a>f626code=seterr ne" nh=che_>oderemove_a hracproc_io_riefiid0l"net/"net/remove_a hracproc_io_rief /a> ne" nh=che_>odea=che_head /a> * admef",fine" nrecchputs="s=next" class="sneess="xt /a7 oL130" c7lass="line" 93  L6=tmp 10r7r6128821f629onds#elseosteryed by " nam"io_monl CONFIG_PROC_FS *162"> #L1448aoL130" c8class="line"9149f63tmp 10r8f6p_w83148">62" id/oL69" cf6p_w>f63 code_c class="line" nerrchla -create_a hracproc_io_riefiid0l"net/"net/create_a hracproc_io_rief /a> ache.c#L42"a> 842i achnhef="+ctai=che_head /a> * a hrefcy class="line" nh=che_>odec=che_head /a> * admef",rache.c#L42"a> 842i ach="s=next" class="sneess="line" nh=che_>ode="s=next" class="sneess="x /a7 oL130" c7lass="line" 93  L63tmp 10r7i6CHE83m  93 /9>  i6CHE>f63 nexta2687b        7     spa4 cl9d cf63tmp 10r746ach83is en          9   46ach>f63e=seterr clasLTss="l0t /a7 oL130" c7lass="line" 93  L63tmp 10r756="+83lass="sref">ot/9uhr56="+>f63ef="+ail 8c105" cla8f="+code=det9las163tmp 10r7r6" c83             e_9s_er6" c>f634=set#endifil 8c105" cla8f="+code=det9las163tmp 10r7L6hre83hash_lock" clt/9uhrL6hre>f63+codeil 8c105" cla8f="+code=det9las1636mp 10r7L6 ( 83href="+code=tes9_anx6 ( >f63>oecovoidene" nh=che_>ode__inis=next" class="s__inis=seteL42"a> 842i achnhef="inisializeef="+code=setcpc hracinisialize /a> voidx /a7 oL130" c7lass="line" 93  L63tmp 10r7r6gs 83a>        for (9a hr6gs >f63  ecoa2687b        7     spa4 cl9d cf63tmp 10r7=6> 1838cache_is_expti9e" =6> 1>f63  econds_sinc"line" n" namasINIT_DEFERRABLE_WORKef="+code=setcpINIT_DEFERRABLE_WORK /a> &="line" n" namasc hraccleanerche_head /a> * c hraccleanermef",fine" nrecchputsdo_c hraccleanche_head /a> * do_c hraccleanss="xt /a7 oL130" c7lass="line" 93  L63tmp 10r7=6 cl83sh" class="srLf9un2=6 cl>f639muteail 8c105" cla8f="+code=det9las164tmp 10r8f6nam840  93cl9ss=f6nam>f64="+code=7oclass="s7ass="line" n9lasL64tmp 10r7i6="+84m  93"+9odei6="+>f64condss="line" nerrchla -a hracregister_="s=next" class="sa hracregister_="s /a> ache.c#L42"a> 842i achnhef="+ctai=che_head /a> * a hrefcy class="line" nh=che_>odec=che_head /a> * admef",rache.c#L42"a> 842i ach="s=next" class="sneess="line" nh=che_>ode="s=next" class="sneess="x /a7 oL130" c7lass="line" 93  L64tmp 10r746=ca84sh_unail" class9"sr46=ca>f64sref"a2687b        7     spa4 cl9d cf64tmp 10r756f">84cache.c#L155" i9/oL56f">>f643mutex"c/////s="line" nerrchla -res=next" class="sreess="t /a7 oL130" c7lass="line" 93  L6ntmp 10r7r6L14844d/oL128" clhre9="+r6L14>f64fmuteil 8c105" cla8f="+code=det9las164tmp 10r7L6pc/84hash_lock" cl="9et/L6pc/>f64+code=seterr ne" nh=che_>odes    s_inis_nhef="+ctai=che_head /a> * s    s_inis_nhef="+ctai= /a> ne" nh=che_>odea=che_head /a> * admef"xt /a7 oL130" c7lass="line" 93  L6n6mp 10r7L6ALI846h" c62" id/oL69" cx6ALI>f646code=seterr ne" nh=che_>oderes=next" class="sreess="onene" nh=che_>odeareate_a hracproc_io_riefiid0l"net/"net/create_a hracproc_io_rief /a> ne" nh=che_>odea=che_head /a> * admef",fine" nrecchputs="s=next" class="sneess="xt /a7 oL130" c7lass="line" 93  L64tmp 10r7r6 cl84             129" cr6 cl>f647ref">last_res="line" nerrchompcres=next" class="sreess="x /a7 oL130" c7lass="line" 93  L64tmp 10r7=65  848cache_is_expti9e" =65  >f64  econds_since_booooone" nh=che_>odes    s_deachoy_nhef="+ctai=che_head /a> * s    s_deachoy_nhef="+ctai= /a> ne" nh=che_>odea=che_head /a> * admef"xt /a7 oL130" c7lass="line" 93  L6ntmp 10r7=6="s84 1et/il" class=9sre=6="s>f649onds_since_blass="line" nrecchputsods=next" class="sreess="t /a7 oL130" c7lass="line" 93  L65tmp 10r8f6   85148"> 11f="73t/9uhrf6   >f65="+coail 8c105" cla8f="+code=det9las165tmp 10r7i6"ne85=cache_is_exppp9pppi6"ne>f65condsine" nrecchputsEXPORT_SYMBOL_GPode=next" class=EXPORT_SYMBOL_GPo /a> ne" nh=che_>odea hracregister_="s=next" class="sa hracregister_="s /a>xt /a7 oL130" c7lass="line" 93  L65tmp 10r746ref85sh_unlocked" hr9f="46ref>f65=e" n /a8e6f">cach8_e=next" cla10ref6 tmp 10r756nrp85lass="sref">oec9nds56nrp>f65ss="lvoidene" nh=che_>odea hracunregister_="s=next" class="sa hracunregister_="s /a> ache.c#L42"a> 842i achnhef="+ctai=che_head /a> * a hrefcy class="line" nh=che_>odec=che_head /a> * admef",rache.c#L42"a> 842i ach="s=next" class="sneess="line" nh=che_>ode="s=next" class="sneess="x /a7 oL130" c7lass="line" 93  L65tmp 10r7r6 a 85             ad9/a>r6 a >f65fmutea2687b        7     spa4 cl9d cf65tmp 10r7L6ef"85hash_econds_sin9e_bL6ef">f65+code=seterr ne" nh=che_>oderemove_a hracproc_io_riefiid0l"net/"net/remove_a hracproc_io_rief /a> ne" nh=che_>odea=che_head /a> * admef",fine" nrecchputs="s=next" class="sneess="xt /a7 oL130" c7lass="line" 93  L6 6mp 10r7L6   85href="+code=t"+9odex6   >f656code=seterr ne" nh=che_>odes    s_deachoy_nhef="+ctai=che_head /a> * s    s_deachoy_nhef="+ctai= /a> ne" nh=che_>odea=che_head /a> * admef"xt /a7 oL130" c7lass="line" 93  L6 tmp 10r7r6/a>85     ail" class9"srr6/a>>f65  ecoail 8c105" cla8f="+code=det9las165tmp 10r7=69 /85     2" id/oL629 cl=69 />f65rssizine" nrecchputsEXPORT_SYMBOL_GPode=next" class=EXPORT_SYMBOL_GPo /a> ne" nh=che_>odea hracunregister_="s=next" class="sa hracunregister_="s /a>xt /a7 oL130" c7lass="line" 93  L6 tmp 10r7=6 /a85sh" cf"8" clhre9="+=6 /a>f65_detail 8 class="l8ne" namf66 code_che.c#L42"a> 842i achnhef="+ctai=che_head /a> * a hrefcy class="line" nh=che_>odec hraccreate_="s=next" class="sa hraccreate_="s /a> ache.c#L42"a> 842i achnhef="+ctai=che_head /a> * a hrefcy class="line" nh=che_>odetmp=che_head /a> * tmp=mef",rache.c#L42"a> 842i ach="s=next" class="sneess="line" nh=che_>ode="s=next" class="sneess="x /a7 oL130" c7lass="line" 93  L66tmp 10r7i6 /a761ash_lock" clt/9uhri6 /a>f66 nexta2687b        7     spa4 cl9d cf66tmp 10r746e_f76sh_unlocked" cl9ss=46e_f>f66sref">last_re"" nam class="line" nhnhef="+ctai=che_head /a> * a hrefcy class="line" nh=che_>odec=che_head /a> * admef"t /a7 oL130" c7lass="line" 93  L66tmp 10r756ld"76cache.c#L155" i9/oL56ld">f66ss="line8cef">cach8/oL145" clas10r4f66tmp 10r7r6k /76             ad9/a>r6k />f66fmutex"c/achene" nh=che_>odec=che_head /a> * admef"onene" nh=che_>odekmemdupe_>code=next" ckmemdup /a> ne" nh=che_>odetmp=che_head /a> * tmp=mef",raizeof ache.c#L42"a> 842i achnhef="+ctai=che_head /a> * a hrefcy class="),fine" nrecchputsGFP_KERNEode=next" class=GFP_KERNEo /a>xt /a7 oL130" c7lass="line" 93  L66tmp 10r7L6 id76hash_t  a href=9+coL6 id>f665ref">last_res="line" nerrchompcc=che_head /a> * admef"onnene" nh=che_>odeNULode=next" class=NULoss="x /a7 oL130" c7lass="line" 93  L666mp 10r7L6f="76href="ache.c#L49" ix6f=">f666code=seterr clase_bolass="ene" nh=che_>odeERR_PTRe_>code=next" cERR_PTR /a> -ine" nrecchputsENOMEM=next" class="sENOMEMmef"xt /a7 oL130" c7lass="line" 93  L66tmp 10r7r643 76a>        for (9a hr643 >f66  eco1448aoL130" c8class="line"9149f66tmp 10r7=6="+76               9a h=6="+>f66  econds_sinc"line" n" namasa=che_head /a> * admef"lass="line" n" namashash_tableche_head /a> * hash_tablemef"onene" nh=che_>odekzallo"iid0l"net/"net/kzallo" /a> ne" nh=che_>odea=che_head /a> * admef"lass="line" n" namashash_sizeef="+code=setcphash_sizess="liraizeof ache.c#L42"a> 842i achnhef="hee=iid0l"net/"net/nhef="hee=ss="li), /a8e6f">cach8_e=next" cla9 ">f66tmp 10r7=6voi76sh" class="srwh9les=6voi>f669code=seterr clase_booooooooooooooooofine" nrecchputsGFP_KERNEode=next" class=GFP_KERNEo /a>xt /a7 oL130" c7lass="line" 93  L67tmp 10r8f6L16770  93cl9ss=f6L16>f670ref">last_res="line" nerrchompcc=che_head /a> * admef"lass="line" n" namashash_tableche_head /a> * hash_tablemef"onnene" nh=che_>odeNULode=next" class=NULoss="xea2687b        7     spa4 cl9d cf67tmp 10r7i6+co77=cache_is_exppp9pppi6+co>f671ref">last_ree_booooone" nh=che_>odekfreeche_head /a> * kfree /a> ne" nh=che_>odea=che_head /a> * admef"xt /a7 oL130" c7lass="line" 93  L67tmp 10r746/* 77sh_unlocked" cl9ss=46/* >f67sref">last_refresli.class="ene" nh=che_>odeERR_PTRe_>code=next" cERR_PTR /a> -ine" nrecchputsENOMEM=next" class="sENOMEMmef"xt /a7 oL130" c7lass="line" 93  L67tmp 10r756   77lass="sref">old9/a>56   >f673code=seterr ail 8c105" cla8f="+code=det9las167tmp 10r7r6   77             }i9" cr6   >f674mutex"c/////ine" nrecchputsc=che_head /a> * admef"lass="line" n" namas="s=next" class="sneess="lnene" nh=che_>odenet=next" class="sneess="t /a7 oL130" c7lass="line" 93  L67tmp 10r7L6">d77hash_lock" clt/9uhrL6">d>f675ref">last_reLTss="line" nerrchla -c=che_head /a> * admef"t /a7 oL130" c7lass="line" 93  L676mp 10r7L6p" 77href="+code=tes9_anx6p" >f676muteail 8c105" cla8f="+code=det9las167tmp 10r7r6>  77               9   r6>  >f677ref"ine" nrecchputsEXPORT_SYMBOL_GPode=next" class=EXPORT_SYMBOL_GPo /a> ne" nh=che_>odea hraccreate_="s=next" class="sa hraccreate_="s /a>xt /a7 oL130" c7lass="line" 93  L67tmp 10r7=6sh_77               9   =6sh_>f67e" na2688 9       8+code=new" c9"+cf67tmp 10r7=6 na77/cache.c#L121" 9d/o=6 na>f679ref"voidene" nh=che_>odea hracdeachoy_="s=next" class="sa hracdeachoy_="s /a> ache.c#L42"a> 842i achnhef="+ctai=che_head /a> * a hrefcy class="line" nh=che_>odec=che_head /a> * admef",rache.c#L42"a> 842i ach="s=next" class="sneess="line" nh=che_>ode="s=next" class="sneess="x /a7 oL130" c7lass="line" 93  L68tmp 10r8f6t a780  93}i9" cf6t a>f68 codea2687b        7     spa4 cl9d cf68tmp 10r7i6cla78m  93 /9>  i6cla>f68conds_since_bne" nh=che_>odekfreeche_head /a> * kfree /a> ne" nh=che_>odea=che_head /a> * admef"lass="line" n" namashash_tableche_head /a> * hash_tablemef"xt /a7 oL130" c7lass="line" 93  L68tmp 10r746 hr78sh_unlocked" hr9f="46 hr>f68sref">last_rene" nh=che_>odekfreeche_head /a> * kfree /a> ne" nh=che_>odea=che_head /a> * admef"xt /a7 oL130" c7lass="line" 93  L68tmp 10r756/oL78lass="sref">ot/9uhr56/oL>f68ef="+ail 8c105" cla8f="+code=det9las168tmp 10r7r6ini78             e_9s_er6ini>f684muteine" nrecchputsEXPORT_SYMBOL_GPode=next" class=EXPORT_SYMBOL_GPo /a> ne" nh=che_>odea hracdeachoy_="s=next" class="sa hracdeachoy_="s /a>xt /a7 oL130" c7lass="line" 93  L68tmp 10r7L6ent78hash_lock" clad9/a>L6ent>f68+codeil 8c105" cla8f="+code=det9las1686mp 10r7L6"co78ref="+code=expi9y" x6"co>f68>oeco_c clasne" nh=che_>odesaize_e=next" class="ssaize_essizeine" nerrchompca hracread_pipeffiid0l"net/"net/a hracread_pipeff /a> ache.c#L42"a> 842i achfileche_head /a> * filess="line" nh=che_>odefilef="+code=setfilfiless=", char < rpche_e==h__userche_head /a> * __userss="line" nh=che_>odebuf="+code=cachhoubufss=", /a8c9       8ef="+code=ca9 a f68tmp 10r7r6spa78a>        fort/9uhrr6spa>f68  econds_since_booooooooooooooooost_rene" nh=che_>odesize_e=next" class="ssize_essizeine" nerrchompccoune=next" class="scounemef"ofine" nerrchla -=off_e=next" class="sroff_ess="line" nh=che_>odeppofiid0l"net/"net/ppof /a>x /a7 oL130" c7lass="line" 93  L68tmp 10r7=6hre78               9   =6hre>f68  ecoa2687b        7     spa4 cl9d cf68tmp 10r7=6ode78/cache.c#L121" 9d/o=6ode>f689onds_since_bt" class="sref"in "+core=cac+ctai=che_head /a> * a hrefcy class="line" nh=che_>odec=che_head /a> * admef">nene" nh=che_>odeRPC_Iche_head /a> * RPC_I /a> ne" nh=che_>odefilef="+code=setfilfiless="lass="line" n" namasf_pathe_>code=next" cf_pathss=""line" n namche_dio_rye_>code=next" cdio_ry /a>-ass="line" n" namasd_in ace_>code=next" cd_in acss=")-ass="line" n" namasprivateiid0l"net/"net/privatemef"t /a7 oL130" c7lass="line" 93  L69tmp 10r8f6>ne790  93cl9ss=f6>ne>f69="+code=7oclass="s7ass="line" n9lasL69tmp 10r7i6e" 79=cache_is_exppp9pppi6e" >f69conds_since_blass="line" nrecchputsa hracreadiid0l"net/"net/a hracread /a> ne" nh=che_>odefilef="+code=setfilfiless=",rne" nh=che_>odebuf="+code=cachhoubufss=", ine" nerrchompccoune=next" class="scounemef", ine" nerrchompcppofiid0l"net/"net/ppof /a>,fine" nrecchputsc=che_head /a> * admef"xt /a7 oL130" c7lass="line" 93  L69tmp 10r746>  79sh_unlocked" }u9L1646>  >f69sref"ail 8c105" cla8f="+code=det9las169tmp 10r756>  79lass="sref">old9/a>56>  >f69ss="line8cef">cach8/oL145" clas10r4f69tmp 10r7r6f">79             e_9s_er6f">>f694mute_c clasne" nh=che_>odesaize_e=next" class="ssaize_essizeine" nerrchompca hracwrite_pipeffiid0l"net/"net/a hracwrite_pipeff /a> ache.c#L42"a> 842i achfileche_head /a> * filess="line" nh=che_>odefilef="+code=setfilfiless=", constrchar < rpche_e==h__userche_head /a> * __userss="line" nh=che_>odebuf="+code=cachhoubufss=", /a8c9       8ef="+code=ca9 a f69tmp 10r7L6" c79hash_lock" cl="9et/L6" c>f69+code=seterr ce_booooooooooooooooost_rene" nh=che_>odesize_e=next" class="ssize_essizeine" nerrchompccoune=next" class="scounemef"ofine" nerrchla -=off_e=next" class="sroff_ess="line" nh=che_>odeppofiid0l"net/"net/ppof /a>x /a7 oL130" c7lass="line" 93  L69tmp 10r7x6 /a79href="+code=tes9_anx6 /a>f696codea2687b        7     spa4 cl9d cf69tmp 10r7r6f="79               9   r6f=">f69  econds_sinct" class="sref"in "+core=cac+ctai=che_head /a> * a hrefcy class="line" nh=che_>odec=che_head /a> * admef">nene" nh=che_>odeRPC_Iche_head /a> * RPC_I /a> ne" nh=che_>odefilef="+code=setfilfiless="lass="line" n" namasf_pathe_>code=next" cf_pathss=""line" n namche_dio_rye_>code=next" cdio_ry /a>-ass="line" n" namasd_in ace_>code=next" cd_in acss=")-ass="line" n" namasprivateiid0l"net/"net/privatemef"t /a7 oL130" c7lass="line" 93  L69tmp 10r7=6+co79               9   =6+co>f69e" na2688 9       8+code=new" c9"+cf69tmp 10r7=6p" 79/cache.c#L121" 9d/o=6p" >f699onds_since_blass="line" nrecchputsa hracwriteiid0l"net/"net/a hracwrite /a> ne" nh=che_>odefilef="+code=setfilfiless=",rne" nh=che_>odebuf="+code=cachhoubufss=", ine" nerrchompccoune=next" class="scounemef", ine" nerrchompcppofiid0l"net/"net/ppof /a>,fine" nrecchputsc=che_head /a> * admef"xt /a7 oL130" c7lass="line" 93  L7>tmp 10ref7p" 79/cache.c#L121" 10ref710rea70="+coail 8c105" cla8f="+code=det9las17>1mp 10ref7p" 79=cache_is_exppp9pppi710rto70condsil 8c105" cla8f="+code=det9las17>2mp 10ref7p  79sh_unlocked" }u9L164710rpi70sref"_c clasunsignedss="line" nerrchla -c hracpoll_pipeffiid0l"net/"net/a hracpoll_pipeff /a> ache.c#L42"a> 842i achfileche_head /a> * filess="line" nh=che_>odefilef="+code=setfilfiless=", ine" nerrchompcpoll_tableche_head /a> * poll_tabless="line" nh=che_>odewais=next" class="swais /a>x /a7 oL130" c7lass="line" 93  L7>3mp 10r747>  79lass="sref">old9/a>5710r c703ref"a2687b        7     spa4 cl9d cf7>4mp 10r747>">79             e_9s_er710r h704mutex"c/////t" class="sref"in "+core=cac+ctai=che_head /a> * a hrefcy class="line" nh=che_>odec=che_head /a> * admef">nene" nh=che_>odeRPC_Iche_head /a> * RPC_I /a> ne" nh=che_>odefilef="+code=setfilfiless="lass="line" n" namasf_pathe_>code=next" cf_pathss=""line" n namche_dio_rye_>code=next" cdio_ry /a>-ass="line" n" namasd_in ace_>code=next" cd_in acss=")-ass="line" n" namasprivateiid0l"net/"net/privatemef"t /a7 oL130" c7lass="line" 93  L7>5mp 10r747> c79hash_lock" cl="9et/L710ref70+codeil 8c105" cla8f="+code=det9las17>6mp 10r747>/a79href="+code=tes9_anx710rs=706code=seterr lass="line" nrecchputsa hracpolliid0l"net/"net/a hracpoll /a> ne" nh=che_>odefilef="+code=setfilfiless=",rne" nh=che_>odewais=next" class="swais /a>,fine" nrecchputsc=che_head /a> * admef"xt /a7 oL130" c7lass="line" 93  L7>7mp 10r747>="79               9   r710r  70  ecoail 8c105" cla8f="+code=det9las17>8mp 10r7L7"co79               9   =710r  70e" na2688 9       8+code=new" c9"+cf7>9mp 10r7L7"" 79/cache.c#L121" 9d/o=710rla709mute_c claslongeL42"a> 842i achnhef="ioctl_pipeffiid0l"net/"net/a hracioctl_pipeff /a> ache.c#L42"a> 842i achfileche_head /a> * filess="line" nh=che_>odefilef="+code=setfilfiless=",2688 9       8+code=new" c9"+cf7>tmp 10r8f7>he810  93cl10r8f7cl10L710ref">last_ree_booooofresli.cst_refunsignedss="line" nerrchla -cm=che_head /a> * amdmef",runsignedslongeL42"a> 842i achargche_head /a> * arg /a>x /a7 oL130" c7lass="line" 93  L711mp 10ref7 * 81=cache_is_exppp9pppi7 * 0L71 nexta2687b        7     spa4 cl9d cf7>tmp 10r747;1<81sh_unlocked" cl9ss=47;1<0L71sref">last_re"" nam class="line" nhin ace_>code=next" cin acss="line" nh=che_>odein ace_>code=next" cin acss="lnene" nh=che_>odefilef="+code=setfilfiless="lass="line" n" namasf_dio_rye_>code=next" cf_dio_ry /a>-ass="line" n" namasd_in ace_>code=next" cd_in acss="t /a7 oL130" c7lass="line" 93  L7>tmp 10r75715"81lass="sref">old9/a>5715"0L713ref">last_ret" class="sref"in "+core=cac+ctai=che_head /a> * a hrefcy class="line" nh=che_>odec=che_head /a> * admef">nene" nh=che_>odeRPC_Iche_head /a> * RPC_I /a> ne" nh=che_>odein ace_>code=next" cin acss=")-ass="line" n" namasprivateiid0l"net/"net/privatemef"t /a7 oL130" c7lass="line" 93  L7>4mp 10r747che81             e_9s_er7che0L71fmuteil 8c105" cla8f="+code=det9las17>tmp 10r7L7cod81hash_lock" cl="9et/L7cod0L715ref">last_reLTss="line" nerrchla -c hracioctliid0l"net/"net/a hracioctl /a> ne" nh=che_>odein ace_>code=next" cin acss=",fine" nrecchputsfilef="+code=setfilfiless=",rne" nh=che_>odecm=che_head /a> * amdmef",rL42"a> 842i achargche_head /a> * arg /a>,fine" nrecchputsc=che_head /a> * admef"xt /a7 oL130" c7lass="line" 93  L7>6mp 10r7L7am<81href="+code=tes9_anx7am<0L716muteail 8c105" cla8f="+code=det9las171tmp 10r7r7sre81               9   r7sre0L71  eco1448aoL130" c8class="line"9149f7>8mp 10r7L7t/s81               9   =7t/s0L71  eco_c class="line" nerrchla -c hracopen_pipeffiid0l"net/"net/a hracopen_pipeff /a> ache.c#L42"a> 842i achin ace_>code=next" cin acss="line" nh=che_>odein ace_>code=next" cin acss=",rache.c#L42"a> 842i achfileche_head /a> * filess="line" nh=che_>odefilef="+code=setfilfiless="x /a7 oL130" c7lass="line" 93  L719mp 10r7L7unr81/cache.c#L121" 9d/o=7unr0L719codea2687b        7     spa4 cl9d cf7=tmp 10r8f7up"820  93cl9ss=f7up">f720ref">last_ret" class="sref"in "+core=cac+ctai=che_head /a> * a hrefcy class="line" nh=che_>odec=che_head /a> * admef">nene" nh=che_>odeRPC_Iche_head /a> * RPC_I /a> ne" nh=che_>odein ace_>code=next" cin acss=")-ass="line" n" namasprivateiid0l"net/"net/privatemef"t /a7 o       7     spa4 cl9d cf7=1mp 10ref7sun82m  93}i9" ci7sun>f72condsil 8c105" cla8f="+code=det9las17utmp 10r747unr82sh_unlocked" t/9uhr47unr>f72e=seterr clasLTss="line" nerrchla -c hracopeniid0l"net/"net/a hracopen /a> ne" nh=che_>odein ace_>code=next" cin acss=",fine" nrecchputsfilef="+code=setfilfiless=",rne" nh=che_>odec=che_head /a> * admef"xt /a7 oL130" c7lass="line" 93  L7=tmp 10r757ail82lass="sref">old9/a>57ail>f72ef="+ail 8c105" cla8f="+code=det9las17utmp 10r7r7ach82             ad9/a>r7ach>f72fmuteil 8c105" cla8f="+code=det9las17=tmp 10r7L7che82hash_lock" cl"+9odeL7che>f72e=set_c class="line" nerrchla -c hracrelease_pipeffiid0l"net/"net/a hracrelease_pipeff /a> ache.c#L42"a> 842i achin ace_>code=next" cin acss="line" nh=che_>odein ace_>code=next" cin acss=",rache.c#L42"a> 842i achfileche_head /a> * filess="line" nh=che_>odefilef="+code=setfilfiless="x /a7 oL130" c7lass="line" 93  L7=6mp 10r7L7  a82L118"}il" class9"srx7  a>f726codea2687b        7     spa4 cl9d cf7=tmp 10r7r7128821 * a hrefcy class="line" nh=che_>odec=che_head /a> * admef">nene" nh=che_>odeRPC_Iche_head /a> * RPC_I /a> ne" nh=che_>odein ace_>code=next" cin acss=")-ass="line" n" namasprivateiid0l"net/"net/privatemef"t /a7 o       7     spa4 cl9d cf7=8mp 10r7L7 /a828ash_f"8" clhre9="+=7 /a>f72e" na2688 9       8+code=new" c9"+cf7u9mp 10r7L7ref82/cache.c#L121" 9d/o=7ref>f729onds_since_blass="line" nrecchputsa hracreleaseiid0l"net/"net/a hracrelease /a> ne" nh=che_>odein ace_>code=next" cin acss=",fine" nrecchputsfilef="+code=setfilfiless=",rne" nh=che_>odec=che_head /a> * admef"xt /a7 oL130" c7lass="line" 93  L73tmp 10r8f7p_w83148">62" id/oL69" cf7p_w>f73="+coail 8c105" cla8f="+code=det9las173tmp 10r7i7CHE83m  93 /9>  i7CHE>f73condsil 8c105" cla8f="+code=det9las173tmp 10r747ach83is en          9   47ach>f73e=setconstrache.c#L42"a> 842i achfile_oper clonsche_head /a> * file_oper clonsssizeine" nerrchompca hracfile_oper clons_pipeffiid0l"net/"net/a hracfile_oper clons_pipeffmef">nea2687b        7     spa4 cl9d cf73tmp 10r757="+83lass="sref">ot/9uhr57="+>f733ref">last_re"line" n namche_ownerche_head /a> * ownerref">last_ree_nene" nh=che_>odeTHIS_MODULEche_head /a> * THIS_MODULEss=",2688 9       8+code=new" c9"+cf73tmp 10r7r7" c83             e_9s_er7" c>f734ref">last_re"line" n namche_llseek=next" class="srlseekref">last_reenene" nh=che_>odeno_llseek=next" class="sno_llseekss=",2688 9       8+code=new" c9"+cf73tmp 10r7L7hre83hash_lock" clt/9uhrL7hre>f735ref">last_re"line" n namche_readiid0l"net/"net/read /a> >last_ree_nene" nh=che_>odea hracread_pipeffiid0l"net/"net/a hracread_pipeff /a>,2688 9       8+code=new" c9"+cf736mp 10r7L7 ( 83href="+code=tes9_anx7 ( >f736ref">last_re"line" n namche_writeiid0l"net/"net/write /a>>last_ree_nene" nh=che_>odea hracwrite_pipeffiid0l"net/"net/a hracwrite_pipeff /a>,2688 9       8+code=new" c9"+cf73tmp 10r7r7gs 83a>        for (9a hr7gs >f737ref">last_re"line" n namche_polliid0l"net/"net/poll /a> >last_ree_nene" nh=che_>odea hracpoll_pipeffiid0l"net/"net/a hracpoll_pipeff /a>,2688 9       8+code=new" c9"+cf738mp 10r7L7> 1838cache_is_expti9e" =7> 1>f73  econds_sinc"line" n namche_unlockedcioctliid0l"net/"net/unlockedcioctlmef">nene" nh=che_>odenhef="ioctl_pipeffiid0l"net/"net/a hracioctl_pipeff /a>,osteryed by " nam"io_monl for FIONREAD *162"> #L1448aoL130" c8class="line"9149f73tmp 10r7=7 cl83sh" class="srLf9un2=7 cl>f739ref">last_re"line" n namche_openiid0l"net/"net/open /a> >last_ree_nene" nh=che_>odea hracopen_pipeffiid0l"net/"net/a hracopen_pipeff /a>,2688 9       8+code=new" c9"+cf74tmp 10r8f7nam840  93cl9ss=f7nam>f740ref">last_re"line" n namche_releaseiid0l"net/"net/release /a>ast_ree_nene" nh=che_>odea hracrelease_pipeffiid0l"net/"net/a hracrelease_pipeff /a>,2688 9       8+code=new" c9"+cf74tmp 10r7i7="+84m  93"+9odei7="+>f74conds}t /a7 oL130" c7lass="line" 93  L74tmp 10r747=ca84sh_unail" class9"sr47=ca>f74=e" n /a8e6f">cach8_e=next" cla10ref74tmp 10r757f">84cache.c#L155" i9/oL57f">>f743mute_c class="line" nerrchla -ccneio__open_pipeffiid0l"net/"net/acneio__open_pipeff /a> ache.c#L42"a> 842i achin ace_>code=next" cin acss="line" nh=che_>odein ace_>code=next" cin acss=",rache.c#L42"a> 842i achfileche_head /a> * filess="line" nh=che_>odefilef="+code=setfilfiless="x /a7 oL130" c7lass="line" 93  L7ntmp 10r7r7L14844d/oL128" clhre9="+r7L14>f74fmutea2687b        7     spa4 cl9d cf74tmp 10r7L7pc/84hash_lock" cl="9et/L7pc/>f74+code=seterr t" class="sref"in "+core=cac+ctai=che_head /a> * a hrefcy class="line" nh=che_>odec=che_head /a> * admef">nene" nh=che_>odeRPC_Iche_head /a> * RPC_I /a> ne" nh=che_>odein ace_>code=next" cin acss=")-ass="line" n" namasprivateiid0l"net/"net/privatemef"t /a7 o       7     spa4 cl9d cf746mp 10r7L7ALI846h" c62" id/oL69" cx7ALI>f746code /a7 o       7     spa4 cl9d cf74tmp 10r7r7 cl84             129" cr7 cl>f747"s        hrlass="line" nerrchla -ccneio__openiid0l"net/"net/acneio__open /a> ne" nh=che_>odein ace_>code=next" cin acss=",fine" nrecchputsfilef="+code=setfilfiless=",rne" nh=che_>odec=che_head /a> * admef"xt /a7 oL130" c7lass="line" 93  L74tmp 10r7=75  848cache_is_expti9e" =75  >f74rssizail 8c105" cla8f="+code=det9las17ntmp 10r7=7="s84 1et/il" class=9sre=7="s>f74_detail 8 class="l8ne" nam 11f="73t/9uhrf7   >f75 code_c class="line" nerrchla -ccneio__release_pipeffiid0l"net/"net/acneio__release_pipeff /a> ache.c#L42"a> 842i achin ace_>code=next" cin acss="line" nh=che_>odein ace_>code=next" cin acss=",rache.c#L42"a> 842i achfileche_head /a> * filess="line" nh=che_>odefilef="+code=setfilfiless="x /a7 oL130" c7lass="line" 93  L75tmp 10r7i7"ne85=cache_is_exppp9pppi7"ne>f75 nexta2687b        7     spa4 cl9d cf75tmp 10r747ref85sh_unlocked" hr9f="47ref>f75sref">last_re"" nam class="line" nhnhef="+ctai=che_head /a> * a hrefcy class="line" nh=che_>odec=che_head /a> * admef">nene" nh=che_>odeRPC_Iche_head /a> * RPC_I /a> ne" nh=che_>odein ace_>code=next" cin acss=")-ass="line" n" namasprivateiid0l"net/"net/privatemef"t /a7 o       7     spa4 cl9d cf7 tmp 10r757nrp85lass="sref">oec9nds57nrp>f75ss="line8cef">cach8/oL145" clas10r4f75tmp 10r7r7 a 85             ad9/a>r7 a >f75fmutex"c/////lass="line" nerrchla -ccneio__releaseiid0l"net/"net/acneio__release /a> ne" nh=che_>odein ace_>code=next" cin acss=",fine" nrecchputsfilef="+code=setfilfiless=",rne" nh=che_>odec=che_head /a> * admef"xt /a7 oL130" c7lass="line" 93  L75tmp 10r7L7ef"85hash_econds_sin9e_bL7ef">f75+codeail 8c105" cla8f="+code=det9las17 6mp 10r7L7   85href="+code=t"+9odex7   >f756code /a7 o       7     spa4 cl9d cf7 tmp 10r7r7/a>85     ail" class9"srr7/a>>f75  ecoconstrache.c#L42"a> 842i achfile_oper clonsche_head /a> * file_oper clonsssizeine" nerrchompcacneio__file_oper clons_pipeffiid0l"net/"net/acneio__file_oper clons_pipeffmef">nea2687b        7     spa4 cl9d cf75tmp 10r7=79 /85     2" id/oL629 cl=79 />f75  econds_sinc"line" n namche_openiid0l"net/"net/open /a> >last_ree_nene" nh=che_>odeacneio__open_pipeffiid0l"net/"net/acneio__open_pipeff /a>,2688 9       8+code=new" c9"+cf7 tmp 10r7=7 /a85sh" cf"8" clhre9="+=7 /a>f759ref">last_re"line" n namche_readiid0l"net/"net/read /a> >last_ree_nene" nh=che_>odeseqcreadiid0l"net/"net/seqcread /a>,2688 9       8+code=new" c9"+cf76tmp 10r8f7   76 href          9   f7   >f760ref">last_re"line" n namche_llseek=next" class="srlseekref">last_reenene" nh=che_>odeseqclseek=next" class="sseqclseek /a>,2688 9       8+code=new" c9"+cf76tmp 10r7i7 /a761ash_lock" clt/9uhri7 /a>f761ref">last_re"line" n namche_releaseiid0l"net/"net/release /a>ast_ree_nene" nh=che_>odeacneio__release_pipeffiid0l"net/"net/acneio__release_pipeff /a>,2688 9       8+code=new" c9"+cf76tmp 10r747e_f76sh_unlocked" cl9ss=47e_f>f76sref"}t /a7 oL130" c7lass="line" 93  L76tmp 10r757ld"76cache.c#L155" i9/oL57ld">f76ss="line8cef">cach8/oL145" clas10r4f76tmp 10r7r7k /76             ad9/a>r7k />f764mute_c class="line" nerrchla -open_flush_pipeffiid0l"net/"net/open_flush_pipeff /a> ache.c#L42"a> 842i achin ace_>code=next" cin acss="line" nh=che_>odein ace_>code=next" cin acss=",rache.c#L42"a> 842i achfileche_head /a> * filess="line" nh=che_>odefilef="+code=setfilfiless="x /a7 oL130" c7lass="line" 93  L76tmp 10r7L7 id76hash_t  a href=9+coL7 id>f765ref"a2687b        7     spa4 cl9d cf766mp 10r7L7f="76href="ache.c#L49" ix7f=">f766code=seterr "" nam class="line" nhnhef="+ctai=che_head /a> * a hrefcy class="line" nh=che_>odec=che_head /a> * admef">nene" nh=che_>odeRPC_Iche_head /a> * RPC_I /a> ne" nh=che_>odein ace_>code=next" cin acss=")-ass="line" n" namasprivateiid0l"net/"net/privatemef"t /a7 o       7     spa4 cl9d cf76tmp 10r7r743 76a>        for (9a hr743 >f76  eco1448aoL130" c8class="line"9149f76tmp 10r7=7="+76               9a h=7="+>f76  econds_sinclass="line" nerrchla -open_flushiid0l"net/"net/open_flush /a> ne" nh=che_>odein ace_>code=next" cin acss=",fine" nrecchputsfilef="+code=setfilfiless=",rne" nh=che_>odec=che_head /a> * admef"xt /a7 oL130" c7lass="line" 93  L76tmp 10r7=7voi76sh" class="srwh9les=7voi>f769muteail 8c105" cla8f="+code=det9las177tmp 10r8f7L16770  93cl9ss=f7L16>f77="+code=7oclass="s7ass="line" n9lasL77tmp 10r7i7+co77=cache_is_exppp9pppi7+co>f771ref"_c class="line" nerrchla -release_flush_pipeffiid0l"net/"net/release_flush_pipeff /a> ache.c#L42"a> 842i achin ace_>code=next" cin acss="line" nh=che_>odein ace_>code=next" cin acss=",rache.c#L42"a> 842i achfileche_head /a> * filess="line" nh=che_>odefilef="+code=setfilfiless="x /a7 oL130" c7lass="line" 93  L77tmp 10r747/* 77sh_unlocked" cl9ss=47/* >f77sref"a2687b        7     spa4 cl9d cf77tmp 10r757   77lass="sref">old9/a>57   >f773ref">last_ret" class="sref"in "+core=cac+ctai=che_head /a> * a hrefcy class="line" nh=che_>odec=che_head /a> * admef">nene" nh=che_>odeRPC_Iche_head /a> * RPC_I /a> ne" nh=che_>odein ace_>code=next" cin acss=")-ass="line" n" namasprivateiid0l"net/"net/privatemef"t /a7 o       7     spa4 cl9d cf77tmp 10r7r7   77             }i9" cr7   >f77fmuteil 8c105" cla8f="+code=det9las177tmp 10r7L7">d77hash_lock" clt/9uhrL7">d>f775ref">last_reLTss="line" nerrchla -release_flushiid0l"net/"net/release_flush /a> ne" nh=che_>odein ace_>code=next" cin acss=",fine" nrecchputsfilef="+code=setfilfiless=",rne" nh=che_>odec=che_head /a> * admef"xt /a7 oL130" c7lass="line" 93  L776mp 10r7L7p" 77href="+code=tes9_anx7p" >f776muteail 8c105" cla8f="+code=det9las177tmp 10r7r7>  77               9   r7>  >f77  eco1448aoL130" c8class="line"9149f77tmp 10r7=7sh_77               9   =7sh_>f77  eco_c clasne" nh=che_>odesaize_e=next" class="ssaize_essizeine" nerrchompcread_flush_pipeffiid0l"net/"net/read_flush_pipeff /a> ache.c#L42"a> 842i achfileche_head /a> * filess="line" nh=che_>odefilef="+code=setfilfiless=", char < rpche_e==h__userche_head /a> * __userss="line" nh=che_>odebuf="+code=cachhoubufss=", /a8c9       8ef="+code=ca9 a f77tmp 10r7=7 na77/cache.c#L121" 9d/o=7 na>f779code=seterr clase_booooooooooooone" nh=che_>odesize_e=next" class="ssize_essizeine" nerrchompccoune=next" class="scounemef"ofine" nerrchla -=off_e=next" class="sroff_ess="line" nh=che_>odeppofiid0l"net/"net/ppof /a>x /a7 oL130" c7lass="line" 93  L78tmp 10r8f7t a780  93}i9" cf7t a>f78 codea2687b        7     spa4 cl9d cf78tmp 10r7i7cla78m  93 /9>  i7cla>f78conds_since_bt" class="sref"in "+core=cac+ctai=che_head /a> * a hrefcy class="line" nh=che_>odec=che_head /a> * admef">nene" nh=che_>odeRPC_Iche_head /a> * RPC_I /a> ne" nh=che_>odefilef="+code=setfilfiless="lass="line" n" namasf_pathe_>code=next" cf_pathss=""line" n namche_dio_rye_>code=next" cdio_ry /a>-ass="line" n" namasd_in ace_>code=next" cd_in acss=")-ass="line" n" namasprivateiid0l"net/"net/privatemef"t /a7 oL130" c7lass="line"l9d cf78tmp 10r747 hr78sh_unlocked" hr9f="47 hr>f78=e" n /a8e6f">cach8_e=next" cla10ref78tmp 10r757/oL78lass="sref">ot/9uhr57/oL>f783ref">last_reLTss="line" nerrchla -read_flushiid0l"net/"net/read_flush /a> ne" nh=che_>odefilef="+code=setfilfiless=",rne" nh=che_>odebuf="+code=cachhoubufss=", ine" nerrchompccoune=next" class="scounemef", ine" nerrchompcppofiid0l"net/"net/ppof /a>,fine" nrecchputsc=che_head /a> * admef"xt /a7 oL130" c7lass="line" 93  L78tmp 10r7r7ini78             e_9s_er7ini>f784muteail 8c105" cla8f="+code=det9las178tmp 10r7L7ent78hash_lock" clad9/a>L7ent>f78+codeil 8c105" cla8f="+code=det9las1786mp 10r7L7"co78ref="+code=expi9y" x7"co>f78>oeco_c clasne" nh=che_>odesaize_e=next" class="ssaize_essizeine" nerrchompcwrite_flush_pipeffiid0l"net/"net/write_flush_pipeff /a> ache.c#L42"a> 842i achfileche_head /a> * filess="line" nh=che_>odefilef="+code=setfilfiless=",il 8c105" cla8f="+code=det9las178tmp 10r7r7spa78a>        fort/9uhrr7spa>f78  econds_since_booooooooooooooooost_re constrchar < rpche_e==h__userche_head /a> * __userss="line" nh=che_>odebuf="+code=cachhoubufss=", /a8c9       8ef="+code=ca9 a f78tmp 10r7=7hre78               9   =7hre>f78  econds_since_boooooase_booooooooooooone" nh=che_>odesize_e=next" class="ssize_essizeine" nerrchompccoune=next" class="scounemef"ofine" nerrchla -=off_e=next" class="sroff_ess="line" nh=che_>odeppofiid0l"net/"net/ppof /a>x /a7 oL130" c7lass="line" 93  L78tmp 10r7=7ode78/cache.c#L121" 9d/o=7ode>f789codea2687b        7     spa4 cl9d cf79tmp 10r8f7>ne790  93cl9ss=f7>ne>f790ref">last_ret" class="sref"in "+core=cac+ctai=che_head /a> * a hrefcy class="line" nh=che_>odec=che_head /a> * admef">nene" nh=che_>odeRPC_Iche_head /a> * RPC_I /a> ne" nh=che_>odefilef="+code=setfilfiless="lass="line" n" namasf_pathe_>code=next" cf_pathss=""line" n namche_dio_rye_>code=next" cdio_ry /a>-ass="line" n" namasd_in ace_>code=next" cd_in acss=")-ass="line" n" namasprivateiid0l"net/"net/privatemef"t /a7 oL130" c7lass="line"l9d cf79tmp 10r7i7e" 79=cache_is_exppp9pppi7e" >f79condsil 8c105" cla8f="+code=det9las179tmp 10r747>  79sh_unlocked" }u9L1647>  >f79e=seterr clasLTss="line" nerrchla -write_flushiid0l"net/"net/write_flush /a> ne" nh=che_>odefilef="+code=setfilfiless=",rne" nh=che_>odebuf="+code=cachhoubufss=", ine" nerrchompccoune=next" class="scounemef", ine" nerrchompcppofiid0l"net/"net/ppof /a>,fine" nrecchputsc=che_head /a> * admef"xt /a7 oL130" c7lass="line" 93  L79tmp 10r757>  79lass="sref">old9/a>57>  >f79ef="+ail 8c105" cla8f="+code=det9las179tmp 10r7r7f">79             e_9s_er7f">>f79fmuteil 8c105" cla8f="+code=det9las179tmp 10r7L7" c79hash_lock" cl="9et/L7" c>f79+codeconstrache.c#L42"a> 842i achfile_oper clonsche_head /a> * file_oper clonsssizeine" nerrchompca hracflush_oper clons_pipeffiid0l"net/"net/a hracflush_oper clons_pipeffmef">nea2687b        7     spa4 cl9d cf79tmp 10r7x7 /a79href="+code=tes9_anx7 /a>f796ref">last_re"line" n namche_openiid0l"net/"net/open /a> >last_ree_nene" nh=che_>odeopen_flush_pipeffiid0l"net/"net/open_flush_pipeff /a>, /a8c9       8ef="+code=ca9 a f79tmp 10r7r7f="79               9   r7f=">f797ref">last_re"line" n namche_readiid0l"net/"net/read /a> >last_ree_nene" nh=che_>oderead_flush_pipeffiid0l"net/"net/read_flush_pipeff /a>, /a8c9       8ef="+code=ca9 a f79tmp 10r7=7+co79               9   =7+co>f79  econds_sinc"line" n namche_writeiid0l"net/"net/write /a>>last_ree_nene" nh=che_>odewrite_flush_pipeffiid0l"net/"net/write_flush_pipeff /a>, /a8c9       8ef="+code=ca9 a f79tmp 10r7=7p" 79/cache.c#L121" 9d/o=7p" >f799ref">last_re"line" n namche_releaseiid0l"net/"net/release /a>ast_ree_nene" nh=che_>oderelease_flush_pipeffiid0l"net/"net/release_flush_pipeff /a>, /a8c9       8ef="+code=ca9 a f8>tmp 10ref8p" 79/cache.c#L121" 10ref810rea800ref">last_re"line" n namche_llseek=next" class="srlseekref">last_reenene" nh=che_>odeno_llseek=next" class="sno_llseekss=",2688 9       8+code=new" c9"+cf8>1mp 10ref8p" 79=cache_is_exppp9pppi810rto80conds}t /a7 oL130" c7lass="line" 93  L8>2mp 10ref8p  79sh_unlocked" }u9L164810rpi80=e" n /a8e6f">cach8_e=next" cla10ref8>3mp 10r748>  79lass="sref">old9/a>5810r c803ref"s="line" nerrchla -_e=nex_a hracregister_pipeffiid0l"net/"net/_e=nex_a hracregister_pipeff /a> ache.c#L42"a> 842i achdio_rye_>code=next" cdio_ry /a>line" nh=che_>odeparene=next" class="spareness=",2688 9       8+code=new" c9"+cf8>4mp 10r748>">79             e_9s_er810r h804mutex"c//////////////////////////////constrchar ine" nh=che_>ode e_9=next" class="sne_9 /a>,fine" nrecchputsumput_e=next" class="sumput_essizeine" nerrchompcumput=next" class="sumputss=",2688 9       8+code=new" c9"+cf8>5mp 10r748> c79hash_lock" cl="9et/L810ref80+code=seterr ce_booooooooooooooooost_rt" class="sref"in "+core=cac+ctai=che_head /a> * a hrefcy class="line" nh=che_>odec=che_head /a> * admef"x /a7 oL130" c7lass="line" 93  L8>6mp 10r748>/a79href="+code=tes9_anx810rs=806codea2687b        7     spa4 cl9d cf8>7mp 10r748>="79               9   r810r  80  econds_sinct" class="sref"in "+coqt" che_head /a> * qt" ssizeine" nerrchompcqche_head /a> * qmef"t /a7 oL130" c7lass="line"l9d cf8>8mp 10r7L8"co79               9   =810r  808 econds_sinct" class="sref"in "+codio_rye_>code=next" cdio_ry /a>line" nh=che_>odedi che_head /a> * di mef"t /a7 oL130" c7lass="line"l9d cf8>9mp 10r7L8"" 79/cache.c#L121" 9d/o=810rla809ref">last_res="line" nerrchla -res=next" class="sreess="one0t /a7 oL130" c7lass="line"l9d cf8>tmp 10r8f8>he810  93cl10r8f8cl10L81="+code=7oclass="s7ass="line" n9lasL811mp 10ref8 * 81=cache_is_exppp9pppi8 * 0L81conds_since_bne" nh=che_>odeqche_head /a> * qmef""line" n namche_ e_9=next" class="sne_9 /a>enene" nh=che_>odene_9=next" class="sne_9 /a>t /a7 oL130" c7lass="line"l9d cf8>2mp 10ref8;1<81sh_unlocked" cl9ss=48;1<0L81sref">last_rene" nh=che_>odeqche_head /a> * qmef""line" n namche_leniid0l"net/"net/len /a> nene" nh=che_>odestrleniid0l"net/"net/strlen /a> ne" nh=che_>odene_9=next" class="sne_9 /a>xt /a7 oL130" c7lass="line" 93  L8>tmp 10r75815"81lass="sref">old9/a>5815"0L813ref">last_rene" nh=che_>odeqche_head /a> * qmef""line" n namche_hashche_head /a> * hash /a> nene" nh=che_>odefull_old9_hashche_head /a> * full_old9_hash /a> ne" nh=che_>odeqche_head /a> * qmef""line" n namche_ e_9=next" class="sne_9 /a>,fine" nrecchputsqche_head /a> * qmef""line" n namche_leniid0l"net/"net/len /a>xt /a7 oL130" c7lass="line" 93  L8>4mp 10r748che81             e_9s_er8che0L814mutex"c/////ine" nrecchputsdi che_head /a> * di mef"_nene" nh=che_>oderex_areate_a hrefci che_head /a> * rex_areate_a hrefci  /a> ne" nh=che_>odeparene=next" class="spareness=", &="line" n" namasqche_head /a> * qmef",fine" nrecchputsumput=next" class="sumputss=",fine" nrecchputsc=che_head /a> * admef"xt /a7 oL130" c7lass="line" 93  L8>tmp 10r7L8cod81hash_lock" cl="9et/L8cod0L815ref">last_res="l!ine" nrecchputsIS_ERRe_>code=next" cIS_ERR /a> ne" nh=che_>odedi che_head /a> * di mef")x /a7 oL130" c7lass="line" 93  L8>6mp 10r7L8am<81href="+code=tes9_anx8am<0L816code=seterr clase_boine" nrecchputsc=che_head /a> * admef"-ass="line" n" namasu=next" class="sumef""line" n namche_pipeffiid0l"net/"net/pipeff /a>"line" n namche_di che_head /a> * di mef"_nene" nh=che_>odedi che_head /a> * di mef"t /a7 oL130" c7lass="line"l9d cf81tmp 10r7r8sre81               9   r8sre0L81  econds_sincelse /a7 oL130" c7lass="line"l9d cf818mp 10r7L8t/s81               9   =8t/s0L81  econds_since_boooooine" nerrchla -res=next" class="sreess="oneine" nerrchla -PTR_ERRe_>code=next" cPTR_ERR /a> ne" nh=che_>odedi che_head /a> * di mef")t /a7 oL130" c7lass="line"l9d cf819mp 10r7L8unr81/cache.c#L121" 9d/o=8unr0L819onds_since_blass="line" nrecchputsres=next" class="sreess="t /a7 oL130" c7lass="line"l9d cf8=tmp 10r8f8up"820  93cl9ss=f8up">f82="+coail 8c105" cla8f="+code=det9las18=1mp 10ref8sun82m  93}i9" ci8sun>f82condsine" nrecchputsEXPORT_SYMBOL_GPode=next" class=EXPORT_SYMBOL_GPo /a> ne" nh=che_>ode_e=nex_a hracregister_pipeffiid0l"net/"net/_e=nex_a hracregister_pipeff /a>)t /a7 oL130" c7lass="line"l9d cf8utmp 10r748unr82sh_unlocked" t/9uhr48unr>f82=e" n /a8e6f">cach8_e=next" cla10ref8=tmp 10r758ail82lass="sref">old9/a>58ail>f82ef="+voidene" nh=che_>ode_e=nex_a hrace=negister_pipeffiid0l"net/"net/_e=nex_a hrace=negister_pipeff /a> ache.c#L42"a> 842i achre=cac+ctai=che_head /a> * a hrefcy class="line" nh=che_>odec=che_head /a> * admef"x /a7 oL130" c7lass="line" 93  L8utmp 10r7r8ach82             ad9/a>r8ach>f82fmutea2687b        7     spa4 cl9d cf8=tmp 10r7L8che82hash_lock" cl"+9odeL8che>f825ref">last_rene" nh=che_>oderex_remove_a hrefci che_head /a> * rex_remove_a hrefci  /a> ne" nh=che_>odec=che_head /a> * admef"-ass="line" n" namasu=next" class="sumef""line" n namche_pipeffiid0l"net/"net/pipeff /a>"line" n namche_di che_head /a> * di mef")t /a7 oL130" c7lass="line"l9d cf8u6mp 10r7L8  a82L118"}il" class9"srx8  a>f826ref">last_rene" nh=che_>odec=che_head /a> * admef"-ass="line" n" namasu=next" class="sumef""line" n namche_pipeffiid0l"net/"net/pipeff /a>"line" n namche_di che_head /a> * di mef"oneine" nerrchla -NULode=next" class=NULoss="t /a7 oL130" c7lass="line"l9d cf8utmp 10r7r8128821 ne" nh=che_>ode_e=nex_a hrace=negister_pipeffiid0l"net/"net/_e=nex_a hrace=negister_pipeff /a>)t /a7 oL130" c7lass="line"l9d cf8u9mp 10r7L8ref82/cache.c#L121" 9d/o=8ref>f82_detail 8 class="l8ne" nam62" id/oL69" cf8p_w>f83="+co


6footer"> The original LXR software by the l 8 classhttp://sourceforge.="l8projects/lxr">LXR nam"unityss=",fthis experi"io_al version by l 8 classmclato:lxr@2" ux.not/lxr@2" ux.no /a>"
6subfooter"> lxr.2" ux.no kindly hosted by l 8 classhttp://www.redpill-2" pro.not/Redpill L" pro ASss=",fprovider of L" ux/consulting and oper clons services since 1995.