linux/net/sunrpc/cache.c
<<
alue2.1/spav2. 2.1/form2. 2.1a alue2. href="../linux+v3.7.2/net/sunrpc/cache.c">alue2.1img src="../.static/gfx/right.png" alt=">>">al1/spav2.al1spav class="lxr_search">aluealue2.1input typ hidden" nam navtarget" on> ">alue2.1input typ text" nam search" id search">alue2.1buttptityp submit">Searchalue2.Prefs. 2.1/a>al1/spav2.ue2. .1/div2.ue2. .1form ac v="ajax+*" method="post" onsubmit="return false;">al1input typ hidden" nam ajax_lookup" id ajax_lookup" on> ">aue2. .1/form2.aue2. .1div class="headingbottpm">. 1div id file_contents"2
. .11/a>1spav class="comment">/*1/spav2.. .21/a>1spav class="comment"> * net/sunrpc/cache.c1/spav2.. .31/a>1spav class="comment"> *1/spav2.. .41/a>1spav class="comment"> * Generic code for onrious authentica
  v-related caches1/spav2.. .51/a>1spav class="comment"> * used by sunrpc clients and servers.1/spav2.. .61/a>1spav class="comment"> *1/spav2.. .71/a>1spav class="comment"> * Copyright (C) 2002 Neil Brown <neilb@cse.unsw.edu.au>1/spav2.. .81/a>1spav class="comment"> *1/spav2.. .91/a>1spav class="comment"> * Released under terms in GPL versopti2.  See COPYING.1/spav2.. "
	 a>1spav class="comment"> *1/spav2.. 111/a>1spav class="comment"> */1/spav2.. 121/a>.. 131/a>#include <linux/typ s.h1/a>>.. 141/a>#include <linux/fs.h1/a>>.. 151/a>#include <linux/file.h1/a>>.. 161/a>#include <linux/slab.h1/a>>.. 171/a>#include <linux/signal.h1/a>>.. 181/a>#include <linux/sched.h1/a>>.. 191/a>#include <linux/kmod.h1/a>>.. 201/a>#include <linux/list.h1/a>>.. 211/a>#include <linux/module.h1/a>>.. 221/a>#include <linux/ctyp .h1/a>>.. 231/a>#include <asm/uaccess.h1/a>>.. 241/a>#include <linux/poll.h1/a>>.. 251/a>#include <linux/seq_file.h1/a>>.. 261/a>#include <linux/proc_fs.h1/a>>.. 271/a>#include <linux/net.h1/a>>.. 281/a>#include <linux/workqueue.h1/a>>.. 291/a>#include <linux/mutex.h1/a>>.. 301/a>#include <linux/pagemap.h1/a>>.. 311/a>#include <asm/ioctls.h1/a>>.. 321/a>#include <linux/sunrpc/typ s.h1/a>>.. 331/a>#include <linux/sunrpc/cache.h1/a>>.. 341/a>#include <linux/sunrpc/stats.h1/a>>.. 351/a>#include <linux/sunrpc/rpc_pipe_fs.h1/a>>.. 361/a>#include "netns.h1/a>".. 371/a>.. 381/a>#define2.1a href="+code=RPCDBG_FACILITY" class="sref">RPCDBG_FACILITY1/a>.1a href="+code=RPCDBG_CACHE" class="sref">RPCDBG_CACHE1/a>.. 391/a>.. 401/a>static.1a href="+code=bool" class="sref">bool1/a>.1a href="+code=cache_defer_req" class="sref">cache_defer_req1/a>(struct.1a href="+code=cache_req" class="sref">cache_req1/a> *1a href="+code=req" class="sref">req1/a>, struct.1a href="+code=cache_head" class="sref">cache_head1/a> *1a href="+code=item" class="sref">item1/a>);.. 411/a>static.void.1a href="+code=cache_revisit_request" class="sref">cache_revisit_request1/a>(struct.1a href="+code=cache_head" class="sref">cache_head1/a> *1a href="+code=item" class="sref">item1/a>);.. 421/a>.. 431/a>static.void.1a href="+code=cache_init" class="sref">cache_init1/a>(struct.1a href="+code=cache_head" class="sref">cache_head1/a> *1a href="+code=h" class="sref">h1/a>).. 441/a>{.. 451/a>        1a href="+code=time_t" class="sref">time_t1/a>.1a href="+code=now" class="sref">now1/a>.=.1a href="+code=seconds_since_boot" class="sref">seconds_since_boot1/a>();.. 461/a>        1a href="+code=h" class="sref">h1/a>->1a href="+code=next" class="sref">next1/a>.=.1a href="+code=NULL" class="sref">NULL1/a>;.. 471/a>        1a href="+code=h" class="sref">h1/a>->1a href="+code=flags" class="sref">flags1/a>.=.0;.. 481/a>        1a href="+code=kref_init" class="sref">kref_init1/a>(&1a href="+code=h" class="sref">h1/a>->1a href="+code=ref" class="sref">ref1/a>);.. 491/a>        1a href="+code=h" class="sref">h1/a>->1a href="+code=expiry_time" class="sref">expiry_time1/a>.=.1a href="+code=now" class="sref">now1/a>.+.1a href="+code=CACHE_NEW_EXPIRY" class="sref">CACHE_NEW_EXPIRY1/a>;.. 501/a>        1a href="+code=h" class="sref">h1/a>->1a href="+code=last_refresh" class="sref">last_refresh1/a>.=.1a href="+code=now" class="sref">now1/a>;.. 511/a>}.. 521/a>.. 531/a>static.1a href="+code=inline" class="sref">inline1/a>.int.1a href="+code=cache_is_expired" class="sref">cache_is_expired1/a>(struct.1a href="+code=cache_detail" class="sref">cache_detail1/a> *1a href="+code=detail" class="sref">detail1/a>, struct.1a href="+code=cache_head" class="sref">cache_head1/a> *1a href="+code=h" class="sref">h1/a>).. 541/a>{.. 551/a>        return  (1a href="+code=h" class="sref">h1/a>->1a href="+code=expiry_time" class="sref">expiry_time1/a>.<.1a href="+code=seconds_since_boot" class="sref">seconds_since_boot1/a>()) ||.. 561/a>                (1a href="+code=detail" class="sref">detail1/a>->1a href="+code=flush_time" class="sref">flush_time1/a>.>.1a href="+code=h" class="sref">h1/a>->1a href="+code=last_refresh" class="sref">last_refresh1/a>);.. 571/a>}.. 581/a>.. 591/a>struct.1a href="+code=cache_head" class="sref">cache_head1/a> *1a href="+code=sunrpc_cache_lookup" class="sref">sunrpc_cache_lookup1/a>(struct.1a href="+code=cache_detail" class="sref">cache_detail1/a> *1a href="+code=detail" class="sref">detail1/a>,.. 601/a>                                       struct.1a href="+code=cache_head" class="sref">cache_head1/a> *1a href="+code=key" class="sref">key1/a>, int.1a href="+code=hash" class="sref">hash1/a>).. 611/a>{.. 621/a>        struct.1a href="+code=cache_head" class="sref">cache_head1/a> **1a href="+code=head" class="sref">head1/a>,  **1a href="+code=hp" class="sref">hp1/a>;.. 631/a>        struct.1a href="+code=cache_head" class="sref">cache_head1/a> *1a href="+code=new" class="sref">new1/a>.=.1a href="+code=NULL" class="sref">NULL1/a>, *1a href="+code=freeme" class="sref">freeme1/a>.=.1a href="+code=NULL" class="sref">NULL1/a>;.. 641/a>.. 651/a>        1a href="+code=head" class="sref">head1/a>.=.&1a href="+code=detail" class="sref">detail1/a>->1a href="+code=hash_table" class="sref">hash_table1/a>[1a href="+code=hash" class="sref">hash1/a>];.. 661/a>.. 671/a>        1a href="+code=read_lock" class="sref">read_lock1/a>(&1a href="+code=detail" class="sref">detail1/a>->1a href="+code=hash_lock" class="sref">hash_lock1/a>);.. 681/a>.. 691/a>        for (1a href="+code=hp" class="sref">hp1/a>=1a href="+code=head" class="sref">head1/a>; *1a href="+code=hp" class="sref">hp1/a> !=.1a href="+code=NULL" class="sref">NULL1/a> ;.1a href="+code=hp" class="sref">hp1/a> =.&(*1a href="+code=hp" class="sref">hp1/a>)->1a href="+code=next" class="sref">next1/a>) {.. 701/a>                struct.1a href="+code=cache_head" class="sref">cache_head1/a> *1a href="+code=tmp" class="sref">tmp1/a> =.*1a href="+code=hp" class="sref">hp1/a>;.. 711/a>                if (1a href="+code=detail" class="sref">detail1/a>->1a href="+code=match" class="sref">match1/a>(1a href="+code=tmp" class="sref">tmp1/a>, 1a href="+code=key" class="sref">key1/a>)) {.. 721/a>                        if (1a href="+code=cache_is_expired" class="sref">cache_is_expired1/a>(1a href="+code=detail" class="sref">detail1/a>, 1a href="+code=tmp" class="sref">tmp1/a>)).. 731/a>                                1spav class="comment">/* This entry is expired, we will discard it. */1/spav2.. 741/a>                                break;.. 751/a>                        1a href="+code=cache_get" class="sref">cache_get1/a>(1a href="+code=tmp" class="sref">tmp1/a>);.. 761/a>                        1a href="+code=read_unlock" class="sref">read_unlock1/a>(&1a href="+code=detail" class="sref">detail1/a>->1a href="+code=hash_lock" class="sref">hash_lock1/a>);.. 771/a>                        return 1a href="+code=tmp" class="sref">tmp1/a>;.. 781/a>                }.. 791/a>        }.. 801/a>        1a href="+code=read_unlock" class="sref">read_unlock1/a>(&1a href="+code=detail" class="sref">detail1/a>->1a href="+code=hash_lock" class="sref">hash_lock1/a>);.. 811/a>        1spav class="comment">/* Didn't find anything, insert an empty entry */1/spav2.. 821/a>.. 831/a>        1a href="+code=new" class="sref">new1/a>.=.1a href="+code=detail" class="sref">detail1/a>->1a href="+code=alloc" class="sref">alloc1/a>();.. 841/a>        if (!1a href="+code=new" class="sref">new1/a>).. 851/a>                return 1a href="+code=NULL" class="sref">NULL1/a>;.. 861/a>        1spav class="comment">/* must fully initialise 'new', else1/spav2.. 871/a>1spav class="comment">         * we might get lose if we need to1/spav2.. 881/a>1spav class="comment">         * cache_put it soon.1/spav2.. 891/a>1spav class="comment">         */1/spav2.. 901/a>        1a href="+code=cache_init" class="sref">cache_init1/a>(1a href="+code=new" class="sref">new1/a>);.. 911/a>        1a href="+code=detail" class="sref">detail1/a>->1a href="+code=init" class="sref">init1/a>(1a href="+code=new" class="sref">new1/a>, 1a href="+code=key" class="sref">key1/a>);.. 921/a>.. 931/a>        1a href="+code=write_lock" class="sref">write_lock1/a>(&1a href="+code=detail" class="sref">detail1/a>->1a href="+code=hash_lock" class="sref">hash_lock1/a>);.. 941/a>.. 951/a>        1spav class="comment">/* check if entry appeared while we slept */1/spav2.. 961/a>        for (1a href="+code=hp" class="sref">hp1/a>=1a href="+code=head" class="sref">head1/a>; *1a href="+code=hp" class="sref">hp1/a> !=.1a href="+code=NULL" class="sref">NULL1/a> ;.1a href="+code=hp" class="sref">hp1/a> =.&(*1a href="+code=hp" class="sref">hp1/a>)->1a href="+code=next" class="sref">next1/a>) {.. 971/a>                struct.1a href="+code=cache_head" class="sref">cache_head1/a> *1a href="+code=tmp" class="sref">tmp1/a> =.*1a href="+code=hp" class="sref">hp1/a>;.. 981/a>                if (1a href="+code=detail" class="sref">detail1/a>->1a href="+code=match" class="sref">match1/a>(1a href="+code=tmp" class="sref">tmp1/a>, 1a href="+code=key" class="sref">key1/a>)) {.. 991/a>                        if (1a href="+code=cache_is_expired" class="sref">cache_is_expired1/a>(1a href="+code=detail" class="sref">detail1/a>, 1a href="+code=tmp" class="sref">tmp1/a>)) {..1001/a>                                *1a href="+code=hp" class="sref">hp1/a> =.1a href="+code=tmp" class="sref">tmp1/a>->1a href="+code=next" class="sref">next1/a>;..1011/a>                                1a href="+code=tmp" class="sref">tmp1/a>->1a href="+code=next" class="sref">next1/a>.=.1a href="+code=NULL" class="sref">NULL1/a>;..1021/a>                                1a href="+code=detail" class="sref">detail1/a>->1a href="+code=entries" class="sref">entries1/a> --;..1031/a>                                1a href="+code=freeme" class="sref">freeme1/a>.=.1a href="+code=tmp" class="sref">tmp1/a>;..1041/a>                                break;..1051/a>                        }..1061/a>                        1a href="+code=cache_get" class="sref">cache_get1/a>(1a href="+code=tmp" class="sref">tmp1/a>);..1071/a>                        1a href="+code=write_unlock" class="sref">write_unlock1/a>(&1a href="+code=detail" class="sref">detail1/a>->1a href="+code=hash_lock" class="sref">hash_lock1/a>);..1081/a>                        1a href="+code=cache_put" class="sref">cache_put1/a>(1a href="+code=new" class="sref">new1/a>, 1a href="+code=detail" class="sref">detail1/a>);..1091/a>                        return 1a href="+code=tmp" class="sref">tmp1/a>;..1101/a>                }..1111/a>        }..1121/a>        1a href="+code=new" class="sref">new1/a>->1a href="+code=next" class="sref">next1/a>.=.*1a href="+code=head" class="sref">head1/a>;..1131/a>        *1a href="+code=head" class="sref">head1/a>.=.1a href="+code=new" class="sref">new1/a>;..1141/a>        1a href="+code=detail" class="sref">detail1/a>->1a href="+code=entries" class="sref">entries1/a>++;..1151/a>        1a href="+code=cache_get" class="sref">cache_get1/a>(1a href="+code=new" class="sref">new1/a>);..1161/a>        1a href="+code=write_unlock" class="sref">write_unlock1/a>(&1a href="+code=detail" class="sref">detail1/a>->1a href="+code=hash_lock" class="sref">hash_lock1/a>);..1171/a>..1181/a>        if (1a href="+code=freeme" class="sref">freeme1/a>)..1191/a>                1a href="+code=cache_put" class="sref">cache_put1/a>(1a href="+code=freeme" class="sref">freeme1/a>, 1a href="+code=detail" class="sref">detail1/a>);..1201/a>        return 1a href="+code=new" class="sref">new1/a>;..1211/a>}..1221/a>1a href="+code=EXPORT_SYMBOL_GPL" class="sref">EXPORT_SYMBOL_GPL1/a>(1a href="+code=sunrpc_cache_lookup" class="sref">sunrpc_cache_lookup1/a>);..1231/a>..1241/a>..1251/a>static.void.1a href="+code=cache_dequeue" class="sref">cache_dequeue1/a>(struct.1a href="+code=cache_detail" class="sref">cache_detail1/a> *1a href="+code=detail" class="sref">detail1/a>, struct.1a href="+code=cache_head" class="sref">cache_head1/a> *1a href="+code=ch" class="sref">ch1/a>);..1261/a>..1271/a>static.void.1a href="+code=cache_fresh_locked" class="sref">cache_fresh_locked1/a>(struct.1a href="+code=cache_head" class="sref">cache_head1/a> *1a href="+code=head" class="sref">head1/a>, 1a href="+code=time_t" class="sref">time_t1/a>.1a href="+code=expiry" class="sref">expiry1/a>)..1281/a>{..1291/a>        1a href="+code=head" class="sref">head1/a>->1a href="+code=expiry_time" class="sref">expiry_time1/a>.=.1a href="+code=expiry" class="sref">expiry1/a>;..1301/a>        1a href="+code=head" class="sref">head1/a>->1a href="+code=last_refresh" class="sref">last_refresh1/a>.=.1a href="+code=seconds_since_boot" class="sref">seconds_since_boot1/a>();..1311/a>        1a href="+code=smp_wmb" class="sref">smp_wmb1/a>(); 1spav class="comment">/* paired with smp_rmb() in cache_is_valid() */1/spav2..1321/a>        1a href="+code=set_bit" class="sref">set_bit1/a>(1a href="+code=CACHE_VALID" class="sref">CACHE_VALID1/a>, &1a href="+code=head" class="sref">head1/a>->1a href="+code=flags" class="sref">flags1/a>);..1331/a>}..1341/a>..1351/a>static.void.1a href="+code=cache_fresh_unlocked" class="sref">cache_fresh_unlocked1/a>(struct.1a href="+code=cache_head" class="sref">cache_head1/a> *1a href="+code=head" class="sref">head1/a>,..1361/a>                                 struct.1a href="+code=cache_detail" class="sref">cache_detail1/a> *1a href="+code=detail" class="sref">detail1/a>)..1371/a>{..1381/a>        if (1a href="+code=test_and_clear_bit" class="sref">test_and_clear_bit1/a>(1a href="+code=CACHE_PENDING" class="sref">CACHE_PENDING1/a>, &1a href="+code=head" class="sref">head1/a>->1a href="+code=flags" class="sref">flags1/a>)) {..1391/a>                1a href="+code=cache_revisit_request" class="sref">cache_revisit_request1/a>(1a href="+code=head" class="sref">head1/a>);..1401/a>                1a href="+code=cache_dequeue" class="sref">cache_dequeue1/a>(1a href="+code=detail" class="sref">detail1/a>, 1a href="+code=head" class="sref">head1/a>);..1411/a>        }..1421/a>}..1431/a>..1441/a>struct.1a href="+code=cache_head" class="sref">cache_head1/a> *1a href="+code=sunrpc_cache_update" class="sref">sunrpc_cache_update1/a>(struct.1a href="+code=cache_detail" class="sref">cache_detail1/a> *1a href="+code=detail" class="sref">detail1/a>,..1451/a>                                       struct.1a href="+code=cache_head" class="sref">cache_head1/a> *1a href="+code=new" class="sref">new1/a>, struct.1a href="+code=cache_head" class="sref">cache_head1/a> *1a href="+code=old" class="sref">old1/a>, int.1a href="+code=hash" class="sref">hash1/a>)..1461/a>{..1471/a>        1spav class="comment">/* The 'old' entry is to be replaced by 'new'.1/spav2..1481/a>1spav class="comment">         * If 'old' is not VALID, we update it directly,1/spav2..1491/a>1spav class="comment">         * otherwise we need to replace it1/spav2..15
	 a>1spav class="comment">         */1/spav2..1511/a>        struct.1a href="+code=cache_head" class="sref">cache_head1/a> **1a href="+code=head" class="sref">head1/a>;..1521/a>        struct.1a href="+code=cache_head" class="sref">cache_head1/a> *1a href="+code=tmp" class="sref">tmp1/a>;..1531/a>..1541/a>        if (!1a href="+code=test_bit" class="sref">test_bit1/a>(1a href="+code=CACHE_VALID" class="sref">CACHE_VALID1/a>, &1a href="+code=old" class="sref">old1/a>->1a href="+code=flags" class="sref">flags1/a>)) {..1551/a>                1a href="+code=write_lock" class="sref">write_lock1/a>(&1a href="+code=detail" class="sref">detail1/a>->1a href="+code=hash_lock" class="sref">hash_lock1/a>);..1561/a>                if (!1a href="+code=test_bit" class="sref">test_bit1/a>(1a href="+code=CACHE_VALID" class="sref">CACHE_VALID1/a>, &1a href="+code=old" class="sref">old1/a>->1a href="+code=flags" class="sref">flags1/a>)) {..1571/a>                        if (1a href="+code=test_bit" class="sref">test_bit1/a>(1a href="+code=CACHE_NEGATIVE" class="sref">CACHE_NEGATIVE1/a>, &1a href="+code=new" class="sref">new1/a>->1a href="+code=flags" class="sref">flags1/a>))..1581/a>                                1a href="+code=set_bit" class="sref">set_bit1/a>(1a href="+code=CACHE_NEGATIVE" class="sref">CACHE_NEGATIVE1/a>, &1a href="+code=old" class="sref">old1/a>->1a href="+code=flags" class="sref">flags1/a>);..1591/a>                        else..1601/a>                                1a href="+code=detail" class="sref">detail1/a>->1a href="+code=update" class="sref">update1/a>(1a href="+code=old" class="sref">old1/a>, 1a href="+code=new" class="sref">new1/a>);..1611/a>                        1a href="+code=cache_fresh_locked" class="sref">cache_fresh_locked1/a>(1a href="+code=old" class="sref">old1/a>, 1a href="+code=new" class="sref">new1/a>->1a href="+code=expiry_time" class="sref">expiry_time1/a>);..1621/a>                        1a href="+code=write_unlock" class="sref">write_unlock1/a>(&1a href="+code=detail" class="sref">detail1/a>->1a href="+code=hash_lock" class="sref">hash_lock1/a>);..1631/a>                        1a href="+code=cache_fresh_unlocked" class="sref">cache_fresh_unlocked1/a>(1a href="+code=old" class="sref">old1/a>, 1a href="+code=detail" class="sref">detail1/a>);..1641/a>                        return 1a href="+code=old" class="sref">old1/a>;..1651/a>                }..1661/a>                1a href="+code=write_unlock" class="sref">write_unlock1/a>(&1a href="+code=detail" class="sref">detail1/a>->1a href="+code=hash_lock" class="sref">hash_lock1/a>);..1671/a>        }..1681/a>        1spav class="comment">/* We need to insert a new entry */1/spav2..1691/a>        1a href="+code=tmp" class="sref">tmp1/a> =.1a href="+code=detail" class="sref">detail1/a>->1a href="+code=alloc" class="sref">alloc1/a>();..1701/a>        if (!1a href="+code=tmp" class="sref">tmp1/a>) {..1711/a>                1a href="+code=cache_put" class="sref">cache_put1/a>(1a href="+code=old" class="sref">old1/a>, 1a href="+code=detail" class="sref">detail1/a>);..1721/a>                return 1a href="+code=NULL" class="sref">NULL1/a>;..1731/a>        }..1741/a>        1a href="+code=cache_init" class="sref">cache_init1/a>(1a href="+code=tmp" class="sref">tmp1/a>);..1751/a>        1a href="+code=detail" class="sref">detail1/a>->1a href="+code=init" class="sref">init1/a>(1a href="+code=tmp" class="sref">tmp1/a>, 1a href="+code=old" class="sref">old1/a>);..1761/a>        1a href="+code=head" class="sref">head1/a>.=.&1a href="+code=detail" class="sref">detail1/a>->1a href="+code=hash_table" class="sref">hash_table1/a>[1a href="+code=hash" class="sref">hash1/a>];..1771/a>..1781/a>        1a href="+code=write_lock" class="sref">write_lock1/a>(&1a href="+code=detail" class="sref">detail1/a>->1a href="+code=hash_lock" class="sref">hash_lock1/a>);..1791/a>        if (1a href="+code=test_bit" class="sref">test_bit1/a>(1a href="+code=CACHE_NEGATIVE" class="sref">CACHE_NEGATIVE1/a>, &1a href="+code=new" class="sref">new1/a>->1a href="+code=flags" class="sref">flags1/a>))..1801/a>                1a href="+code=set_bit" class="sref">set_bit1/a>(1a href="+code=CACHE_NEGATIVE" class="sref">CACHE_NEGATIVE1/a>, &1a href="+code=tmp" class="sref">tmp1/a>->1a href="+code=flags" class="sref">flags1/a>);..1811/a>        else..1821/a>                1a href="+code=detail" class="sref">detail1/a>->1a href="+code=update" class="sref">update1/a>(1a href="+code=tmp" class="sref">tmp1/a>, 1a href="+code=new" class="sref">new1/a>);..1831/a>        1a href="+code=tmp" class="sref">tmp1/a>->1a href="+code=next" class="sref">next1/a>.=.*1a href="+code=head" class="sref">head1/a>;..1841/a>        *1a href="+code=head" class="sref">head1/a>.=.1a href="+code=tmp" class="sref">tmp1/a>;..1851/a>        1a href="+code=detail" class="sref">detail1/a>->1a href="+code=entries" class="sref">entries1/a>++;..1861/a>        1a href="+code=cache_get" class="sref">cache_get1/a>(1a href="+code=tmp" class="sref">tmp1/a>);..1871/a>        1a href="+code=cache_fresh_locked" class="sref">cache_fresh_locked1/a>(1a href="+code=tmp" class="sref">tmp1/a>, 1a href="+code=new" class="sref">new1/a>->1a href="+code=expiry_time" class="sref">expiry_time1/a>);..1881/a>        1a href="+code=cache_fresh_locked" class="sref">cache_fresh_locked1/a>(1a href="+code=old" class="sref">old1/a>, 0);..1891/a>        1a href="+code=write_unlock" class="sref">write_unlock1/a>(&1a href="+code=detail" class="sref">detail1/a>->1a href="+code=hash_lock" class="sref">hash_lock1/a>);..1901/a>        1a href="+code=cache_fresh_unlocked" class="sref">cache_fresh_unlocked1/a>(1a href="+code=tmp" class="sref">tmp1/a>, 1a href="+code=detail" class="sref">detail1/a>);..1911/a>        1a href="+code=cache_fresh_unlocked" class="sref">cache_fresh_unlocked1/a>(1a href="+code=old" class="sref">old1/a>, 1a href="+code=detail" class="sref">detail1/a>);..1921/a>        1a href="+code=cache_put" class="sref">cache_put1/a>(1a href="+code=old" class="sref">old1/a>, 1a href="+code=detail" class="sref">detail1/a>);..1931/a>        return 1a href="+code=tmp" class="sref">tmp1/a>;..1941/a>}..1951/a>1a href="+code=EXPORT_SYMBOL_GPL" class="sref">EXPORT_SYMBOL_GPL1/a>(1a href="+code=sunrpc_cache_update" class="sref">sunrpc_cache_update1/a>);..1961/a>..1971/a>static.int.1a href="+code=cache_make_upcall" class="sref">cache_make_upcall1/a>(struct.1a href="+code=cache_detail" class="sref">cache_detail1/a> *1a href="+code=cd" class="sref">cd1/a>, struct.1a href="+code=cache_head" class="sref">cache_head1/a> *1a href="+code=h" class="sref">h1/a>)..1981/a>{..1991/a>        if (!1a href="+code=cd" class="sref">cd1/a>->1a href="+code=cache_upcall" class="sref">cache_upcall1/a>)..2001/a>                return -1a href="+code=EINVAL" class="sref">EINVAL1/a>;..2011/a>        return 1a href="+code=cd" class="sref">cd1/a>->1a href="+code=cache_upcall" class="sref">cache_upcall1/a>(1a href="+code=cd" class="sref">cd1/a>, 1a href="+code=h" class="sref">h1/a>);..2021/a>}..2031/a>..2041/a>static.1a href="+code=inline" class="sref">inline1/a> int.1a href="+code=cache_is_valid" class="sref">cache_is_valid1/a>(struct.1a href="+code=cache_detail" class="sref">cache_detail1/a> *1a href="+code=detail" class="sref">detail1/a>, struct.1a href="+code=cache_head" class="sref">cache_head1/a> *1a href="+code=h" class="sref">h1/a>)..2051/a>{..2061/a>        if (!1a href="+code=test_bit" class="sref">test_bit1/a>(1a href="+code=CACHE_VALID" class="sref">CACHE_VALID1/a>, &1a href="+code=h" class="sref">h1/a>->1a href="+code=flags" class="sref">flags1/a>))..2071/a>                return -1a href="+code=EAGAIN" class="sref">EAGAIN1/a>;..2081/a>        else {..2091/a>                1spav class="comment">/* entry is valid */1/spav2..2101/a>                if (1a href="+code=test_bit" class="sref">test_bit1/a>(1a href="+code=CACHE_NEGATIVE" class="sref">CACHE_NEGATIVE1/a>, &1a href="+code=h" class="sref">h1/a>->1a href="+code=flags" class="sref">flags1/a>))..2111/a>                        return -1a href="+code=ENOENT" class="sref">ENOENT1/a>;..2121/a>                else {..2131/a>                        1spav class="comment">/*1/spav2..2141/a>1spav class="comment">                         * Iv combination with write barrier in1/spav2..2151/a>1spav class="comment">                         * sunrpc_cache_update, ensures that anyone1/spav2..2161/a>1spav class="comment">                         * using the cache entry after this sees the1/spav2..2171/a>1spav class="comment">                         * updated contents:1/spav2..2181/a>1spav class="comment">                         */1/spav2..2191/a>                        1a href="+code=smp_rmb" class="sref">smp_rmb1/a>();..2201/a>                        return 0;..2211/a>                }..2221/a>        }..2231/a>}..2241/a>..2251/a>static.int.1a href="+code=try_to_negate_entry" class="sref">try_to_negate_entry1/a>(struct.1a href="+code=cache_detail" class="sref">cache_detail1/a> *1a href="+code=detail" class="sref">detail1/a>, struct.1a href="+code=cache_head" class="sref">cache_head1/a> *1a href="+code=h" class="sref">h1/a>)..2261/a>{..2271/a>        int.1a href="+code=rv" class="sref">rv1/a>;..2281/a>..2291/a>        1a href="+code=write_lock" class="sref">write_lock1/a>(&1a href="+code=detail" class="sref">detail1/a>->1a href="+code=hash_lock" class="sref">hash_lock1/a>);..2301/a>        1a href="+code=rv" class="sref">rv1/a>.=.1a href="+code=cache_is_valid" class="sref">cache_is_valid1/a>(1a href="+code=detail" class="sref">detail1/a>, 1a href="+code=h" class="sref">h1/a>);..2311/a>        if (1a href="+code=rv" class="sref">rv1/a>.!= -1a href="+code=EAGAIN" class="sref">EAGAIN1/a>) {..2321/a>                1a href="+code=write_unlock" class="sref">write_unlock1/a>(&1a href="+code=detail" class="sref">detail1/a>->1a href="+code=hash_lock" class="sref">hash_lock1/a>);..2331/a>                return 1a href="+code=rv" class="sref">rv1/a>;..2341/a>        }..2351/a>        1a href="+code=set_bit" class="sref">set_bit1/a>(1a href="+code=CACHE_NEGATIVE" class="sref">CACHE_NEGATIVE1/a>, &1a href="+code=h" class="sref">h1/a>->1a href="+code=flags" class="sref">flags1/a>);..2361/a>        1a href="+code=cache_fresh_locked" class="sref">cache_fresh_locked1/a>(1a href="+code=h" class="sref">h1/a>, 1a href="+code=seconds_since_boot" class="sref">seconds_since_boot1/a>()+1a href="+code=CACHE_NEW_EXPIRY" class="sref">CACHE_NEW_EXPIRY1/a>);..2371/a>        1a href="+code=write_unlock" class="sref">write_unlock1/a>(&1a href="+code=detail" class="sref">detail1/a>->1a href="+code=hash_lock" class="sref">hash_lock1/a>);..2381/a>        1a href="+code=cache_fresh_unlocked" class="sref">cache_fresh_unlocked1/a>(1a href="+code=h" class="sref">h1/a>, 1a href="+code=detail" class="sref">detail1/a>);..2391/a>        return -1a href="+code=ENOENT" class="sref">ENOENT1/a>;..2401/a>}..2411/a>..2421/a>1spav class="comment">/*1/spav2..2431/a>1spav class="comment"> * This is the generic.cache management routine for all1/spav2..2441/a>1spav class="comment"> * the authentication caches.1/spav2..2451/a>1spav class="comment"> * It checks the currency of a.cache item and will (later)1/spav2..2461/a>1spav class="comment"> * initiate an upcall to fill it if needed.1/spav2..2471/a>1spav class="comment"> *1/spav2..2481/a>1spav class="comment"> *1/spav2..2491/a>1spav class="comment"> * Returns 0 if the cache_head can be used, or cache_puts it and returns1/spav2..25
	 a>1spav class="comment"> * -EAGAIN if upcall is pending and request has been queued1/spav2..2511/a>1spav class="comment"> * -ETIMEDOUT if upcall failed or request could not be queue or1/spav2..2521/a>1spav class="comment"> *           upcall completed but item is still invalid (implying that1/spav2..2531/a>1spav class="comment"> *           the cache item has been replaced with a newer one).1/spav2..2541/a>1spav class="comment"> * -ENOENT if cache entry was negative1/spav2..2551/a>1spav class="comment"> */1/spav2..2561/a>int.1a href="+code=cache_check" class="sref">cache_check1/a>(struct.1a href="+code=cache_detail" class="sref">cache_detail1/a> *1a href="+code=detail" class="sref">detail1/a>,..2571/a>                    struct.1a href="+code=cache_head" class="sref">cache_head1/a> *1a href="+code=h" class="sref">h1/a>, struct.1a href="+code=cache_req" class="sref">cache_req1/a> *1a href="+code=rqstp" class="sref">rqstp1/a>)..2581/a>{..2591/a>        int.1a href="+code=rv" class="sref">rv1/a>;..2601/a>        long 1a href="+code=refresh_age" class="sref">refresh_age1/a>, 1a href="+code=age" class="sref">age1/a>;..2611/a>..2621/a>        1spav class="comment">/* First decide return status as best we can */1/spav2..2631/a>        1a href="+code=rv" class="sref">rv1/a>.=.1a href="+code=cache_is_valid" class="sref">cache_is_valid1/a>(1a href="+code=detail" class="sref">detail1/a>, 1a href="+code=h" class="sref">h1/a>);..2641/a>..2651/a>        1spav class="comment">/* now see if we want.to start an upcall */1/spav2..2661/a>        1a href="+code=refresh_age" class="sref">refresh_age1/a>.=.(1a href="+code=h" class="sref">h1/a>->1a href="+code=expiry_time" class="sref">expiry_time1/a>.- 1a href="+code=h" class="sref">h1/a>->1a href="+code=last_refresh" class="sref">last_refresh1/a>);..2671/a>        1a href="+code=age" class="sref">age1/a>.=.1a href="+code=seconds_since_boot" class="sref">seconds_since_boot1/a>().- 1a href="+code=h" class="sref">h1/a>->1a href="+code=last_refresh" class="sref">last_refresh1/a>;..2681/a>..2691/a>        if (1a href="+code=rqstp" class="sref">rqstp1/a> ==.1a href="+code=NULL" class="sref">NULL1/a>) {..2701/a>                if (1a href="+code=rv" class="sref">rv1/a>.== -1a href="+code=EAGAIN" class="sref">EAGAIN1/a>)..2711/a>                        1a href="+code=rv" class="sref">rv1/a>.=.-1a href="+code=ENOENT" class="sref">ENOENT1/a>;..2721/a>        } else if (1a href="+code=rv" class="sref">rv1/a>.== -1a href="+code=EAGAIN" class="sref">EAGAIN1/a> || 1a href="+code=age" class="sref">age1/a>.> 1a href="+code=refresh_age" class="sref">refresh_age1/a>/2) {..2731/a>                1a href="+code=dprintk" class="sref">dprintk1/a>(1spav class="string">"RPC:       Want.update, refage=%ld, age=%ld\n"1/spav2,..2741/a>                                1a href="+code=refresh_age" class="sref">refresh_age1/a>, 1a href="+code=age" class="sref">age1/a>);..2751/a>                if (!1a href="+code=test_and_set_bit" class="sref">test_and_set_bit1/a>(1a href="+code=CACHE_PENDING" class="sref">CACHE_PENDING1/a>, &1a href="+code=h" class="sref">h1/a>->1a href="+code=flags" class="sref">flags1/a>)) {..2761/a>                        switch (1a href="+code=cache_make_upcall" class="sref">cache_make_upcall1/a>(1a href="+code=detail" class="sref">detail1/a>, 1a href="+code=h" class="sref">h1/a>)) {..2771/a>                        case -1a href="+code=EINVAL" class="sref">EINVAL1/a>:..2781/a>                                1a href="+code=clear_bit" class="sref">clear_bit1/a>(1a href="+code=CACHE_PENDING" class="sref">CACHE_PENDING1/a>, &1a href="+code=h" class="sref">h1/a>->1a href="+code=flags" class="sref">flags1/a>);..2791/a>                                1a href="+code=cache_revisit_request" class="sref">cache_revisit_request1/a>(1a href="+code=h" class="sref">h1/a>);..2801/a>                                1a href="+code=rv" class="sref">rv1/a>.=.1a href="+code=try_to_negate_entry" class="sref">try_to_negate_entry1/a>(1a href="+code=detail" class="sref">detail1/a>, 1a href="+code=h" class="sref">h1/a>);..2811/a>                                break;..2821/a>                        case -1a href="+code=EAGAIN" class="sref">EAGAIN1/a>:..2831/a>                                1a href="+code=clear_bit" class="sref">clear_bit1/a>(1a href="+code=CACHE_PENDING" class="sref">CACHE_PENDING1/a>, &1a href="+code=h" class="sref">h1/a>->1a href="+code=flags" class="sref">flags1/a>);..2841/a>                                1a href="+code=cache_revisit_request" class="sref">cache_revisit_request1/a>(1a href="+code=h" class="sref">h1/a>);..2851/a>                                break;..2861/a>                        }..2871/a>                }..2881/a>        }..2891/a>..2901/a>        if (1a href="+code=rv" class="sref">rv1/a>.== -1a href="+code=EAGAIN" class="sref">EAGAIN1/a>) {..2911/a>                if (!1a href="+code=cache_defer_req" class="sref">cache_defer_req1/a>(1a href="+code=rqstp" class="sref">rqstp1/a>, 1a href="+code=h" class="sref">h1/a>)) {..2921/a>                        1spav class="comment">/*1/spav2..2931/a>1spav class="comment">                         * Request was not deferred; handle it as best1/spav2..2941/a>1spav class="comment">                         * we can ourselves:1/spav2..2951/a>1spav class="comment">                         */1/spav2..2961/a>                        1a href="+code=rv" class="sref">rv1/a>.=.1a href="+code=cache_is_valid" class="sref">cache_is_valid1/a>(1a href="+code=detail" class="sref">detail1/a>, 1a href="+code=h" class="sref">h1/a>);..2971/a>                        if (1a href="+code=rv" class="sref">rv1/a>.== -1a href="+code=EAGAIN" class="sref">EAGAIN1/a>)..2981/a>                                1a href="+code=rv" class="sref">rv1/a>.=.-1a href="+code=ETIMEDOUT" class="sref">ETIMEDOUT1/a>;..2991/a>                }..3001/a>        }..3011/a>        if (1a href="+code=rv" class="sref">rv1/a>)..3021/a>                1a href="+code=cache_put" class="sref">cache_put1/a>(1a href="+code=h" class="sref">h1/a>, 1a href="+code=detail" class="sref">detail1/a>);..3031/a>        return 1a href="+code=rv" class="sref">rv1/a>;..3041/a>}..3051/a>1a href="+code=EXPORT_SYMBOL_GPL" class="sref">EXPORT_SYMBOL_GPL1/a>(1a href="+code=cache_check" class="sref">cache_check1/a>);..3061/a>..3071/a>1spav class="comment">/*1/spav2..3081/a>1spav class="comment"> * caches need to be periodically cleaned.1/spav2..3091/a>1spav class="comment"> * For this we maintain a list of cache_detail and1/spav2..31
	 a>1spav class="comment"> * a current pointer into that list and into the table1/spav2..3111/a>1spav class="comment"> * for that entry.1/spav2..3121/a>1spav class="comment"> *1/spav2..3131/a>1spav class="comment"> * Each time clean_cache is called it finds the next non-empty entry1/spav2..3141/a>1spav class="comment"> * in the current table and walks the list in that entry1/spav2..3151/a>1spav class="comment"> * looking for entries that can be removed.1/spav2..3161/a>1spav class="comment"> *1/spav2..3171/a>1spav class="comment"> * An entry gets removed if:1/spav2..3181/a>1spav class="comment"> * - The expiry is before current time1/spav2..3191/a>1spav class="comment"> * - The last_refresh time is before the flush_time for that cache1/spav2..32
	 a>1spav class="comment"> *1/spav2..3211/a>1spav class="comment"> * later we might drop old entries with non-NEVER expiry if that table1/spav2..3221/a>1spav class="comment"> * is getting 'full' for some definition of 'full'1/spav2..3231/a>1spav class="comment"> *1/spav2..3241/a>1spav class="comment"> * The question of "how often.to scan a table" is an interesting one1/spav2..3251/a>1spav class="comment"> * and is answered in part cO the *1/spav2..<"line" fielde.c#L31spav class="comment"> * and is answered"net/sunrss="line" nam  
L227">.2371/a>32"net/sunrpc/cache.c#L247" id 

L310">.31
	1spav class="comment"> *1/spav2.rv1/3>;..< fielde.>.21" nama1/a>1spav class="comment"> * - The last_refL229" cla3s="line" nam  
L229">.2231/a> 32sunrpc/cache.c#L319" id 
L319">.322
L310ne" n1">.311fu4" e1spav class="comment"> *1/spav2.(&1a hr3f="+c32t cache1/spav2..322
L3earli
L217ac#L31spav class="comment"> * and is answere>rv1/a>.=31a href="+code=cache_is_3alid"33v2..3191am  /a>.< id 
,1am  /a>.< .>.21" nam>.3151m  
L3id 
1spav class="comment"> *1/spav2.rv1/3>.!= -1a href="+code=EAG3IN" c33 that table1/spav2.13earli
L217ac#L311am  /a>. *1/spav2.write_unlock1/a3(&33ll'1/spav2..< m  
L
L3am  .21" nam>.315ne" nam  
1spav class="comment"> *1/spav2.rv1/a>;..3241/a>1spav class="comment"> * The question o235" id 
3235" class="line" nam  
3235">33 an interesting one1/spav2..L325n81/a>#L315" id 
L31  
L
L3ine"ea>1spav class="comment">                3sref">set3bit1/a>(1a href="+code=C3CHE_N33rpc/cache.c#L324" id 
L324" cle" nam  /a>.< m  
1spav class="comment"> *1/spav2.cache_fresh_locke31/a>(33="line" nam  
L317">.3171/a>1spav class="comment"> * An entry gets ass="sref3>write_unlock1/a>(&13 href33he.c#L318" id 
L318" class="l                        1a href="+code3cked" cla3s="sref">cache_fresh_unl3cked133     if (1a href="+code=rqstp" clas3class="sr3f">ENOENT1/a>;.cache_LIST_HEA="+code=flags" cLIST_HEA=che.c#L306" id 
L306" clas  
Lne" nam  
L306">.3061  
La href="net/sunrpc/cache.c#L307" id 

L241" cl3ss="line" nam  
L241">.2311/a>3cache_DEFINE_SPINLOCKne" nam  
L306"DEFINE_SPINLOCKche.c#L306" id 
L306" clas  
L"line" nam  
L238">." clas  
L"linea href="net/sunrpc/cache.c#L307" id 

ef">rv1/3s="line" nam  
L242">.2431/a>13pav cld" clasclass="sref">cd1/a>, struct.1a href="+code=cache_head" class="sref">cache_head1/a>  id 
L.1a href="+code=cache_h id 
L.1a hrea href="net/sunrpc/cache.c#L305" id ="net/sun3pc/cache.c#L243" id 
L243" cla3s="lin.1a href="+code=cache_detai id 
L.indexf="+code=cache_h id 
L.indexa href="net/sunrpc/cache.c#L305" id ="net/sunre management routine for3all1/34tic.1a href="+code=inline" class="s3tion cach3s.1/spav2..3031o_>.3061/e.c#che.cclass="sref">cd1/a>, swork_class=am  
L303">.303work_class="sref">cache_head1/a>workam  
L303">.303worka href="net/sunrpc/cache.c#L307" id 

ref">set3f a.cache item and will 3later345v cld" clasclass="sref">cd1/a>, sdelayed_workam  
L303">.303delayed_work"sref#L306" id 
L306" class091/arne" nam  
L306">.3061/091/ara href="net/sunrpc/cache.c#L305" id ="net/sunrll it if needed.1/spav2.3a hre34av class="comment">/*1/spav2.cd1/a>, struct.1a href="+code=cache_head" class="sref">cache_head1/a> he.c#L202" id 
L202" c         1a href="+code=cache_pu="net/sun3pc/cache.c#L249" id 
L243" cla34      int.1a href="+code=rv" class="3he cache_3ead can be used, or cach3_puts34e=detail" class="sref">detairwline"net/sunrpc/cache.c#rwline"net/che.c1/a>);.cd1/a>, 1aass="line" nam  
L238">.2381/a>        1a href="+code=cache_fresh_unl3all is pe3ding and request has bee3 queu35lass="sref">cache_is_valid1/INIT_LIST_HEA="+code=flags" cINIT_LIST_HEA=che.c1/a>);.cd1/a>, 1a2521/a href="+code=c2521/      1a href="+code=cache_fresh_unl3aef">rv1/3led or request could not3be qu35>(1a href="+code=old" class=spin"line" nam  
L238">.spin"lineche.c1/a>);.." clas  
L"linea href="net/sunrpc/cache.c#L307" id 
ll comple3ed but item is still inv3lid (35class="sref">old1/a>, 1a href1a href="+code=cd" class="sref">cd1/a>, 1aam  /a>.cache_is_valid1/f1a href="+code=cd" class="sref">cd1/a>, 1a="line" nam  
L186">.1861/a>     L29          }.tmp1/a>);..1atomicf="+che.c1/a>);.cd1/a>, 1areader" nam  
L186">.1reader"3" id    1a href="+code=write_unlock" c3f="net/su3rpc/cache.c#L256" id 
L236" cl35ATIVE" class="sref">CACHE_NE(1a href="+code=cd" class="sref">cd1/a>, 1aache.clos/a href="+code=cache.clos/    L29          }.(struct.1a hr3f="+c35 href="+code=h" class="sref">1a href="+code=cd" class="sref">cd1/a>, 1aache.war#am  
L303">.303ache.war#e.c#L2991         }.cache_3ead1/35oot" class="sref">seconds_si  
L"ad1a href="+code=c  
L"ad1che.c1/a>);.cd1/a>, 1aoe" r" nam  
L186">.1oe" r"3" id 1/a>);..3061  
La href="net/sunrpc/cache.c#L307" id 

L259" cl3ss="line" nam  
L259">.2391/a>35>(1a href="+code=h" class="sspin"/a>->1a href="+codspin"/a>-&gche.c1/a>);.." clas  
L"linea href="net/sunrpc/cache.c#L307" id 
le cache_3>;.refresh_age1/a>, 1a3href=3+code=age" clasunrpc/cache.c#L266" id 
  
L26L315"091/251/process"l                        1a href="+code3L262" cla3s="line" nam  
L262">.2631/a> 36>(1a href="+code=old" class=s="+dul" cllayed_workam  
L303">.303s="+dul" cllayed_workche.c1/a>);..3061/091/ara hrd    1a href="+code=write_unlock" c3decide re3urn status as best we ca3 */1/36a href="net/sunrpc/cache.c#L204" id 3>rv1/a>.=31a href="+code=cache_is_3alid"3class=che_check" class="sref">cache_check1/a>);..2631/a> 3      1spav class="comment">/* now s3e if we w3nt.to start an upcall */3/spav3.cd1/a>, struct.1a href="+code=cache_head" class="sref">cache_head1/a> he.c#L202" id 
L202" c         1a href="+code=cache_puss="sref"3refresh_age1/a>.=.(1a hr3f="+c36      int.1a href="+code=rv" class="3">age1/a>3=.1a href="+code=seconds3since3boot" class="sref">seconds_si">detailrm  
L275">.2751/a">detailrm che.c#L306" id 
L306"he.c#L202" id 
L202" c  1a href="+code=write_unlock" c3dL259" cl3s="line" nam  
L269">.2631/a> 36>(1a href="+code=h" class="sspin"line" nam  
L238">.spin"lineche.c1/a>);.." clas  
L"linea href="net/sunrpc/cache.c#L307" id 
="sref">r3stp1/a> ==.1a href="+cod3=NULL36e=detail" class="sref">detail1/a>->1a href="+code=hash_lock" class="sref">hash_lock1/(1a href="+code=cd" class="sref">cd1/a>, 1aass="line" nam  
L238">.2381/a>        1a href="+code=cache_fresh_unl3class="sr3f">rv1/a>.== -1a href="+3ode=E37ss="sref">EAGAIN1/a>) {.cd1/a>, 1a="line" nam  
L186">.1861/a>     Lef">refresh_age1/a>tomicfr="+code=cache_req">tomicfr="+ class="sref">hash_lock1/(1a href="+code=cd" class="sref">cd1/a>, 1ainus/a href="+code=cinus/                        1spav class="c3rv" class3"sref">rv1/a>.=.-1a href3"+cod3=ENOENT" class="sref">ss="sref">detail1/a>-/a>->1a href="+code=hash_lock" class="sref">hash_lock1/(1a href="+code=cd" class="sref">cd1/a>, 1aass="line" nam  
L238">.2381/a>        1a href="+code=cache_fresh_unl3cecide re3">rv1/a>.== -1a href="+c3de=EA37de=h" class="sref">h1/a>, 1a href="+spin"/a>->1a href="+codspin"/a>-&gche.c1/a>);.." clas  
L"linea href="net/sunrpc/cache.c#L307" id 
 class="s3ef">dprintk1/a>(1spav cl3ss="s3ring">"RPC:      goto1/a>, 1a href="+otail" class="srefol1/a>)f="net/sunrpc/cache.c#L307" id 
 ion cach3fresh_age" class="sref">3efres3_age1/a>, 1a hf="net/sunrpc/cache.c#L204" id 3t_and_set3bit" class="sref">test_a3d_set3bit1/a>(1a hreAIN1/a>) {.3ache_make_upcall1/a>(1/a>) {..2701/a>     f="net/sunrpc/cache.c#L307" id 
 >age1/a>3AL" class="sref">EINVAL13a>:.<37oot" class="sref">seconds_si  
L"cll"net/sunrpc/cache.c#  
L"cll"net/che.c1/a>);.cd1/a>, 1aoe" r" nam  
L186">.1oe" r"3" ief="net/sunrpc/cache.c#L307" id 
 L259" cl3ear_bit" class="sref">cl3ar_bi37>(1a href="+code=h" class="sl1/a>-/a>->1a href="+code=hash_lock" class="sref">hash_lock1/(1a href="+code=cd" class="sref">cd1/a>, 1aass="line" nam  
L238">.2381/a>        1a href="+code=cache_fresh_unl3c"sref">r3che_revisit_request" cla3s="sr37e=detail" class="sref">detaispin"/a>->1a href="+codspin"/a>-&gche.c1/a>);.." clas  
L"linea href="net/sunrpc/cache.c#L307" id 
="+code=r3" class="sref">rv1/a>.=.3a hre38ss="sref">EAGAIN1/a>) {..31sunrpc/cache.c#  
L"">.31che.c1/a>);..3061  
La hre                   1spav class="c3.be251//a>-aded so its safe namkine"L315worker"l                        1a href="+code3+code=EAG3IN" class="sref">EAGAIN13a>:.<3 href="net/sunrpc/cach;..ncll"cllayed_work_syncche.c1/a>);..3061/091/ara href="net/sunrpc/cache.c#L307" id 
=class="s3ear_bit" class="sref">cl3ar_bi31/a>(1a href="f="net/sunrpc/cache.c#L204" id 3="+code=c3che_revisit_request" cla3s="sr3f">cache_revis304" cf="net/sunrpc/cache.c#L307" id 
=_and_set3et/sunrpc/cache.c#L286" 3d 
L238de=cache_check" clasotail" class="srefol1/a>)                         1a hre3sunrpc/ca3he.c#L287" id 
L287" cla3s="li38 href="+code=h" class="sref"fage=%ld, age=ld\n"1" class="sref"KERN_ERR#37;ld, age=KERN_ERR"sref#/spav2,.        >old1/a>, 1a href1a href="+code=cd" class="sref">cd1/a>, 1aaacode=last_refreshaacoa href="net/sunrpc/cache.c#L307" id 
=>age1/a>38" id 
L288" class="line3 nam 3
L288"f="net/sunrpc/cache.c#L204" id 3=L259" cl3289" class="line" nam  
3289">32891/ache_check" class="sref">cache_check1/a>);.r3s="line" nam  
L290">.2931/a> 3      if (1a href="+code=rv" class="3ref">rv1/3>.== -1a href="+code=EAG3IN" c39v2.cache_d3fer_r39 that table1/spav2. *1/spav2./*3/spav2.1 1GAINit 3091/a>classth253,spav class="comment"> *1/spav2.1ass="leasyth2531/ 
L3/a>1spav class="comment"> * - The last_ref        *3we can ourselves:1/spav23#L315e"leit finW  
L1spav class="comment"> *1/spav2.rv1/a>.=.1a href=3+code3cache_.1a href="+code=cache_detai.3061/e.c#am  
L303">.303>.3061/e.c#che.cvoid         1a href="+code=cache_puode=rv" c3ass="sref">rv1/a>.== -1a3href=3+code=                 1spav class="c3="+code=r3" class="sref">rv1/a>.=.31a hr3f="+code=ETIME" class="line" nam  
L260">.2601/a>       L29          }..3001/aclass="sref">cd1/a>, s  
L"f="+code=cache_req"  
L"f="+"sref">cache_head1/a>am  a href="+code=cam      f="net/sunrpc/cache.c#L307" id 4301" id 
4301" class="line" nam  
4301">43011/a="net/sunrpc/cache.c#L307" id 4311" id 
43q" class="sref">cache_d4che.c40>(1a href="+code=old" class=spin"line" nam  
L238">.spin"lineche.c1/a>);.." clas  
L"linea href="net/sunrpc/cache.c#L307" id 4t" class=4sref">cache_put1/a>(1a h4ef="+4ode=h"="net/sunrpc/cache.c#L307" id 4t3 class=4sequest was not deferred4/cach4.c#L304" id 
L href="net/sunrpc/cachd 
s="lea sui15" cl15" cl
ss="ldon1/a>1asalr="+y have/a>1ll                        1a href="+code4
L305" cl4ss="line" nam  
L305">.3451/a>40">cache_reviswhi cl1/a>) {..2701/a>      ||                1a href="+code4
5305" cl4s/spav2.) {.cd1/a>, 1aass="sizode=last_refreshass="sizoa hre                  1spav class="c4L307" cla4s="line" nam  
L307">.3041/a>140che_make_upcall1/a>(1AIN1/a>) {.EAG>cache_head1/a>am  a href="+code=cam      l" class="sref">det id 
L.1a href="+code=cache_h id 
L.1a hrea hrss="sref">cd1/a>, 1aoe" r" nam  
L186">.1oe" r"3" i.>cache_head1/a>am  a href="+code=cam      f="net/sunrpc/cache.c#L307" id 438net/sun4p class="sref">rv1/a>.=.4 href40="+code=ETIMEDOUT" cl">EA="net/sunrpc/cache.c#L307" id 439net/sun4p" id 
L300" class="line4spav240">cache_revisit_request1/a>(1>cache_head1/a>am  a href="+code=cam      l" class="sref">det clas  
Lne" nam  
L306">.3061  
La hr.>cache_head1/a>am  a href="+code=cam      f="net/sunrpc/cache.c#L307" id 4ter into 4hat list and into the ta4le1/s41AIN" class="sref">EAGAIN1/a>).);..3061  
La hre                  1spav class="c4.1/spav2.4a href="net/sunrpc/cache4c#L3141ENOENT" class="sref">ENOENT1/a>;..2701/a>     f="net/sunrpc/cache.c#L307" id 4="net/sun4pc/cache.c#L313" id 
L314" cla41.c#L293" id 
L293" class="lines="sref">detaispin"/a>->1a href="+codspin"/a>-&gche.c1/a>);.." clas  
L"linea href="net/sunrpc/cache.c#L307" id 4n_cache i4 called it finds the nex4 non-41/a>(1a href="+code=CACHE_PEND40" id 
1         }.cache_revisit_requef="net/sunrpc/cache.c#L204" id 4tries tha4 can be removed.1/spav2.4a hre41" class="line" nam  
a>;., 1a href="+code  
L""/a>,che.c#L306" id 
L306am  a href="+code=cam      lass="sref">rqstp1/a>)..1oe" r"3" ief="net/sunrpc/cache.c#L307" id 4="net/sun4pc/cache.c#L317" id 
L314" cla41che_make_upcall1/a>(1AIN1/a>) {.cd1/a>, 1aam  /a>.h1/a>->1a href="+code=last_refresh" class="sref">         1a href="+code=cache_p4removed i4:1/spav2.EAG>cache_head1/a>f id 
L.indexf="+code=cache_h id 
L.indexa hrcL270" class="line  id 
L.1a href="+code=cache_h id 
L.1a hrea hrss="sref">cd1/a>, 1aass="sizode=last_refreshass="sizoa hrf="net/sunrpc/cache.c#L307" id 4=8net/sun4urrent time1/spav2.EA                  1spav class="c4.9net/sun4is before the flush_time4for t41">cache_revisit_request1/a>(1>cache_head1/a>f id 
L.indexf="+code=cache_h id 
L.indexa hrcL2          }.) {.cd1/a>, 1aam  /a>.h1/a>->1a href="+code=last_refresh" class="sref">+30*6          }.f="net/sunrpc/cache.c#L204" id 49;full" for some definition of4'42IN" class="sre="net/sunrpc/cache.c#L204" id 49_cache i4pc/cache.c#L324" id 
L324" cla42tic.1a href="+code=inline" class="s4f "h4w often.to scan a table&4uot; 42" class="sref"href="net/sunrpc/cachd 
s="lea L314">.314buckete.c#L31515" cll                        1a href="+code4d in part4cO the *1/spav2.)1/a>)                1a href="+code4d"net/sun4ss="line" nam  
L227">.2471/a>42che_make_upcall1/a>(/a>) {.cd1/a>, 1aass="sizode=last_refreshass="sizoa hr 1/a>)1/a>)                1a href="+code4demoved i4>;.cd1/a>, 1aass="15" cde=last_refreshass="1/a>1spa>[/a>) {..2701/a>                      1a href="+code4d8net/sun4s="line" nam  
L229">.2241/a> 42="+code=ETIMEDOUT" cl/a>) {.(&1a hr4f="+c42     if (1a href="+code=rv" class="4>rv1/a>.=41a href="+code=cache_is_4alid"43code=age" clasunrpc/cache.c#L266" id 
s="lea /e.c#5" cl nam  .c#L315bucketeass=/e.c# its="li21" namam  
bucketel                        1a href="+code4ref">rv1/4>.!= -1a href="+code=EAG4IN" c43     1spav class="comment">/* First4r;full"s="sref">write_unlock1/a4(&43IN" class="srAIN1/a>) {.cd1/a>, 1aass="sizode=last_refreshass="sizoa hre                  1spav class="c4r"net/sun4sref">rv1/a>;.h1/a>, struct.1a href="+code=cache_req" class="sref">cache_req1/a> *1acunrpc/cache.c#L3c03" id *ache_req1/a> *1acc/cache.c#L292" cpa hrf="net/sunrpc/cache.c#L307" id 4235" id 
4235" class="line" nam  
4235">43">cache_revisit_requeil" class="sref">detail1/a>,.(1a href="+code=C4CHE_N43rpc/c="net/sunrpc/cache.c#L307" id 42"net/sun4"sref">cache_fresh_locke41/a>(43che_make_upcall1/a>(1/a>) {.->1a href="+code=hash_lock" class="sref">hash_lock1/( id 
L.1a href="+code=cache_h id 
L.1a hrea hrss="sref">cd1/a>, 1aass="line" nam  
L238">.2381/a>        1a href="+code=cache_fresh_unl4ass="sref4>write_unlock1/a>(&14 href43he.c#1a href="+code=cache_fresh_unl4a8net/sun4s="sref">cache_fresh_unl4cked143="+code=ETIMEDOUT" cl/unrpc/cache.c#L266" id 
Ok,
L266/o /e.c#1/ 
L3il"ass=l                        1a href="+code4r9net/sun4f">ENOENT1/a>;..2411/a>44"+code=try_to_negate_che_req1/a> *1acc/cache.c#L292" cpa hr = 1/a>)"e.c#L273" id 
L  id 
L.1a href="+code=cache_h id 
L.1a hrea hrss="sref">cd1/a>, 1aass="15" cde=last_refreshass="1/a>1spa>[/a>) {.rv1/4s="line" nam  
L242">.2441/a>144ENOENT" class="sref">3" c1/a>) {. *1acc/cache.c#L292" cpa hr )"e.c#L273" id 
L unrpc/cache.c#L3c03" i )"e.c#L273" id 
L c/cache.c#L292" cpa hr = 1/a>)"e.c#L273" id 
L unrpc/cache.c#L3c03" iss="sref">cd1/a>, 1aam  a href="+code=cam      la/a>) {. *1acc/cache.c#L292" cpa hre                  1spav class="c4="net/sun4pc/cache.c#L243" id 
L244" cla44.c#L293" id 
L293" class="linAIN1/a>) {.cd1/a>, 1aam  /a>.cd1/a>, 1aa href="+code=last_refresh" class="sref">                 1a href="+code4="net/sun4e management routine for4all1/44/a>(1a href="+code=CACHE_PENDING" class="sref">CACHE_ id 
L.1a href="+code=cache_h id 
L.1a hrea hrss="sref">cd1/a>, 1aam  /a>.cd1/a>, 1aa href="+code=last_refresh" class="sref">+1         }.cache_revisit_request1/a>(1qstp" class="sref">rqstp1/is_" claehref="+code=h" class="sre" claehche.c#L306" id 
L306_ id 
L.1a href="+code=cache_h id 
L.1a hrea hrla/a>) {.         1a href="+code=cache_p4
ref">set4f a.cache item and will 4later44" class="line" nam  
L286">.2861/a>  continue         }./*1/spav2.EAGache_req1/a> *1acc/cache.c#L292" cpa hr +code=h" class="s unrpc/cache.c#L3c03" iss="sref">cd1/a>, 1aam  a href="+code=cam      f="net/sunrpc/cache.c#L307" id 4="net/sun4pc/cache.c#L249" id 
L244" cla44="+code=ETIMEDOUT" class="sreode=h" class="s unrpc/cache.c#L3c03" iss="sref">cd1/a>, 1aam  a href="+code=cam       
270" class="line" nam  
L270">.2701/a>     f="net/sunrpc/cache.c#L307" id 4he cache_4ead can be used, or cach4_puts44">cache_revisit_request1/a>(1>cache_head1/a>f id 
L.1a href="+code=cache_h id 
L.1a hrea hrss="sref">cd1/a>, 1a="line" nam  
L186">.1861/a>     --f="net/sunrpc/cache.c#L307" id 4all is pe4ding and request has bee4 queu45"+code=try_to_negate_entry" c/a>) {..2601/a>       L291         }.rv1/4led or request could not4be qu45ENOENT" class="sref">ENOENT1/                      }.cache_revisit_reque/a>) {.-/a>->1a href="+code=hash_lock" class="sref">hash_lock1/( id 
L.1a href="+code=cache_h id 
L.1a hrea hrss="sref">cd1/a>, 1aass="line" nam  
L238">.2381/a>        1a href="+code=cache_fresh_unl4f="net/su4rpc/cache.c#L256" id 
L246" cl45" class="line" nam  
a>;.(struct.1a hr4f="+c45che_make_upcall1/a>(1AIN1" class="sref">rqunrpc/cache.c#L3c03" i>1a href="+code=cache_fresh_unl4f"net/sun4ead" class="sref">cache_4ead1/45code=EAGAIN" class="sref">EAG>cache_head1/a>f id 
L.indexf="+code=cache_h id 
L.indexa hrc++)                1a href="+code4
L259" cl4ss="line" nam  
L259">.2491/a>45="+code=ETIMEDOUT" cl/a>) {.->1a href="+codspin"/a>-&gche.c1/a>);.." clas  
L"linea href="net/sunrpc/cache.c#L307" id 4le cache_4>;.cache_revisit_requeAIN1/a>) {.                  1spav class="c4" class="4ref">refresh_age1/a>, 1a4href=46"+code=try_to_negate_entry" cAIN1/a>) {., &1a hrte
L"and__PENDING1che.c#L306" id 
L306a>->1a href="+code=flags" class="sref">flags1/a>);.cd1/a>, 1ae" nam  
L284">.2841/a>       >1a href="+code=cache_fresh_unl4L262" cla4s="line" nam  
L262">.2641/a> 46" class="line" nam  
L282">.2821/a>  ss="sref">detail1/a>,.<2521/a href="+code=cl1/a>,.<2521/che.c#L306" id 
L306_ id 
L.1a href="+code=cache_h id 
L.1a hrea hrla/a>) {.f="net/sunrpc/cache.c#L307" id 4decide re4urn status as best we ca4 */1/46.c#L293" id 
L293" class="lines="sref">detail1/a>,>h1/a>);.f="net/sunrpc/cache.c#L307" id 4dache ite41a href="+code=cache_is_4alid"46/a>(1a href="+code=CACHE_PENDes="sref">detail1/a>,etail" class="sref">detail1/a>);.;.f="net/sunrpc/cache.c#L307" id 4dion cach4s="line" nam  
L265">.2641/a> 46">cache_revisit_requef="net/sunrpc/cache.c#L204" id 4e if we w4nt.to start an upcall */4/spav46" class="line}l">EA="net/sunrpc/cache.c#L307" id 4ss="sref"4refresh_age1/a>.=.(1a hr4f="+c46che_make_upcall1/a>(1/a>) {.->1a href="+codspin"/a>-&gche.c1/a>);.." clas  
L"linea href="net/sunrpc/cache.c#L307" id 4">age1/a>4=.1a href="+code=seconds4since46he.c#1a href="+code=cache_fresh_unl4dL259" cl4s="line" nam  
L269">.2641/a> 46>(1a href="+c304" class="line" nam  
L304">.3041/a>}.r4stp1/a> ==.1a href="+cod4=NULL46e=detf="net/sunrpc/cache.c#L204" id 4class="sr4f">rv1/a>.== -1a href="+4ode=E47011/a="net/sunrpc/cache.c#L307" id 4rv" class4"sref">rv1/a>.=.-1a href4"+cod47 that table1/spav2.1spav class="comment"> * caches need t4cecide re4">rv1/a>.== -1a href="+c4de=EA47ll'1/spav2..3091/6L315"s ne, so welass="lins="+dul"class=work ..1spav class="comment"> *1/spav2.dprintk1/a>(1spav cl4ss="s47 it as best1/spav2.4efres47_valid" clasvoid 
L303" class="lio_>.3061/e.c#am  
L303">.3031o_>.3061/e.c#che.cclass="sref">cd1/a>, swork_class=am  
L303">.303work_class="sref">cache_head1/a>workam  
L303">.303worka hre                1a href="+code4  if we w4bit" class="sref">test_a4d_set4bit1/a                 1spav class="c4="+code=c4che_make_upcall" class="4ref">4ache_make_upca" class="line" nam cllayam  
L303">.3031llaya hrcL25ef="net/sunrpc/cache.c#L305" id4 >age1/a>4AL" class="sref">EINVAL14a>:.<47oot" class="sAIN1/a>) {..303>.3061/e.c#che.c) id 
1e                1a href="+code4 L259" cl4ear_bit" class="sref">cl4ar_bi47="+code=ETIMEDOUT" cl/a>) {..3031llaya hrcL2ass="line" nam  ouss_jiffiesid l clv/a href="+code=c ouss_jiffiesid l clv/che.c30">cache_head1/a>HZa href="+code=cHZa href="net/sunrpc/cache.c#L307" id 4c"sref">r4che_revisit_request" cla4s="sr47     if (1a href="+code=rv" class="4="+code=r4" class="sref">rv1/a>.=.4a hre48ss="sref">EAGAIN1/a>) {..31sunrpc/cache.c#  
L"">.31che.c1/a>);..3061  
La hre if (1a href="+code=rv" class="4=v" class4et/sunrpc/cache.c#L282" 4d 
L242" class="line" nam  
sa>) {..3031llaya hrcL2          }.EAGAIN14a>:.<48de=h"="net/sunrpc/cache.c#L307" id 4=class="s4ear_bit" class="sref">cl4ar_bi41/a>(1a href="AIN1/a>) {..3031llaya hr if (1a href="+code=rv" class="4=ion cach4che_revisit_request" cla4s="sr48">cache_revisit_reque/a>) {..303s="+dul" cllayed_workche.c1/a>);..3061/091/ara hrd /a>) {..3031llaya hr          }./*1/spav2.age1/a>48" id 
L288" class="line4 nam 48he.c#1a href="+code=cache_fresh_unl4=L259" cl4289" class="line" nam  
4289">48sunrpc/cache.c#L319" id 
L3>1spav class="comment"> * caches need t4="sref">r4s="line" nam  
L290">.2941/a> 48t cache1/spav2..3ly.  T 
L3jus52L314s

L310_/e.c#ch                     1a href="+code4ref">rv1/4>.== -1a href="+code=EAG4IN" c49v2..until welar"cluass="3151veryne" namhasmhalea /h.ncl"lich                     1a href="+code4rv" class4eq" class="sref">cache_d4fer_r49 that table1/spav2..3091/a>ch                     1a href="+code4rcode=EAG4/spav2..3061ne" nche.cvoid         1a href="+code=cache_p4        *4we can ourselves:1/spav24.303>.3061/e.c#che.c) !d 
1e                1a href="+code4rv" class4"sref">rv1/a>.=.1a href=4+code49che_make_upcall1/a>(1/a>) {..303>oss_res="+dche.c)         }.rv1/a>.== -1a4href=497 class="linewhi cl1/a>) {..303>.3061/e.c#che.c) !d 
1e                1a href="+code4rL259" cl4" class="sref">rv1/a>.=.41a hr49="+code=ETIMEDOUT" cl/a>) {..303>oss_res="+dche.c)         }.r40" id 
L300" class="line4 nam 49e=detf="net/sunrpc/cache.c#L204" id 5301" id 
5301" class="line" nam  
5301">53011/a/a>) {.cache_check1/a>);..3061ne" nche.)         }.cache_d5che.c50     1spav class="comment">/* First5t" class=5sref">cache_put1/a>(1a h5ef="+5ode=h"void 
L303" class="l
L310_ilrm  
L275">.2751/a">detailrm che.cil" class="sref">detail1/a>,..3551/a>50">cache_revisL257" class="lincd1/a>, 1ae"" nam  
m  
L284">.2841/a" nam  
a hrcL2ass="line" nam LONG_MAXm  
L284">.2841LONG_MAXa href="net/sunrpc/cache.c#L305" id5
5305" cl5s/spav2.cd1/a>, 1aam  /a>.h1/a>->1a href="+code=last_refresh" class="sref">ef="net/sunrpc/cache.c#L305" id5
6305" cl5ssref">rv1/a>.=.1a href=51/a>150 href="+code=h" class="sref">L310_ne" nne" nam  
L306">.3061ne" nche.c>ef="net/sunrpc/cache.c#L305" id5
7305" cl5sss="sref">rv1/a>.== -1a5" cla50oot" class="sref">seconds_sincd1/a>, 1ae"" nam  
m  
L284">.2841/a" nam  
a hrcL21         }.rv1/a>.=.5 href50="+cof="net/sunrpc/cache.c#L204" id 539net/sun5p" id 
L300" class="line5spav250">cac/a>) {.cache_check1/a>);..2751/a">detailrm che.>ef="net/sunrpc/cache.c#L305" id5ter into 5hat list and into the ta5le1/s51011/a="net/sunrpc/cache.c#L307" id 5.1/spav2.5a href="net/sunrpc/cache5c#L3151     1spav class="comment">/* First5="net/sun5pc/cache.c#L313" id 
L315" cla51ll'1/spav2. * caches need t5n_cache i5 called it finds the nex5 non-51 it as best1/spav2. *1/spav2. *1/spav2. *1/spav2..3171/a>1lass="lindefer6L315d 
L285eass=#L285" Nit later1spav class="comment"> *1/spav2. *1/spav2.il" cla">deta="sr *741/a>1spav class="comment"> *1/spav2. *1/spav2. *1/spav2. *1/spav2.1il" cla">detadeferredid 
1/a>1spav class="comment"> *1/spav2.detadeferredid 
2containss="sstho="linall26spav class="comment"> *1/spav2.1spav class="comment"> *1/spav2..2571/a>52av class="comment">/*1/spav2.;.cache_DFR_HASHSIZE 
L275">.2751/aDFR_HASHSIZEot" clasc#L306" id 
L306PAGE_SIZE 
L275">.2751/aPAGE_SIZEot" /sizoofcil" class="sref">detai  
L"f="+code=cache_req"  
L"f="+"sree if (1a href="+code=rv" class="5d8net/sun5s="line" nam  
L229">.2251/a> 52="+co#defnetss="sref">cache_DFR_HASH 
L275">.2751/aDFR_HASHche.c#L306" id 
L306" em 
L275">.2751/a" em3" i>  ((((long)#L306" id 
L306" em 
L275">.2751/a" em3" i>s="ss="s4 ^ (((long)#L306" id 
L306" em 
L275">.2751/a" em3" i>s="ss="s13))"
L274ss="sref">cache_DFR_HASHSIZE 
L275">.2751/aDFR_HASHSIZEot"  if (1a href="+code=rv" class="5d9net/sun5rite_lock1/a>(&1a hr5f="+c52     if (1a href="+code=rv" class="5>rv1/a>.=51a href="+code=cache_is_5alid"53code=#defnetss="sref">cache_DFR_MAXm  
L284">.2841DFR_MAXot" c300ss="srunrpc/cache.c#L266" id 
???ll                        1a href="+code5ref">rv1/5>.!= -1a href="+code=EAG5IN" c53     1spav class="comment">/* First5r;full#s="sref">write_unlock1/a5(&53IN" cd" class="sref">cache_DEFINE_SPINLOCKm  
L284">.2841DEFINE_SPINLOCKche.c#L306" id 
L306
L310_defer"line" nam  
L238">." clasdefer"lineche.>ef="net/sunrpc/cache.c#L305" id5r"net/sun5sref">rv1/a>;.cache_LIST_HEA="+code=flags" cLIST_HEA=che.c#L306" id 
L306
L310_defer"l 
Lne" nam  
L306">.3061defer"l 
Lche.>ef="net/sunrpc/cache.c#L305" id5rtable an5235" class="line" nam  
5235">53_valid" clasil" class="sref">detaih  
L"f="+code=cache_req"h  
L"f="+"sref#L306" id 
L306
L310_defer"2381ne" nam  
L306">.3061defer"2381"sre[/a>) {..2751/aDFR_HASHSIZEot" ] 1a href="+code=cache_fresh_unl52 in part5bit1/a>(1a href="+code=C5CHE_N53rpc/c.1a href="+code=cache_detai.3061defer"cnLne" nam  
L306">.3061defer"cnLa href="net/sunrpc/cache.c#L305" id52"net/sun5"sref">cache_fresh_locke51/a>(53av class="comment">/*1/spav2.detail1/a>,.,.cache_fresh_unl5cked153="+co                 1spav class="c5r9net/sun5f">ENOENT1/a>;.detaih  
L"cll"net/sunrpc/cache.c#h  
L"cll"net/che.c1/a>);.cd1/a>, 1aass=sunrpc/cache.c#ha nche.)         }..2511/a>54ss="sref">EAGAIN1" class="sref">r  
L"">.31sunrpc/cache.c#  
L"">.31che.c1/a>);.cd1/a>, 1arecenLne" nam  
L306"recenL"sree                   1spav class="c5
ef">rv1/5s="line" nam  
L242">.2451/a>154ENOENT" class="sref"> class="sref">r  
L"cll"net/sunrpc/cache.c#  
L"cll"net/che.c1/a>);.cd1/a>, 1arecenLne" nam  
L306"recenL"sree         }..3061defer"cnLa hr--f="net/sunrpc/cache.c#L307" id 5="net/sun5e management routine for5all1/54/a>(1a href="f="net/sunrpc/cache.c#L204" id 5tion cach5s.1/spav2.cacf="net/sunrpc/cache.c#L204" id 5t in part5f a.cache item and will 5later54rpc/c="net/sunrpc/cache.c#L307" id 5t"net/sun5ll it if needed.1/spav2.5a hre546e.c#d" clasvoid 
L303" class="l__2381/deferredid 
ne" nam  
L306"__2381/deferredid 
che.cil" class="sref">detail1/a>,.,.rqstp1/a>).cache_req1/a> *1a" em 
L275">.2751/a" em3" i>="net/sunrpc/cache.c#L307" id 5tss="sref5pc/cache.c#L248" id 
L245" cla54code=                 1spav class="c5="net/sun5pc/cache.c#L249" id 
L245" cla54="+code=ETIMEf="+code=cache_detaass=sunrpc/cache.c#ha nche.L+code=h" class="sDFR_HASH 
L275">.2751/aDFR_HASHche.c#L306" id 
L306" em 
L275">.2751/a" em3" i>f="net/sunrpc/cache.c#L307" id 5=9net/sun5ead can be used, or cach5_puts54     if (1a href="+code=rv" class="5all is pe5ding and request has bee5 queu55"+code=try_to#L306" id 
L306INIT_LIST_HEA="+code=flags" cINIT_LIST_HEA=che.c1/a>);.cd1/a>, 1arecenLne" nam  
L306"recenL"sree         }.rv1/5led or request could not5be qu55>(1a href="+code=old" class=h  
L"add"f="+code=cache_req"h  
L"add"f="+che.c1/a>);.cd1/a>, 1aass=sunrpc/cache.c#ha nche.gs1/a>);..3061defer"2381"sre[/a>) {.detail1/a>,.,.rqstp1/a>).cache_req1/a> *1a" em 
L275">.2751/a" em3" ila href="+code=inline" class="s5c"net/sun5e_check1/a>(struct.1a hr5f="+c55che_make_upcall1/a>(111111111111f="+code=cache_detaiount_ 
m  
L284">.2841iount_ 
3" i>="net/sunrpc/cache.c#L307" id 5f"net/sun5ead" class="sref">cache_5ead1/55code=                 1spav class="c5
L259" cl5ss="line" nam  
L259">.2591/a>55="+co                1spav class="c5
9net/sun5>;.detaind 
ne" nam  
L306"dd 
" idss="sref">cd1/a>, 1a" em 
L275">.2751/a" em3" iL+code=h" class="s" em 
L275">.2751/a" em3" i         }.refresh_age1/a>, 1a5href=56011/a="net/sunrpc/cache.c#L307" id 5L262" cla5s="line" nam  
L262">.2651/a> 56>(1a href="+code=old" class=spin"line" nam  
L238">.spin"lineche.c1/a>);.." clasdefer"lineche.>ef="net/sunrpc/cache.c#L305" id5decide re5urn status as best we ca5 */1/56de=h"="net/sunrpc/cache.c#L307" id 5dache ite51a href="+code=cache_is_5alid"56/a>(1a href="
L303" class="l__2381/deferredid 
ne" nam  
L306"__2381/deferredid 
che.cL257" class="lind 
ne" nam  
L306"dd 
" idla#L306" id 
L306" em 
L275">.2751/a" em3" i>f="net/sunrpc/cache.c#L307" id 5dion cach5s="line" nam  
L265">.2651/a> 56">cac="net/sunrpc/cache.c#L307" id 5d in part5nt.to start an upcall */5/spav56" class="lineAIN1/a>) {..2841iount_ 
3" i>                  1spav class="c5ss="sref"5refresh_age1/a>.=.(1a hr5f="+c56che_make_upcall1/a>(1/a>) {..3061defer"cnLa hr++)                1a href="+code5">age1/a>5=.1a href="+code=seconds5since56code=EAGAIN" class="s class="sref">r  
L"addsunrpc/cache.c#  
L"addche.c1/a>);.cd1/a>, 1arecenLne" nam  
L306"recenL"sregs1/a>);..3061defer"l 
Lche.>ef="net/sunrpc/cache.c#L305" id5dL259" cl5s="line" nam  
L269">.2651/a> 56>(1a href="+cf="net/sunrpc/cache.c#L204" id 5="sref">r5stp1/a> ==.1a href="+cod5=NULL56     if (1a href="+code=rv" class="5class="sr5f">rv1/a>.== -1a href="+5ode=E57"+code=try_to#L306" id 
L306spin"/a>->1a href="+codspin"/a>-&gche.c1/a>);.." clasdefer"lineche.>ef="net/sunrpc/cache.c#L305" id5rv" class5"sref">rv1/a>.=.-1a href5"+cod57     1spav class="comment">/* First5cecide re5">rv1/a>.== -1a href="+c5de=EA57.c#L2f="net/sunrpc/cache.c#L204" id 5 class="s5ef">dprintk1/a>(1spav cl5ss="s57tic.1a href="+code=inline" class="s5 ion cach5fresh_age" class="sref">5efres57_valid"="sref">rqstp1/a>).test_a5d_set57" class="lineil" class="sref">detail1/a>,.,.) {.5ache_make_upcail" class="sref">detailompletio#am  
L303">.303>ompletio#"sref#L306" id 
L306
ompletio#am  
L303">.303>ompletio#"sre         }.EINVAL15a>:.<57oot" }         }.cl5ar_bi57="+co                1spav class="c5c"sref">r5che_revisit_request" cla5s="sr57     d" clasvoid 
L303" class="ll1/a>,red" rt_thr="+ne" nam  
L306"l1/a>,red" rt_thr="+che.cil" class="sref">detail1/a>,.,.="net/sunrpc/cache.c#L307" id 5="+code=r5" class="sref">rv1/a>.=.5a hre58ss="s                 1spav class="c5=v" class5et/sunrpc/cache.c#L282" 5d 
L252" class="lined"="sref">rqstp1/a>).EAGAIN15a>:.<58.c#L293" id 
L293" clcode=cache_detaiontainer"ofam  
L303">.303>ontainer"ofche.cL257" class="lind 
ne" nam  
L306"dd 
" idlad"="sref">rqstp1/a>).ef="net/sunrpc/cache.c#L305" id5=class="s5ear_bit" class="sref">cl5ar_bi58/a>(1a href="
L303" class="l>omplet
m  
L284">.2841iomplet
che.c1/a>);.cd1/a>, 1a
ompletio#am  
L303">.303>ompletio#"sre>ef="net/sunrpc/cache.c#L305" id5=ion cach5che_revisit_request" cla5s="sr58">cacf="net/sunrpc/cache.c#L204" id 5+ if we w5et/sunrpc/cache.c#L286" 5d 
L258rpc/c="net/sunrpc/cache.c#L307" id 5sunrpc/ca5he.c#L287" id 
L287" cla5s="li586e.c#d" clasvoid 
L303" class="ll1/a>,wa" id 
ne" nam  
L306"l1/a>,wa" id 
che.cil" class="sref">detail1/a>,d 
ne" nam  
L306"l1/a>,d 
+code
L257" class="lid 
ne" nam  
L306"d 
" idlass="sref">rqstp1/a>).cache_req1/a> *1a" em 
L275">.2751/a" em3" i>="net/sunrpc/cache.c#L307" id 5=>age1/a>58" id 
L288" class="line5 nam 58code=                 1spav class="c5=L259" cl5289" class="line" nam  
5289">588 class="lined"="sref">rqstp1/a>).r5s="line" nam  
L290">.2951/a> 58L300">.3001/aclass="sref">cd1/a>, sl1/a>,.,.);.cache_head1/a>asnd cde=last_refreshasnd c3" i         }.rv1/5>.== -1a href="+code=EAG5IN" c59011/a="net/sunrpc/cache.c#L307" id 5rv" class5eq" class="sref">cache_d5fer_r59>(1a href="+code=old" class=sleeparne" nam  
L306"sleepar"sre.>cache_head1/a>lompletio#am  
L303">.303>ompletio#"sref+code=h" class="sCOMPLETION_INITIALIZER_ONSTACKm  
L284">.2841COMPLETION_INITIALIZER_ONSTACKche.cL257" class="lisleeparne" nam  
L306"sleepar"sre.>cache_head1/a>lompletio#am  
L303">.303>ompletio#"sre>ef="net/sunrpc/cache.c#L305" id5rcode=EAG5/spav2.cd1/a>, 1are285" ne" nam  
L306"d 285" "sref+code=h" class="sl1/a>,red" rt_thr="+ne" nam  
L306"l1/a>,red" rt_thr="+che.ef="net/sunrpc/cache.c#L305" id5rclass="s5Request was not deferred5 hand59tic.1a href="+code=inline" class="s5        *5we can ourselves:1/spav25cache_revisL257" class="lisetup,..2751/a" em3" i, 0>ef="net/sunrpc/cache.c#L305" id5r if we w51/spav2.rv1/a>.=.1a href=5+code59che_make_upcaAIN1" class="sref">rte
L"NG1/a>, &1a hrte
L"NG1che.c#L306" id 
L306a>->1a href="+code=flags" class="sref">flags1/a>);..2751/a" em3" iss="sref">cd1/a>, 1ae" nam  
L284">.2841/a>        ||="net/sunrpc/cache.c#L307" id 5r>age1/a>5ass="sref">rv1/a>.== -1a5href=59code=EAGAIN" clasref">cd1/a>, 1awa" ifor_>ompletio#_f="erruptibleam  
otail" class="srefwa" ifor_>ompletio#_f="erruptibleam  
otache.c="net/sunrpc/cache.c#L307" id 5rL259" cl5" class="sref">rv1/a>.=.51a hr59="+code=ETIMEDOUT" clllll1/a>);.cache_head1/a>lompletio#am  
L303">.303>ompletio#"srela#L306" id 
L306d 
ne" nam  
L306"d 
" idss="sref">cd1/a>, 1athr="+/wa" ne" nam  
L306"thr="+/wa"       /lac= 0>e                 1spav class="c5o"sref">r50" id 
L300" class="line5 nam 59">cache_revisit_requerunrpc/cache.c#L266" id 
T315"ompletio#1wasn1/a>1t5"ompleted, so welass=                       1a href="+code6301" id 
6301" class="line" nam  
6301">60v2.cache_d6che.c60 that table1/spav2.cache_put1/a>(1a h6ef="+60.c#L293" id 
L293" clcode=cache_detaspin"line" nam  
L238">.spin"lineche.c1/a>);.." clasdefer"lineche.>ef="net/sunrpc/cache.c#L305" id6t3 class=6sequest was not deferred6/cach60/a>(1a href="+code=CAAIN1" class="sref">rh  
L"un2381+dam  
L303">.303h  
L"un2381+dche.c1/a>);.cache_head1/a>asnd cde=last_refreshasnd c3" i.>cache_head1/a>ass=sunrpc/cache.c#ha nche.)>e                 1spav class="c6
L305" cl6ss="line" nam  
L305">.3651/a>60">cache_revis93" id 
L293" clcode=cache_deta__un2381/deferredid 
ne" nam  
L306"__un2381/deferredid 
che.c1/a>);.cache_head1/a>asnd cde=last_refreshasnd c3" i>ef="net/sunrpc/cache.c#L305" id6t5305" cl6s/spav2.->1a href="+codspin"/a>-&gche.c1/a>);.." clasdefer"lineche.>ef="net/sunrpc/cache.c#L305" id6
6305" cl6ssref">rv1/a>.=.1a href=61/a>160che_make_upcall1/a>(1}l">EA                  1spav class="c6
7305" cl6sss="sref">rv1/a>.== -1a6" cla60code=EAGAIN" class="sref">EAG>unrpc/cache.c#L266" id 
l1/a>,re285" id 
L285 alr="+y removs=                       1a href="+code638305" cl6s class="sref">rv1/a>.=.6 href60sunrpc/cache.c#L319" id 
L3"""""""""""""""""""""""""*1/ 
L3from6/3152381515" c, but5238n1/a>1t                       1a href="+code639305" cl6s" id 
L300" class="line6spav260t cache1/spav2.3" cit1spav class="comment"> *1/spav2.detaispin"/a>->1a href="+codspin"/a>-&gche.c1/a>);.." clasdefer"lineche.>ef="net/sunrpc/cache.c#L305" id6n_cache i6 called it finds the nex6 non-61/a>(1a href="+code=CACHE_PENDes="sref">detaiwa" ifor_>ompletio#il" class="srefwa" ifor_>ompletio#che.c1/a>);.cache_head1/a>lompletio#am  
L303">.303>ompletio#"sre>ef="net/sunrpc/cache.c#L305" id6 table an6 walks the list in that 6ntry161">cache_revisit_requef="net/sunrpc/cache.c#L204" id 6 5305" cl6 can be removed.1/spav2.6a hre61" class="line}="net/sunrpc/cache.c#L204" id 6 6305" cl6pc/cache.c#L317" id 
L316" cla61="lin}="net/sunrpc/cache.c#L204" id 6 7305" cl6:1/spav2..2841l1/a>,limitsdeferache.cvoid         1a href="+code=cache_p6 9net/sun6is before the flush_time6for t61t cac                 1spav class="c6="net/sun6pc/cache.c#L321" id 
L326" cla62code=age" clasunrpc/cache.c#L266" id 
Mak"cluassw1523ven1/a>1t5excss="lnamlimit1of=all26s="deferred                       1a href="+code6=1/spav2.6entries with non-NEVER e6piry 62 that table1/spav2. *1/spav2.(1a href="class="sref">cd1/a>, sl1/a>,.,..2701/a>     f="net/sunrpc/cache.c#L307" id 6=table an6w often.to scan a table&6uot; 62">cac="net/sunrpc/cache.c#L307" id 6=5305" cl6cO the *1/spav2..3061defer"cnLa hr /lac= /a>) {..2841DFR_MAXot"          1a href="+code=cache_p6d"net/sun6ss="line" nam  
L227">.2671/a>62che_make_upcall1/a>(1304" cf="net/sunrpc/cache.c#L307" id 6=7305" cl6>;..2261/a> 62="+code=ETIMEcode=cache_detaspin"line" nam  
L238">.spin"lineche.c1/a>);.." clasdefer"lineche.>ef="net/sunrpc/cache.c#L305" id6d9net/sun6rite_lock1/a>(&1a hr6f="+c62     if (1a href="+code=rv" class="6>rv1/a>.=61a href="+code=cache_is_6alid"63code=age" clasunrpc/cache.c#L266" id 
Consider remov2531 ilnar6L315fir85 or6L315cact"*                        1a href="+code6ref">rv1/6>.!= -1a href="+code=EAG6IN" c631 class="lineAIN1/a>) {..3061defer"cnLa hr /cache.c#L273" id 
LDFR_MAXm  
L284">.2841DFR_MAXot"                    1spav class="c6r;full$s="sref">write_unlock1/a6(&63.c#L293" id 
L293" clAIN1/a>) {..2751/a   _rassomche.c) 1/a>)"1e                1a href="+code6r"net/sun6sref">rv1/a>;.detainiscarnef="net/sunrpc/discarn"sref+code=h" class="s  
L""nam ef="net/sunrpc/  
L""nam che.c#L306" id 
L306 L310_defer"l 
Lne" nam  
L306">.3061defer"l 
Lche..>cache_head1/a>am  a href="+code=cam      l                1a href="+code6rtable an6235" class="line" nam  
6235">63">cache_revis93" id 
L293" cllllllllllllllllllllllclass="sref">cd1/a>, sl1/a>,.,.EA="net/sunrpc/cache.c#L307" id 62"net/sun6"sref">cache_fresh_locke61/a>(63che_make_upcall1/a>(111111111es="sref">detainiscarnef="net/sunrpc/discarn"sref+code=h" class="s  
L""nam ef="net/sunrpc/  
L""nam che.c#L306" id 
L306 L310_defer"l 
Lne" nam  
L306">.3061defer"l 
Lche..>cache_head1/a>pre
L304">.3041/a>}pre
    l                1a href="+code6r7305" cl6>write_unlock1/a>(&16 href63code=EAGAIN" class="sref">EAGlllllllllllllllllllllclass="sref">cd1/a>, sl1/a>,.,.cache_fresh_unl6cked163="+code=ETIMEDOUT" cl/a>) {.detainiscarnef="net/sunrpc/discarn"sree         }.ENOENT1/a>;..2611/a>64"+code=try_to#L306" id 
L306spin"/a>->1a href="+codspin"/a>-&gche.c1/a>);.." clasdefer"lineche.>ef="net/sunrpc/cache.c#L305" id6
ef">rv1/6s="line" nam  
L242">.2461/a>1641 class="lineAIN1/a>) {.cd1/a>, 1are285" ne" nam  
L306"d 285" "sre1/a>) {.(1}="net/sunrpc/cache.c#L204" id 6
table an6s.1/spav2.cac="net/sunrpc/cache.c#L307" id 6t in part6f a.cache item and will 6later64e.c#L296" id 
L296" class="d 
R04" cllaseeAINass=onlyeAINaLdeferred5d 
L285 
L32521/d."*                        1a href="+code6t"net/sun6ll it if needed.1/spav2.6a hre646e.c#d" clas/a>) {.,.detail1/a>,d 
ne" nam  
L306"l1/a>,d 
+code
L257" class="lid 
ne" nam  
L306"d 
" idlass="sref">rqstp1/a>).cache_req1/a> *1a" em 
L275">.2751/a" em3" i>="net/sunrpc/cache.c#L307" id 6tss="sref6pc/cache.c#L248" id 
L246" cla64code=                 1spav class="c6="net/sun6pc/cache.c#L249" id 
L246" cla648 class="lined"="sref">rqstp1/a>).,.,.EAGAIN1/a>) {.cd1/a>, 1athr="+/wa" ne" nam  
L306"thr="+/wa"                        1spav class="c6aef">rv1/6led or request could not6be qu65>(1a href="+cL293" clcode=cache_detal1/a>,wa" id 
ne" nam  
L306"l1/a>,wa" id 
che.cL257" class="lid 
ne" nam  
L306"d 
" idlache_req1/a> *1a" em 
L275">.2751/a" em3" i>ef="net/sunrpc/cache.c#L305" id6a;full$ed but item is still inv6lid (65.c#L293" id 
L293" clAIN1" class="sref">rte
L"NG1/a>, &1a hrte
L"NG1che.c#L306" id 
L306a>->1a href="+code=flags" class="sref">flags1/a>);..2751/a" em3" iss="sref">cd1/a>, 1ae" nam  
L284">.2841/a>       >="net/sunrpc/cache.c#L307" id 6cache ite6 has been replaced with 6 newe65/a>(1a href="+code=CACHE_PEND304" class="line" nam fa>EAm  
L284">.2841/a>EA" idef="net/sunrpc/cache.c#L305" id6cion cach6as negative1/spav2.cache_revis}="net/sunrpc/cache.c#L204" id 6c in part6rpc/cache.c#L256" id 
L266" cl65" class="lineL257" class="lind 
ne" nam  
L306"dd 
" id = /a>) {.cd1/a>, 1a.ef="net/sunrpc/cache.c#L305" id6a"net/sun6e_check1/a>(struct.1a hr6f="+c65che_make_upcaAIN1L257" class="lind 
ne" nam  
L306"dd 
" id =+code=h" class="s" nam  
L270">.2701/a>     >="net/sunrpc/cache.c#L307" id 6css="sref6ead" class="sref">cache_6ead1/65code=EAGAIN" class="s304" class="line" nam fa>EAm  
L284">.2841/a>EA" idef="net/sunrpc/cache.c#L305" id6c"net/sun6ss="line" nam  
L259">.2691/a>65="+code=ETIMEcode=cache_detasetup,..2751/a" em3" i, 1eef="net/sunrpc/cache.c#L305" id6
9net/sun6>;.rte
L"NG1/a>, &1a hrte
L"NG1che.c#L306" id 
L306a>->1a href="+code=flags" class="sref">flags1/a>);..2751/a" em3" iss="sref">cd1/a>, 1ae" nam  
L284">.2841/a>       >="net/sunrpc/cache.c#L307" id 6" class="6ref">refresh_age1/a>, 1a6href=660(1a href="+cL293" clc96" id 
L296" class="d 
Bit5"ould523ve bee/neleared5befoassw15manags="li                       1a href="+code6L262" cla6s="line" nam  
L262">.2661/a> 66 that table1/spav2. *1/spav2.(1a href="+code=CAss="sref">detail1/a>,d 285" id 
L285ne" nam  
L306"l1/a>,d 285" id 
L285che.c#L306" id 
L306" em 
L275">.2751/a" em3" i>ef="net/sunrpc/cache.c#L305" id6dion cach6s="line" nam  
L265">.2661/a> 66">cac="net/sunrpc/cache.c#L307" id 6d in part6nt.to start an upcall */6/spav66" class="lineL257" class="lil1/a>,limitsdeferam  
L284">.2841l1/a>,limitsdeferache.c>ef="net/sunrpc/cache.c#L305" id6d"net/sun6refresh_age1/a>.=.(1a hr6f="+c66che_make_upca304" class="line" nam lase/a>, &1a hrtase" idef="net/sunrpc/cache.c#L305" id6">age1/a>6=.1a href="+code=seconds6since66code=}="net/sunrpc/cache.c#L204" id 6dL259" cl6s="line" nam  
L269">.2661/a> 66="+co                1spav class="c6="sref">r6stp1/a> ==.1a href="+cod6=NULL66     d" clasvoid 
L303" class="ll1/a>,re285" id 
L285ne" nam  
L306"l1/a>,d 285" id 
L285che.css="sref">rqstp1/a>).cache_req1/a> *1a" em 
L275">.2751/a" em3" i>="net/sunrpc/cache.c#L307" id 6class="sr6f">rv1/a>.== -1a href="+6ode=E67ss="s                 1spav class="c6rv" class6"sref">rv1/a>.=.-1a href6"+cod67" class="lined"="sref">rqstp1/a>).,.,.rv1/a>.== -1a href="+c6de=EA672 class="lined"="sref">rqstp1/a>).<  
L"f="+code=cache_req"  
L"f="+"sreef">rqstp1/a>)..3041/a>}pend253" idef="net/sunrpc/cache.c#L305" id6cache ite6ef">dprintk1/a>(1spav cl6ss="s67/a>(1a href="class="sref">cd1/a>, sh  
L"n>, L304">.3041/a>}h  
L"n>, " id 
L257" class="lilpcode=cache_req" p>flags
L257" class="litmpcode=cache_req"tmp" idef="net/sunrpc/cache.c#L305" id6cion cach6fresh_age" class="sref">6efres67">cache_revisf="+code=cache_detaass=sunrpc/cache.c#ha nche.L+code=h" class="sDFR_HASH 
L275">.2751/aDFR_HASHche.c#L306" id 
L306" em 
L275">.2751/a" em3" i>f="net/sunrpc/cache.c#L307" id 6  if we w6bit" class="sref">test_a6d_set67rpc/c="net/sunrpc/cache.c#L307" id 6="+code=c6che_make_upcall" class="6ref">67 href="+code=h" class="sref"INIT_LIST_HEA="+code=flags" cINIT_LIST_HEA=che.c1/a>);..3041/a>}pend253" id>f="net/sunrpc/cache.c#L307" id 6 >age1/a>6AL" class="sref">EINVAL16a>:.<67oot" class="sref">seconds_sispin"line" nam  
L238">.spin"lineche.c1/a>);.." clasdefer"lineche.>ef="net/sunrpc/cache.c#L305" id6=L259" cl6ear_bit" class="sref">cl6ar_bi67="+co                1spav class="c6c"sref">r6che_revisit_request" cla6s="sr67e=detail" class="sref">detaih  
L"for_ecla""nam _saf L304">.3041/a>}h  
L"for_ecla""nam _saf che.cL257" class="lind 
ne" nam  
L306"dd 
" idla#L306" id 
L306lpcode=cache_req" p>flagsL257" class="litmpcode=cache_req"tmp" idgs1/a>);..3061defer"2381"sre[/a>) {.rv1/a>.=.6a hre680(1a href="+cL293" clAIN1L257" class="lind 
ne" nam  
L306"dd 
" idss="sref">cd1/a>, 1a" em 
L275">.2751/a" em3" iL++code=h" class="s" em 
L275">.2751/a" em3" i                   1spav class="c6=v" class6et/sunrpc/cache.c#L282" 6d 
L268>(1a href="+cL293" clail" class="sref">detai__un2381/deferredid 
ne" nam  
L306"__un2381/deferredid 
che.ces="sref">detaind 
ne" nam  
L306"dd 
" id ef="net/sunrpc/cache.c#L305" id6=ecide re6IN" class="sref">EAGAIN16a>:.<68.c#L293" id 
L293" clail" class="sref">detai  
L"addsunrpc/cache.c#  
L"addche.c1/a>);.cd1/a>, 1arecenLne" nam  
L306"recenL"sregs1/a>);..3041/a>}pend253" id>f="net/sunrpc/cache.c#L307" id 6=class="s6ear_bit" class="sref">cl6ar_bi68/a>(1a href="+code=CA}="net/sunrpc/cache.c#L204" id 6=ion cach6che_revisit_request" cla6s="sr68">cac="net/sunrpc/cache.c#L307" id 6+ if we w6et/sunrpc/cache.c#L286" 6d 
L268" class="lineL257" class="lispin"/a>->1a href="+codspin"/a>-&gche.c1/a>);.." clasdefer"lineche.>ef="net/sunrpc/cache.c#L305" id6sunrpc/ca6he.c#L287" id 
L287" cla6s="li68av class="comment">/*1/spav2.age1/a>68" id 
L288" class="line6 nam 68oot" class="swhileN1" class="sref">r  
L"">.31sunrpc/cache.c#  
L"">.31che.c1/a>);..3041/a>}pend253" id>                   1spav class="c6=L259" cl6289" class="line" nam  
6289">68="+code=ETIMEDOUT" cl/a>) {.) {..3041/a>}pend253" id.>cache_head1/a>am  a href="+code=cam      llclass="sref">cd1/a>, sl1/a>,.,.r6s="line" nam  
L290">.2961/a> 68">cache_revisit_requera>) {.);.cd1/a>, 1arecenLne" nam  
L306"recenL"sree         }.rv1/6>.== -1a href="+code=EAG6IN" c690(1a href="+cL293" clc.cd1/a>, 1are285" ne" nam  
L306"d 285" "sre1/a>) {.ef="net/sunrpc/cache.c#L305" id6rv" class6eq" class="sref">cache_d6fer_r69>(1a href="+c}="net/sunrpc/cache.c#L204" id 6rcode=EAG6/spav2.cacvoid 
L303" class="ll1/a>,/e.c#,.,/e.c#,.rv1/a>.=.1a href=6+code69che_make_upcail" class="sref">detail1/a>,.,.age1/a>6ass="sref">rv1/a>.== -1a6href=69code=EAGAIN" d"="sref">rqstp1/a>).<  
L"f="+code=cache_req"  
L"f="+"sreef">rqstp1/a>)..3041/a>}pend253" idef="net/sunrpc/cache.c#L305" id6rL259" cl6" class="sref">rv1/a>.=.61a hr69="+co                1spav class="c6o"sref">r60" id 
L300" class="line6 nam 69     if (1a href="+code=rv" class="7301" id 
7301" class="line" nam  
7301">70"+code=try_to#L306" id 
L306INIT_LIST_HEA="+code=flags" cINIT_LIST_HEA=che.c1/a>);..3041/a>}pend253" id>f="net/sunrpc/cache.c#L307" id 7311" id 
73q" class="sref">cache_d7che.c70>(1a href="+code=old" class=spin"line" nam  
L238">.spin"lineche.c1/a>);.." clasdefer"lineche.>ef="net/sunrpc/cache.c#L305" id7t" class=7sref">cache_put1/a>(1a h7ef="+70de=h"="net/sunrpc/cache.c#L307" id 7t3 class=7sequest was not deferred7/cach70/a>(1a href="
L303" class="l  
L"for_ecla""nam _saf L304">.3041/a>}  
L"for_ecla""nam _saf che.cL257" class="lind 
ne" nam  
L306"dd 
" idla#L306" id 
L306tmpcode=cache_req"tmp" idgs1/a>);..3061defer"l 
Lche.la#L306" id 
L306d cenLne" nam  
L306"recenL"sree                  1spav class="c7
L305" cl7ss="line" nam  
L305">.3751/a>70">cache_revis93" id 
AIN1L257" class="lind 
ne" nam  
L306"dd 
" idss="sref">cd1/a>, 1aownerne" nam  
L306"ownerche.L++code=h" class="sownerne" nam  
L306"ownerche.)                  1spav class="c7
5305" cl7s/spav2.detaind 
ne" nam  
L306"dd 
" id ef="net/sunrpc/cache.c#L305" id7
6305" cl7ssref">rv1/a>.=.1a href=71/a>170che_make_upcall1/a>(1a href="
L303" class="l  
L"addsunrpc/cache.c#  
L"addche.c1/a>);.cd1/a>, 1arecenLne" nam  
L306"recenL"sregs1/a>);..3041/a>}pend253" id>f="net/sunrpc/cache.c#L307" id 7
7305" cl7sss="sref">rv1/a>.== -1a7" cla70code=EAGAIN" class="sf="net/sunrpc/cache.c#L204" id 738305" cl7s class="sref">rv1/a>.=.7 href70>(1a href="+cf="net/sunrpc/cache.c#L204" id 739305" cl7s" id 
L300" class="line7spav270e=detail" class="sref">detaispin"/a>->1a href="+codspin"/a>-&gche.c1/a>);.." clasdefer"lineche.>ef="net/sunrpc/cache.c#L305" id7ter into 7hat list and into the ta7le1/s71011/a="net/sunrpc/cache.c#L307" id 7.1/spav2.7a href="net/sunrpc/cache7c#L3171>(1a href="+cwhileN1" class="sref">r  
L"">.31sunrpc/cache.c#  
L"">.31che.c1/a>);..3041/a>}pend253" id>                   1spav class="c7="net/sun7pc/cache.c#L313" id 
L317" cla71.c#L293" id 
L293" cl/a>) {.) {..3041/a>}pend253" id.>cache_head1/a>am  a href="+code=cam      llclass="sref">cd1/a>, sl1/a>,.,.) {.);.cd1/a>, 1arecenLne" nam  
L306"recenL"sree         }.cache_revisit_requec.cd1/a>, 1are285" ne" nam  
L306"d 285" "sre1/a>) {. *1/spav2. *1/spav2. *1/spav2.(19;1/spav2. *1/spav2.cac9;1/spav2. *1/spav2..2771/a>72che_m9;1/spav2.;..2271/a> 72sunrpc/cache.c#L319" id 
L3"*6/o L315ess=ass=may wakeup=ass=preced253n#L"+ers1spav class="comment"> *1/spav2.(&1a hr7f="+c72t cache1/spav2. *1/spav2.rv1/a>.=71a href="+code=cache_is_7alid"73v2.3rom6/315  
L1spav class="comment"> *1/spav2.1/spav2.7>.!= -1a href="+code=EAG7IN" c73 that table1/spav2. *1/spav2."net/sun7s="sref">write_unlock1/a7(&73ll'1/spav2.rv1/a>;.73_valid" clas/a>) {..2841DEFINE_SPINLOCK"sre1/a>) {..2521/"line"sree         }.) {..2841DEFINE_MUTEX"sre1/a>) {..2521/"io_mutex"sree         }.cache_fresh_locke71/a>(73av class="comment">/*1/spav2.write_unlock1/a>(&17 href73code=class="sref">cd1/a>, sl1/a>,2521/ne" nam  
L306"l1/a>,2521/ clas                 1spav class="c728net/sun7s="sref">cache_fresh_unl7cked1738 class="lined"="sref">rqstp1/a>).<  
L"f="+code=cache_req"  
L"f="+"sreecode=CAra>) {.ENOENT1/a>;..2711/a>74"+cod}         }.rv1/7s="line" nam  
L242">.2471/a>1741 clail" class="sref">detail1/a>,d 
L285ne" nam  
L306"l1/a>,d 
L285che.s                 1spav class="c7
;full%pc/cache.c#L243" id 
L247" cla742 class="lined"="sref">rqstp1/a>).,2521/ne" nam  
L306"l1/a>,2521/ clasref="
L303" class="l
ne" nam  
L306"
" idef="net/sunrpc/cache.c#L305" id7
"net/sun7e management routine for7all1/74/a>(1a href="class="sref">cd1/a>, sl1/a>,f="+code=cache_req" class="sref">cccccccache_req1/a> *1a" em 
L275">.2751/a" em3" ief="net/sunrpc/cache.c#L305" id7
table an7s.1/spav2.cache_revischarupcall1/a>(1a href="*s/a>) {..303buf3" ief="net/sunrpc/cache.c#L305" id7
 in part7f a.cache item and will 7later745=detail" claf="+upcall1/a>(1a href="
L303" class="lle#am  
L303">.303le#3" ief="net/sunrpc/cache.c#L305" id7
6305" cl7ll it if needed.1/spav2.7a hre746=detail" claf="+upcall1/a>(1a href="
L303" class="lrL"+eram  
L284">.2841rL"+era3" ief="net/sunrpc/cache.c#L305" id7
7305" cl7pc/cache.c#L248" id 
L247" cla74oot" }         }.detail1/a>,d "+erne" nam  
L306"l1/a>,d "+erche.s                 1spav class="c7
9net/sun7ead can be used, or cach7_puts74L300">.3001/aclass="sref">cd1/a>, sl1/a>,2521/ne" nam  
L306"l1/a>,2521/ clasref="
L303" class="l
ne" nam  
L306"
" idef="net/sunrpc/cache.c#L305" id7all is pe7ding and request has bee7 queu75ss="sref">EAGA="+upcall1/a>(1a href="
L303" class="loffse5ne" nam  
L306"offse5" idelc96" id 
L296" class="d 
AINnon-0,sw1523ve a L30c="+onnam   d 
L285 *                        1a href="+code7aef">rv1/7led or request could not7be qu75>(1a }         }.(1d" clas/a>) {.rqstp1/a>).,d "+ne" nam  
L306"l1/a>,d "+"sre1class="sref">cd1/a>, sfilene" nam  
L306"file" id 
L257" class="lifilpcode=cache_req"filp" idlacharu#L306" id 
L306__userne" nam  
L306"__user" id 
L257" class="libufam  
L303">.303buf3" ila#L306" id 
L306size_5ne" nam  
L306"size_5"sreef">rqstp1/a>).cache_revisit_reque(1a href="
L303" class="lloff_5ne" nam  
L306"loff_5" id 
L257" class="lippoam  
L284">.2841ppoa    llclass="sref">cd1/a>, sl1/a>,.,.(struct.1a hr7f="+c75che_make_upcail" class="sref">detail1/a>,d "+erne" nam  
L306"l1/a>,d "+erche.s
L257" class="lidpcode=cache_req"rp" id = /a>) {.cd1/a>, 1aprivate_datam  
L284">.2841private_data" idef="net/sunrpc/cache.c#L305" id7a7305" cl7ead" class="sref">cache_7ead1/75code=EAGAIN" d"="sref">rqstp1/a>).,d 
L285ne" nam  
L306"l1/a>,d 
L285che.s
L257" class="lid
ne" nam  
L306"d
" idef="net/sunrpc/cache.c#L305" id7a"net/sun7ss="line" nam  
L259">.2791/a>758 class="lined"="sref">rqstp1/a>)., L304">.3041/a>}in>, " id 
L257" class="liin>, L304">.3041/a>}in>, " id = /a>) {.cd1/a>, 1af_pat=sunrpc/cache.c#f_pat=" id.>cache_head1/a>d"nam ef="net/sunrpc/d"nam che.ss="sref">cd1/a>, 1a._in>, L304">.3041/a>}._in>, " idef="net/sunrpc/cache.c#L305" id7a9net/sun7>;.cd1/a>, 1aerrne" nam  
L306"err" idef="net/sunrpc/cache.c#L305" id7" class="7ref">refresh_age1/a>, 1a7href=76011/a="net/sunrpc/cache.c#L307" id 7L262" cla7s="line" nam  
L262">.2671/a> 761 class="lineAIN1/a>) {..2671/a> 76">cache_revisL257" class="limutex"line" nam  
L238">.mutex"lineche.c1/a>);..3041/a>}in>, " idss="sref">cd1/a>, 1a"_mutex" nam  
L238">.i_mutex"sree lc96" id 
L296" class="d 
protesreagain85 multipl15"oncurrenL"s                     1a href="+code7d in part7nt.to start an upcall */7/spav76e.c#L296" id 
L296" class="//////////////////////////////*=rL"+ers o/n/ 
L3fileN*                        1a href="+code7d"net/sun7refresh_age1/a>.=.(1a hr7f="+c76che_maref">cd1/a>, 1aagain" nam  
L238">.againhe_m:                1a href="+code7d7305" cl7=.1a href="+code=seconds7since76oot" class="sref">seconds_sispin"line" nam  
L238">.spin"lineche.c1/a>);..2521/"line"sree         }..2671/a> 76="+code=ETIMEc96" id 
L296" class="d 
ass="linfindnam   d 
L285 *                        1a href="+code7="sref">r7stp1/a> ==.1a href="+cod7=NULL76e=detail" clawhileN1L257" class="lidpcode=cache_req"rp" idss="sref">cd1/a>, 1a
ne" nam  
L306"
" id.>cache_head1/a>  
Lcode=cache_req"  
L" id.>cache_head1/a>am  a href="+code=cam       != 1/a>);.cd1/a>, 1a
521/ne" nam  
L306"2521/ clas1/a>)1/a>)                1a href="+code7class="sr7f">rv1/a>.== -1a href="+7ode=E770(1a href="+cL293" c/a>) {.cd1/a>, 1a
ne" nam  
L306"
" id.>cache_head1/a>  
Lcode=cache_req"  
L" id.>cache_head1/a>am  a href="+code=cam      llclass="sref">cd1/a>, sl1/a>,2521/ne" nam  
L306"l1/a>,2521/ clala#L306" id 
L306l 
Lcode=cache_req"  
L" idef="net/sunrpc/cache.c#L305" id7rv" class7"sref">rv1/a>.=.-1a href7"+cod77" class="lineeeeeeeess="sref">cd1/a>, 1are"+erne" nam  
L306"d "+er" id                   1spav class="c7cecide re7">rv1/a>.== -1a href="+c7de=EA77.c#L293" id 
L293" cld"="sref">rqstp1/a>).<  
L"f="+code=cache_req"  
L"f="+"sree
L257" class="liam  a href="+code=cam       = /a>) {.cd1/a>, 1a
ne" nam  
L306"
" id.>cache_head1/a>  
Lcode=cache_req"  
L" id.>cache_head1/a>am  a href="+code=cam      )                1a href="+code7cache ite7ef">dprintk1/a>(1spav cl7ss="s77/a>(1a href="+code=CAra>) {.);.cd1/a>, 1a
ne" nam  
L306"
" id.>cache_head1/a>  
Lcode=cache_req"  
L" idla#L306" id 
L306am  a href="+code=cam      e         }.7efres77">cache_revis}="net/sunrpc/cache.c#L204" id 7  if we w7bit" class="sref">test_a7d_set77" class="lineAIN1/a>) {.cd1/a>, 1a
ne" nam  
L306"
" id.>cache_head1/a>  
Lcode=cache_req"  
L" id.>cache_head1/a>am  a href="+code=cam      L++c1/a>);.cd1/a>, 1a
521/ne" nam  
L306"2521/ cla                   1spav class="c7c"net/sun7che_make_upcall" class="7ref">77che_make_upcall1/a>(1ref">seconds_sispin"/a>->1a href="+codspin"/a>-&gche.c1/a>);..2521/"line"sree         }.EINVAL17a>:.<77code=EAGAIN" class="sL257" class="limutex"/a>->1a href="+codmutex"/a>-&gche.c1/a>);..3041/a>}in>, " idss="sref">cd1/a>, 1a"_mutex" nam  
L238">.i_mutex"sree         }.cl7ar_bi77="+code=ETIMEDOUT" cl/a>) {..BUG_ONche.c#L306" id 
L306dpcode=cache_req"rp" idss="sref">cd1/a>, 1aoffse5ne" nam  
L306"offse5" ide         }.r7che_revisit_request" cla7s="sr77">cache_revisit_reque304" cl0ef="net/sunrpc/cache.c#L305" id7="+code=r7" class="sref">rv1/a>.=.7a hre780(1a href="+c}="net/sunrpc/cache.c#L204" id 7=v" class7et/sunrpc/cache.c#L282" 7d 
L278>(1a href="+code=old" class=d
ne" nam  
L306"d
" id = /a>) {..303"ontainer_ofche.c#L306" id 
L306dpcode=cache_req"rp" idss="sref">cd1/a>, 1a
ne" nam  
L306"
" id.>cache_head1/a>  
Lcode=cache_req"  
L" id.>cache_head1/a>am  a href="+code=cam      llclass="sref">cd1/a>, sl1/a>,d 
L285ne" nam  
L306"l1/a>,d 
L285che.la#L306" id 
L306
ne" nam  
L306"
" id.>cache_head1/a>  
Lcode=cache_req"  
L" ide         }.EAGAIN17a>:.<78.c#L293" id 
/a>) {..BUG_ONche.c#L306" id 
L306d
ne" nam  
L306"d
" idss="sref">cd1/a>, 1a
ne" nam  
L306"
" id.>cache_head1/a>re"+erne" nam  
L306"d "+er" id          }.cl7ar_bi78/a>(1a href="AIN1/a>) {.cd1/a>, 1aoffse5ne" nam  
L306"offse5" idL++c0ef="net/sunrpc/cache.c#L305" id7=ion cach7che_revisit_request" cla7s="sr78">cache_revisit_requec.cd1/a>, 1arL"+eram  
L284">.2841rL"+era3" i++         }.->1a href="+codspin"/a>-&gche.c1/a>);..2521/"line"sree         }./*1/spav2.age1/a>78" id 
L288" class="line7 nam 78oot" class="sAIN1/a>) {.cd1/a>, 1aoffse5ne" nam  
L306"offse5" idL++c0s1/a>)1/a>) " class="sref">rte
L"NG1/a>, &1a hrte
L"NG1che.c#L306" id 
L306a>->1a href="+code=flags" class="sref">flags1/a>);.cd1/a>, 1a" em 
L275">.2751/a" em3" iss="sref">cd1/a>, 1ae" nam  
L284">.2841/a>       >                  1spav class="c7=L259" cl7289" class="line" nam  
7289">78="+code=ETIMEDOUT" cl/a>) {.) {..EAGAIN    )                1a href="+code7="sref">r7s="line" nam  
L290">.2971/a> 78">cache_revisit_requera>) {..spin"lineche.c1/a>);..2521/"line"sree         }.rv1/7>.== -1a href="+code=EAG7IN" c790(1a href="+cL293" clc.);.cd1/a>, 1a
ne" nam  
L306"
" id.>cache_head1/a>  
Lcode=cache_req"  
L" idla1/a>);.cd1/a>, 1a
ne" nam  
L306"
" id.>cache_head1/a>  
Lcode=cache_req"  
L" ide         }.cache_d7fer_r79" class="lineeeeeeeeeL257" class="lispin"/a>->1a href="+codspin"/a>-&gche.c1/a>);..2521/"line"sree         }.EA                  1spav class="c7rclass="s7Request was not deferred7 hand79/a>(1a href="+code=CAAIN1/a>) {.cd1/a>, 1aoffse5ne" nam  
L306"offse5" idL+ef">rqstp1/a>).cd1/a>, 1ale#am  
L303">.303le#3" ief="net/sunrpc/cache.c#L305" id7        *7we can ourselves:1/spav27cache_revisit_reque(1a href/a>) {.cd1/a>, 1ale#am  
L303">.303le#3" i - /a>) {.cd1/a>, 1aoffse5ne" nam  
L306"offse5" idef="net/sunrpc/cache.c#L305" id7  if we w71/spav2.) {.) {..EFAULT" idef="net/sunrpc/cache.c#L305" id7 unrpc/ca7"sref">rv1/a>.=.1a href=7+code79che_make_upcall1/a>(1AIN1/a>) {..303buf3" ila#L306" id 
L306d
ne" nam  
L306"d
" idss="sref">cd1/a>, 1abufam  
L303">.303buf3" iL+ef">rqstp1/a>).cd1/a>, 1aoffse5ne" nam  
L306"offse5" idla#L306" id 
L306fous5ne" nam  
L306"lous53" i >="net/sunrpc/cache.c#L307" id 7r>age1/a>7ass="sref">rv1/a>.== -1a7href=79code=EAGAIN" class="sref">EAGgoto"
L303" class="lou5ne" nam  
L306"ou5" idef="net/sunrpc/cache.c#L305" id7 L259" cl7" class="sref">rv1/a>.=.71a hr79="+code=ETIMEDOUT" cl/a>) {.cd1/a>, 1aoffse5ne" nam  
L306"offse5" idL+= /a>) {.r70" id 
L300" class="line7 nam 79">cache_revisit_requeAIN1/a>) {.cd1/a>, 1aoffse5ne" nam  
L306"offse5" idLs="s+he.c#L273" id 
Ld
ne" nam  
L306"d
" idss="sref">cd1/a>, 1ale#am  
L303">.303le#3" i>                  1spav class="c8301" id 
8301" class="line" nam  
8301">800(1a href="+cL293" clDOUT" cl/a>) {.cd1/a>, 1aoffse5ne" nam  
L306"offse5" idL=l0ef="net/sunrpc/cache.c#L305" id8311" id 
83q" class="sref">cache_d8che.c80" class="lineeeeeeeeeDOUT" cl/a>) {..spin"lineche.c1/a>);..2521/"line"sree         }.cache_put1/a>(1a h8ef="+80.c#L293" id 
L293" clail" class="sref">detai  
L"movscode=cache_req"  
L"movsche.c1/a>);.cd1/a>, 1a
ne" nam  
L306"
" id.>cache_head1/a>  
Lcode=cache_req"  
L" idla1/a>);.cd1/a>, 1a
ne" nam  
L306"
" id.>cache_head1/a>  
Lcode=cache_req"  
L" ide         }.->1a href="+codspin"/a>-&gche.c1/a>);..2521/"line"sree         }..3851/a>80">cache_revis93" id 
}="net/sunrpc/cache.c#L204" id 8
5305" cl8s/spav2.) {.rv1/a>.=.1a href=81/a>180che_make_upca}="net/sunrpc/cache.c#L204" id 8
7305" cl8sss="sref">rv1/a>.== -1a8" cla80code=E
L303" class="lou5ne" nam  
L306"ou5" id:                1a href="+code838305" cl8s class="sref">rv1/a>.=.8 href80>(1a href="+cAIN1/a>) {.cd1/a>, 1aoffse5ne" nam  
L306"offse5" idL++c0e                  1spav class="c839305" cl8s" id 
L300" class="line8spav280">cache_revisit_requer96" id 
L296" class="d 
ass="linreleaEA rq *                        1a href="+code8ter into 8hat list and into the ta8le1/s810(1a href="+cL293" clc..spin"lineche.c1/a>);..2521/"line"sree         }.cd1/a>, 1arL"+eram  
L284">.2841rL"+era3" i--         }.) {.cd1/a>, 1arL"+eram  
L284">.2841rL"+era3" iL++c0s1/a>)1/a>)        }.rte
L"NG1/a>, &1a hrte
L"NG1che.c#L306" id 
L306a>->1a href="+code=flags" class="sref">flags1/a>);.cd1/a>, 1a" em 
L275">.2751/a" em3" iss="sref">cd1/a>, 1ae" nam  
L284">.2841/a>       >          }.cache_revisit_requeeeeeeeeeL257" class="li  
L"cllcode=cache_req"  
L"cllche.c1/a>);.cd1/a>, 1a
ne" nam  
L306"
" id.>cache_head1/a>  
Lcode=cache_req"  
L" ide         }.->1a href="+codspin"/a>-&gche.c1/a>);..2521/"line"sree         }.(1a href="
L303" class="ll1/a>,pu5ne" nam  
L306"l1/a>,pu5che.c#L306" id 
L306d
ne" nam  
L306"d
" idss="sref">cd1/a>, 1a" em 
L275">.2751/a" em3" i, 
L303" class="ll+ne" nam  
L306"ln"sree         }.EAG
L303" class="lkfreene" nam  
L306"kfreeche.c#L306" id 
L306d
ne" nam  
L306"d
" idss="sref">cd1/a>, 1abufam  
L303">.303buf3" ie         }.EAG
L303" class="lkfreene" nam  
L306"kfreeche.c#L306" id 
L306d
ne" nam  
L306"d
" ide         }.cache_revisit_reque}
">EA        }.) {.->1a href="+codspin"/a>-&gche.c1/a>);..2521/"line"sree         }.) {.) {..EAGAIN    >="net/sunrpc/cache.c#L307" id 8=_cache i8pc/cache.c#L324" id 
L328" cla82/a>(1a href="+code=CAgoto"
L303" class="lagain" nam  
L238">.againhe_m         }.cache_revisL257" class="limutex"/a>->1a href="+codmutex"/a>-&gche.c1/a>);..3041/a>}in>, " idss="sref">cd1/a>, 1a"_mutex" nam  
L238">.i_mutex"sree         }.) {..2871/a>82="lin}="net/sunrpc/cache.c#L204" id 8=7305" cl8>;..2281/a> 828 clail clas/a>) {.rqstp1/a>).,do,downcalef="+code=cache_l1/a>,.o,downcaleche.ccharu
L257" class="likaddrne" nam  
L306"kaddr3" i, con85 charu#L306" id 
L306__userne" nam  
L306"__user" id 
L257" class="libufam  
L303">.303buf3" il1a href="+code=cache_fresh_unl8d9305" cl8rite_lock1/a>(&1a hr8f="+c82">cache_revisit_requecL293" clDOUT" cl/a>) {.rqstp1/a>).cd1/a>, sl1/a>,.,.rv1/a>.=81a href="+code=cache_is_8alid"83ss="s                 1spav class="c8>1/spav2.8>.!= -1a href="+code=EAG8IN" c83>(1a href="+code=old" class=ssize_5ne" nam  
L306"ssize_5"sreef">rqstp1/a>)."net/sun8s="sref">write_unlock1/a8(&83de=h"="net/sunrpc/cache.c#L307" id 8r"net/sun8sref">rv1/a>;.) {.83">cache_revisit_reque304" cl-/a>) {..EINVAL" idef="net/sunrpc/cache.c#L305" id8>5305" cl8bit1/a>(1a href="+code=C8CHE_N83" class="lineAIN1/a>) {..303buf3" ila#L306" id 
L306fous5ne" nam  
L306"lous53" i >="net/sunrpc/cache.c#L307" id 826305" cl8"sref">cache_fresh_locke81/a>(83che_make_upcall1/a>(1304" cl-/a>) {..EFAULT" idef="net/sunrpc/cache.c#L305" id8r7305" cl8>write_unlock1/a>(&18 href83oot" class="sref">seconds_sikaddrne" nam  
L306"kaddr3" i[/a>) {.'\0'       ef="net/sunrpc/cache.c#L305" id8r8net/sun8s="sref">cache_fresh_unl8cked1838 class="linef">rqstp1/a>).) {.cd1/a>, 1al1/a>,pars/ne" nam  
L306"l1/a>,pars/che.c#L306" id 
L306"+ne" nam  
L306"ln"srela#L306" id 
L306kaddrne" nam  
L306"kaddr3" i, #L306" id 
L306fous5ne" nam  
L306"lous53" i ef="net/sunrpc/cache.c#L305" id8r9305" cl8f">ENOENT1/a>;.rre5ne" nam  
L306"re5" id>="net/sunrpc/cache.c#L307" id 8
L241" cl8ss="line" nam  
L241">.2811/a>840(1a href="+cL293" clc.) {.rv1/8s="line" nam  
L242">.2481/a>184>(1a href="+c304" class="line" nam re5ne" nam  
L306"re5" idef="net/sunrpc/cache.c#L305" id8
;full&pc/cache.c#L243" id 
L248" cla84.c#L2f="net/sunrpc/cache.c#L204" id 8
"net/sun8e management routine for8all1/84tic.1a href="+code=inline" class="s8
table an8s.1/spav2.) {.rqstp1/a>).,slow,downcalef="+code=cache_l1/a>,slow,downcaleche.ccon85 charu#L306" id 
L306__userne" nam  
L306"__user" id 
L257" class="libufam  
L303">.303buf3" il1a href="+code=cache_fresh_unl8
 in part8f a.cache item and will 8later84" class="line" nam  
L293" cl clDOUT" cl/a>) {.rqstp1/a>).cd1/a>, sl1/a>,.,..303write_buf3" i[8192] lc96" id 
L296" class="d 
protesred5by 2521/"io_mutex *                        1a href="+code8="net/sun8pc/cache.c#L249" id 
L248" cla848 class="linef">rqstp1/a>).rqstp1/a>).) {..EINVAL" idef="net/sunrpc/cache.c#L305" id8
9net/sun8ead can be used, or cach8_puts84     if (1a href="+code=rv" class="8all is pe8ding and request has bee8 queu85ss="sref">EAGAIN1/a>) {..303write_buf3" i >="net/sunrpc/cache.c#L307" id 8aef">rv1/8led or request could not8be qu85" class="lineeeeeeeeegoto"
L303" class="lou5ne" nam  
L306"ou5" idef="net/sunrpc/cache.c#L305" id8a;full&ed but item is still inv8lid (85.c#L293" id 
/a>) {..mutex"lineche.c1/a>);..2521/"io_mutex"sree         }.) {.,.o,downcaleche.c/a>) {..303write_buf3" i, #L306" id 
L306bufam  
L303">.303buf3" ila#L306" id 
L306fous5ne" nam  
L306"lous53" i, 
L303" class="ll+ne" nam  
L306"ln"sree         }.cache_revisL257" class="limutex"/a>->1a href="+codmutex"/a>-&gche.c1/a>);..2521/"io_mutex"sree         }.(struct.1a hr8f="+c85che_make_upca304" class="line" nam re5ne" nam  
L306"re5" idef="net/sunrpc/cache.c#L305" id8a7305" cl8ead" class="sref">cache_8ead1/85code=f="net/sunrpc/cache.c#L204" id 8a"net/sun8ss="line" nam  
L259">.2891/a>85="+co                1spav class="c8a9net/sun8>;.rqstp1/a>).,downcalef="+code=cache_l1/a>,.owncaleche.cclass="sref">cd1/a>, saddress_e1/c1" nam  
L238">.address_e1/c1" id 
L257" class="limapp253L304">.3041/a>}mapp2533" il1a href="+code=cache_fresh_unl8" class="8ref">refresh_age1/a>, 1a8href=860(1a href="+cL293" clDOUT" clllllllcon85 charu#L306" id 
L306__userne" nam  
L306"__user" id 
L257" class="libufam  
L303">.303buf3" il1a href="+code=cache_fresh_unl8L262" cla8s="line" nam  
L262">.2681/a> 86" class="lineeeeeeeeeDOUT" clUT" cl/a>) {.rqstp1/a>).cd1/a>, sl1/a>,.,.(1a href="class="sref">cd1/a>, spag1" nam  
L238">.pag1" id 
L257" class="lipag1" nam  
L238">.pag1" idef="net/sunrpc/cache.c#L305" id8dion cach8s="line" nam  
L265">.2681/a> 86">cache_revischaru
L257" class="likaddrne" nam  
L306"kaddr3" ief="net/sunrpc/cache.c#L305" id8d in part8nt.to start an upcall */8/spav86" class="lineL257" class="lissize_5ne" nam  
L306"ssize_5"sreef">rqstp1/a>).) {..ENOMEM3" ief="net/sunrpc/cache.c#L305" id8d"net/sun8refresh_age1/a>.=.(1a hr8f="+c86av class="comment">/*1/spav2..2681/a> 86="+code=ETIMEDOUT" clgoto"
L303" class="lou5,slowne" nam  
L306"ou5,slow3" ief="net/sunrpc/cache.c#L305" id8d9net/sun8stp1/a> ==.1a href="+cod8=NULL86     if (1a href="+code=rv" class="8class="sr8f">rv1/a>.== -1a href="+8ode=E870(1a href="+csref">cd1/a>, spag1" nam  
L238">.pag1" id = /a>) {..find_or_create_pag1che.c/a>) {..3041/a>}mapp2533" ilN0,6/a>) {..GFP_KERNEL"sree         }.rv1/a>.=.-1a href8"+cod87" class="lineffN1" class="sref">rpag1" nam  
L238">.pag1" idef="net/sunrpc/cache.c#L305" id8cecide re8">rv1/a>.== -1a href="+c8de=EA87.c#L293" id 
L293" clgoto"
L303" class="lou5,slowne" nam  
L306"ou5,slow3" ief="net/sunrpc/cache.c#L305" id8cache ite8ef">dprintk1/a>(1spav cl8ss="s87tic.1a href="+code=inline" class="s8cion cach8fresh_age" class="sref">8efres87">cache_revisL257" class="likaddrne" nam  
L306"kaddr3" i = /a>) {.) {..pag1" ideef="net/sunrpc/cache.c#L305" id8c in part8bit" class="sref">test_a8d_set87" class="lineL257" class="lire5ne" nam  
L306"re5" id = /a>) {.,.o,downcaleche.c/a>) {..303buf3" ila#L306" id 
L306fous5ne" nam  
L306"lous53" i, 
L303" class="ll+ne" nam  
L306"ln"sree         }.87che_make_upca/a>) {.) {..pag1" ideef="net/sunrpc/cache.c#L305" id8c7305" cl8AL" class="sref">EINVAL18a>:.<87oot" class="sref">seconds_si/a>-&g_pag1" nam  
L238">./a>-&g_pag1che.c/a>) {..pag1" ideef="net/sunrpc/cache.c#L305" id8c"net/sun8ear_bit" class="sref">cl8ar_bi878 class="linef">rqstp1/a>).,d leaEA" nam  
L238">.pag1_l1/a>,d leaEAche.c/a>) {..pag1" ideef="net/sunrpc/cache.c#L305" id8c9net/sun8che_revisit_request" cla8s="sr87">cache_revis304" class="line" nam re5ne" nam  
L306"re5" idef="net/sunrpc/cache.c#L305" id8="+code=r8" class="sref">rv1/a>.=.8a hre880(1a 
L303" class="lou5,slowne" nam  
L306"ou5,slow3" i:                1a href="+code8=v" class8et/sunrpc/cache.c#L282" 8d 
L288>(1a href="+c304" class="line" nam l1/a>,slow,downcalef="+code=cache_l1/a>,slow,downcaleche.c#L306" id 
L306bufam  
L303">.303buf3" ila#L306" id 
L306fous5ne" nam  
L306"lous53" i, 
L303" class="ll+ne" nam  
L306"ln"sree         }.EAGAIN18a>:.<88.c#L2f="net/sunrpc/cache.c#L204" id 8=ache ite8ear_bit" class="sref">cl8ar_bi88tic.1a href="+code=inline" class="s8=ion cach8che_revisit_request" cla8s="sr88_valid" clas/a>) {.rqstp1/a>).,writef="+code=cache_l1/a>,writeche.cclass="sref">cd1/a>, sfilene" nam  
L306"file" id 
L257" class="lifilpcode=cache_req"filp" idlacon85 charu#L306" id 
L306__userne" nam  
L306"__user" id 
L257" class="libufam  
L303">.303buf3" il1a href="+code=cache_fresh_unl8= if we w8et/sunrpc/cache.c#L286" 8d 
L288" class="line" nam  
L293" cl cl/a>) {.rqstp1/a>).rqstp1/a>)..2841ppoa    l1a href="+code=cache_fresh_unl8="net/sun8he.c#L287" id 
L287" cla8s="li88che_make_upcall1/a>(1a href=" " d"="sref">rqstp1/a>).,.,.age1/a>88" id 
L288" class="line8 nam 88oot"                  1spav class="c8=L259" cl8289" class="line" nam  
8289">888 class="lined"="sref">rqstp1/a>)..address_e1/c1" id 
L257" class="limapp253L304">.3041/a>}mapp2533" i = /a>) {.cd1/a>, 1af_mapp253L304">.3041/a>}f_mapp253" idef="net/sunrpc/cache.c#L305" id8=9net/sun8s="line" nam  
L290">.2981/a> 88L300">.3001/aclass="sref">cd1/a>, sin>, L304">.3041/a>}in>, " id 
L257" class="liin>, L304">.3041/a>}in>, " id = /a>) {.cd1/a>, 1af_pat=sunrpc/cache.c#f_pat=" id.>cache_head1/a>d"nam ef="net/sunrpc/d"nam che.ss="sref">cd1/a>, 1a._in>, L304">.3041/a>}._in>, " idef="net/sunrpc/cache.c#L305" id8ref">rv1/8>.== -1a href="+code=EAG8IN" c890(1a href="+csref">cd1/a>, sssize_5ne" nam  
L306"ssize_5"sreef">rqstp1/a>).) {..EINVAL" idef="net/sunrpc/cache.c#L305" id8rv" class8eq" class="sref">cache_d8fer_r89" claf="net/sunrpc/cache.c#L305" id8recide re8/spav2.r"+ne" nam  
L306"ln"sress="sref">cd1/a>, 1al1/a>,pars/ne" nam  
L306"l1/a>,pars/che.ef="net/sunrpc/cache.c#L305" id8rclass="s8Request was not deferred8 hand89/a>(1a href="+code=CAgoto"
L303" class="lou5ne" nam  
L306"ou5" idef="net/sunrpc/cache.c#L305" id8        *8we can ourselves:1/spav28cacf="net/sunrpc/cache.c#L305" id8  if we w81/spav2..mutex"lineche.c1/a>);..3041/a>}in>, " idss="sref">cd1/a>, 1a"_mutex" nam  
L238">.i_mutex"sree f="net/sunrpc/cache.c#L305" id8 "net/sun8"sref">rv1/a>.=.1a href=8+code89che_make_upca/a>) {.) {.,.owncaleche.c/a>) {..3041/a>}mapp2533" ilN#L306" id 
L306bufam  
L303">.303buf3" ila#L306" id 
L306fous5ne" nam  
L306"lous53" i, 
L303" class="ll+ne" nam  
L306"ln"sree         }.rv1/a>.== -1a8href=89oot" class="sref">seconds_simutex"/a>->1a href="+codmutex"/a>-&gche.c1/a>);..3041/a>}in>, " idss="sref">cd1/a>, 1a"_mutex" nam  
L238">.i_mutex"sree         }.rv1/a>.=.81a hr89="+co
L303" class="lou5ne" nam  
L306"ou5" id:                1a href="+code8 "sref">r80" id 
L300" class="line8 nam 89">cache_revis304" class="line" nam re5ne" nam  
L306"re5" idef="net/sunrpc/cache.c#L305" id9301" id 
9301" class="line" nam  
9301">900(1a f="net/sunrpc/cache.c#L204" id 9311" id 
93q" class="sref">cache_d9che.c90" claf="net/sunrpc/cache.c#L305" id9t" class=9sref">cache_put1/a>(1a h9ef="+90.c#L2d" clas/a>) {.) {., &1a hr2521/"waG1"sree         }..3951/a>90_valid" clasunsignedaf="+ref">cd1/a>, 1al1/a>,polef="+code=cache_l1/a>,poleche.cclass="sref">cd1/a>, sfilene" nam  
L306"file" id 
L257" class="lifilpcode=cache_req"filp" idlaL257" class="lipole_tablene" nam  
L306"pole_table" id 
L257" class="liwaG1/a>, &1a hrwaG1"srel1a href="+code=cache_fresh_unl9
5305" cl9s/spav2.(1a href=" " d"="sref">rqstp1/a>).,.,.rv1/a>.=.1a href=91/a>1906=det                 1spav class="c9
7305" cl9sss="sref">rv1/a>.== -1a9" cla90oot" class="sunsignedaf="+ref">cd1/a>, 1amasgt;1a href="+codmasg" idef="net/sunrpc/cache.c#L305" id938305" cl9s class="sref">rv1/a>.=.9 href908 class="lined"="sref">rqstp1/a>).,d "+erne" nam  
L306"l1/a>,d "+erche.s
L257" class="lidpcode=cache_req"rp" id = /a>) {.cd1/a>, 1aprivate_datam  
L284">.2841private_data" idef="net/sunrpc/cache.c#L305" id939305" cl9s" id 
L300" class="line9spav290L300">.3001/aclass="sref">cd1/a>, sl1/a>,2521/ne" nam  
L306"l1/a>,2521/ clas
L257" class="lic
ne" nam  
L306"c
" idef="net/sunrpc/cache.c#L305" id9ter into 9hat list and into the ta9le1/s91011/a="net/sunrpc/cache.c#L307" id 9.1/spav2.9a href="net/sunrpc/cache9c#L3191>(1a href="+code=old" class=pole_waG1/a>, &1a hrpole_waG1che.c/a>) {.);., &1a hr2521/"waG1"srelaL257" class="liwaG1/a>, &1a hrwaG1"sree         }.(1a href="c96" id 
L296" class="d 
alway
allow write *                        1a href="+code9.L305" cl9 walks the list in that 9ntry191">cache_revisL257" class="limasgt;1a href="+codmasg" id = /a>) {..POLL_OUT" id | /a>) {..POLLWRNORM" idef="net/sunrpc/cache.c#L305" id9t5305" cl9 can be removed.1/spav2.9a hre91" claf="net/sunrpc/cache.c#L305" id9t6305" cl9pc/cache.c#L317" id 
L319" cla91che_make_upcaffN1" class="sref">rrpcode=cache_req"rp" idef="net/sunrpc/cache.c#L305" id9 7305" cl9:1/spav2.cache_revissref">cd1/a>, sspin"line" nam  
L238">.spin"lineche.c1/a>);..2521/"line"sree         }.(1a href="+cforN1/a>) {.);.cd1/a>, 1a
ne" nam  
L306"
" id;c1/a>);.cd1/a>, 1al 
Lcode=cache_req"  
L" id != 1/a>);.cd1/a>, 1a
521/ne" nam  
L306"2521/ cla         }.) {.cd1/a>, 1al 
Lcode=cache_req"  
L" id.>cache_head1/a>am  a href="+code=cam      llclass="sref">cd1/a>, sl1/a>,2521/ne" nam  
L306"l1/a>,2521/ clala#L306" id 
L306l 
Lcode=cache_req"  
L" ideef="net/sunrpc/cache.c#L305" id9=_cache i9pc/cache.c#L324" id 
L329" cla92/a>(1a href="+code=CAAIN1" class="sref">r"
ne" nam  
L306"c
" idss="sref">cd1/a>, 1are"+erne" nam  
L306"d "+er" id                   1spav class="c9=L305" cl9w often.to scan a table&9uot; 92">cache_revisssssssssssssssssL257" class="limasgt;1a href="+codmasg" id |= /a>) {..POLLIN" id | /a>) {..POLLRDNORM cla         }.(1a hrbd "k         }..2971/a>92che_make_upcall1/a>(1f="net/sunrpc/cache.c#L204" id 9=7305" cl9>;.seconds_sispin"/a>->1a href="+codspin"/a>-&gche.c1/a>);..2521/"line"sree         }..2291/a> 928 class="line304" class="line" nam masgt;1a href="+codmasg" idef="net/sunrpc/cache.c#L305" id9d9305" cl9rite_lock1/a>(&1a hr9f="+c92">cacf="net/sunrpc/cache.c#L204" id 9>rv1/a>.=91a href="+code=cache_is_9alid"93011/a="net/sunrpc/cache.c#L307" id 9>1/spav2.9>.!= -1a href="+code=EAG9IN" c93>(1a d" clasf="+ref">cd1/a>, 1al1/a>,ioctef="+code=cache_l1/a>,iocteche.cclass="sref">cd1/a>, sin>, L304">.3041/a>}in>, " id 
L257" class="liin>L304">.3041/a>}in>    llclass="sref">cd1/a>, sfilene" nam  
L306"file" id 
L257" class="lifilpcode=cache_req"filp" idl="net/sunrpc/cache.c#L307" id 9>" class=9s="sref">write_unlock1/a9(&93.c#L293" id 
L293" clail" clunsignedaf="+ref">cd1/a>, 1alm+ne" nam  
L306"lmn"srelaunsignedalongef">rqstp1/a>)..3041/a>}ar3" idl="net/sunrpc/cache.c#L307" id 9>_cache i9sref">rv1/a>;.rqstp1/a>).,.,.93">cac                 1spav class="c9>5305" cl9bit1/a>(1a href="+code=C9CHE_N93" class="lineA="+ref">cd1/a>, 1ale#am  
L303">.303le#3" i = 0ef="net/sunrpc/cache.c#L305" id926305" cl9"sref">cache_fresh_locke91/a>(93che_make_upcad"="sref">rqstp1/a>).,d "+erne" nam  
L306"l1/a>,d "+erche.s
L257" class="lidpcode=cache_req"rp" id = /a>) {.cd1/a>, 1aprivate_datam  
L284">.2841private_data" idef="net/sunrpc/cache.c#L305" id9r7305" cl9>write_unlock1/a>(&19 href937he_make_upcad"="sref">rqstp1/a>).,2521/ne" nam  
L306"l1/a>,2521/ clas
L257" class="lic
ne" nam  
L306"c
" idef="net/sunrpc/cache.c#L305" id9r8net/sun9s="sref">cache_fresh_unl9cked193="+co                1spav class="c9r9305" cl9f">ENOENT1/a>;.cd1/a>, 1alm+ne" nam  
L306"lmn"sre != ref">cd1/a>, 1aFIONREADne" nam  
L306"FIONREAD" id ||A" class="sref">rrpcode=cache_req"rp" idef="net/sunrpc/cache.c#L305" id9
L241" cl9ss="line" nam  
L241">.2911/a>940(1a href="+cL293" cl304" cl-/a>) {..EINVAL" idef="net/sunrpc/cache.c#L305" id9
ef">rv1/9s="line" nam  
L242">.2491/a>194" claf="net/sunrpc/cache.c#L305" id9
;full'pc/cache.c#L243" id 
L249" cla94.c#L293" id 
/a>) {..spin"lineche.c1/a>);..2521/"line"sree         }.cache_revisL96" id 
L296" class="d 
only find the le#gthl30mainingei idurrass d 
L285,                       1a href="+code9
 in part9f a.cache item and will 9later94" claL96" id 
L296" class="cL293" cl 
or the le#gthlof the am   d 
L285ch                     1a href="+code9
6305" cl9ll it if needed.1/spav2.9a hre946=detL96" id 
L296" class="cL293" cl                         1a href="+code9
7305" cl9pc/cache.c#L248" id 
L249" cla94code=EAGAIN" forN1/a>) {.);.cd1/a>, 1a
ne" nam  
L306"
" id;c1/a>);.cd1/a>, 1al 
Lcode=cache_req"  
L" id != 1/a>);.cd1/a>, 1a
521/ne" nam  
L306"2521/ cla         }.) {.cd1/a>, 1al 
Lcode=cache_req"  
L" id.>cache_head1/a>am  a href="+code=cam      llclass="sref">cd1/a>, sl1/a>,2521/ne" nam  
L306"l1/a>,2521/ clala#L306" id 
L306l 
Lcode=cache_req"  
L" ideef="net/sunrpc/cache.c#L305" id9
9net/sun9ead can be used, or cach9_puts94">cache_revisit_requeAIN1" class="sref">r"
ne" nam  
L306"c
" idss="sref">cd1/a>, 1are"+erne" nam  
L306"d "+er" id                   1spav class="c9all is pe9ding and request has bee9 queu950(1a href="+cL293" clDOUT" cld"="sref">rqstp1/a>).,d 
L285ne" nam  
L306"l1/a>,d 
L285chlas
L257" class="licrne" nam  
L306"lr3" i =                1spav class="c9aef">rv1/9led or request could not9be qu95" class="lineeeeeeeeeeeeeeeeeeeeeeeeeL257" class="licontainer_ofam  
L303">.303container_ofche.c#L306" id 
L306c
ne" nam  
L306"c
" idllclass="sref">cd1/a>, sl1/a>,d 
L285ne" nam  
L306"l1/a>,d 
L285chlala#L306" id 
L306
ne" nam  
L306"
" ide         }.cd1/a>, 1ale#am  
L303">.303le#3" i = L257" class="licrne" nam  
L306"lr3" iss="sref">cd1/a>, 1ale#am  
L303">.303le#3" i - /a>) {.cd1/a>, 1aoffse5ne" nam  
L306"offse5" idef="net/sunrpc/cache.c#L305" id9cache ite9 has been replaced with 9 newe95/a>(1a href="+code=CACHE_PENDbd "k         }.cache_revisssssssssf="net/sunrpc/cache.c#L204" id 9c in part9rpc/cache.c#L256" id 
L296" cl95" class="lineL257" class="lispin"/a>->1a href="+codspin"/a>-&gche.c1/a>);..2521/"line"sree         }.(struct.1a hr9f="+c95av class="comment">/*1/spav2.cache_9ead1/95code=EAGAIN" 304" class="line" nam put_userne" nam  
L306"put_userche.c#L306" id 
L306le#am  
L303">.303le#3" i, (A="+ref">cd1/a>, 1a__userne" nam  
L306"__user" id 
)f">rqstp1/a>)..3041/a>}ar3" ide         }..2991/a>95="+cof="net/sunrpc/cache.c#L204" id 9c9net/sun9>;.refresh_age1/a>, 1a9href=960(1a d" clasf="+ref">cd1/a>, 1al1/a>,ope#am  
L303">.303l1/a>,ope#che.cclass="sref">cd1/a>, sin>, L304">.3041/a>}in>, " id 
L257" class="liin>, L304">.3041/a>}in>, " idllclass="sref">cd1/a>, sfilene" nam  
L306"file" id 
L257" class="lifilpcode=cache_req"filp" idl="net/sunrpc/cache.c#L307" id 9L262" cla9s="line" nam  
L262">.2691/a> 96" class="lineeeeeeeeeDOUT" d"="sref">rqstp1/a>).,.,.(1a href="class="sref">cd1/a>, sl1/a>,d "+erne" nam  
L306"l1/a>,d "+erche.s
L257" class="lidpcode=cache_req"rp" id = /a>) {..NULL" idef="net/sunrpc/cache.c#L305" id9dion cach9s="line" nam  
L265">.2691/a> 96">cacf="net/sunrpc/cache.c#L305" id9d in part9nt.to start an upcall */9/spav96" class="lineAIN1" class="sref">r"+ne" nam  
L306"ln"sre ||A" class="sref">ram _module_ge5ne" nam  
L306"am _module_ge5che.c#L306" id 
L306c+ne" nam  
L306"ln"sress="sref">cd1/a>, 1aownerne" nam  
L306"owner" ideef="net/sunrpc/cache.c#L305" id9d"net/sun9refresh_age1/a>.=.(1a hr9f="+c96che_make_upcall1/a>(1304" cl-/a>) {..EACCES" idef="net/sunrpc/cache.c#L305" id9d7305" cl9=.1a href="+code=seconds9since96oot" class="sref">seconds_sinonseekable,ope#am  
L303">.303nonseekable,ope#che.c#L306" id 
L306in>, L304">.3041/a>}in>, " idllL257" class="lifilpcode=cache_req"filp" ide         }..2691/a> 96>(1a href="+cAIN1/a>) {.cd1/a>, 1af_m>, L304">.3041/a>}f_m>, (1a h1/a>) ref">cd1/a>, 1aFMODE_READne" nam  
L306"FMODE_READ" id                   1spav class="c9d9net/sun9stp1/a> ==.1a href="+cod9=NULL96">cache_revisit_requer257" class="lidpcode=cache_req"rp" id = /a>) {.) {..GFP_KERNEL"sree         }.rv1/a>.== -1a href="+9ode=E970(1a href="+cL293" clffN1" class="sref">rrpcode=cache_req"rp" idef="net/sunrpc/cache.c#L305" id9rv" class9"sref">rv1/a>.=.-1a href9"+cod97" class="lineeeeeeeeeeeeeeeee304" cl-/a>) {..ENOMEM3" ief="net/sunrpc/cache.c#L305" id9cecide re9">rv1/a>.== -1a href="+c9de=EA97.c#L293" id 
L293" cl/a>) {.cd1/a>, 1aoffse5ne" nam  
L306"offse5" id = 0ef="net/sunrpc/cache.c#L305" id9cache ite9ef">dprintk1/a>(1spav cl9ss="s97/a>(1a href="+code=CA;.cd1/a>, 1a
ne" nam  
L306"
" id.>cache_head1/a>re"+erne" nam  
L306"d "+er" id = 1ef="net/sunrpc/cache.c#L305" id9cion cach9fresh_age" class="sref">9efres97">cache_revisssssssssf">rqstp1/a>).);.cd1/a>, 1arL"+eram  
L284">.2841rL"+era3" ie         }.test_a9d_set97" class="line" nam  
/a>) {..spin"lineche.c1/a>);..2521/"line"sree         }.97che_make_upcall1/a>(1/a>) {.);.cd1/a>, 1a
ne" nam  
L306"
" id.>cache_head1/a>l 
Lcode=cache_req"  
L" idla1/a>);.cd1/a>, 1a
521/ne" nam  
L306"2521/ clae         }.EINVAL19a>:.<97code=EAGAIN" class="sL257" class="lispin"/a>->1a href="+codspin"/a>-&gche.c1/a>);..2521/"line"sree         }.cl9ar_bi978 class="linef="net/sunrpc/cache.c#L204" id 9c9net/sun9che_revisit_request" cla9s="sr97">cache_revissref">cd1/a>, sfilpcode=cache_req"filp" idss="sref">cd1/a>, 1aprivate_datam  
L284">.2841private_data" id = /a>) {.rv1/a>.=.9a hre980(1a href="+c304" cl0ef="net/sunrpc/cache.c#L305" id9=v" class9et/sunrpc/cache.c#L282" 9d 
L298>(1a f="net/sunrpc/cache.c#L204" id 9=ecide re9IN" class="sref">EAGAIN19a>:.<98de=h"="net/sunrpc/cache.c#L307" id 9=ache ite9ear_bit" class="sref">cl9ar_bi98tic.1d" clasf="+ref">cd1/a>, 1al1/a>,d leaEA" nam  
L238">.l1/a>,d leaEAche.cclass="sref">cd1/a>, sin>, L304">.3041/a>}in>, " id 
L257" class="liin>, L304">.3041/a>}in>, " idllclass="sref">cd1/a>, sfilene" nam  
L306"file" id 
L257" class="lifilpcode=cache_req"filp" idl="net/sunrpc/cache.c#L307" id 9=ion cach9che_revisit_request" cla9s="sr98">cache_revisssssssssssssssss d"="sref">rqstp1/a>).,.,.rqstp1/a>).,d "+erne" nam  
L306"l1/a>,d "+erche.s
L257" class="lidpcode=cache_req"rp" id = /a>) {.cd1/a>, 1aprivate_datam  
L284">.2841private_data" idef="net/sunrpc/cache.c#L305" id9=>age1/a>98" id 
L288" class="line9 nam 98he.c#1a href="+code=cache_fresh_unl9=L259" cl9289" class="line" nam  
9289">98>(1a href="+cAIN1/a>) {..2991/a> 98">cache_revisit_requer257" class="lispin"line" nam  
L238">.spin"lineche.c1/a>);..2521/"line"sree         }.rv1/9>.== -1a href="+code=EAG9IN" c990(1a href="+cL293" clffN1/a>) {.cd1/a>, 1aoffse5ne" nam  
L306"offse5" ide                  1spav class="c9rv" class9eq" class="sref">cache_d9fer_r99" class="lineeeeeeeeeeeeeeeeed"="sref">rqstp1/a>).,2521/ne" nam  
L306"l1/a>,2521/ clas
L257" class="lic
ne" nam  
L306"c
" idef="net/sunrpc/cache.c#L305" id9recide re9/spav2.) {.);.cd1/a>, 1a
ne" nam  
L306"
" id;c1/a>);.cd1/a>, 1al 
Lcode=cache_req"  
L" id != 1/a>);.cd1/a>, 1a
521/ne" nam  
L306"2521/ cla         }.(1a href="+code=CArevisit_requer257" class="lic
ne" nam  
L306"c
" id = /a>) {.cd1/a>, 1al 
Lcode=cache_req"  
L" id.>cache_head1/a>am  a href="+code=cam      llclass="sref">cd1/a>, sl1/a>,2521/ne" nam  
L306"l1/a>,2521/ clala#L306" id 
L306l 
Lcode=cache_req"  
L" ideef="net/sunrpc/cache.c#L305" id9        *9we can ourselves:1/spav29cache_revisssssssssssssssss 293" clffN1" class="sref">r"
ne" nam  
L306"c
" idss="sref">cd1/a>, 1are"+erne" nam  
L306"d "+er" id                   1spav class="c9  if we w91/spav2.(1a hr=CArevisit_requer257" class="licontainer_ofam  
L303">.303container_ofche.c#L306" id 
L306c
ne" nam  
L306"c
" idllclass="sref">cd1/a>, sl1/a>,d 
L285ne" nam  
L306"l1/a>,d 
L285chlala#L306" id 
L306
ne" nam  
L306"
" ide                1spav class="c9 "net/sun9"sref">rv1/a>.=.1a href=9+code99che_make_upcall1/a>(1a href=" "                      ss="sref">cd1/a>, 1arL"+eram  
L284">.2841rL"+era3" i--         }.rv1/a>.== -1a9href=99code=EAGAIN" class="sssssssssssssssssssssssssbd "k         }.rv1/a>.=.91a hr99="+code=ETIMEDOUT" clllllllllllllllllf="net/sunrpc/cache.c#L204" id 9 "sref">r90" id 
L300" class="line9 nam 99">cache_revisit_requecL293" c/a>) {.cd1/a>, 1aoffse5ne" nam  
L306"offse5" id = 0ef="net/sunrpc/cache.c#L305" id10301" id 
10301"d 
L300" class="line10301>1030>cache_revisit_requef="/pre>="net/sunrpc/cache.c#L305" id10311" id 
103q" class="sref">cache_d103q">103" class="lineeeeeeeee/a>) {.);.cd1/a>, 1a
ne" nam  
L306"
" id.>cache_head1/a>l 
Lcode=cache_req"  
L" ide         }.) {.->1a href="+codspin"/a>-&gche.c1/a>);..2521/"line"sree         }.103tic.1a href="+code=inline" class="s10341" id 
103e can ourselves:1/spav2103e >103">cache_revisssssssssf">rqstp1/a>).cd1/a>, 1aprivate_datam  
L284">.2841private_data" id = /a>) {..NULL" idef="net/sunrpc/cache.c#L305" id10351" id 
103/spav2.) {.rv1/a>.=.1a href=103sr>103av class="comment">/*1/spav2.rv1/a>.== -1a103ss>103code=EAGAIN" class="sL257" class="lic+ne" nam  
L306"ln"sress="sref">cd1/a>, 1a nat_cloEA" nam  
L238">. nat_cloEA" id = /a>) {.rv1/a>.=.103 c>103="+code=ETIMEDOUT" clf">rqstp1/a>).);.cd1/a>, 1arL"+eram  
L284">.2841rL"+era3" ie         }.103">cache_revisf="net/sunrpc/cache.c#L204" id 10101" id 
10hat list and into the ta10hat>10ha>cache_revissref">cd1/a>, smodule_pu5ne" nam  
L306"module_pu5che.c#L306" id 
L306c+ne" nam  
L306"ln"sress="sref">cd1/a>, 1aownerne" nam  
L306"owner" ide         }.10h.c#L2f="net/sunrpc/cache.c#L204" id 10h31" id 
10 called it finds the nex10 ca>10htic.1a href="+code=inline" class="s10141" id 
10 walks the list in that 10 wa>10h">cacf="net/sunrpc/cache.c#L305" id10h51" id 
10 can be removed.1/spav2.10 ca>10h" claf="net/sunrpc/cache.c#L305" id10h61" id 
10pc/cache.c#L317" id 
L3110pc/>10h6ic.1d" clasvoidef">rqstp1/a>).,.<2521/ne" nam  
L306"l1/a>,.<2521/che.cclass="sref">cd1/a>, sl1/a>,.,.cd1/a>, sl1/a>,hL"+f="+code=cache_l1/a>,hL"+ clas
L257" class="lic=sunrpc/cache.c#ch" ide                1spav class="c10h71" id 
10:1/spav2.10h8 class="lined"="sref">rqstp1/a>).,2521/ne" nam  
L306"l1/a>,2521/ clas
L257" class="lic
ne" nam  
L306"c
" idef="net/sunrpc/cache.c#L305" id10h91" id 
10is before the flush_time10is >10h">cache_revissref">cd1/a>, sspin"line" nam  
L238">.spin"lineche.c1/a>);..2521/"line"sree         }.10pc>cache_revissref">cd1/a>, s  
L"for_e/su""nam ef="net/sunrpc/  
L"for_e/su""nam che.c#L306" id 
L306c
ne" nam  
L306"c
" idll1/a>);.cd1/a>, 1a
521/ne" nam  
L306"2521/ clala#L306" id 
L306l 
Lcode=cache_req"  
L" ide        }.10p" class="lineeeeeeeeeffN1" class="sref">r"
ne" nam  
L306"c
" idss="sref">cd1/a>, 1are"+erne" nam  
L306"d "+er" id                   1spav class="c10p21" id 
10; for some definition of10; f>10p.c#L293" id 
L293" clail" cl+d"="sref">rqstp1/a>).,d 
L285ne" nam  
L306"l1/a>,d 
L285chlas
L257" class="licrne" nam  
L306"lr3" i =er257" class="licontainer_ofam  
L303">.303container_ofche.c#L306" id 
L306c
ne" nam  
L306"c
" idllclass="sref">cd1/a>, sl1/a>,d 
L285ne" nam  
L306"l1/a>,d 
L285chlala#L306" id 
L306
ne" nam  
L306"
" ide         }.10p/a>(1a href="+code=CArevisit_ffN1ref">cd1/a>, 1alrne" nam  
L306"lr3" iss="sref">cd1/a>, 1aitemL304">.3041/a>}item" id != L257" class="lic=sunrpc/cache.c#ch" ide                1spav class="c10241" id 
10w often.to scan a table&10w o>10p">cache_revisssssssssssssssss 293" clcontinue         }.10p" class="line" nam  
a>(1a hrffN1ref">cd1/a>, 1alrne" nam  
L306"lr3" iss="sref">cd1/a>, 1arL"+eram  
L284">.2841rL"+era3" i != 0e                1spav class="c10261" id 
10ss="line" nam  
L227">.210ss=>10pche_make_upcall1/a>(1a href=" "      continue         }.;.);.cd1/a>, 1a
ne" nam  
L306"
" id.>cache_head1/a>l 
Lcode=cache_req"  
L" ide         }..2210s=">10p="+code=ETIMEDOUT" clllllllll/a>) {.->1a href="+codspin"/a>-&gche.c1/a>);..2521/"line"sree         }.(&1a hr10rit>10p">cache_revisit_requecL293" c/a>) {.,pu5ne" nam  
L306"l1/a>,pu5che.c#L306" id 
L306crne" nam  
L306"lr3" iss="sref">cd1/a>, 1aitemL304">.3041/a>}item" idla#L306" id 
L306.) {.cd1/a>, 1abufam  
L303">.303buf3" ie         }..!= -1a href="+code=EAG10>.!>101" class="lineeeeeeeeeeeeeeeee/a>) {.write_unlock1/a10s=">101.c#L293" id 
L293" clail" cl+304" c         }.rv1/a>;.101">cache_revisL257" class="lispin"/a>->1a href="+codspin"/a>-&gche.c1/a>);..2521/"line"sree         }.(1a href="+code=C10bit>1015c#L2f="net/sunrpc/cache.c#L204" id 10361" id 
10"sref">cache_fresh_locke10"sr>101av class="comment">/*1/spav2.write_unlock1/a>(&110>wr>101code=L96" id 
L296" class="d                        1a href="+code10181" id 
10s="sref">cache_fresh_unl10s=">1018ode=L96" id 
L296" class=" * Support routines+forNtext-based upcales.                       1a href="+code10191" id 
10f">ENOENT1/a>;.>1019ode=L96" id 
L296" class=" * Fields are separated by e1/c1s.                       1a href="+code10401" id 
10ss="line" nam  
L241">.210ss=>10ssode=L96" id 
L296" class=" * Fields are either mangled to quote e1/c1 tab newam   slosh with slosh                       1a href="+code10411" id 
10s="line" nam  
L242">.2410s=">10s1ode=L96" id 
L296" class=" * orN   exified with a lL"+inge\x                       1a href="+code10421" id 
10pc/cache.c#L243" id 
L2410pc/>10s2ode=L96" id 
L296" class=" * Record isNterminated with newam  .                       1a href="+code10431" id 
10e management routine for10e m>10s3ode=L96" id 
L296" class=" *                       1a href="+code10441" id 
10s.1/spav2.10s" claf="net/sunrpc/cache.c#L305" id10461" id 
10ll it if needed.1/spav2.10ll >10sav clvoidef">rqstp1/a>).10soot"                  1spav class="c10481" id 
10pc/cache.c#L249" id 
L2410pc/>10s="+code=ETIMEcharu*L257" class="libpcode=cache_req"bp3" i =e
L257" class="libppcode=cache_req"bpp" id         }.10se=detail" claf="+ref">cd1/a>, 1ale#am  
L303">.303le#3" i = 
L257" class="lilpcode=cache_req"lp" id         }.10di"+code=ETIMEcharu#L306" id 
L306cne" nam  
L306"l" id         }.10d" claf="net/sunrpc/cache.c#L305" id10d21" id 
10ed but item is still inv10ed >10d.c#L293" id 
AIN1ref">cd1/a>, 1ale#am  
L303">.303le#3" i < 0)+304" c         }.10dtic.1a href="+code=inline" class="s10541" id 
10as negative1/spav2.10d">cache_reviswhile (c#L306" id 
L306cne" nam  
L306"l" id=*L257" class="listrne" nam  
L306"str" id++)l1/a>)1/a>) ref">cd1/a>, 1ale#am  
L303">.303le#3" ie                1spav class="c10551" id 
10rpc/cache.c#L256" id 
L210rpc>10d" class="line" nam  
switchc#L306" id 
L306cne" nam  
L306"l" id                   1spav class="c10561" id 
10e_check1/a>(struct.1a hr10e_c>10dche_make_upcall1/a>(1casesL96" id 
L296str253L>' '       :                1a href="+code10d71" id 
10ead" class="sref">cache_10ead>10dcode=EAGAIN" class="scasesL96" id 
L296str253L>'\t'       :                1a href="+code10d81" id 
10ss="line" nam  
L259">.210ss=>10d="+code=ETIMEDOUT" clcasesL96" id 
L296str253L>'\n'       :                1a href="+code10d91" id 
10>;.cache_revisit_requecasesL96" id 
L296str253L>'\\'       :                1a href="+code10601" id 
10ref">refresh_age1/a>, 1a10ref>10re class="line" nam  
a>(1a hrffN1ref">cd1/a>, 1ale#am  
L303">.303le#3" i >= 4                   1spav class="c10611" id 
10s="line" nam  
L262">.2610s=">10r" class="lineeeeeeeeeeeeeeeeeeeeeeeee*L257" class="libpcode=cache_req"bp3" i++ =er96" id 
L296str253L>'\\'                }.10r.c#L293" id 
L293" clail" cl+eeeeeeee*L257" class="libpcode=cache_req"bp3" i++ =er96" id 
L296str253L>'0'        + (c#L306" id 
L306cne" nam  
L306"l" idh1/a>) 0300)>>6e         }.'0'        + (c#L306" id 
L306cne" nam  
L306"l" idh1/a>) 0070)>>3e         }..2610s=">10r">cache_revisssssssssssssssss 293" cl*L257" class="libpcode=cache_req"bp3" i++ =er96" id 
L296str253L>'0'        + (c#L306" id 
L306cne" nam  
L306"l" idh1/a>) 0007)>>0e         }.10r" class="line" nam  
a>(1a hrf="net/sunrpc/cache.c#L204" id 10661" id 
10refresh_age1/a>.=.(1a hr10ref>10rche_make_upcall1/a>(1a href="ref">cd1/a>, 1ale#am  
L303">.303le#3" i -= 4         }..2610s=">10r="+code=ETIMEDOUT" cldefault:                1a href="+code10691" id 
10stp1/a> ==.1a href="+cod10stp>10r">cache_revisit_requecL293" c*L257" class="libpcode=cache_req"bp3" i++ =erL306" id 
L306cne" nam  
L306"l" id         }.rv1/a>.== -1a href="+10f">>10f"he_make_upcall1/a>(1a href="ref">cd1/a>, 1ale#am  
L303">.303le#3" i--         }.rv1/a>.=.-1a href10"sr>10f" class="lineeeeeeeeef="net/sunrpc/cache.c#L204" id 10721" id 
10">rv1/a>.== -1a href="+c10">r>10f.c#L293" id 
AIN1ref">cd1/a>, 1acne" nam  
L306"l" idh|| /a>) {..303le#3" i <1)+ref">cd1/a>, 1ale#am  
L303">.303le#3" i = -1ef="net/sunrpc/cache.c#L305" id10f31" id 
10ef">dprintk1/a>(1spav cl10ef">10f/a>(1a href="elses                 1spav class="c10741" id 
10fresh_age" class="sref">10fre>10f">cache_revisssssssss*L257" class="libpcode=cache_req"bp3" i++ =er96" id 
L296str253L>' '                }.test_a10bit>10f" class="line" nam  
/a>) {..303le#3" i--         }.EINVAL110AL">10fcode=EAGAIN" 
L257" class="libppcode=cache_req"bpp" id =erL306" id 
L306bpcode=cache_req"bp3" i         }.cl10ear>10f8ode=EAGAIN" 
L257" class="lilpcode=cache_req"lp" id = /a>) {..303le#3" i         }.10f">cacf="net/sunrpc/cache.c#L204" id 10801" id 
10" class="sref">rv1/a>.=.10" c>10" ode=La>) {..EXPORT_SYMBOL_GPLche.c#L306" id 
L306qword"ad+ne" nam  
L306"qword"ad+che.e         }.10"" claf="net/sunrpc/cache.c#L305" id10821" id 
10IN" class="sref">EAGAIN110IN">10"2v clvoidef">rqstp1/a>)..303buf3" i,af="+ref">cd1/a>, 1ab e#am  
L303">.303ble#3" ie                1spav class="c10831" id 
10ear_bit" class="sref">cl10ear>10"3ot"                  1spav class="c10841" id 
10che_revisit_request" cla10che>10"">cache_revischaru*L257" class="libpcode=cache_req"bp3" i =e
L257" class="libppcode=cache_req"bpp" id         }.10"" class="lineA="+ref">cd1/a>, 1ale#am  
L303">.303le#3" i = 
L257" class="lilpcode=cache_req"lp" id         }.10"av class="comment">/*1/spav2.10"code=EAGAIN" AIN1ref">cd1/a>, 1ale#am  
L303">.303le#3" i < 0)+304" c         }.10"="+co                1spav class="c10"91" id 
10s="line" nam  
L290">.2910s=">10"e=detail" claffN1ref">cd1/a>, 1ale#am  
L303">.303le#3" i > 2                   1spav class="c10901" id 
10>.== -1a href="+code=EAG10>.=>10>.>cache_revisssssssss*L257" class="libpcode=cache_req"bp3" i++ =er96" id 
L296str253L>'\\'                }.cache_d10eq">10>" class="lineeeeeeeee*L257" class="libpcode=cache_req"bp3" i++ =er96" id 
L296str253L>'x'                }.) {..303le#3" i -= 2         }.10>/a>(1a href="+code=CAwhile (ref">cd1/a>, 1ab e#am  
L303">.303ble#3" il1/a>)1/a>) ref">cd1/a>, 1ale#am  
L303">.303le#3" i >= 2                   1spav class="c10941" id 
10we can ourselves:1/spav210we >10>">cache_revisssssssssssssssssunsignedacharu#L306" id 
L306cne" nam  
L306"l" id =e
L257" class="libufam  
L303">.303buf3" i++         }.(1a hr*L257" class="libpcode=cache_req"bp3" i++ =er96" id 
L296str253L>'0'        + (c#L306" id 
L306cne" nam  
L306"l" id1/a>)0xf0)>>4) + (#L306" id 
L306cne" nam  
L306"l" id1gt;=0xa0)*(r96" id 
L296str253L>'a'       -r96" id 
L296str253L>'9'       -1e         }.rv1/a>.=.1a href=10"sr>10>che_make_upcall1/a>(1a href="*L257" class="libpcode=cache_req"bp3" i++ =er96" id 
L296str253L>'0'        + (#L306" id 
L306cne" nam  
L306"l" id1/a>)0x0f) + (c#L306" id 
L306cne" nam  
L306"l" id1/a>)0x0f)1gt;=0x0a)*(r96" id 
L296str253L>'a'       -r96" id 
L296str253L>'9'       -1e         }.rv1/a>.== -1a10ass>10>code=EAGAIN" class="sssssssss/a>) {..303le#3" i -= 2         }.rv1/a>.=.10" c>10>="+code=ETIMEDOUT" clllllllll/a>) {..303ble#3" i--         }.10>">cache_revisit_requef="net/sunrpc/cache.c#L204" id 11301" id 
11301"d 
L300" class="line11301>1130>cache_revisf="net/sunrpc/cache.c#L204" id 11311" id 
113q" class="sref">cache_d113q">113" class="lineffN1ref">cd1/a>, 1ab e#am  
L303">.303ble#3" il|| /a>) {..303le#3" i<1)+ref">cd1/a>, 1ale#am  
L303">.303le#3" i = -1ef="net/sunrpc/cache.c#L305" id11321" id 
113spav2.110/a>(1a href="+code=CA*L257" class="libpcode=cache_req"bp3" i++ =er96" id 
L296str253L>' '                }.113">cache_revisssssssssf">rqstp1/a>)..303le#3" i--         }.rv1/a>.=.1a href=113sr>110che_make_upca
L257" class="libppcode=cache_req"bpp" id =erL306" id 
L306bpcode=cache_req"bp3" i         }.rv1/a>.== -1a113ss>110code=EAGAIN" 
L257" class="lilpcode=cache_req"lp" id = /a>) {..303le#3" i         }.rv1/a>.=.113 c>110="+cof="net/sunrpc/cache.c#L204" id 11091" id 
113" id 
L300" class="line113" >113">cacLa>) {..EXPORT_SYMBOL_GPLche.c#L306" id 
L306qword"ad+hexne" nam  
L306"qword"ad+hexche.e         }.111011/a="net/sunrpc/cache.c#L307" id 11111" id 
11a href="net/sunrpc/cache11a h>111>(1a d" clasvoidef">rqstp1/a>).cd1/a>, sl1/a>,.,.111.c#L2                 1spav class="c11131" id 
11 called it finds the nex11 ca>1113 class="lineffN1ref">cd1/a>, 1a.cd1/a>, 1alnat_warnam  
L303">.303lnat_warn clas!= L257" class="li.cd1/a>, 1alnat_cloEA" nam  
L238">. nat_cloEA" id                   1spav class="c11141" id 
11 walks the list in that 11 wa>111">cache_revisssssssssf">rqstp1/a>).<.cd1/a>, 1alnat_warnam  
L303">.303lnat_warn clas= L257" class="li.cd1/a>, 1alnat_cloEA" nam  
L238">. nat_cloEA" id         }.111" class="line" nam  
ffN1ref">cd1/a>, 1a.cd1/a>, 1awarn_no_  
Lenerne" nam  
L306"warn_no_  
Lenerche.e                1spav class="c11161" id 
11pc/cache.c#L317" id 
L3111pc/>111che_make_upcall1/a>(1a href="ref">cd1/a>, 1a.cd1/a>, 1awarn_no_  
Lenerne" nam  
L306"warn_no_  
Lenerche.1ref">cd1/a>, 1a.cd1/a>, 1a nat_cloEA" nam  
L238">. nat_cloEA" id != 0e         }.111="+cof="net/sunrpc/cache.c#L204" id 11h91" id 
11is before the flush_time11is >111     if (1a href="+code=rv" class="11.01" id 
11pc/cache.c#L321" id 
L3211pc/>1120(1a d" clasrL306" id 
L306booef="+code=cache_booeode=Esref">cd1/a>, sl1/a>,  
Leners_ex 
Lcode=cache_req"l1/a>,  
Leners_ex 
Lche.cclass="sref">cd1/a>, sl1/a>,.,.11p" cla                 1spav class="c11p21" id 
11; for some definition of11; f>112.c#L293" id 
AIN1ref">cd1/a>, 1aatomic_rL"+f="+code=cache_atomic_rL"+che.c1/a>);.cd1/a>, 1arL"+eram  
L284">.2841rL"+era3" iee                1spav class="c11231" id 
11pc/cache.c#L324" id 
L3211pc/>11p/a>(1a href="+code=CA304" class="line" nam lasA" nam  
L238">.lasA" id         }.11p">cache_revisffN1ref">cd1/a>, 1a.cd1/a>, 1alnat_cloEA" nam  
L238">. nat_cloEA" id == 0e                1spav class="c11251" id 
11cO the *1/spav2.11p" class="line" nam  
L96" id 
L296" class="d  This  clas was never ope#ed *                        1a href="+code11261" id 
11ss="line" nam  
L227">.211ss=>11pche_make_upcall1/a>(1304" class="line" nam falEA" nam  
L238">.falEA" id         }.;.cd1/a>, 1a.cd1/a>, 1alnat_cloEA" nam  
L238">. nat_cloEA" id < ref">cd1/a>, 1aseconds_since_boo5ne" nam  
L306"seconds_since_boo5che.ce - 30e                1spav class="c11281" id 
11s="line" nam  
L229">.2211s=">11p="+code=ETIMEDOUT" clL96" id 
L296" class="d                        1a href="+code11291" id 
11rite_lock1/a>(&1a hr11rit>1129ode=L96" id 
L296" class="                 * We allow+forNtas possibilityNtaat someone might                       1a href="+code11301" id 
111a href="+code=cache_is_111a >113sode=L96" id 
L296" class="                 * red" rt a usere1/c1 daemon without red" rtingetas                       1a href="+code11311" id 
11>.!= -1a href="+code=EAG11>.!>1131ode=L96" id 
L296" class="                 * server; but after 30 seconds, we give up.                       1a href="+code11321" id 
11s="sref">write_unlock1/a11s=">1132ode=L96" id 
L296" class="                 *                        1a href="+code11331" id 
11sref">rv1/a>;..falEA" id         }.111">cache_revis304" class="line" nam lasA" nam  
L238">.lasA" id         }.(1a href="+code=C11bit>1115c#L2f="net/sunrpc/cache.c#L204" id 11361" id 
11"sref">cache_fresh_locke11"sr>111av class="comment">/*1/spav2.write_unlock1/a>(&111>wr>111code=L96" id 
L296" class="d                        1a href="+code11181" id 
11s="sref">cache_fresh_unl11s=">1118ode=L96" id 
L296" class=" * reg 
Ler " iupcale d 
L285 to user-e1/c1 and 2521/ itiup+forNrL"+ce byetas                       1a href="+code11391" id 
11f">ENOENT1/a>;.>1119ode=L96" id 
L296" class=" * upcale daemon.                       1a href="+code11401" id 
11ss="line" nam  
L241">.211ss=>11ssode=L96" id 
L296" class=" *                       1a href="+code11411" id 
11s="line" nam  
L242">.2411s=">11s1ode=L96" id 
L296" class=" * Ef=" d 
L285 is at mo85 one page long.                       1a href="+code11421" id 
11pc/cache.c#L243" id 
L2411pc/>11s2ode=L96" id 
L296" class=" *                        1a href="+code11431" id 
11e management routine for11e m>11s3ode=A="+ref">cd1/a>, 1a  1a h_l1/a>,pipe_upcalene" nam  
L306"s 1a h_l1/a>,pipe_upcaleche.cclass="sref">cd1/a>, sl1/a>,.,.cd1/a>, sl1/a>,hL"+f="+code=cache_l1/a>,hL"+ clas
L257" class="li=sunrpc/cache.c#h" idl="net/sunrpc/cache.c#L307" id 11s41" id 
11s.1/spav2.cache_revisssssssssvoide1
L257" class="lil1/a>,d 
L285ne" nam  
L306"l1/a>,d 
L285chla)cclass="sref">cd1/a>, sl1/a>,.,.114" class="line" nam  
a>(1a hr=CArevisit_reqclass="sref">cd1/a>, sl1/a>,hL"+f="+code=cache_l1/a>,hL"+ clas
l="net/sunrpc/cache.c#L307" id 11s61" id 
11ll it if needed.1/spav2.11ll >114che_make_upcall1/a>(1a href=" "            charu*
l="net/sunrpc/cache.c#L307" id 11s71" id 
11pc/cache.c#L248" id 
L2411pc/>114code=EAGAIN" class="sssssssssssssssssssssssf="+
ee                1spav class="c11481" id 
11pc/cache.c#L249" id 
L2411pc/>11s="+co                 1spav class="c11491" id 
11ead can be used, or cach11ead>114     if (1a href="+code=rv" class="11501" id 
11ding and request has bee11din>11di"+code=ETIMEcharu
L257" class="libufam  
L303">.303buf3" i         }.115" class="lined"="sref">rqstp1/a>).,d 
L285ne" nam  
L306"l1/a>,d 
L285chlas
L257" class="licr
ne" nam  
L306"cr
" idef="net/sunrpc/cache.c#L305" id11d21" id 
11ed but item is still inv11ed >11d.c#L293" id 
charu*L257" class="libpcode=cache_req"bp3" ief="net/sunrpc/cache.c#L305" id11d31" id 
11 has been replaced with 11 ha>1153 class="linef="+ref">cd1/a>, 1ale#am  
L303">.303le#3" ief="net/sunrpc/cache.c#L305" id11d41" id 
11as negative1/spav2.115">cacf="net/sunrpc/cache.c#L305" id11551" id 
11rpc/cache.c#L256" id 
L211rpc>11d" class="lineffN1" class="sref">r"1/a>,  
Leners_ex 
Lcode=cache_req"l1/a>,  
Leners_ex 
Lche.cL257" class="li.(struct.1a hr11e_c>11dche_make_upcall1/a>(1ref">cd1/a>, 1awarn_no_  
Lenerne" nam  
L306"warn_no_  
Lenerche.1ref">cd1/a>, 1a.cache_11ead>11dcode=EAGAIN" class="s304" cl-/a>) {..EINVAL3" ief="net/sunrpc/cache.c#L305" id11d81" id 
11ss="line" nam  
L259">.211ss=>1158 class="linef="net/sunrpc/cache.c#L204" id 11591" id 
11>;.refresh_age1/a>, 1a11ref>11re class="lineL257" class="libufam  
L303">.303buf3" is= L257" class="likmallocne" nam  
L306"kmallocche.1ref">cd1/a>, 1aPAGE_SIZEne" nam  
L306"PAGE_SIZE" idla#L306" id 
L306GFP_KERNEL" nam  
L238">.GFP_KERNEL" ide         }..2611s=">116" class="lineffN1" class="sref">rbufam  
L303">.303buf3" ie        }.11r.c#L293" id 
L293" cl304" cl-/a>) {..EAGAIN3" ief="net/sunrpc/cache.c#L305" id11631" id 
111a href="+code=cache_is_111a >116tic.1a href="+code=inline" class="s11641" id 
11s="line" nam  
L265">.2611s=">116">cache_revisL257" class="licr
ne" nam  
L306"cr
" ids= L257" class="likmallocne" nam  
L306"kmallocche.1sizeofe1
L257" class="lilr
ne" nam  
L306"cr
" id)la#L306" id 
L306GFP_KERNEL" nam  
L238">.GFP_KERNEL" ide         }.116" class="lineffN1" class="sref">r"r
ne" nam  
L306"cr
" id)                  1spav class="c11661" id 
11refresh_age1/a>.=.(1a hr11ref>11rche_make_upcall1/a>(1L257" class="likfre/ne" nam  
L306"kfre/che.c#L306" id 
L306bufam  
L303">.303buf3" ie         }.) {..EAGAIN3" ief="net/sunrpc/cache.c#L305" id11681" id 
11s="line" nam  
L269">.2611s=">1168 class="linef="net/sunrpc/cache.c#L204" id 11691" id 
11stp1/a> ==.1a href="+cod11stp>116     if (1a href="+code=rv" class="11701" id 
11f">rv1/a>.== -1a href="+11f">>117e class="lineL257" class="libpcode=cache_req"bp3" i =eL257" class="libufam  
L303">.303buf3" i +ref">cd1/a>, 1ale#am  
L303">.303le#3" i = ref">cd1/a>, 1aPAGE_SIZEne" nam  
L306"PAGE_SIZE" idef="net/sunrpc/cache.c#L305" id11f11" id 
11"sref">rv1/a>.=.-1a href11"sr>117" claf="net/sunrpc/cache.c#L305" id11721" id 
11">rv1/a>.== -1a href="+c11">r>11f.c#L293" id 
f">rqstp1/a>).,d 
L285ne" nam  
L306"l1/a>,d 
L285chla1ref">cd1/a>, 1a.);.);..303le#3" ieef="net/sunrpc/cache.c#L305" id11f31" id 
11ef">dprintk1/a>(1spav cl11ef">117tic.1a href="+code=inline" class="s11741" id 
11fresh_age" class="sref">11fre>117">cache_revisffN1ref">cd1/a>, 1ale#am  
L303">.303le#3" i < 0)+                 1spav class="c11751" id 
11bit" class="sref">test_a11bit>11f" class="line" nam  
/a>) {..303buf3" ie         }.EINVAL111AL">117code=EAGAIN" class="s304" cl-/a>) {..EAGAIN3" ief="net/sunrpc/cache.c#L305" id11f81" id 
11ear_bit" class="sref">cl11ear>1178 class="linef="net/sunrpc/cache.c#L204" id 11f91" id 
11che_revisit_request" cla11che>117">cache_revissref">cd1/a>, s"r
ne" nam  
L306"cr
" idss="sref">cd1/a>, 1a
ne" nam  
L306"
" id.>cache_head1/a>re"+erne" nam  
L306"d "+er" id = 0ef="net/sunrpc/cache.c#L305" id11801" id 
11" class="sref">rv1/a>.=.11" c>118e class="lineL257" class="li"r
ne" nam  
L306"cr
" idss="sref">cd1/a>, 1aitemL304">.3041/a>}item" id =erL306" id 
L306c1/a>,ge5ne" nam  
L306"c1/a>,ge5che.c#L306" id 
L306=sunrpc/cache.c#h" id)         }.1181 class="lineL257" class="li"r
ne" nam  
L306"cr
" idss="sref">cd1/a>, 1abufam  
L303">.303buf3" is= L257" class="libufam  
L303">.303buf3" i         }.EAGAIN111IN">118.c#L293" id 
f">rqstp1/a>).cd1/a>, 1ale#am  
L303">.303le#3" i = ref">cd1/a>, 1aPAGE_SIZEne" nam  
L306"PAGE_SIZE" id -+ref">cd1/a>, 1ale#am  
L303">.303le#3" ief="net/sunrpc/cache.c#L305" id11831" id 
11ear_bit" class="sref">cl11ear>1183c#L293" id 
f">rqstp1/a>).cd1/a>, 1arL"+eram  
L284">.2841rL"+era3" i = 0ef="net/sunrpc/cache.c#L305" id11841" id 
11che_revisit_request" cla11che>118">cache_revisL257" class="lispin"line" nam  
L238">.spin"lineche.c1/a>);..2521/"line"sree         }.11"" class="lineref">cd1/a>, 1al 
L"add_taief="+code=cache_l 
L"add_taieche.c1/a>);.cd1/a>, 1a
ne" nam  
L306"
" id.>cache_head1/a>l 
Lcode=cache_req"  
L" idll1/a>);.cd1/a>, 1a
521/ne" nam  
L306"2521/ clae         }.1186>cache_revisL257" class="lispin"/a>->1a href="+codspin"/a>-&gche.c1/a>);..2521/"line"sree         }.11"code=EAGAIN" ref">cd1/a>, 1awake_upne" nam  
L306"wake_upche.c1/a>);.1188 class="line304" cl0ef="net/sunrpc/cache.c#L305" id11"91" id 
11s="line" nam  
L290">.2911s=">118">cacf="net/sunrpc/cache.c#L204" id 11901" id 
11>.== -1a href="+code=EAG11>.=>119 ode=La>) {..EXPORT_SYMBOL_GPLche.c#L306" id 
L306  1a h_l1/a>,pipe_upcalene" nam  
L306"s 1a h_l1/a>,pipe_upcaleche.e         }.cache_d11eq">119" claf="net/sunrpc/cache.c#L305" id11921" id 
11/spav2.1193ode=L96" id 
L296" class=" * parse a message from user-e1/c1 and p
L2 it                       1a href="+code11941" id 
11we can ourselves:1/spav211we >1194ode=L96" id 
L296" class=" * to " iappropriate  clas                       1a href="+code11951" id 
111/spav2.120tic.1a href="+code=inline" class="s12341" id 
123e can ourselves:1/spav2123e >123">cac#deflve ref">cd1/a>, 1aisodigiLcode=cache_req"isodigiLche.c#L306" id 
L306"ne" nam  
L306"c" id) c#L306" id 
L306isdigiLcode=cache_req"isdigiLche.c#L306" id 
L306"ne" nam  
L306"c" id) 1/a>)1/a>) ref">cd1/a>, 1acne" nam  
L306"l" idh1lt;= r96" id 
L296str253L>'7'       e        }.cd1/a>, 1aqword"ge5ne" nam  
L306"qword"ge5che.ccharu*
L257" class="libppcode=cache_req"bpp" idlacharu*L257" class="lid285ne" nam  
L306"d285chlalaf="+ref">cd1/a>, 1abufsizeam  
L303">.303bufsize3" ie        }.rv1/a>.=.1a href=123sr>120che_m                 1spav class="c12371" id 
123ss="sref">rv1/a>.== -1a123ss>120code=EAGAIN" L96" id 
L296" class="d  304" clbyt1s copied, orN-1 on errorN*                        1a href="+code12381" id 
123 class="sref">rv1/a>.=.123 c>120="+code=ETIMEcharu*L257" class="libpcode=cache_req"bp3" i =e
L257" class="libppcode=cache_req"bpp" id         }.120e=detail" claf="+ref">cd1/a>, 1ale#am  
L303">.303le#3" i = 0ef="net/sunrpc/cache.c#L305" id12101" id 
12hat list and into the ta12hat>121011/a="net/sunrpc/cache.c#L307" id 12111" id 
12a href="net/sunrpc/cache12a h>1211 class="linewhile (*L257" class="libpcode=cache_req"bp3" i ==er96" id 
L296str253L>' '       )+ref">cd1/a>, 1abpcode=cache_req"bp3" i++ef="net/sunrpc/cache.c#L305" id12121" id 
12pc/cache.c#L313" id 
L3112pc/>121.c#L2f="net/sunrpc/cache.c#L305" id12131" id 
12 called it finds the nex12 ca>1213 class="lineffN1ref">cd1/a>, 1abpcode=cache_req"bp3" i[0] ==er96" id 
L296str253L>'\\'        1/a>)1/a>) ref">cd1/a>, 1abpcode=cache_req"bp3" i[1] ==er96" id 
L296str253L>'x'       )+                 1spav class="c12141" id 
12 walks the list in that 12 wa>121">cache_revisssssssssf96" id 
L296" class="d  HEX STRING *                        1a href="+code12151" id 
12 can be removed.1/spav2.12 ca>121" class="line" nam  
L257" class="libpcode=cache_req"bp3" i += 2         }.121che_make_upcall1/a>(1while (ref">cd1/a>, 1ale#am  
L303">.303le#3" i < ref">cd1/a>, 1abufsizeam  
L303">.303bufsize3" ie+                 1spav class="c12171" id 
12:1/spav2.cd1/a>, 1a=sunrpc/cache.c#h" idllref">cd1/a>, 1alam  
L303">.303l" id         }.121="+co                1spav class="c12h91" id 
12is before the flush_time12is >121">cache_revisit_requecL293" c/a>) {.cd1/a>, 1ahex_to_bi#am  
L303">.303hex_to_bi#che.c#L306" id 
L306bpcode=cache_req"bp3" i[0]e         }.122e class="line" nam  
a>(1a hrffN1ref">cd1/a>, 1a=sunrpc/cache.c#h" id < 0)        }.122" class="lineeeeeeeeeeeeeeeeeeeeeeeeebd "k         }.122.c#L2f="net/sunrpc/cache.c#L305" id12231" id 
12pc/cache.c#L324" id 
L3212pc/>12p/a>(1a href="+code=CAcL293" c/a>) {..303l" id = ref">cd1/a>, 1ahex_to_bi#am  
L303">.303hex_to_bi#che.c#L306" id 
L306bpcode=cache_req"bp3" i[1]e         }.122">cache_revisssssssssssssssssffN1ref">cd1/a>, 1alam  
L303">.303l" id < 0)        }.12p" class="line" nam  
eeeeeeeeeeeeeeeebd "k         }..212ss=>122av class="comment">/*1/spav2.;.cd1/a>, 1a=sunrpc/cache.c#h" id << 4) | /a>) {..303l" id         }..2212s=">12p="+code=ETIMEDOUT" clcL293" c/a>) {.(&1a hr12rit>122">cache_revisit_requecL293" c/a>) {..303le#3" i++ef="net/sunrpc/cache.c#L305" id12301" id 
121a href="+code=cache_is_121a >121a>cache_revisit_requef="net/sunrpc/cache.c#L204" id 12311" id 
12>.!= -1a href="+code=EAG12>.!>121" class="line}
elses                 1spav class="c12321" id 
12s="sref">write_unlock1/a12s=">121.c#L293" id 
L293" clf96" id 
L296" class="d  text with \nnn octal quotinge*                        1a href="+code12331" id 
12sref">rv1/a>;.' '        1/a>)1/a>) *L257" class="libpcode=cache_req"bp3" i !=er96" id 
L296str253L>'\n'        1/a>)1/a>) *L257" class="libpcode=cache_req"bp3" i 1/a>)1/a>) ref">cd1/a>, 1ale#am  
L303">.303le#3" i < ref">cd1/a>, 1abufsizeam  
L303">.303bufsize3" i-1e+                 1spav class="c12341" id 
12235" class="line" nam  
12235>123">cache_revisssssssssssssssssffN1*L257" class="libpcode=cache_req"bp3" i ==er96" id 
L296str253L>'\\'        1/a>)1/a>)                1spav class="c12351" id 
12bit1/a>(1a href="+code=C12bit>123" class="line" nam  
eeeeeeeeeeeeref">cd1/a>, 1aisodigiLcode=cache_req"isodigiLche.c#L306" id 
L306bpcode=cache_req"bp3" i[1]e 1/a>)1/a>) c#L306" id 
L306bpcode=cache_req"bp3" i[1]h1lt;= r96" id 
L296str253L>'3'       )+1/a>)1/a>)                1spav class="c12361" id 
12"sref">cache_fresh_locke12"sr>123che_make_upcall1/a>(1a href=" "  ref">cd1/a>, 1aisodigiLcode=cache_req"isodigiLche.c#L306" id 
L306bpcode=cache_req"bp3" i[2])+1/a>)1/a>)                1spav class="c12371" id 
12>write_unlock1/a>(&112>wr>123code=EAGAIN" class="sssssssssssssref">cd1/a>, 1aisodigiLcode=cache_req"isodigiLche.c#L306" id 
L306bpcode=cache_req"bp3" i[3]e                   1spav class="c12181" id 
12s="sref">cache_fresh_unl12s=">123="+code=ETIMEDOUT" clcL293" cssssssssf="+ref">cd1/a>, 1abyteam  
L303">.303byte" id = (*++L257" class="libpcode=cache_req"bp3" i -r96" id 
L296str253L>'0'       e         }.ENOENT1/a>;.>123">cache_revisit_requecL293" cssssssssref">cd1/a>, 1abpcode=cache_req"bp3" i++ef="net/sunrpc/cache.c#L305" id12401" id 
12ss="line" nam  
L241">.212ss=>124e class="line" nam  
a>(1a hrssssssssref">cd1/a>, 1abyteam  
L303">.303byte" id = (ref">cd1/a>, 1abyteam  
L303">.303byte" id << 3) | 1*L257" class="libpcode=cache_req"bp3" i++ -er96" id 
L296str253L>'0'       e         }..2412s=">124" class="lineeeeeeeeeeeeeeeeeeeeeeeeeref">cd1/a>, 1abyteam  
L303">.303byte" id = (ref">cd1/a>, 1abyteam  
L303">.303byte" id << 3) | 1*L257" class="libpcode=cache_req"bp3" i++ -er96" id 
L296str253L>'0'       e         }.124.c#L293" id 
L293" clail" cl+eeeeeeee*L257" class="lid285ne" nam  
L306"d285chla++ =eref">cd1/a>, 1abyteam  
L303">.303byte" id         }.124/a>(1a href="+code=CArevisit_requeeee/a>) {..303le#3" i++ef="net/sunrpc/cache.c#L305" id12s41" id 
12s.1/spav2.cache_revisssssssssssssssss}
elses                 1spav class="c12s51" id 
12f a.cache item and will 12f a>124" class="line" nam  
a>(1a hr=CArevis*L257" class="lid285ne" nam  
L306"d285chla++ =e*L257" class="libpcode=cache_req"bp3" i++ef="net/sunrpc/cache.c#L305" id12s61" id 
12ll it if needed.1/spav2.12ll >124che_make_upcall1/a>(1a href=" "      /a>) {..303le#3" i++ef="net/sunrpc/cache.c#L305" id12s71" id 
12pc/cache.c#L248" id 
L2412pc/>124code=EAGAIN" class="sssssssssf="net/sunrpc/cache.c#L204" id 12481" id 
12pc/cache.c#L249" id 
L2412pc/>124="+code=ETIMEDOUT" clf="net/sunrpc/cache.c#L204" id 12491" id 
12ead can be used, or cach12ead>124">cache_revisf="net/sunrpc/cache.c#L204" id 12501" id 
12ding and request has bee12din>125011/a="net/sunrpc/cache.c#L307" id 12511" id 
12led or request could not12led>125" class="lineffN1*L257" class="libpcode=cache_req"bp3" i !=er96" id 
L296str253L>' '        1/a>)1/a>) *L257" class="libpcode=cache_req"bp3" i !=er96" id 
L296str253L>'\n'        1/a>)1/a>) *L257" class="libpcode=cache_req"bp3" i !=er96" id 
L296str253L>'\0'       e        }.125.c#L293" id 
L293" cl304" cl-1ef="net/sunrpc/cache.c#L305" id12d31" id 
12 has been replaced with 12 ha>1253 class="linewhile (*L257" class="libpcode=cache_req"bp3" i ==er96" id 
L296str253L>' '       )+ref">cd1/a>, 1abpcode=cache_req"bp3" i++ef="net/sunrpc/cache.c#L305" id12d41" id 
12as negative1/spav2.125">cache_revis
L257" class="libppcode=cache_req"bpp" id =erL306" id 
L306bpcode=cache_req"bp3" i         }.12d" class="line*L257" class="lid285ne" nam  
L306"d285chla =er96" id 
L296str253L>'\0'                }.(struct.1a hr12e_c>12dche_make_upca304" class="line" nam le#am  
L303">.303le#3" ief="net/sunrpc/cache.c#L305" id12d71" id 
12ead" class="sref">cache_12ead>12dcode=f="net/sunrpc/cache.c#L204" id 12581" id 
12ss="line" nam  
L259">.212ss=>1258 claass="line" nam EXPORT_SYMBOL_GPL" nam  
L238">.EXPORT_SYMBOL_GPLche.c#L306" id 
L306qword"ge5ne" nam  
L306"qword"ge5che.e         }.;.refresh_age1/a>, 1a12ref>126011/a="net/sunrpc/cache.c#L307" id 12611" id 
12s="line" nam  
L262">.2612s=">1261ode=L96" id 
L296" class="d                        1a href="+code12621" id 
12urn status as best we ca12urn>1262ode=L96" id 
L296" class=" * support /proc   1a href="+/$CACHENAME/contass                       1a href="+code12631" id 
121a href="+code=cache_is_121a >1263ode=L96" id 
L296" class=" * as a seqfile.                       1a href="+code12641" id 
12s="line" nam  
L265">.2612s=">1264ode=L96" id 
L296" class=" * We  cll ss="sl1/a>,show p
L2ingeNULL+forNtas item to                       1a href="+code12651" id 
12nt.to start an upcall */12nt.>126" claL96" id 
L296" class=" * ge5 a hL"+er,Ntasn p
L2 ea=" d al item inNtas  clas                       1a href="+code12661" id 
12refresh_age1/a>.=.(1a hr12ref>126che_mL96" id 
L296" class=" *                        1a href="+code12671" id 
12=.1a href="+code=seconds12=.1>12rcode=                1a href="+code12681" id 
12s="line" nam  
L269">.2612s=">1268 clad"="sref">rqstp1/a>)..303handlehe_ma                 1spav class="c12691" id 
12stp1/a> ==.1a href="+cod12stp>126">cache_revisclass="sref">cd1/a>, sl1/a>,.,.rv1/a>.== -1a href="+12f">>127e cla}ef="net/sunrpc/cache.c#L305" id12711" id 
12"sref">rv1/a>.=.-1a href12"sr>127" claf="net/sunrpc/cache.c#L305" id12721" id 
12">rv1/a>.== -1a href="+c12">r>12f.c#L2d" clasvoide
L257" class="lic_d" rtf="+code=cache_l_d" rtche.cclass="sref">cd1/a>, sseq_filef="+code=cache_seq_file" id 
L257" class="limL304">.3041/a>}m" idllref">cd1/a>, 1aloff_Lcode=cache_req" off_L" id 
L257" class="lipoam  
L284">.2841poache.ef="net/sunrpc/cache.c#L305" id127 cla}ef="nef">dprintk1/a>(1spav cl11ef"2">dprintk1/a>(1spav cl1 
L296" class="cale__acquire.2841poache.ef="__acquire. id 
L306qword"ge5necache_ld3" ief="net/sund1/a>, 1a
521/ne" nahash 
L238">.2521/"line"hash 
L23/sunrpc/cache.c#L305" id127 cla}ef="ne="line" naclass="sref">11fre>117">c2che_r2visffN      1spav class="c12691" id 
12bit" class2"sref">test_a11bit>11f" c2ass="27neref">cd1/a>, 1al 
L"add_taiache_req" off_L" id 
L257" clas, 1al 
L"add_ta>.303le#3" ief="57" class="lilpcode=cach">.2841poache.ef="net/sunrpc/cache.c#L305" id12711" id 
12"efresh_agecall" class="11che>117che2make_2pcall1/a>(1L25aru#L306"1/a>, 1a=sunrpc/cachash8">.2521/"line"hashcd1/a>, 1aloff_Lcode=   ry8">.2521/"line"   ry/sunrpc/cache.c#L305" id12711" id 
12".1a href="sref">EINVAL111AL">117cod2=EAGA2N" class="s304">cd1/a>, sl1/a>,hL"+f="+code=cache_l1/a>,hL"+ clas
L257" class="li=sunrpc/cacch8">.2521/"line"ch/sunrpc/cache.c#L305" id12711" id 
12"="line" naass="sref">cl11ear>1178 c2ass="2inef="net/sunr">cd1/a>, sl1/a>,.,.cd1/a>, sseq_filef="L303">.303handlehe_ma          *)="limL304">.3041/a>}m" idllref">cd1/d1/a>, 1a
521/ne" napriva">.303byte" id   priva">/sunrd1/a>, 1a
521/ne" nacache_ld3" ief="net/sunrpc/cache.c#L305" id12701" id 
12ftp1/a> ==._request" cla11che>117">c2che_r27 href="+code=rv" class="12601" id 
12" class="s2ef">rv1/a>.=.11" c>118e c2ass="28sunrpc/cache.c#L307" id 12611" id 
12et/sunrpc/2ache.c#L282" 11et/>1181 c2ass="2ineL257" class="li"r
ne" nam  = 0 
L238">.2521/"line" = 0 
L23 id 
ref="net/"r
ne" nam  ache_ld3" ief="net/sund1/a>, 1a
521/ne" nahash 
L238">.2521/"line"hash 
L23/sunrrpc/cache.c#L305" id12701" id 
12IN" class=2sref">EAGAIN111IN">118.c#2293" 28 
AIN1ref">cd1/a>ef">r"r
ne" nam >.303le#3" ief="57" c--rpc/cache.c#L305" id127 cla}ef="near_bit" c2ass="sref">cl11ear>1183c#2293" 28="+code=CA304" class="line" nam lasA" nam  SEQ_STAPLcTOKE38">.EAGAIN3" ieSEQ_STAPLcTOKE3/sunrpc/cache.c#L305" id12701" id 
12che_revisi2_request" cla11che>118">c2che_r2visL257" class="lispin"line" hash8">.2521/"line"hashcd1/d 
L306bpcode=cach>.303le#3" ief="57" cl+ (#L306 3.11"" c2ass="2ineref">cd1/a>, 1al 
L"add_ta   ry8">.2521/"line"   ry/sund 
L306bpcode=cach>.303le#3" ief="57" cl+" id 
(1LL | 1*L2532    }.1186>c2che_r28omment">/*1/spav2.11"cod2=EAGA2N" ref">cd1/a>m to
L306qword"ge5nech8">.2521/"line"ch/sun=net/"r
ne" nam  ache_ld3" ief="net/sund1/a>, 1a
521/ne" nahash tab">.303handlehe_ma  sh tab">     ="lispin"line" hash8">.2521/"line"hashcd1/]a>, 1acne" nam  
Lh8">.2521/"line"ch/sunr>, 1acne" nam  
Lh8">.2521/"line"ch/sun=net/"r
ne" nam  h8">.2521/"line"ch/sund1/a>, 1a
521/ne" nanex_req" off_L" id nex_/sunrpc/cache.c#L305" id127 cla}ef="n289" class2"line" nam  
11289>1188 c2ass="28MEDOUT" clf="net/sunr1/a>ef">r"r
ne" nam    ry8">.2521/"line"   ry/sun--rpc/cache.c#L305" id127 cla}ef="netp1/a> ==.m  
L290">.2911s=">118">c2cf="n28isit_requecL293" cssssssssref"line" nam lasA" nam  ch8">.2521/"line"ch/sunrpc/cache.c#L305" id12711" id 
12>.== -1a h2ef="+code=EAG11>.=>119 od2=La>)29neL257" class="li"r
ne" nam >.303le#3" ief="57" cl+" id= ~
(1LL | 1*L2532    }.cache_d11eq">119" c2af="n29neL257" classdo       1spav class="c12691" id 
12/spav2..2521/"line"hashcd1/unrpc/cache.c#L305" id12d41" id 
12Request wa2 not deferred11Req>1193od2=L96"29="+code=CA304" class=="li"r
ne" nam >.303le#3" ief="57" cl+= 1LL | 1*L2532rpc/cache.c#L305" id12d41" id 
12Rhe_revisi2elves:1/spav211we >1194od2=L96"29isL257" class}57" cl>, 1a=sunrpc/cachash8">.2521/"line"hashcd1/dd1/a>, 1abufsizeam   ache_ld3" ief="net/sund1/a>, 1a
521/ne" nahash 03">.303bufsize3" ihash 03">7" cl+" id          1spav class="c12371" id 
121/spav2.11>" c2aL96"29ne" nam  
L257" class="libpcode=cach ache_ld3" ief="net/sund1/a>, 1a
521/ne" nahash tab">.303handlehe_ma  sh tab">     ="lispin"line" hash8">.2521/"line"hashcd1/]==net/"r
ne" nam s it8">.2521/"line"s it/sunrrpc/cache.c#L305" id12701" id 
12"sref">rv12a>.=.1a href=11"sr>11>che2mL96"29call1/a>(1L251/a>, 1a=sunrpc/cachash8">.2521/"line"hashcd1/ddg 
L29 1abufsizeam   ache_ld3" ief="net/sund1/a>, 1a
521/ne" nahash 03">.303bufsize3" ihash 03">7" crpc/cache.c#L305" id127 cla}ef="nass="sref"2rv1/a>.== -1a11ass>119cod2=L96"29" class="s304" cl-/a>) {..2521/"line"s it/sunrpc/cache.c#L305" id12701" id 
12"89" class2ef">rv1/a>.=.11" c>1198od2=L96"29MEDOUT" clf="s="lilpcode=cach">.2841poache.ef="net/sund 
L306bpcode=cach>.303le#3" ief="57" c+nrpc/cache.c#L305" id12d31" id 
120" id 
L302" class="line110" >1199od2=L96"29isit_requecL2"line" nam lasA" nam  cache_ld3" ief="net/sund1/a>, 1a
521/ne" nahash tab">.303handlehe_ma  sh tab">     ="lispin"line" hash8">.2521/"line"hashcd1/]apc/cache.c#L305" id12d31" id 
13301"d 
L303" class="line12301>120sod3=L96"3id 
L2pc/cache.c#L204" id 12581" id 
133q" class=3sref">cache_d123q">1201od3=L96"30/sunrpc/cache.c#L305" id12721" id 
133spav2.cd1/a>, sseq_filef="+code=cache_seq_file" id 
L257" class="limL304">.3041/a>}m" idllref">cd1/a> class="lic_d" rtf="+_req"bp3" i     pcd1/a>, 1aloff_Lcode=cache_req" off_L" id 
L257" class="lipoam  
L284">.2841poache.ef="net/sunrpc/cache.c#L305" id127 cla}ef="33equest wa3 not deferred123eq>120tic31a hr3f="+co      1spav class="c12691" id 
133e can our3elves:1/spav2123e >123">c3c#def30isL257" class">cd1/a>, sl1/a>,hL"+f="+code=cache_l1/a>,hL"+ clas
L257" class="li=sunrpc/cacch8">.2521/"line"ch/sund 
L306bpcode=cach_req"bp3" i     pcd1/apc/cache.c#L305" id12d31" id 
1335 can our3eref="net/sun111/s>11>" c3af="+30neffN1" class=/a>, 1a=sunrpc/cachash8">.2521/"line"hashcd1/" cla="lilpcode=cach">.2841poache.ef="net/sund+ (#L306 3.rrpc/cache.c#L305" id12701" id 
133sref">rv13a>.=.1a href=123sr>120che3m    306sL257" class">cd1/a>, sl1/a>,hL"+f="+codode=cache_l1/a>,.cd1/a>, sseq_filef="L303">.303handlehe_ma          *)="limL304">.3041/a>}m" idllref">cd1/d1/a>, 1a
521/ne" napriva">.303byte" id   priva">/sunrd1/a>, 1a
521/ne" nacache_ld3" ief="net/sunrpc/cache.c#L305" id12701" id 
133ss="sref"3rv1/a>.== -1a123ss>120cod3=EAGA30          1a href="+code12681" id 
133 class="s3ef">rv1/a>.=.123 c>120="+3ode=E3IMEcharu*L257"1/a>, 1a=sunrpc/cac_req"bp3" i     pcd1/ 
L29am lasA" nam  SEQ_STAPLcTOKE38">.EAGAIN3" ieSEQ_STAPLcTOKE3/sunrpc/cache.c#L305" id127 cla}ef="339class="s3e class="line110" >1199od3tail"30isit_requecL293" csss, 1a=sunrpc/cachash8">.2521/"line"hashcd1/" cnrpc/cache.c#L305" id12101" id 
13hat list a3d into the ta12hat>1210113a="ne31neL257" class     1/a>, 1a=sunrpc/cac h8">.2521/"line"ch/sund1/a>, 1a
521/ne" nanex_req" off_L" id nex_/sun 
L29am lasA" nam  s it8">.2521/"line"s it/sunr       1spav class="c12691" id 
13a href="ne3/sunrpc/cache12a h>1211 c3ass="31neeeeeeeeeeeeeeeeeeee9"lispin"line" hash8">.2521/"line"hashcd1/unrpc/cache.c#L305" id12d41" id 
13pc/cache.c3L313" id 
L3112pc/>121.c#32f="n31 
L293" clf96" id 
L2a="lilpcode=cach">.2841poache.ef="net/sund+= 1LL | 1*L2532rpc/cache.c#L305" id12d41" id 
13 called it3finds the nex12 ca>1213 c3ass="3ineffN1ref">cd             1spav class="c12s51" id 
13 walks the3list in that 12 wa>121">c3che_r3visssssssssf96" id 
L2++s="lilpcode=cach">.2841poache.ef="net/sunrpc/cache.c#L305" id12711" id 
13 can be re3oved.1/spav2.12 ca>121" c3ass="3ine" nam  
L257" class"line" nam lasA" nam  ch8">.2521/"line"ch/sund1/a>, 1a
521/ne" nanex_req" off_L" id nex_/sunrpc/cache.c#L305" id12711" id 
13 sref">rv13L317" id 
L3112pc/>121che3make_3pcall1/a>(1whipc/cache.c#L204" id 12581" id 
13:1/spav2.<3 href="net/su12:1/>121cod3=EAGA3N" class="ssssa="lilpcode=cach">.2841poache.ef="net/sund+" id= ~
(1LL | 1*L2532    }.121="+3o    31MEcharu*L257">cd1/a>, 1ale#am  
L30hash8">.2521/"line"hashcd1/dd1/a>, 1abufsizeam   ache_ld3" ief="net/sund1/a>, 1a
521/ne" nahash 03">.303bufsize3" ihash 03">7" cl+" id          1spav class="c12371" id 
13is before 3he flush_time12is >121">c3che_r3visit_requecL293" c/anam lasA" nam  cache_ld3" ief="net/sund1/a>, 1a
521/ne" nahash tab">.303handlehe_ma  sh tab">     ="lispin"line" hash8">.2521/"line"hashcd1/] 
L29am lasA" nam  s it8">.2521/"line"s it/sunr       1spav class="c12691" id 
13pc/cache.c3L321" id 
L3212pc/>122e c3ass="3ine" nam  
a>(1a hrffN9"lispin"line" hash8">.2521/"line"hashcd1/unrpc/cache.c#L305" id12d41" id 
13entries wi3h non-NEVER e12ent>122" c3ass="3ineeeeeeeeeeeeeeeeeeeea="lilpcode=cach">.2841poache.ef="net/sund+= 1LL | 1*L2532rpc/cache.c#L305" id12d41" id 
13; for some3definition of12; f>122.c#32f="n322all1/a>(1whipc/cache.c#L204" id 12581" id 
13pc/cache.c3L324" id 
L3212pc/>12p/a>31a hr32neffN1ref">cd1/a>, 1abpcode=cachhash8">.2521/"line"hashcd1/ddg 
L29 1abufsizeam   ache_ld3" ief="net/sund1/a>, 1a
521/ne" nahash 03">.303bufsize3" ihash 03">7" crpc/cache.c#L305" id127 cla}ef="3w often.to3scan a table&12w o>122">c3che_r3visssssssssssssssssffN) {..2521/"line"s it/sunrpc/cache.c#L305" id12701" id 
13cO the *1/3pav2.12p" c3ass="3ine" nam  
eee++s="lilpcode=cach">.2841poache.ef="net/sunrpc/cache.c#L305" id12711" id 
13ss="line" 3am  
L227">.212ss=>122av 3lass=32ca304" class="line" nam le#am  
L30cache_ld3" ief="net/sund1/a>, 1a
521/ne" nahash tab">.303handlehe_ma  sh tab">     ="lispin"line" hash8">.2521/"line"hashcd1/]apc/cache.c#L305" id12d31" id 
13>;.;.>122cod3=EAGA32/sunrpc/cache.c#L204" id 12581" id 
13s="line" n3m  
L229">.2212s=">12p="+3ode=E32          1spav class="c12h91" id 
13rite_lock13a>(&1a hr12rit>122">c3che_r3visit_e
L257" clas="lic_d" rtf="+costo_req"bp3" i     costo_"sref">cd1/a>, sseq_filef="+code=cache_seq_file" id 
L257" class="limL304">.3041/a>}m" idllref">cd1/a> class="lic_d" rtf="+_req"bp3" i     pcd1/rpc/cache.c#L305" id127 cla}ef="31a href="+3ode=cache_is_121a >121a>c3che_r33neL257" class="li"r
ne" nam __release.2841poache.ef="__release."srefnam le#am  
L30cache_ld3" ief="net/sund1/a>, 1a
521/ne" nahash 
L238">.2521/"line"hash 
L23/sunrpc/cache.c#L305" id127 cla}ef="3>.!= -1a h3ef="+code=EAG12>.!>121" c3ass="3ine}
e      1spav class="c12691" id 
13s="sref">w3ite_unlock1/a12s=">121.c#3293" 3d 
L293" clf96">cd1/a>, sl1/a>,hL"+f="+codode=cache_l1/a>,.cd1/a>, sseq_filef="L303">.303handlehe_ma          *)="limL304">.3041/a>}m" idllref">cd1/d1/a>, 1a
521/ne" napriva">.303byte" id   priva">/sunrd1/a>, 1a
521/ne" nacache_ld3" ief="net/sunrpc/cache.c#L305" id12701" id 
13sref">rv1/3>;.-&g = 0 href=""srefref="net/"r
ne" nam  ache_ld3" ief="net/sund1/a>, 1a
521/ne" nahash 
L238">.2521/"line"hash 
L23/sunrrpc/cache.c#L305" id12701" id 
13235" class3"line" nam  
12235>123">c3che_r3visssspc/cache.c#L204" id 12581" id 
13bit1/a>(1a3href="+code=C12bit>123" c3ass="3ine" nc/cache.c#L204" id 12581" id 
13bs="line" 3e_fresh_locke12"sr>123che3make_3pcall1e
L257"=/a>, 1a=sunrpc/caccngeNUreq"bp3" i     coseNU"sref">cd1/a>, sseq_filef="+code=cache_seq_file" id 
L257" class="limL304">.3041/a>}m" idllref">cd1/a> class="lic_d" rtf="+_req"bp3" i     pcd1/rpc/cache.c#L305" id127 cla}ef="31;.(&112>wr>123cod3=EAGA3N" cla      1spav class="c12691" id 
13s="line" n3che_fresh_unl12s=">123="+3ode=E33nef="net/sunr">cd1/a>, sl1/a>,.,hL"+ clas
L257" class="li=sunrpc/cacc_req"bp3" i     c06" id 
L306bpcode=cach_req"bp3" i     pcd1/apc/cache.c#L305" id12d31" id 
13f">ENOENT13a>;.>123">c3che_r33isclass="sref">cd1/a>, sl1/a>,.,.cd1/a>, sseq_filef="L303">.303handlehe_ma          *)="limL304">.3041/a>}m" idllref">cd1/d1/a>, 1a
521/ne" napriva">.303byte" id   priva">/sunrd1/a>, 1a
521/ne" nacache_ld3" ief="net/sunrpc/cache.c#L305" id12701" id 
13ss="line" 3am  
L241">.212ss=>124e c3ass="34sunrpc/cache.c#L307" id 12611" id 
13s="line" n3m  
L242">.2412s=">124" c3ass="34neffN1*L257" clas, 1a=sunrpc/cac_req"bp3" i     pcd1/ 
L29am lasA" nam  SEQ_STAPLcTOKE38">.EAGAIN3" ieSEQ_STAPLcTOKE3/sunrpc/cache.c#L305" id127 cla}ef="3pc/cache.c3L243" id 
L2412pc/>124.c#3293" 3d 
L293" clail" cl+eee"line" nam le#am  
L30cache_ld3" ief="net/sund1/a>, 1a
521/ne" nap
L2ingeNUche_l1/a>,..3041/a>}m" idllref">cd1/a>nam le#am  
L30cache_ld3" ief="net/suna>nam le#am  
L30s it8">.2521/"line"s it/sunrrpc/cache.c#L305" id12701" id 
13e manageme3t routine for12e m>124/a>31a hr34="+code=inline" class="s12341" id 
13s.1/spav2.3a href="net/s12s.1>124">c3che_r34isL257" class="lispin"line" ifdebug8">.2521/"line"ifdebug"sref="limL304">.304ontas8">.2521/"line"ontas/sunrpc/cache.c#L305" id127 cla}ef="3pit1/a>(1a3tem and will 12f a>124" c3ass="3ine" nam  
a>(1a hr=CA>, sseq_filef="+codprint>.303buf3" i    +codprint>"sref="limL304">.3041/a>}m" idllref">cd1/a>n6str253L>'\0'    ;# ... co=%lde"lfcnt=%d flags=%lx\n;    ;       ,pc/cache.c#L305" id127 cla}ef="3ps="line" 3eded.1/spav2.12ll >124che3make_3pcall1/a>(1a href=" "      /a>) {nam le#am  
L30convertc#L3wallc
L238">.2521/"line"convertc#L3wallc
L23"srefnam le#am  
L30c_req"bp3" i     c06" id1/a>, 1a
521/ne" na... co_tim>.303byte" id   ... co_tim>/sunr,pc/cache.c#L305" id127 cla}ef="3p;.124cod3=EAGA3N" class="sssssssssf="net/sunr) {nam le#am  
L30atomic_r=cache_l1/a>,hL"+ atomic_r=ca"srefref="net/"r
ne" nam  _req"bp3" i     c06" id1/a>, 1a
521/ne" na    codspin"/a>-&g =>"sred1/a>re"+erne" namfcoun_req" off_L" id amfcoun_/sunr,{nam le#am  
L30c_req"bp3" i     c06" id1/a>, 1a
521/ne" naflagsreq"bp3" i     flags/sunrrpc/cache.c#L305" id12701" id 
13e="line" n3L249" id 
L2412pc/>124="+3ode=E3IMEDOUT" clf=", 1a
521/ne" nap
L2in 
L306"c1/a>,ge5che.c#L306" id 
L306=sunrpc/cacc_req"bp3" i     c06" irrpc/cache.c#L305" id12701" id 
13e">ENOENT13used, or cach12ead>124">c3che_r3visf="net/sunr1/a>, 1a=sunrpc/cac .c#L3c#L238">.2521/"line"c.c#L3c#L23"srefnam le#am  
L30cache_ld3" ief="net/sun,{nam le#am  
L30c_req"bp3" i     c06" ia>nam le#am  
L30s it8">.2521/"line"s it/sunrrpc/cache.c#L305" id127 cla}ef="3ding and r3quest has bee12din>1250113a="ne35ne" nam  
a>(1a hrffN96" class="d  text with \c.c#L3c#L23 doSTRI\c.c#L3put    f57"ure               1a href="+code12671" id 
13led or req3est could not12led>125" c3ass="35neeeeeeeeeeeeeeeeeeee9"lispin"line" +codprint>.303buf3" i    +codprint>"sref="limL304">.3041/a>}m" idllref">cd1/a>n6str253L>'\0'    ;# ;    ;       rrpc/cache.c#L305" id12701" id 
13ed but ite3 is still inv12ed >125.c#3293" 3d 
L293" cl304           1spav class="c12s51" id 
13 has been 3eplaced with 12 ha>1253 c3ass="35="+code=CA304" class=1/a>, 1a=sunrpc/cac .c#L3is_... ceache_l1/a>,hL"+ clas
Lis_... cea"srefnam le#am  
L30cache_ld3" ief="net/sun,{nam le#am  
L30c_req"bp3" i     c06" irrpc/cache.c#L305" id127 cla}ef="3d.1/spav2.31/spav2.125">c3che_r35isssssssssssssssssffNeeeeeeee9"lispin"line" +codprint>.303buf3" i    +codprint>"sref="limL304">.3041/a>}m" idllref">cd1/a>n6str253L>'\0'    ;# ;    ;       rrpc/cache.c#L305" id12701" id 
13eit1/a>(1a3#L256" id 
L212rpc>12d" c3ass="35ne" nam  
L257" class="libpcode=cach .c#L3putche_l1/a>,hL"+ clas
Lput id 
L306=sunrpc/cacc_req"bp3" i     c06" ia>nam le#am  
L30cache_ld3" ief="net/sunrrpc/cache.c#L305" id12701" id 
13es="line" 3(struct.1a hr12e_c>12dche3make_35call1/a>(1whipc/cache.c#L204" id 12581" id 
13ead" class3"sref">cache_12ead>12dcod3=f="n35          1a href="+code12681" id 
13ss="line" 3am  
L259">.212ss=>1258 c3aass=35ne304" cl0ef="net/sunam le#am  
L30cache_ld3" ief="net/sund1/a>, 1a
521/ne" nap
L2ingeNUche_l1/a>,..3041/a>}m" idllref">cd1/a>nam le#am  
L30cache_ld3" ief="net/suna>nam le#am  
L30c_req"bp3" i     c06" irrpc/cache.c#L305" id12701" id 
13>;.;.>125   3 if (35/sunrpc/cache.c#L204" id 11901" id 
13ref">refre3h_age1/a>, 1a12ref>1260113a="ne3/sunrpc/cache.c#L307" id 12611" id 
13s="line" n3m  
L262">.2612s=">1261od3=L96"3id 
L2e
L257"constf">cd1/a>, sl1/a>,.1262od3=L96"36 
L293" cl304d1/a>re"+erne" nde=cache_l_d" rtche.lass="sre d 
L306c1/a>,ge5ne"ode=cache_l_d" rtche.cclass="sre,pc/cache.c#L305" id127 cla}ef="31a href="+3ode=cache_is_121a >1263od3=L96"363
L293" cl304d1/a>re"+erne" nnex_req" off_L" id nex_/sun  d 
L306c1/a>,ge5ne"onex_req" off_L" id conex_"sre,pc/cache.c#L305" id127 cla}ef="31.1/spav2.3m  
L265">.2612s=">1264od3=L96"364
L293" cl304d1/a>re"+erne" ndeo_req"bp3" i     sto_"sre  d 
L306c1/a>,ge5ne"osto_req"bp3" i     costo_"sre,pc/cache.c#L305" id127 cla}ef="31it1/a>(1a3 an upcall */12nt.>126" c3aL96"365
L293" cl304d1/a>re"+erne" ndeNUche_l1/a>,.,ge5ne"oseNUreq"bp3" i     coseNU"sre,pc/cache.c#L305" id127 cla}ef="31s="line" 31/a>.=.(1a hr12ref>126che3mL96"3id 
L2nrpc/cache.c#L305" id12711" id 
13=.1a href=3+code=seconds12=.1>12rcod3=    3           1a href="+code12681" id 
13s="line" n3m  
L269">.2612s=">1268 c3ad"="3ref">rqsL257"=/a>, 1a=sunrpc/cacc      _o_">.303le#3" ief="c      _o_">"sref">cd1/a>, sseq_filef="inef=8">.2521/"line"inef= class="lic+f="+code=inef=8">.2521/"line"inef= cla,f">cd1/a>, sl1/a>,..304e=cache_seq_file" i257" cla,pc/cache.c#L305" id127 cla}ef="31;.c3che_r36isit_requecL293" cssssssssref">cd1/a>, sl1/a>,.,.rv1/a>.3= -1a href="+12f">>127e c3a}ef=3net/su      1spav class="c12s51" id 
13"sref">rv13a>.=.-1a href12"sr>127" c3af="n37neeeeeeeeeeeeqstp1/a>)..303handlehe_ma           s="lic+f="+code=   .303handlehe_ma   /sunrpc/cache.c#L305" id12701" id 
13">rv1/a>.=3 -1a href="+c12">r>12f.c#32d" c37/sunrpc/cache.c#L305" id12231" id 
13ef">dprint31/a>(1spav cl11ef"2">dpri3tk1/a37neffN1ref">cd1/a>ef">r"r
ne" nam cache_ld3" ief="net/sun1|| ef">r"r
ne" nam try_modulin 
L306"c1/a>,ge5chtry_modulin 
L"srefnam le#am  
L30cache_ld3" ief="net/sund1/a>, 1a
521/ne" naownerche_ld3" ief="nowner6" irrpc/cache.c#L305" id127 cla}ef="3e="line" n3class="sref">11fre>117">c3che_r37isssssssssssssssssffN) {.(1a3"sref">test_a11bit>11f" c3ass="37neref">cd1/a>, 1al 
L"add_ta   .303handlehe_ma   /sund 
L306c1/a>,ge5ne__+codopen_priva">.303byte" id   __+codopen_priva">"srefnam le#am  
L30e=cache_seq_file" i257" cla, ref="net/"r
ne" nam  .c#L3c      _o_req"bp3" i     c.c#L3c      _o_/sun,f"izeofla="lilpcode=cach   .303handlehe_ma   /sun)rrpc/cache.c#L305" id12701" id 
13"efresh_ag3call" class="11che>117che3make_37call1/a>(1L251/a>, 1a=sunrpc/cacha .303handlehe_ma   /sund L29am lasA" nam  s it8">.2521/"line"s it/sunr       1spav class="c12691" id 
13".1a href=3sref">EINVAL111AL">117cod3=EAGA37" class="sssssssssf="="limL304">.3041odulinputche_l1/a>,hL"+ 1odulinput"srefnam le#am  
L30cache_ld3" ief="net/sund1/a>, 1a
521/ne" naownerche_ld3" ief="nowner6" irrpc/cache.c#L305" id12701" id 
13"="line" n3ass="sref">cl11ear>1178 c3ass="37MEDOUT" clf="net/sunr) {.117">c3che_r37isf="net/sunrpc/cache.c#L204" id 12501" id 
13" class="s3ef">rv1/a>.=.11" c>118e c3ass="38sunrpc/cache.c#L307" id 12611" id 
13et/sunrpc/3ache.c#L282" 11et/>1181 c3ass="3ineL257" class="li"r
ne" nam ha .303handlehe_ma   /sund1/a>, 1a
521/ne" nacache_ld3" ief="net/sund 
L306c1/a>,ge5ne"ache_ld3" ief="net/sunrpc/cache.c#L305" id12701" id 
13IN" class=3sref">EAGAIN111IN">118.c#3293" 38 
AIN1ref">cd) {.cl11ear>1183c#3293" 38="+copc/cache.c#L204" id 12501" id 
13"="line" n3_request" cla11che>118">c3che_r3visL25c/cache.c#L204" id 12501" id 
13"it1/a>(1a3ache.c#L286" 11et/>11"" c3ass="3inerefqsL257"=/a>, 1a=sunrpc/cacc      _release.303le#3" ief="c      _release"sref">cd1/a>, sseq_filef="inef=8">.2521/"line"inef= class="lic+f="+code=inef=8">.2521/"line"inef= cla,f">cd1/a>, sl1/a>,..304e=cache_seq_file" i257" cla,pc/cache.c#L305" id127 cla}ef="3he.c#L287"3id 
L287" cla11he.>1186>c3che_r38call1/a>(1a href=" " ">cd1/a>, sl1/a>,.,.11"cod3=EAGA38" cla      1spav class="c12691" id 
13289" class3"line" nam  
11289>1188 c3ass="38MEDOUT" clf="=/a>, 1a=sunrpc/cacr
L306"c1/a>,ge5chret/sund 
L306c1/a>,ge5ne+codrelease_priva">.303byte" id   +codrelease_priva">"srefnam le#am  
L30inef=8">.2521/"line"inef= cla,f="limL304">.304e=cache_seq_file" i257" clarrpc/cache.c#L305" id12701" id 
13etp1/a> ==3m  
L290">.2911s=">118">c3cf="n38isit_requecL2="limL304">.3041odulinputche_l1/a>,hL"+ 1odulinput"srefnam le#am  
L30cache_ld3" ief="net/sund1/a>, 1a
521/ne" naownerche_ld3" ief="nowner6" irrpc/cache.c#L305" id12701" id 
13>.== -1a h3ef="+code=EAG11>.=>119 od3=La>)39neL257" class"net/sunam le#am  
L30r
L306"c1/a>,ge5chret/sunrpc/cache.c#L305" id12701" id 
13>t/sunrpc/3sref">cache_d11eq">119" c3af="n39neL25pc/cache.c#L204" id 12501" id 
13/spav2.1193od3=L96"39="+coqsL257"=/a>, 1a=sunrpc/cacopen_flush8">.2521/"line"open_flush"sref">cd1/a>, sseq_filef="inef=8">.2521/"line"inef= class="lic+f="+code=inef=8">.2521/"line"inef= cla,f">cd1/a>, sl1/a>,..304e=cache_seq_file" i257" cla,pc/cache.c#L305" id127 cla}ef="3Rhe_revisi3elves:1/spav211we >1194od3=L96"39isssssssssssssssssffNeeeeeeee">cd1/a>, sl1/a>,.,.11>" c3aL96"39ne" n      1spav class="c12691" id 
13"sref">rv13a>.=.1a href=11"sr>11>che3mL96"39call1/a>(1L251/a>ef">r"r
ne" nam cache_ld3" ief="net/sun1|| ef">r"r
ne" nam try_modulin 
L306"c1/a>,ge5chtry_modulin 
L"srefnam le#am  
L30cache_ld3" ief="net/sund1/a>, 1a
521/ne" naownerche_ld3" ief="nowner6" irrpc/cache.c#L305" id127 cla}ef="3ass="sref"3rv1/a>.== -1a11ass>119cod3=L96"39" class="s304" cl-/a>) {.rv1/a>.=.11" c>1198od3=L96"39ne304" cl0ef="net/sunam le#am  
L30nonseekab">_o_">.303le#3" ief="nonseekab">_o_">"srefnam le#am  
L30inef=8">.2521/"line"inef= cla,f="limL304">.304e=cache_seq_file" i257" clarrpc/cache.c#L305" id12701" id 
130" id 
L303" class="line110" >1199od3=L96"39/sunrpc/cache.c#L204" id 11901" id 
14301"d 
L304" class="line12301>120sod4=L96"40sunrpc/cache.c#L307" id 12611" id 
143q" class=4sref">cache_d123q">1201od4=L96"401"+coqsL257"=/a>, 1a=sunrpc/cacrelease_flush8">.2521/"line"release_flush"sref">cd1/a>, sseq_filef="inef=8">.2521/"line"inef= class="lic+f="+code=inef=8">.2521/"line"inef= cla,f">cd1/a>, sl1/a>,..304e=cache_seq_file" i257" cla,pc/cache.c#L305" id127 cla}ef="43spav2.cd1/a>, sl1/a>,.,.123">c4c#def40isL257" class="limL304">.3041odulinputche_l1/a>,hL"+ 1odulinput"srefnam le#am  
L30cache_ld3" ief="net/sund1/a>, 1a
521/ne" naownerche_ld3" ief="nowner6" irrpc/cache.c#L305" id12701" id 
1435 can our4eref="net/sun111/s>11>" c4af="+40neffN1" class) {.rv14a>.=.1a href=123sr>120che4m    406sL25pc/cache.c#L204" id 11901" id 
1437ref">rv14av1/a>.== -1a11ass>119cod4=EAGA40          1a href="+code12681" id 
143 class="s4ef">rv1/a>.=.123 c>120="+4ode=E40ef">rqsL257"L306c1/a>,ge5ne+"izee_req" off_L" id +"izee_e304", 1a=sunrpc/cac = 0 flush8">.2521/"line"re 0 flush"sref">cd1/a>, sseq_filef="e=cache_seq_file" i257" class="limL304">.304e=cache_seq_file" i257" cla, char
L306c1/a>,ge5ne__userche_ld3" ief="n__user class="limL304">.304bu>.303buf3" i    bu> cla,pc/cache.c#L305" id127 cla}ef="439class="s4e class="line110" >1199od4tail"40isit_requecL293" csssssssssssssL306c1/a>,ge5ne+izee_req" off_L" id +izee_e304", 1a=sunrpc/caccoun_req" off_L" id coun_/suna>, 1aloff_Lcode=cache_req" off_L" id 
L257" class="lipoam  
L284"">.2841poache.ef="nnet/sun,pc/cache.c#L305" id127 cla}ef="4hat list a4d into the ta12hat>1210114a="ne41ne" nam  
a>(1a hrffNeeeeeee*L2">cd1/a>, sl1/a>,.,.1211 c4ass="41ne}
e      1spav class="c12691" id 
14pc/cache.c4L313" id 
L3112pc/>121.c#42f="n41 
L293" clf96char
L306c1/a>,ge5netbu>.303buf3" i    tbu> cla[22]apc/cache.c#L305" id12d31" id 
14 called it4finds the nex12 ca>1213 c4ass="4ineffN1ref">cdaru#L306"long
L306bpcode=cach_req"bp3" i     pcd1/lass="lilpcode=cach"">.2841poache.ef="nnet/sunapc/cache.c#L305" id12d31" id 
14 e can our4list in that 12 wa>121">c4che_r41isL257" class="limL304">.304+izee_req" off_L" id +izee_e304", 1a=sunrpc/cac3">.303le#3" ief="net/sunrpc/cache.c#L305" id12d71" id 
14 can be re4oved.1/spav2.12 ca>121" c4ass="41ne" nc/cache.c#L204" id 12581" id 
14 sref">rv14L317" id 
L3112pc/>121che4make_4pcall1/a>(1whi="limL304">.304+nprint>.303buf3" i    +nprint>"sref="limL304">.304tbu>.303buf3" i    tbu> cla,f"izeofl="limL304">.304tbu>.303buf3" i    tbu> cla)a>n6str253L>'\0'    ;%lu\n;    ;       ,{nam le#am  
L30convertc#L3wallc
L238">.2521/"line"convertc#L3wallc
L23"srefnam le#am  
L30cache_ld3" ief="net/sund1/a>, 1a
521/ne" naflush_tim>.303byte" id   flush_tim>/sun)rrpc/cache.c#L305" id12701" id 
14:1/spav2.<4 href="net/su12:1/>121cod4=EAGA4N" class="ssss, 1a=sunrpc/cac3">.303le#3" ief="net/sund 
L306c1/a>,ge5ne+tr3">.303le#3" ief="+tr3">"sref="limL304">.304tbu>.303buf3" i    tbu> clarrpc/cache.c#L305" id12701" id 
14: class="s41/spav2.121="+4o    41MEcharu*L257"1/a>, 1a=sunrpc/cac_req"bp3" i     pcd1/ dg 
L29 1abufsizeam  3">.303le#3" ief="net/sunrpc/cache.c#L305" id127 cla}ef="4a9class="s4he flush_time12is >121">c4che_r4visit_requecL293" c/as) {.122e c4ass="42neL257" class="li"r
ne" nam 3">.303le#3" ief="net/sund- 
L306bpcode=cach_req"bp3" i     pcd1/apc/cache.c#L305" id12d31" id 
14entries wi4h non-NEVER e12ent>122" c4ass="42neffN1*L257" clas, 1a=sunrpc/cac3">.303le#3" ief="net/sundL306 , 1a=sunrpc/caccoun_req" off_L" id coun_/sunrpc/cache.c#L305" id127 cla}ef="4; for some4definition of12; f>122.c#42f="n42 
L293" clf96" id 
L29"lispin"line" 3">.303le#3" ief="net/sund 
L306c1/a>,ge5necoun_req" off_L" id coun_/sunapc/cache.c#L305" id12d31" id 
14ecalled it4L324" id 
L3212pc/>12p/a>41a hr42neffN1ref">cd1/a>, 1abpcode=cachcopyc#L3userche_ld3" ief="ncopyc#L3user"sref="limL304">.304bu>.303buf3" i    bu> cla, ( cla*)f="limL304">.304tbu>.303buf3" i    tbu> cla+L306bpcode=cach_req"bp3" i     pcd1/r,{nam le#am  
L303">.303le#3" ief="net/sunrrpc/cache.c#L305" id127 cla}ef="4;e can our4scan a table&12w o>122">c4che_r4visssssssssssssssssffN) {.12p" c4ass="4ine" nam  
eees="lilpcode=cach"">.2841poache.ef="nnet/sund+= , 1a=sunrpc/cac3">.303le#3" ief="net/sunrpc/cache.c#L305" id12d71" id 
14ss="line" 4am  
L227">.212ss=>122av 4lass=42ca304" class="line" nam le#am  
L303">.303le#3" ief="net/sunrpc/cache.c#L305" id12d71" id 
14s1/spav2.<4"net/sunrpc/c12>;.>122cod4=EAGA42/sunrpc/cache.c#L204" id 12581" id 
14s="line" n4m  
L229">.2212s=">12p="+4ode=E42          1spav class="c12h91" id 
14rite_lock14a>(&1a hr12rit>122">c4che_r4visit_e
L257"L306c1/a>,ge5ne+"izee_req" off_L" id +"izee_e304", 1a=sunrpc/cacwrite_flush8">.2521/"line"write_flush"sref">cd1/a>, sseq_filef="e=cache_seq_file" i257" class="limL304">.304e=cache_seq_file" i257" cla, constfchar
L306c1/a>,ge5ne__userche_ld3" ief="n__user class="limL304">.304bu>.303buf3" i    bu> cla,pc/cache.c#L305" id127 cla}ef="41a href="+4ode=cache_is_121a >121a>c4che_r43ne" nam  
a>(1a hrffNeeeeeee*L2sL306c1/a>,ge5ne+izee_req" off_L" id +izee_e304", 1a=sunrpc/caccoun_req" off_L" id coun_/suna>, 1aloff_Lcode=cache_req" off_L" id 
L257" class="lipoam  
L284"">.2841poache.ef="nnet/sun,pc/cache.c#L305" id127 cla}ef="4>.!= -1a h4ef="+code=EAG12>.!>121" c4ass="43neeeeeeeeeeeeeeeeeeeeeeeeeeeeeee">cd1/a>, sl1/a>,.,.w4ite_unlock1/a12s=">121.c#4293" 4d 
L29      1spav class="c12691" id 
14sref">rv1/4>;. cla[20]apc/cache.c#L305" id12d31" id 
14235" class4"line" nam  
12235>123">c4che_r434spav cl1 
L2char
s="limL304">.304b_req"bp3" i         }.,
s="limL304">.304e_req"bp3" i     epcd1/apc/cache.c#L305" id12d31" id 
14bit1/a>(1a4href="+code=C12bit>123" c4ass="4ine" nc/cache.c#L204" id 12581" id 
14bs="line" 4e_fresh_locke12"sr>123che4make_43call1/a>(1L251/a>s="lilpcode=cach"">.2841poache.ef="nnet/sund||", 1a=sunrpc/caccoun_req" off_L" id coun_/sundL306 "izeofl="limL304">.304tbu>.303buf3" i    tbu> cla)-1rpc/cache.c#L305" id127 cla}ef="4s1/spav2.<4ck1/a>(&112>wr>123cod4=EAGA43" class="s304" cl-/a>) {..EXPORT_SYMBOINVA3cd1/apc/cache.c#L305" id12d31" id 
14b="line" n4che_fresh_unl12s=">123="+4ode=E43MEcharu*L257"1/a>, 1a=sunrpc/caccopycfrom3userche_ld3" ief="ncopycfrom3user"sref="limL304">.304tbu>.303buf3" i    tbu> cla,f="limL304">.304bu>.303buf3" i    bu> cla, , 1a=sunrpc/caccoun_req" off_L" id coun_/sunrrpc/cache.c#L305" id127 cla}ef="4site_lock14a>;.>123">c4che_r43isit_requecL293" c/as) {..212ss=>124e c4ass="44neL257" class="li"r
ne" nam tbu>.303buf3" i    tbu> cla[, 1a=sunrpc/caccoun_req" off_L" id coun_/sun]" cnrpc/cache.c#L305" id12101" id 
14s="line" n4m  
L242">.2412s=">124" c4ass="44neL257" class="li"r
ne" nam simple_">ctouache_l1/a>,.ctoua"sref="limL304">.304tbu>.303buf3" i    tbu> cla,fref="net/"r
ne" nam e_req"bp3" i     epcd1/, 0rrpc/cache.c#L305" id12701" id 
14pc/cache.c4L243" id 
L2412pc/>124.c#4293" 44 
AIN1ref">cd1/a>s="limL304">.304e_req"bp3" i     epcd1/l+" id     
s="limL304">.304e_req"bp3" i     epcd1/ !=>n6str253L>'\0'#39;\n;#39;       rpc/cache.c#L305" id12701" id 
14pref">rv1/4t routine for12e m>124/a>41a hr44="+code=CA304" class="line" -, 1a
521/ne" naEINVA38">.EXPORT_SYMBOINVA3cd1/apc/cache.c#L305" id12d31" id 
14s.1/spav2.4a href="net/s12s.1>124">c4che_r44isL25c/cache.c#L204" id 12501" id 
14pit1/a>(1a4tem and will 12f a>124" c4ass="4ine" nam  
a>(="limL304">.304b_req"bp3" i         }.d 
L306c1/a>,ge5netbu>.303buf3" i    tbu> claapc/cache.c#L305" id12d31" id 
14ss="line" 4eded.1/spav2.12ll >124che4make_44call1/a>(1whi="limL304">.304cache_ld3" ief="net/sund1/a>, 1a
521/ne" naflush_tim>.303byte" id   flush_tim>/sund 
L306c1/a>,ge5neget_... cy8">.2521/"line"get_... cy"srefref="net/"r
ne" nam b_req"bp3" i         }.rrpc/cache.c#L305" id12701" id 
14p1/spav2.<4L248" id 
L2412pc/>124cod4=EAGA44" class="ssss, 1a=sunrpc/caccache_ld3" ief="net/sund1/a>, 1a
521/ne" nanex_c#L238">.2521/"line"nex_c#L23/sund 
L306c1/a>,ge5ne+econds_since_boo_req" off_L" id +econds_since_boo_"srefrrpc/cache.c#L305" id12701" id 
14p="line" n4L249" id 
L2412pc/>124="+4ode=E4IMEDOUT" clf=", 1a
521/ne" nap
L2inflush8">.2521/"line"p
L2inflush"srefrrpc/cache.c#L305" id12701" id 
14pite_lock14used, or cach12ead>124">c4che_r44 href="+code=rv" class="12601" id 
14ding and r4quest has bee12din>1250114a="ne45ne" nam  
a>(s="lilpcode=cach"">.2841poache.ef="nnet/sund+= , 1a=sunrpc/caccoun_req" off_L" id coun_/sunapc/cache.c#L305" id12d31" id 
14led or req4est could not12led>125" c4ass="45neeeeeeeeeeee"net/sunam le#am  
L30coun_req" off_L" id coun_/sunapc/cache.c#L305" id12d31" id 
14lc/cache.c4 is still inv12ed >125.c#4293" 4d 
L29pc/cache.c#L204" id 12581" id 
14 has been 4eplaced with 12 ha>1253 c4ass="45="+code=inline" class="s12341" id 
14d.1/spav2.41/spav2.125">c4che_r45isssse
L257"L306c1/a>,ge5ne+"izee_req" off_L" id +"izee_e304", 1a=sunrpc/cacp
L2inre 0 procf.2841poache.ef="p
L2inre 0 procf."sref">cd1/a>, sseq_filef="e=cache_seq_file" i257" class="limL304">.304e=c_req"bp3" i     e=c_ cla, char
L306c1/a>,ge5ne__userche_ld3" ief="n__user class="limL304">.304bu>.303buf3" i    bu> cla,pc/cache.c#L305" id127 cla}ef="4eit1/a>(1a4#L256" id 
L212rpc>12d" c4ass="45ne" nam  
L257" classsssssssssssssssssL306c1/a>,ge5ne+izee_req" off_L" id +izee_e304", 1a=sunrpc/caccoun_req" off_L" id coun_/suna>, 1aloff_Lcode=cache_req" off_L" id 
L257" class="lipoam  
L284"">.2841poache.ef="nnet/sunrpc/cache.c#L305" id12701" id 
14es="line" 4(struct.1a hr12e_c>12dche4make_45call1      1spav class="c12691" id 
14ead" class4"sref">cache_12ead>12dcod4=f="n45" class="ssss">cd1/a>, sl1/a>,.,..304e=c_req"bp3" i     e=c_ clad1/a>, 1a
521/ne" naf_path8">.2521/"line"f_path clad1/a>re"+erne" nd   ry8">.2521/"line"d   ry/sun-1/a>, 1a
521/ne" nad_inef=8">.2521/"line"d_inef= cla)-1/a>, 1a
521/ne" nadata8">.2521/"line"data/sunapc/cache.c#L305" id12d31" id 
14l="line" n4am  
L259">.212ss=>1258 c4aass=45          1spav class="c12h91" id 
14>;.;.>125   4 if (45isit_requecL2"line" nam lasA" nam  c
L2inre 02841poache.ef="p
L2inre 0"sref="limL304">.304e=c_req"bp3" i     e=c_ cla,f="limL304">.304bu>.303buf3" i    bu> cla, , 1a=sunrpc/caccoun_req" off_L" id coun_/sun, , 1a=sunrpc/cac"">.2841poache.ef="nnet/sun,>nam le#am  
L30cache_ld3" ief="net/sunrrpc/cache.c#L305" id12701" id 
14ref">refre4h_age1/a>, 1a12ref>1260114a="ne46d 
L2pc/cache.c#L204" id 12581" id 
14s="line" n4m  
L262">.2612s=">1261od4=L96"46/sunrpc/cache.c#L305" id12721" id 
14urn status4as best we ca12urn>1262od4=L96"462sssse
L257"L306c1/a>,ge5ne+"izee_req" off_L" id +"izee_e304", 1a=sunrpc/cacp
L2inwrite_procf.2841poache.ef="p
L2inwrite_procf."sref">cd1/a>, sseq_filef="e=cache_seq_file" i257" class="limL304">.304e=c_req"bp3" i     e=c_ cla, constfchar
L306c1/a>,ge5ne__userche_ld3" ief="n__user class="limL304">.304bu>.303buf3" i    bu> cla,pc/cache.c#L305" id127 cla}ef="41a href="+4ode=cache_is_121a >1263od4=L96"46="+code=CA304" class=ssssssssssssssssssL306c1/a>,ge5ne+izee_req" off_L" id +izee_e304", 1a=sunrpc/caccoun_req" off_L" id coun_/suna>, 1aloff_Lcode=cache_req" off_L" id 
L257" class="lipoam  
L284"">.2841poache.ef="nnet/sunrpc/cache.c#L305" id12701" id 
141.1/spav2.4m  
L265">.2612s=">1264od4=L96"464
L29      1spav class="c12691" id 
141it1/a>(1a4 an upcall */12nt.>126" c4aL96"465
L293" cl304">cd1/a>, sl1/a>,.,..304e=c_req"bp3" i     e=c_ clad1/a>, 1a
521/ne" naf_path8">.2521/"line"f_path clad1/a>re"+erne" nd   ry8">.2521/"line"d   ry/sun-1/a>, 1a
521/ne" nad_inef=8">.2521/"line"d_inef= cla)-1/a>, 1a
521/ne" nadata8">.2521/"line"data/sunapc/cache.c#L305" id12d31" id 
141s="line" 41/a>.=.(1a hr12ref>126che4mL96"4id 
L2pc/cache.c#L305" id12d31" id 
141ad" class4+code=seconds12=.1>12rcod4=    467sit_requecL2"line" nam lasA" nam  c
L2inwrite2841poache.ef="p
L2inwrite"sref="limL304">.304e=c_req"bp3" i     e=c_ cla,f="limL304">.304bu>.303buf3" i    bu> cla, , 1a=sunrpc/caccoun_req" off_L" id coun_/sun, , 1a=sunrpc/cac"">.2841poache.ef="nnet/sun,>nam le#am  
L30cache_ld3" ief="net/sunrrpc/cache.c#L305" id12701" id 
14r="line" n4m  
L269">.2612s=">1268 c4ad"="4ref">rpc/cache.c#L204" id 12581" id 
14s;.c4che_r46 href="+code=rv" class="12601" id 
14f">rv1/a>.4= -1a href="+12f">>127e c4a}ef=4net/sue
L257"aru#L306"=/a>, 1a=sunrpc/cacc
L2inpoll_procf.2841poache.ef="p
L2inpoll_procf."sref">cd1/a>, sseq_filef="e=cache_seq_file" i257" class="limL304">.304e=c_req"bp3" i     e=c_ cla, , 1a=sunrpc/cac"oll_tab">.303handlehe_ma"oll_tab"> class="limL304">.304wai_req" off_L" id wai_/sunrpc/cache.c#L305" id12701" id 
14"sref">rv14a>.=.-1a href12"sr>127" c4af="n47ne}
e      1spav class="c12691" id 
14">rv1/a>.=4 -1a href="+c12">r>12f.c#42d" c47 
L293" clf96">cd1/a>, sl1/a>,hL"+f="+codode=cache_l1/a>,..304e=c_req"bp3" i     e=c_ clad1/a>, 1a
521/ne" naf_path8">.2521/"line"f_path clad1/a>re"+erne" nd   ry8">.2521/"line"d   ry/sun-1/a>, 1a
521/ne" nad_inef=8">.2521/"line"d_inef= cla)-1/a>, 1a
521/ne" nadata8">.2521/"line"data/sunapc/cache.c#L305" id12d31" id 
14ef">dprint41/a>(1spav cl11ef"2">dpri4tk1/a47="+code=inline" class="s12341" id 
14e="line" n4class="sref">11fre>117">c4che_r47issssssssssss"line" nam lasA" nam  c
L2in"oll2841poache.ef="p
L2inpoll"sref="limL304">.304e=c_req"bp3" i     e=c_ cla,f="limL304">.304wai_req" off_L" id wai_/sun,>nam le#am  
L30cache_ld3" ief="net/sunrrpc/cache.c#L305" id12701" id 
14"it1/a>(1a4"sref">test_a11bit>11f" c4ass="47nerefpc/cache.c#L204" id 12581" id 
14"efresh_ag4call" class="11che>117che4make_47d 
L2pc/cache.c#L305" id12d31" id 
14".1a href=4sref">EINVAL111AL">117cod4=EAGA47" clae
L257"long
L306bpcode=cachp
L2inioctl_procf.2841poache.ef="p
L2inioctl_procf."sref">cd1/a>, sseq_filef="e=cache_seq_file" i257" class="limL304">.304e=c_req"bp3" i     e=c_ cla,pc/cache.c#L305" id12d31" id 
14"="line" n4ass="sref">cl11ear>1178 c4ass="47MEDOUT" clf="net/sunrrrrrrrrrrrrrrrraru#L306"=/a>, 1a=sunrpc/caccmache_ld3" ief="nemt/suna>aru#L306"long
L306bpcode=cacharg8">.2521/"line"arg/sunrpc/cache.c#L305" id12701" id 
14";.117">c4che_r47isf="      1spav class="c12691" id 
14" class="s4ef">rv1/a>.=.11" c>118e c4ass="480
L293" clf96">cd1/a>, sl1/a>,hL"+finef=8">.2521/"line"inef= class="lic+f="+code=inef=8">.2521/"line"inef= cla1/a="lic+f="+code=e=c_req"bp3" i     e=c_ clad1/a>, 1a
521/ne" naf_path8">.2521/"line"f_path clad1/a>re"+erne" nd   ry8">.2521/"line"d   ry/sun-1/a>, 1a
521/ne" nad_inef=8">.2521/"line"d_inef= clarpc/cache.c#L305" id12701" id 
14et/sunrpc/4ache.c#L282" 11et/>1181 c4ass="48neeeeeeeeeeeeqstp1/a>).,..304inef=8">.2521/"line"inef= cla)-1/a>, 1a
521/ne" nadata8">.2521/"line"data/sunapc/cache.c#L305" id12d31" id 
14IN" class=4sref">EAGAIN111IN">118.c#4293" 48/sunrpc/cache.c#L305" id12231" id 
14ear_bit" c4ass="sref">cl11ear>1183c#4293" 483ssssssssssss"line" nam lasA" nam  c
L2inioctl2841poache.ef="p
L2inioctl"sref="limL304">.304inef=8">.2521/"line"inef= cla,f="limL304">.304e=c_req"bp3" i     e=c_ cla,f="limL304">.304cmache_ld3" ief="nemt/suna>L306bpcode=cacharg8">.2521/"line"arg/sun,>nam le#am  
L30cache_ld3" ief="net/sunrrpc/cache.c#L305" id12701" id 
14"="line" n4_request" cla11che>118">c4che_r48isssspc/cache.c#L204" id 12581" id 
14"it1/a>(1a4ache.c#L286" 11et/>11"" c4ass="48ne" nc/cache.c#L204" id 12581" id 
14he.c#L287"4id 
L287" cla11he.>1186>c4che_r48call1e
L257"=/a>, 1a=sunrpc/cacc
L2inopen_procf.2841poache.ef="p
L2inopen_procf."sref">cd1/a>, sseq_filef="inef=8">.2521/"line"inef= class="lic+f="+code=inef=8">.2521/"line"inef= cla,f">cd1/a>, sl1/a>,..304e=c_req"bp3" i     e=c_ clarpc/cache.c#L305" id12701" id 
148" id 
L284" class="line118" >11"cod4=EAGA48" cla      1spav class="c12691" id 
14289" class4"line" nam  
11289>1188 c4ass="48nef="net/sunr">cd1/a>, sl1/a>,.,..304inef=8">.2521/"line"inef= cla)-1/a>, 1a
521/ne" nadata8">.2521/"line"data/sunapc/cache.c#L305" id12d31" id 
14I;..2911s=">118">c4cf="n48 href="+code=rv" class="12601" id 
14>.== -1a h4ef="+code=EAG11>.=>119 od4=La>)49neL257" class"net/sunam le#am  
L30p
L2inopen2841poache.ef="p
L2inopen"sref="limL304">.304inef=8">.2521/"line"inef= cla,f="limL304">.304e=c_req"bp3" i     e=c_ cla,f="limL304">.304cache_ld3" ief="net/sunrrpc/cache.c#L305" id12701" id 
14>t/sunrpc/4sref">cache_d11eq">119" c4af="n49neL25pc/cache.c#L204" id 12501" id 
14/spav2.1193od4=L96"49="+coqsL257"=/a>, 1a=sunrpc/cacp
L2inrelease_procf.2841poache.ef="p
L2inrelease_procf."sref">cd1/a>, sseq_filef="inef=8">.2521/"line"inef= class="lic+f="+code=inef=8">.2521/"line"inef= cla,f">cd1/a>, sl1/a>,..304e=c_req"bp3" i     e=c_ clarpc/cache.c#L305" id12701" id 
14Rhe_revisi4elves:1/spav211we >1194od4=L96"494
L29      1spav class="c12691" id 
141/spav2.11>" c4aL96"495
L293" cl304">cd1/a>, sl1/a>,.,..304inef=8">.2521/"line"inef= cla)-1/a>, 1a
521/ne" nadata8">.2521/"line"data/sunapc/cache.c#L305" id12d31" id 
14"sref">rv14a>.=.1a href=11"sr>11>che4mL96"49d 
L2pc/cache.c#L305" id12d31" id 
14ass="sref"4rv1/a>.== -1a11ass>119cod4=L96"497sit_requecL2"line" nam lasA" nam  c
L2inrelease.303le#3" ief="c
L2inrelease"sref="limL304">.304inef=8">.2521/"line"inef= cla,f="limL304">.304e=c_req"bp3" i     e=c_ cla,f="limL304">.304cache_ld3" ief="net/sunrrpc/cache.c#L305" id12701" id 
14>89" class4ef">rv1/a>.=.11" c>1198od4=L96"49ef">rpc/cache.c#L204" id 12581" id 
140" id 
L304" class="line110" >1199od4=L96"49 href="+code=rv" class="12601" id 
15301"d 
L305" class="line12301>120sod5=L96"50et/sue
L257"constf">cd1/a>, sl1/a>,.cache_d123q">1201od5=L96"50neeeeeeeeeeeed1/a>re"+erne" nownerche_ld3" ief="nowner6" irrrrrrrrrr/a="lic+f="+code=THIS_MODULEche_ld3" ief="nTHIS_MODULE cla,pc/cache.c#L305" id12d31" id 
153spav2.re"+erne" nllseekreq" off_L" id 
lseek6" irrrrrrrrr/a="lic+f="+code=no_llseekreq" off_L" id no_llseek cla,pc/cache.c#L305" id12d31" id 
1533pav2.1193od51a hr503
L293" cl304d1/a>re"+erne" nre 02841poache.ef="re 0"sre rrrrrrrrrr/a="lic+f="+code=p
L2inre 0 procf.2841poache.ef="p
L2inre 0 procf."sre,pc/cache.c#L305" id12d31" id 
1534pav2.1194od5c#def50isL257" classd1/a>re"+erne" nwrite2841poache.ef="write"srerrrrrrrrrr/a="lic+f="+code=p
L2inwrite_procf.2841poache.ef="p
L2inwrite_procf."sre,pc/cache.c#L305" id12d31" id 
1535pav2.re"+erne" n"oll2841poache.ef="poll"sre rrrrrrrrrr/a="lic+f="+code=p
L2inpoll_procf.2841poache.ef="p
L2inpoll_procf."sre,pc/cache.c#L305" id12d31" id 
1536pav2..=.1a href=11"sr>11>che5m    506effN1" classd1/a>re"+erne" nun
L23ednioctl2841poache.ef="un
L23ednioctl/sun1/a="lic+f="+code=p
L2inioctl_procf.2841poache.ef="p
L2inioctl_procf."sre,N96" class="d  text with \for FIONREAD               1a href="+code12671" id 
1537ref">rv15av1/a>.== -1a11ass>119cod5=EAGA507eeeeeeeeeeeed1/a>re"+erne" nopen2841poache.ef="open"sre rrrrrrrrrr/a="lic+f="+code=p
L2inopen_procf.2841poache.ef="p
L2inopen_procf."sre,pc/cache.c#L305" id12d31" id 
1538ref">rv15af">rv1/a>.=.11" c>1198od5ode=E508
L293" cl304d1/a>re"+erne" nrelease.303le#3" ief="release"srerrrrrrrr/a="lic+f="+code=p
L2inrelease_procf.2841poache.ef="p
L2inrelease_procf."sre,pc/cache.c#L305" id12d31" id 
1539ref">rv15a class="line110" >1199od5tail"50isit_nrpc/cache.c#L305" id12711" id 
15hat list a5d into the ta12hat>1210115a="ne51sunrpc/cache.c#L307" id 12611" id 
15a href="ne5/sunrpc/cache12a h>1211 c5ass="511"+coqsL257"=/a>, 1a=sunrpc/cacc      _o_">_procf.2841poache.ef="p      _o_">_procf."sref">cd1/a>, sseq_filef="inef=8">.2521/"line"inef= class="lic+f="+code=inef=8">.2521/"line"inef= cla,f">cd1/a>, sl1/a>,..304e=c_req"bp3" i     e=c_ clarpc/cache.c#L305" id12701" id 
15pc/cache.c5L313" id 
L3112pc/>121.c#52f="n51 
L29      1spav class="c12691" id 
15 called it5finds the nex12 ca>1213 c5ass="5ineffN1ref">cd">cd1/a>, sl1/a>,.,..304inef=8">.2521/"line"inef= cla)-1/a>, 1a
521/ne" nadata8">.2521/"line"data/sunapc/cache.c#L305"="c12691" id 
15 4pav2.121">c5che_r51isL25c/cache.c#L204" id 12501" id 
15 can be re5oved.1/spav2.12 ca>121" c5ass="51neffN1" class) {.2841poache.ef="p      _o_">"sref="limL304">.304inef=8">.2521/"line"inef= cla,f="limL304">.304e=c_req"bp3" i     e=c_ cla,f="limL304">.304cache_ld3" ief="net/sunrrpc/cache.c#L305" id12701" id 
15 sref">rv15L317" id 
L3112pc/>121che5make_516sL25pc/cache.c#L204" id 11901" id 
15:1/spav2.<5 href="net/su12:1/>121cod5=EAGA51          1a href="+code12681" id 
15: class="s51/spav2.121="+5o    51ef">rqsL257"=/a>, 1a=sunrpc/cacc      _release_procf.2841poache.ef="p      _release_procf."sref">cd1/a>, sseq_filef="inef=8">.2521/"line"inef= class="lic+f="+code=inef=8">.2521/"line"inef= cla,f">cd1/a>, sl1/a>,..304e=c_req"bp3" i     e=c_ clarpc/cache.c#L305" id12701" id 
15p9ref">rv15he flush_time12is >121">c5che_r51isf="      1spav class="c12691" id 
15pc/cache.c5L321" id 
L3212pc/>122e c5ass="520
L293" clf96">cd1/a>, sl1/a>,hL"+fef="+code=cache_l1/a>,..304inef=8">.2521/"line"inef= cla)-1/a>, 1a
521/ne" nadata8">.2521/"line"data/sunapc/cache.c#L305"="c12691" id 
15entries wi5h non-NEVER e12ent>122" c5ass="52/sunrpc/cache.c#L305" id12721" id 
15; for some5definition of12; f>122.c#52f="n52 
AIN1ref">cd) {..304inef=8">.2521/"line"inef= cla,f="limL304">.304e=c_req"bp3" i     e=c_ cla,f="limL304">.304cache_ld3" ief="net/sunrrpc/cache.c#L305" id12701" id 
15ecalled it5L324" id 
L3212pc/>12p/a>51a hr52="+copc/cache.c#L204" id 12501" id 
15;e can our5scan a table&12w o>122">c5che_r52isL25c/cache.c#L204" id 12501" id 
15ecan be re5pav2.12p" c5ass="52nerefqsL257"constf">cd1/a>, sl1/a>,..212ss=>122av 5lass=526effN1" classd1/a>re"+erne" nopen2841poache.ef="open"sre rrrrrrrrrr/a="lic+f="+code=p      _o_">_procf.2841poache.ef="p      _o_">_procf."sre,pc/cache.c#L305" id12d31" id 
15s1/spav2.<5"net/sunrpc/c12>;.>122cod5=EAGA527eeeeeeeeeeeed1/a>re"+erne" nre 02841poache.ef="re 0"sre rrrrrrrrrr/a="lic+f="+code=+codre 02841poache.ef="+codre 0"sre,pc/cache.c#L305" id12d31" id 
15s class="s5m  
L229">.2212s=">12p="+5ode=E528
L293" cl304d1/a>re"+erne" nllseekreq" off_L" id 
lseek6" irrrrrrrrr/a="lic+f="+code=+codlseekreq" off_L" id +codlseek"sre,pc/cache.c#L305" id12d31" id 
15s9ref">rv15a>(&1a hr12rit>122">c5che_r529eeeeeeeeeeeed1/a>re"+erne" nrelease.303le#3" ief="release"srerrrrrrrr/a="lic+f="+code=p      _release_procf.2841poache.ef="p      _release_procf."sre,pc/cache.c#L305" id12d31" id 
151a href="+5ode=cache_is_121a >121a>c5che_r53ne" nnrpc/cache.c#L305" id12711" id 
15>.!= -1a h5ef="+code=EAG12>.!>121" c5ass="53/sunrpc/cache.c#L305" id12721" id 
15s="sref">w5ite_unlock1/a12s=">121.c#5293" 532sssse
L257"=/a>, 1a=sunrpc/cacopen_flush_procf.2841poache.ef="open_flush_procf."sref">cd1/a>, sseq_filef="inef=8">.2521/"line"inef= class="lic+f="+code=inef=8">.2521/"line"inef= cla,f">cd1/a>, sl1/a>,..304e=c_req"bp3" i     e=c_ clarpc/cache.c#L305" id12701" id 
15sref">rv1/5>;.123">c5che_r534spav cl1 
L2">cd1/a>, sl1/a>,hL"+fef="+code=cache_l1/a>,..304inef=8">.2521/"line"inef= cla)-1/a>, 1a
521/ne" nadata8">.2521/"line"data/sunapc/cache.c#L305"="c12691" id 
152can be re5href="+code=C12bit>123" c5ass="5ine" nc/cache.c#L204" id 12581" id 
15bs="line" 5e_fresh_locke12"sr>123che5make_53ca304" class="line" nam le#am  
L30open_flush8">.2521/"line"open_flush"sref="limL304">.304inef=8">.2521/"line"inef= cla,f="limL304">.304e=c_req"bp3" i     e=c_ cla,f="limL304">.304cache_ld3" ief="net/sunrrpc/cache.c#L305" id12701" id 
15s1/spav2.<5ck1/a>(&112>wr>123cod5=EAGA53/sunrpc/cache.c#L204" id 12581" id 
15b="line" n5che_fresh_unl12s=">123="+5ode=E53          1spav class="c12h91" id 
15site_lock15a>;.>123">c5che_r539sssse
L257"=/a>, 1a=sunrpc/cacrelease_flush_procf.2841poache.ef="release_flush_procf."sref">cd1/a>, sseq_filef="inef=8">.2521/"line"inef= class="lic+f="+code=inef=8">.2521/"line"inef= cla,f">cd1/a>, sl1/a>,..304e=c_req"bp3" i     e=c_ clarpc/cache.c#L305" id12701" id 
15ss="line" 5am  
L241">.212ss=>124e c5ass="54et/su      1spav class="c12s51" id 
15s="line" n5m  
L242">.2412s=">124" c5ass="54neeeeeeeeeeeeqstp1/a>).,..304inef=8">.2521/"line"inef= cla)-1/a>, 1a
521/ne" nadata8">.2521/"line"data/sunapc/  1spav class="c12s51" id 
15s="sref">w5L243" id 
L2412pc/>124.c#5293" 54/sunrpc/cache.c#L305" id12231" id 
15pref">rv1/5t routine for12e m>124/a>51a hr543ssssssssssss"line" nam lasA" nam  release_flush8">.2521/"line"release_flush"sref="limL304">.304inef=8">.2521/"line"inef= cla,f="limL304">.304e=c_req"bp3" i     e=c_ cla,f="limL304">.304cache_ld3" ief="net/sunrrpc/cache.c#L305" id12701" id 
15s.1/spav2.5a href="net/s12s.1>124">c5che_r54isssspc/cache.c#L204" id 12581" id 
15pit1/a>(1a5tem and will 12f a>124" c5ass="54ne" nc/cache.c#L204" id 12581" id 
15ss="line" 5eded.1/spav2.12ll >124che5make_54call1e
L257"="lic+f="+code=+"izee_req" off_L" id +"izee_e304", 1a=sunrpc/cac = 0 flush_procf.2841poache.ef="re 0 flush_procf."sref">cd1/a>, sseq_filef="e=cache_seq_file" i257" class="limL304">.304e=c_req"bp3" i     e=c_ cla, char
L306c1/a>,ge5ne__userche_ld3" ief="n__user class="limL304">.304bu>.303buf3" i    bu> cla,pc/cache.c#L305" id127 cla}ef="5p1/spav2.<5L248" id 
L2412pc/>124cod5=EAGA54" class="s304" cl-/a>>>>>>>>>>>>>="lic+f="+code=+izee_req" off_L" id +izee_e304", 1a=sunrpc/caccoun_req" off_L" id coun_/suna>, 1aloff_Lcode=cache_req" off_L" id 
L257" class="lipoam  
L284"">.2841poache.ef="nnet/sunrpc/cache.c#L305" id12701" id 
15p="line" n5L249" id 
L2412pc/>124="+5ode=E5IMEDOU      1spav class="c12s51" id 
15site_lock15used, or cach12ead>124">c5che_r549eeeeeeeeeeeeqstp1/a>).,..304e=c_req"bp3" i     e=c_ clad1/a>, 1a
521/ne" naf_path8">.2521/"line"f_path clad1/a>re"+erne" nd   ry8">.2521/"line"d   ry/sun-1/a>, 1a
521/ne" nad_inef=8">.2521/"line"d_inef= cla)-1/a>, 1a
521/ne" nadata8">.2521/"line"data/sunapc/  1spav class="c12s51" id 
15ding and r5quest has bee12din>1250115a="ne55sunrpc/cache.c#L307" id 12611" id 
15led or req5est could not12led>125" c5ass="55neeeeeeeeeeee"net/sunam le#am  
L30 = 0 flush8">.2521/"line"re 0 flush"sref="limL304">.304e=c_req"bp3" i     e=c_ cla,f="limL304">.304bu>.303buf3" i    bu> cla, , 1a=sunrpc/caccoun_req" off_L" id coun_/sun, , 1a=sunrpc/cac"">.2841poache.ef="nnet/sun,>nam le#am  
L30cache_ld3" ief="net/sunrrpc/cache.c#L305" id12701" id 
15lc/cache.c5 is still inv12ed >125.c#5293" 5d 
L29pc/cache.c#L204" id 12581" id 
15 has been 5eplaced with 12 ha>1253 c5ass="55="+code=inline" class="s12341" id 
15d.1/spav2.51/spav2.125">c5che_r55isssse
L257"L306c1/a>,ge5ne+"izee_req" off_L" id +"izee_e304", 1a=sunrpc/cacwrite_flush_procf.2841poache.ef="write_flush_procf."sref">cd1/a>, sseq_filef="e=cache_seq_file" i257" class="limL304">.304e=c_req"bp3" i     e=c_ cla,de=inline" class="s12341" id 
15dit1/a>(1a5#L256" id 
L212rpc>12d" c5ass="55ne" nam  
L257" classsssssssssssssssss constfchar
L306c1/a>,ge5ne__userche_ld3" ief="n__user class="limL304">.304bu>.303buf3" i    bu> cla,pc/cache.c#L305" id127 cla}ef="5es="line" 5(struct.1a hr12e_c>12dche5make_556e" nam  
L257" classsssssssssssssssss ="lic+f="+code=+izee_req" off_L" id +izee_e304", 1a=sunrpc/caccoun_req" off_L" id coun_/suna>, 1aloff_Lcode=cache_req" off_L" id 
L257" class="lipoam  
L284"">.2841poache.ef="nnet/sunrpc/cache.c#L305" id12701" id 
15ead" class5"sref">cache_12ead>12dcod5=f="n55" cla      1spav class="c12691" id 
15l="line" n5am  
L259">.212ss=>1258 c5aass=55nef="net/sunr">cd1/a>, sl1/a>,.,..304e=c_req"bp3" i     e=c_ clad1/a>, 1a
521/ne" naf_path8">.2521/"line"f_path clad1/a>re"+erne" nd   ry8">.2521/"line"d   ry/sun-1/a>, 1a
521/ne" nad_inef=8">.2521/"line"d_inef= cla)-1/a>, 1a
521/ne" nadata8">.2521/"line"data/sunapc/  1spav class="c12s51" id 
15>;.;.>125   5 if (55 href="+code=rv" class="12601" id 
15ref">refre5h_age1/a>, 1a12ref>1260115a="ne56neL257" class"net/sunam le#am  
L30write_flush8">.2521/"line"write_flush"sref="limL304">.304e=c_req"bp3" i     e=c_ cla,f="limL304">.304bu>.303buf3" i    bu> cla, , 1a=sunrpc/caccoun_req" off_L" id coun_/sun, , 1a=sunrpc/cac"">.2841poache.ef="nnet/sun,>nam le#am  
L30cache_ld3" ief="net/sunrrpc/cache.c#L305" id12701" id 
15s="line" n5m  
L262">.2612s=">1261od5=L96"56neL25pc/cache.c#L204" id 12501" id 
15urn status5as best we ca12urn>1262od5=L96"56/sunrpc/cache.c#L305" id12231" id 
151a href="+5ode=cache_is_121a >1263od5=L96"56="+coqsL257"constf">cd1/a>, sl1/a>,..2612s=">1264od5=L96"56isL257" classd1/a>re"+erne" nopen2841poache.ef="open"sre rrrrrrrrrr/a="lic+f="+code=open_flush_procf.2841poache.ef="open_flush_procf."sre,pc/cache.c#L305" id127 cla}ef="51it1/a>(1a5 an upcall */12nt.>126" c5aL96"565
L293" cl304d1/a>re"+erne" nre 02841poache.ef="re 0"sre rrrrrrrrrr/a="lic+f="+code= = 0 flush_procf.2841poache.ef="re 0 flush_procf."sre,pc/cache.c#L305" id127 cla}ef="51s="line" 51/a>.=.(1a hr12ref>126che5mL96"566effN1" classd1/a>re"+erne" nwrite2841poache.ef="write"srerrrrrrrrrr/a="lic+f="+code=write_flush_procf.2841poache.ef="write_flush_procf."sre,pc/cache.c#L305" id127 cla}ef="51ad" class5+code=seconds12=.1>12rcod5=    567eeeeeeeeeeeed1/a>re"+erne" nrelease.303le#3" ief="release"srerrrrrrrr/a="lic+f="+code=release_flush_procf.2841poache.ef="release_flush_procf."sre,pc/cache.c#L305" id127 cla}ef="51="line" n5m  
L269">.2612s=">1268 c5ad"="568
L293" cl304d1/a>re"+erne" nllseekreq" off_L" id 
lseek6" irrrrrrrrr/a="lic+f="+code=no_llseekreq" off_L" id no_llseek cla,pc/cache.c#L305" id12d31" id 
15s;.c5che_r56isit_nrpc/cache.c#L305" id12711" id 
15f">rv1/a>.5= -1a href="+12f">>127e c5a}ef=57sunrpc/cache.c#L307" id 12611" id 
15"sref">rv15a>.=.-1a href12"sr>127" c5af="n571"+coqsL257" claa="lic+f="+code=remove_p
L2inproc_   rie.2841poache.ef="remove_p
L2inproc_   rie."sref">cd1/a>, sseq_filef="ef="+code=cache_l1/a>,.cd1/a>, sl1/a>,.rv1/a>.=5 -1a href="+c12">r>12f.c#52d" c57 
L29      1spav class="c12691" id 
15ef">dprint51/a>(1spav cl11ef"2">dpri5tk1/a57neffN1ref">cd">cd1/a>, sl1/a>,..303le#3" ief="+t/sunrpc/cache.c#L305" id12d71" id 
15e="line" n5class="sref">11fre>117">c5che_r57isL25c/cache.c#L204" id 12501" id 
15"it1/a>(1a5"sref">test_a11bit>11f" c5ass="575
L293" cl3041/a>, 1a=sunrpc/caccache_ld3" ief="net/sund1/a>, 1a
521/ne" nauche_ld3" ief="nu clad1/a>re"+erne" nprocf.2841poache.ef="procf."sred1/a>re"+erne" nproc_   2841poache.ef="proc_   /sun1//a="lic+f="+code=NUL38">.EXPORT_SYMBNUL3 clarpc/cache.c#L305" id12701" id 
15"s="line" 5call" class="11che>117che5make_576e" nam  
L257" class"net/srpc/cache.c#L305" id12d71" id 
15ead" class5sref">EINVAL111AL">117cod5=EAGA577
L293" cl3041/a>, 1a=sunrpc/caccache_ld3" ief="net/sund1/a>, 1a
521/ne" nauche_ld3" ief="nu clad1/a>re"+erne" nprocf.2841poache.ef="procf."sred1/a>re"+erne" nflush_   2841poache.ef="flush_    clarpc/cache.c#L305" id12701" id 
15"="line" n5ass="sref">cl11ear>1178 c5ass="57MEDOUT" clf="net/sunr="lic+f="+code=remove_proc_   ry8">.2521/"line"remove_proc_   ry"sref=6str253L>'\0'    ;flush;    ;       ,{nam le#am  
L30cache_ld3" ief="net/sund1/a>, 1a
521/ne" nauche_ld3" ief="nu clad1/a>re"+erne" nprocf.2841poache.ef="procf."sred1/a>re"+erne" nproc_   2841poache.ef="proc_   /sunrrpc/cache.c#L305" id12701" id 
15";.117">c5che_r579
L293" cl3041/a>, 1a=sunrpc/caccache_ld3" ief="net/sund1/a>, 1a
521/ne" nauche_ld3" ief="nu clad1/a>re"+erne" nprocf.2841poache.ef="procf."sred1/a>re"+erne" nchannel_   2841poache.ef="channel_    clarpc/cache.c#L305" id12701" id 
15" class="s5ef">rv1/a>.=.11" c>118e c5ass="580
L293" clf96net/sunr="lic+f="+code=remove_proc_   ry8">.2521/"line"remove_proc_   ry"sref=6str253L>'\0'    ;channel;    ;       ,{nam le#am  
L30cache_ld3" ief="net/sund1/a>, 1a
521/ne" nauche_ld3" ief="nu clad1/a>re"+erne" nprocf.2841poache.ef="procf."sred1/a>re"+erne" nproc_   2841poache.ef="proc_   /sunrrpc/cache.c#L305" id12701" id 
15et/sunrpc/5ache.c#L282" 11et/>1181 c5ass="58neffN1*L257" clas, 1a=sunrpc/caccache_ld3" ief="net/sund1/a>, 1a
521/ne" nauche_ld3" ief="nu clad1/a>re"+erne" nprocf.2841poache.ef="procf."sred1/a>re"+erne" nc      _   2841poache.ef="c      _    clarpc/cache.c#L305" id12701" id 
15">rv1/a>.=5sref">EAGAIN111IN">118.c#5293" 58 
L293" clf96" id 
L29"lispin"line" remove_proc_   ry8">.2521/"line"remove_proc_   ry"sref=6str253L>'\0'    ;c      ;    ;       ,{nam le#am  
L30cache_ld3" ief="net/sund1/a>, 1a
521/ne" nauche_ld3" ief="nu clad1/a>re"+erne" nprocf.2841poache.ef="procf."sred1/a>re"+erne" nproc_   2841poache.ef="proc_   /sunrrpc/cache.c#L305" id12701" id 
15ef">dprint5ass="sref">cl11ear>1183c#5293" 583ssssssssssssnam le#am  
L30cache_ld3" ief="net/sund1/a>, 1a
521/ne" nauche_ld3" ief="nu clad1/a>re"+erne" nprocf.2841poache.ef="procf."sred1/a>re"+erne" nproc_   2841poache.ef="proc_   /sunr/a="lic+f="+code=NUL38">.EXPORT_SYMBNUL3 clarpc/cache.c#L305" id12701" id 
15e="line" n5_request" cla11che>118">c5che_r584ssssssssssssnam le#am  
L30s>.303le#3" ief="+t/sunr/a="lic+f="+code=net_genericreq" off_L" id ne"_generic"sref="limL304">.304L30req" off_L" id ne" cla,{nam le#am  
L30ss="c1_L30_i02841poache.ef="+s="c1_L30_i0/sunrrpc/cache.c#L305" id12701" id 
15eit1/a>(1a5ache.c#L286" 11et/>11"" c5ass="58ne" nam  
a>(="limL304">.304remove_proc_   ry8">.2521/"line"remove_proc_   ry"sref=am le#am  
L30cache_ld3" ief="net/sund1/a>, 1a
521/ne" na/>11req" off_L" id nam= cla,f="limL304">.304s>.303le#3" ief="+t/sund1/a>, 1a
521/ne" naproc_L30_id12841poache.ef="proc_L30_id1/sunrrpc/cache.c#L305" id12701" id 
15es="line" 5id 
L287" cla11he.>1186>c5che_r586sL25pc/cache.c#L204" id 11901" id 
158" id 
L285" class="line118" >11"cod5=EAGA58          1a href="+code12681" id 
15289" class5"line" nam  
11289>1188 c5ass="58nef="#ifdeff="limL304">.304CONFIG_PROC_FS2841poache.ef="CONFIG_PROC_FS         1a href="+code12681" id 
152;..2911s=">118">c5cf="n589sssse
L257"=/a>, 1a=sunrpc/caccreate_p
L2inproc_   rie.2841poache.ef="create_p
L2inproc_   rie."sref">cd1/a>, sseq_filef="ef="+code=cache_l1/a>,.cd1/a>, sl1/a>,..== -1a h5ef="+code=EAG11>.=>119 od5=La>)59et/su      1spav class="c12s51" id 
15>t/sunrpc/5sref">cache_d11eq">119" c5af="n59neeeeeeeeeeeeqstp1/a>)..2521/"line"proc_dir_   ry class="lipoam  
L284"8">.2521/"line"p clarpc/cache.c#L305" id12701" id 
15/spav2.cd1/a>, sl1/a>,hL"+fss="c1_L30req" off_L" id ss="c1_L30 class="lipoam  
L284s>.303le#3" ief="+t/sunrpc/cache.c#L305" id12d71" id 
15Request wa5 not deferred11Req>1193od5=L96"59="+code=inline" class="s12341" id 
15Rhe_revisi5elves:1/spav211we >1194od5=L96"594ssssssssssssnam le#am  
L30s>.303le#3" ief="+t/sunr/a="lic+f="+code=net_genericreq" off_L" id ne"_generic"sref="limL304">.304L30req" off_L" id ne" cla,{nam le#am  
L30ss="c1_L30_i02841poache.ef="+s="c1_L30_i0/sunrrpc/cache.c#L305" id12701" id 
151/spav2.11>" c5aL96"59ne" nam  
a>(="limL304">.304cache_ld3" ief="net/sund1/a>, 1a
521/ne" nauche_ld3" ief="nu clad1/a>re"+erne" nprocf.2841poache.ef="procf."sred1/a>re"+erne" nproc_   2841poache.ef="proc_   /sunr/a="lic+f="+code=proc_mkdir2841poache.ef="proc_mkdir"sref=am le#am  
L30cache_ld3" ief="net/sund1/a>, 1a
521/ne" na/>11req" off_L" id nam= cla,f="limL304">.304s>.303le#3" ief="+t/sund1/a>, 1a
521/ne" naproc_L30_id12841poache.ef="proc_L30_id1/sunrrpc/cache.c#L305" id12701" id 
15"sref">rv15a>.=.1a href=11"sr>11>che5mL96"596e" nam  
L25clas, 1a=sunrpc/caccache_ld3" ief="net/sund1/a>, 1a
521/ne" nauche_ld3" ief="nu clad1/a>re"+erne" nprocf.2841poache.ef="procf."sred1/a>re"+erne" nproc_   2841poache.ef="proc_   /sun1//a="lic+f="+code=NUL38">.EXPORT_SYMBNUL3 clarpc/cache.c#L305" id12701" id 
15ass="sref"5rv1/a>.== -1a11ass>119cod5=L96"59" class="s304" cl-/a>gotoa="lic+f="+code=out_nomem2841poache.ef="out_nomem/sunrpc/cache.c#L305" id12d71" id 
15R89" class5ef">rv1/a>.=.11" c>1198od5=L96"59MEDOUT" clf=", 1a
521/ne" napache_ld3" ief="net/sund1/a>, 1a
521/ne" nauche_ld3" ief="nu clad1/a>re"+erne" nprocf.2841poache.ef="procf."sred1/a>re"+erne" nchannel_   2841poache.ef="channel_    clar/a="lic+f="+code=NUL38">.EXPORT_SYMBNUL3 clarpc/cache.c#L305" id12701" id 
150" id 
L305" class="line110" >1199od5=L96"599EDOUT" clf=", 1a
521/ne" napache_ld3" ief="net/sund1/a>, 1a
521/ne" nauche_ld3" ief="nu clad1/a>re"+erne" nprocf.2841poache.ef="procf."sred1/a>re"+erne" nc      _   2841poache.ef="c      _    clar/a="lic+f="+code=NUL38">.EXPORT_SYMBNUL3 clarpc/cache.c#L305" id12701" id 
16301"d 
L306" class="line12301>120sod6=L96"60sunrpc/cache.c#L307" id 12611" id 
163q" class=6sref">cache_d123q">1201od6=L96"60neeeeeeeeeeee="lipoam  
L284"8">.2521/"line"p clar/a="lic+f="+code=proc_create_data8">.2521/"line"proc_create_data"sref=6str253L>'\0'    ;flush;    ;       ,{nam le#am  
L30S_IFREG8">.2521/"line"S_IFREG"sre|nam le#am  
L30S_IRUSR8">.2521/"line"S_IRUSR"sre|nam le#am  
L30S_IWUSR8">.2521/"line"S_IWUSR"sre,pc/cache.c#L305" id12d31" id 
163spav2.re"+erne" nproc_   2841poache.ef="proc_   /sun,pc/cache.c#L305" id12d31" id 
1633pav2.1193od61a hr603
L293" cl304444444444444444444444&>, 1a
521/ne" nac
L2inflush_operL25ons_procf.2841poache.ef="p
L2inflush_operL25ons_procf./sun,>nam le#am  
L30cache_ld3" ief="net/sunrrpc/cache.c#L305" id12701" id 
1634pav2.1194od6c#def604ssssssssssssnam le#am  
L30cache_ld3" ief="net/sund1/a>, 1a
521/ne" nauche_ld3" ief="nu clad1/a>re"+erne" nprocf.2841poache.ef="procf."sred1/a>re"+erne" nflush_   2841poache.ef="flush_    clar/a="lic+f="+code=p8">.2521/"line"p clarpc/cache.c#L305" id12701" id 
1635pav2., 1a=sunrpc/cac"8">.2521/"line"p clar//a="lic+f="+code=NUL38">.EXPORT_SYMBNUL3 clarpc/cache.c#L305" id12701" id 
1636pav2..=.1a href=11"sr>11>che6m    606e" nam  
L257" classgotoa="lic+f="+code=out_nomem2841poache.ef="out_nomem/sunrpc/cache.c#L305" id12d71" id 
1637ref">rv16av1/a>.== -1a11ass>119cod6=EAGA60          1a href="+code12681" id 
1638ref">rv16af">rv1/a>.=.11" c>1198od6ode=E608
L293" cl304clas, 1a=sunrpc/caccache_ld3" ief="net/sund1/a>, 1a
521/ne" nap
L2inupcall2841poache.ef="p
L2inupcall
L293||snam le#am  
L30cache_ld3" ief="net/sund1/a>, 1a
521/ne" nap
L2inparse.303le#3" ief="c
L2inparse clara      1spav class="c12691" id 
1639ref">rv16a class="line110" >1199od6tail"609e" nam  
L257" class="lipoam  
L284"8">.2521/"line"p clar/a="lic+f="+code=proc_create_data8">.2521/"line"proc_create_data"sref=6str253L>'\0'    ;channel;    ;       ,{nam le#am  
L30S_IFREG8">.2521/"line"S_IFREG"sre|nam le#am  
L30S_IRUSR8">.2521/"line"S_IRUSR"sre|nam le#am  
L30S_IWUSR8">.2521/"line"S_IWUSR"sre,pc/cache.c#L305" id12d31" id 
16hat list a6d into the ta12hat>1210116a="ne610
L293" clf96net/sunr" id 
L2clf96" id 
L29"lispin"line" cache_ld3" ief="net/sund1/a>, 1a
521/ne" nauche_ld3" ief="nu clad1/a>re"+erne" nprocf.2841poache.ef="procf."sred1/a>re"+erne" nproc_   2841poache.ef="proc_   /sun,pc/cache.c#L305" id12d31" id 
16a href="ne6/sunrpc/cache12a h>1211 c6ass="611
L293" clf96net/sunr" id 
L2clf96" id 
L2&>, 1a
521/ne" nac
L2inf57"doperL25ons_procf.2841poache.ef="p
L2inf57"doperL25ons_procf./sun,>nam le#am  
L30cache_ld3" ief="net/sunrrpc/cache.c#L305" id12701" id 
16pc/cache.c6L313" id 
L3112pc/>121.c#62f="n61 
L293" clf96" id 
L29"lispin"line" pache_ld3" ief="net/sund1/a>, 1a
521/ne" nauche_ld3" ief="nu clad1/a>re"+erne" nprocf.2841poache.ef="procf."sred1/a>re"+erne" nchannel_   2841poache.ef="channel_    clar/a="lic+f="+code=p8">.2521/"line"p clarpc/cache.c#L305" id12701" id 
16 called it6finds the nex12 ca>1213 c6ass="613
L293" cl304444444441/a>, 1a=sunrpc/cac"8">.2521/"line"p clar//a="lic+f="+code=NUL38">.EXPORT_SYMBNUL3 clarpc/cache.c#L305" id12701" id 
16 4pav2.121">c6che_r614
L293" clf96net/sunr" id 
L2gotoa="lic+f="+code=out_nomem2841poache.ef="out_nomem/sunrpc/cache.c#L305" id12d71" id 
16 can be re6oved.1/spav2.12 ca>121" c6ass="61neffN1" classpc/cache.c#L204" id 11901" id 
16 sref">rv16L317" id 
L3112pc/>121che6make_616e" nam  
L25clas, 1a=sunrpc/caccache_ld3" ief="net/sund1/a>, 1a
521/ne" nap
L2inshow2841poache.ef="p
L2inshow clara      1spav class="c12691" id 
16:1/spav2.<6 href="net/su12:1/>121cod6=EAGA61" class="s304" cl-/a>="lipoam  
L284"8">.2521/"line"p clar/a="lic+f="+code=proc_create_data8">.2521/"line"proc_create_data"sref=6str253L>'\0'    ;c      ;    ;       ,{nam le#am  
L30S_IFREG8">.2521/"line"S_IFREG"sre|nam le#am  
L30S_IRUSR8">.2521/"line"S_IRUSR"sre|nam le#am  
L30S_IWUSR8">.2521/"line"S_IWUSR"sre,pc/cache.c#L305" id12d31" id 
16h8ref">rv161/spav2.121="+6o    61MEDOUT" clf="net/sunrrrrrrrrrrrrrrrr29"lispin"line" pache_ld3" ief="net/sund1/a>, 1a
521/ne" nauche_ld3" ief="nu clad1/a>re"+erne" nprocf.2841poache.ef="procf."sred1/a>re"+erne" nproc_   2841poache.ef="proc_   /sun,pc/cache.c#L305" id12d31" id 
16a9ref">rv16he flush_time12is >121">c6che_r619e" nam  
L257" classssssssssssssssss&>, 1a
521/ne" nac      _f57"doperL25ons_procf.2841poache.ef="p      _f57"doperL25ons_procf./sun,>nam le#am  
L30cache_ld3" ief="net/sunrrpc/cache.c#L305" id12701" id 
16pc/cache.c6L321" id 
L3212pc/>122e c6ass="620
L293" clf96net/sunr="lic+f="+code=pache_ld3" ief="net/sund1/a>, 1a
521/ne" nauche_ld3" ief="nu clad1/a>re"+erne" nprocf.2841poache.ef="procf."sred1/a>re"+erne" nc      _   2841poache.ef="c      _    clar/a="lic+f="+code=p8">.2521/"line"p clarpc/cache.c#L305" id12701" id 
16entries wi6h non-NEVER e12ent>122" c6ass="621
L293" clf96net/sunr1/a>, 1a=sunrpc/cac"8">.2521/"line"p clar//a="lic+f="+code=NUL38">.EXPORT_SYMBNUL3 clarpc/cache.c#L305" id12701" id 
16; for some6definition of12; f>122.c#62f="n62 
L293" clf96" id 
L2clf96" igotoa="lic+f="+code=out_nomem2841poache.ef="out_nomem/sunrpc/cache.c#L305" id12d71" id 
16ecalled it6L324" id 
L3212pc/>12p/a>61a hr623effN1" classpc/cache.c#L204" id 11901" id 
16;e can our6scan a table&12w o>122">c6che_r62issssssssssss"line" 0rpc/cache.c#L305" id12d71" id 
16ecan be re6pav2.12p" c6ass="62neref="lic+f="+code=out_nomem2841poache.ef="out_nomem/sun:pc/cache.c#L305" id12d71" id 
16esref">rv16am  
L227">.212ss=>122av 6lass=626effN1" class="lic+f="+code=remove_p
L2inproc_   rie.2841poache.ef="remove_p
L2inproc_   rie."sref="lic+f="+code=pache_ld3" ief="net/sun,>nam le#am  
L30L30req" off_L" id ne" clarrpc/cache.c#L305" id12d71" id 
16e1/spav2.<6"net/sunrpc/c12>;.>122cod6=EAGA627sit_requecL2"line" -nam le#am  
L30ENOMEMreq" off_L" id ENOMEM/sunrpc/cache.c#L305" id12d71" id 
16e8ref">rv16m  
L229">.2212s=">12p="+6ode=E62ef">rpc/cache.c#L204" id 12581" id 
16s9ref">rv16a>(&1a hr12rit>122">c6che_r629eeee#elseN96" class="d  text with \CONFIG_PROC_FS               1a href="+code12671" id 
161a href="+6ode=cache_is_121a >121a>c6che_r63et/sue
L257"=/a>, 1a=sunrpc/caccreate_p
L2inproc_   rie.2841poache.ef="create_p
L2inproc_   rie."sref">cd1/a>, sseq_filef="ef="+code=cache_l1/a>,.cd1/a>, sl1/a>,..!= -1a h6ef="+code=EAG12>.!>121" c6ass="63/sunr      1spav class="c12691" id 
16s="sref">w6ite_unlock1/a12s=">121.c#6293" 63 
AIN1ref">cd) {.rv1/6>;.123">c6che_r634spav#endifc/cache.c#L204" id 12501" id 
162can be re6href="+code=C12bit>123" c6ass="6ine" nc/cache.c#L204" id 12581" id 
16bs="line" 6e_fresh_locke12"sr>123che6make_63ca304 claa="lic+f="+code=__ini0req" off_L" id __ini0
AIN1>, sseq_filef="ef="+cini0ialize.303le#3" ief="c
L2inini0ialize"sref clarpc/cache.c#L305" id12701" id 
16>1/spav2.<6ck1/a>(&112>wr>123cod6=EAGA63" cla      1spav class="c12691" id 
16b="line" n6che_fresh_unl12s=">123="+6ode=E63MEDOUT" clf=", 1a
521/ne" naINIT_DEFERRABLE_WORK.303le#3" ief="INIT_DEFERRABLE_WORK"sref&>, 1a
521/ne" nac
L2incleanerche_ld3" ief="nc
L2incleaner/sun,>nam le#am  
L30do_c
L2incleanche_ld3" ief="ndo_c
L2inclean clarrpc/cache.c#L305" id12d71" id 
16site_lock16a>;.>123">c6che_r639sssspc/cache.c#L204" id 12501" id 
16ss="line" 6am  
L241">.212ss=>124e c6ass="64sunrpc/cache.c#L307" id 12611" id 
16s="line" n6m  
L242">.2412s=">124" c6ass="64neeee=/a>, 1a=sunrpc/cacp
L2inregister_L30req" off_L" id p
L2inregister_L30"sref">cd1/a>, sseq_filef="ef="+code=cache_l1/a>,.cd1/a>, sl1/a>,.w6L243" id 
L2412pc/>124.c#6293" 64 
L29      1spav class="c12691" id 
16pref">rv1/6t routine for12e m>124/a>61a hr643ssssssssssss=/a>, 1a=sunrpc/cacre0req" off_L" id re" clarpc/cache.c#L305" id12d71" id 
16s.1/spav2.6a href="net/s12s.1>124">c6che_r64isL25c/cache.c#L204" id 12501" id 
16pit1/a>(1a6tem and will 12f a>124" c6ass="64ne" nam  
a>(="limL304">.304+s="c1_ini0_ef="+code=cache_l1/a>,.124che6make_646effN1" class="lic+f="+code=re0req" off_L" id re" clar/a="lic+f="+code=preate_p
L2inproc_   rie.2841poache.ef="create_p
L2inproc_   rie."sref="lic+f="+code=pache_ld3" ief="net/sun,>nam le#am  
L30L30req" off_L" id ne" clarrpc/cache.c#L305" id12d71" id 
16p1/spav2.<6L248" id 
L2412pc/>124cod6=EAGA647
L293" cl3041/a>, 1a=sunrpc/cacre0req" off_L" id re" clarpc/cache.c#L305" id12701" id 
16s="line" n6L249" id 
L2412pc/>124="+6ode=E64MEDOUT" clf="net/sunr="lic+f="+code=+s="c1_de">coy_ef="+code=cache_l1/a>,.coy_ef="+code=ca"sref="lic+f="+code=pache_ld3" ief="net/sunrrpc/cache.c#L305" id12d71" id 
16site_lock16used, or cach12ead>124">c6che_r649eeeeeeeeeeee"net/sunam le#am  
L30 =0req" off_L" id re" clarpc/cache.c#L305" id12d71" id 
16ding and r6quest has bee12din>1250116a="ne65sunrppc/cache.c#L204" id 12501" id 
16led or req6est could not12led>125" c6ass="65neeeenam le#am  
L30EXPORT_SYMBOL_GP38">.EXPORT_SYMBEXPORT_SYMBOL_GP3"sref="lic+f="+code=p
L2inregister_L30req" off_L" id p
L2inregister_L30"srerrpc/cache.c#L305" id12d71" id 
16lc/cache.c6 is still inv12ed >125.c#6293" 65/sunrpc/cache.c#L305" id12231" id 
16 has been 6eplaced with 12 ha>1253 c6ass="65="+co claa="lic+f="+code=p
L2inunregister_L30req" off_L" id p
L2inunregister_L30"sref">cd1/a>, sseq_filef="ef="+code=cache_l1/a>,.cd1/a>, sl1/a>,.125">c6che_r65issss      1spav class="c12691" id 
16dit1/a>(1a6#L256" id 
L212rpc>12d" c6ass="65ne" nam  
a>(="limL304">.304remove_p
L2inproc_   rie.2841poache.ef="remove_p
L2inproc_   rie."sref="lic+f="+code=pache_ld3" ief="net/sun,>nam le#am  
L30L30req" off_L" id ne" clarrpc/cache.c#L305" id12d71" id 
16es="line" 6(struct.1a hr12e_c>12dche6make_656effN1" class="lic+f="+code=+s="c1_de">coy_ef="+code=cache_l1/a>,.coy_ef="+code=ca"sref="lic+f="+code=pache_ld3" ief="net/sunrrpc/cache.c#L305" id12d71" id 
16ead" class6"sref">cache_12ead>12dcod6=f="n65/sunrpc/cache.c#L204" id 12581" id 
16l="line" n6am  
L259">.212ss=>1258 c6aass=65nef="nam le#am  
L30EXPORT_SYMBOL_GP38">.EXPORT_SYMBEXPORT_SYMBOL_GP3"sref="lic+f="+code=p
L2inunregister_L30req" off_L" id p
L2inunregister_L30"srerrpc/cache.c#L305" id12d71" id 
16eite_lock16"net/sunrpc/c12>;.>125   6 if (65 href="+code=rv" class="12601" id 
16ref">refre6h_age1/a>, 1a12ref>1260116a="ne66et/sue
cd1/a>, sseq_filef="ef="+code=cache_l1/a>,.cd1/a>, sseq_filef="ef="+code=cache_l1/a>,.,.cd1/a>, sl1/a>,..2612s=">1261od6=L96"66/sunr      1spav class="c12691" id 
16urn status6as best we ca12urn>1262od6=L96"66 
L293" clf96">cd1/a>, sl1/a>,hL"+fef="+code=cache_l1/a>,..2612s=">1264od6=L96"66isL257" class="lic+f="+code=cache_ld3" ief="net/sunr/a="lic+f="+code=kmemdu"8">.2521/"line"kmemdu""sref="lic+f="+code=tmpache_l1/a>,.cd1/a>, sseq_filef="ef="+code=cache_l1/a>,.nam le#am  
L30GFP_KERNE38">.EXPORT_SYMBGFP_KERNE3"srerrpc/cache.c#L305" id12d71" id 
161it1/a>(1a6 an upcall */12nt.>126" c6aL96"665
L293" cl3041/a>, 1a=sunrpc/caccache_ld3" ief="net/sunr//a="lic+f="+code=NUL38">.EXPORT_SYMBNUL3 clarpc/cache.c#L305" id12701" id 
161s="line" 61/a>.=.(1a hr12ref>126che6mL96"666e" nam  
L257" class"net/sa="lic+f="+code=ERR_PTR8">.2521/"line"ERR_PTR"sref-nam le#am  
L30ENOMEMreq" off_L" id ENOMEM/sunrrpc/cache.c#L305" id12d71" id 
161ad" class6+code=seconds12=.1>12rcod6=    66          1a href="+code12681" id 
161="line" n6m  
L269">.2612s=">1268 c6ad"="66MEDOUT" clf=", 1a
521/ne" napache_ld3" ief="net/sund1/a>, 1a
521/ne" nahash_tabcache_seq_file" ihash_tabca/sunr/a="lic+f="+code=kzallo12841poache.ef="kzallo1"sref="lic+f="+code=pache_ld3" ief="net/sund1/a>, 1a
521/ne" nahash_size.303le#3" ief="hash_size classf"izeoff">cd1/a>, sseq_filef="ef="+che 02841poache.ef="ef="+che 0 class),pc/cache.c#L305" id12d31" id 
16s;.c6che_r669e" nam  
L257" classssssssssssssssss>nam le#am  
L30GFP_KERNE38">.EXPORT_SYMBGFP_KERNE3"srerrpc/cache.c#L305" id12d71" id 
16f">rv1/a>.6= -1a href="+12f">>127e c6a}ef=670
L293" cl3041/a>, 1a=sunrpc/caccache_ld3" ief="net/sund1/a>, 1a
521/ne" nahash_tabcache_seq_file" ihash_tabca/sunr//a="lic+f="+code=NUL38">.EXPORT_SYMBNUL3 clara      1spav class="c12691" id 
16"sref">rv16a>.=.-1a href12"sr>127" c6af="n671
L293" clf96net/sunr="lic+f="+code=kfreache_seq_file" ikfrea"sref="lic+f="+code=pache_ld3" ief="net/sunrrpc/cache.c#L305" id12d71" id 
16">rv1/a>.=6 -1a href="+c12">r>12f.c#62d" c67 
L293" clf96" id 
L2"net/sa="lic+f="+code=ERR_PTR8">.2521/"line"ERR_PTR"sref-nam le#am  
L30ENOMEMreq" off_L" id ENOMEM/sunrrpc/cache.c#L305" id12d71" id 
16ef">dprint61/a>(1spav cl11ef"2">dpri6tk1/a673effN1" classpc/cache.c#L204" id 11901" id 
16e="line" n6class="sref">11fre>117">c6che_r674ssssssssssssnam le#am  
L30cache_ld3" ief="net/sund1/a>, 1a
521/ne" naL30req" off_L" id ne" clas/a="lic+f="+code=netreq" off_L" id ne" clarpc/cache.c#L305" id12d71" id 
16eit1/a>(1a6"sref">test_a11bit>11f" c6ass="675
L293" cl304) {.EINVAL111AL">117cod6=EAGA677
L29nam le#am  
L30EXPORT_SYMBOL_GP38">.EXPORT_SYMBEXPORT_SYMBOL_GP3"sref="lic+f="+code=p
L2increate_L30req" off_L" id p
L2increate_L30"srerrpc/cache.c#L305" id12d71" id 
16e="line" n6ass="sref">cl11ear>1178 c6ass="67          1spav class="c12h91" id 
16";.117">c6che_r679
L29 claa="lic+f="+code=p
L2inde">coy_L30req" off_L" id p
L2inde">coy_L30"sref">cd1/a>, sseq_filef="ef="+code=cache_l1/a>,.cd1/a>, sl1/a>,.rv1/a>.=.11" c>118e c6ass="68et/su      1spav class="c12s51" id 
16et/sunrpc/6ache.c#L282" 11et/>1181 c6ass="68neeeeeeeeeeee="lipoam  
L284kfreache_seq_file" ikfrea"sref="lic+f="+code=pache_ld3" ief="net/sund1/a>, 1a
521/ne" nahash_tabcache_seq_file" ihash_tabca/sunrrpc/cache.c#L305" id12d71" id 
16">rv1/a>.=6sref">EAGAIN111IN">118.c#6293" 68 
L293" clf96="lic+f="+code=kfreache_seq_file" ikfrea"sref="lic+f="+code=pache_ld3" ief="net/sunrrpc/cache.c#L305" id12d71" id 
16ef">dprint6ass="sref">cl11ear>1183c#6293" 68="+copc/cache.c#L204" id 12501" id 
16e="line" n6_request" cla11che>118">c6che_r684ssssnam le#am  
L30EXPORT_SYMBOL_GP38">.EXPORT_SYMBEXPORT_SYMBOL_GP3"sref="lic+f="+code=p
L2inde">coy_L30req" off_L" id p
L2inde">coy_L30"srerrpc/cache.c#L305" id12d71" id 
16eit1/a>(1a6ache.c#L286" 11et/>11"" c6ass="68ne" nc/cache.c#L204" id 12581" id 
16es="line" 6id 
L287" cla11he.>1186>c6che_r68call1e
L257"="lic+f="+code=+"izee_req" off_L" id +"izee_e304", 1a=sunrpc/cacp
L2inread_pipef.2841poache.ef="p
L2inread_pipef."sref">cd1/a>, sseq_filef="e=cache_seq_file" i257" class="limL304">.304e=c_req"bp3" i     e=c_ cla, char
L306c1/a>,ge5ne__userche_ld3" ief="n__user class="limL304">.304bu>.303buf3" i    bu> cla,pc/cache.c#L305" id127 cla}ef="68" id 
L286" class="line118" >11"cod6=EAGA68" class="s304" cl-/a>>>>>>>>>>>>>clf96="lic+f="+code=+izee_req" off_L" id +izee_e304", 1a=sunrpc/caccoun_req" off_L" id coun_/suna>, 1aloff_Lcode=cache_req" off_L" id 
L257" class="lipoam  
L284"">.2841poache.ef="nnet/sunrpc/cache.c#L305" id12701" id 
16289" class6"line" nam  
11289>1188 c6ass="68MEDOU      1spav class="c12s51" id 
162;..2911s=">118">c6cf="n689eeeeeeeeeeeeqstp1/a>).,., 1a
521/ne" naf_path8">.2521/"line"f_path clad1/a>re"+erne" nd   ry8">.2521/"line"d   ry/sun-1/a>, 1a
521/ne" nad_inef=8">.2521/"line"d_inef= cla)-1/a>, 1a
521/ne" naprivate2841poache.ef="private/sunrpc/cache.c#L305" id12d71" id 
16>.== -1a h6ef="+code=EAG11>.=>119 od6=La>)69sunrpc/cache.c#L307" id 12611" id 
16>t/sunrpc/6sref">cache_d11eq">119" c6af="n69neeeeeeeeeeee"net/sunam le#am  
L30p
L2inread2841poache.ef="p
L2inread"sref="lic+f="+code=e=c_req"bp3" i     e=c_ cla,f="limL304">.304bu>.303buf3" i    bu> cla, , 1a=sunrpc/caccoun_req" off_L" id coun_/sun, , 1a=sunrpc/cac"">.2841poache.ef="nnet/sun,>nam le#am  
L30cache_ld3" ief="net/sunrrpc/cache.c#L305" id12701" id 
16/spav2.1193od6=L96"69="+code=inline" class="s12341" id 
16Rhe_revisi6elves:1/spav211we >1194od6=L96"694sssse
L257"="lic+f="+code=+"izee_req" off_L" id +"izee_e304", 1a=sunrpc/cacp
L2inwrite_pipef.2841poache.ef="p
L2inwrite_pipef."sref">cd1/a>, sseq_filef="e=cache_seq_file" i257" class="limL304">.304e=c_req"bp3" i     e=c_ cla, constfchar
L306c1/a>,ge5ne__userche_ld3" ief="n__user class="limL304">.304bu>.303buf3" i    bu> cla,pc/cache.c#L305" id127 cla}ef="61/spav2.11>" c6aL96"69ne" nam  
a>(4" cl-/a>>>>>>>>>>>>>clf96="lic+f="+code=+izee_req" off_L" id +izee_e304", 1a=sunrpc/caccoun_req" off_L" id coun_/suna>, 1aloff_Lcode=cache_req" off_L" id 
L257" class="lipoam  
L284"">.2841poache.ef="nnet/sunrpc/cache.c#L305" id12701" id 
16"sref">rv16a>.=.1a href=11"sr>11>che6mL96"696e" n      1spav class="c12s51" id 
16ass="sref"6rv1/a>.== -1a11ass>119cod6=L96"69" class="s304qstp1/a>).,., 1a
521/ne" naf_path8">.2521/"line"f_path clad1/a>re"+erne" nd   ry8">.2521/"line"d   ry/sun-1/a>, 1a
521/ne" nad_inef=8">.2521/"line"d_inef= cla)-1/a>, 1a
521/ne" naprivate2841poache.ef="private/sunrpc/cache.c#L305" id12d71" id 
16>89" class6ef">rv1/a>.=.11" c>1198od6=L96"69          1spav class="c12h91" id 
160" id 
L306" class="line110" >1199od6=L96"699eeeeeeeeeeee"net/sunam le#am  
L30p
L2inwrite2841poache.ef="p
L2inwrite"sref="lic+f="+code=e=c_req"bp3" i     e=c_ cla,f="limL304">.304bu>.303buf3" i    bu> cla, , 1a=sunrpc/caccoun_req" off_L" id coun_/sun, , 1a=sunrpc/cac"">.2841poache.ef="nnet/sun,>nam le#am  
L30cache_ld3" ief="net/sunrrpc/cache.c#L305" id12701" id 
17301"d 
L307" class="line12301>120sod7=L96"70sunrppc/cache.c#L204" id 12501" id 
173q" class=7sref">cache_d123q">1201od7=L96"70neeeec/cache.c#L204" id 12501" id 
1732" class=7sef="net/sunr11/sp>1192od7=L96"70 
L29e
L257"unsigned"=/a>, 1a=sunrpc/cacc
L2inpoll_pipef.2841poache.ef="p
L2inpoll_pipef."sref">cd1/a>, sseq_filef="e=cache_seq_file" i257" class="limL304">.304e=c_req"bp3" i     e=c_ cla, , 1a=sunrpc/cac"oll_tabcache_seq_file" i"oll_tabca class="limL304">.304wai0req" off_L" id wai0/sunrpc/cache.c#L305" id12701" id 
1733pav2.1193od71a hr703
L29      1spav class="c12s51" id 
1734pav2.1194od7c#def704ssssssssssssqstp1/a>).,., 1a
521/ne" naf_path8">.2521/"line"f_path clad1/a>re"+erne" nd   ry8">.2521/"line"d   ry/sun-1/a>, 1a
521/ne" nad_inef=8">.2521/"line"d_inef= cla)-1/a>, 1a
521/ne" naprivate2841poache.ef="private/sunrpc/cache.c#L305" id12d71" id 
1735pav2..=.1a href=11"sr>11>che7m    706e" nam  
L25"net/sunam le#am  
L30p
L2in"oll2841poache.ef="p
L2inpoll"sref="lic+f="+code=e=c_req"bp3" i     e=c_ cla,f="limL304">.304wai0req" off_L" id wai0/sun,>nam le#am  
L30cache_ld3" ief="net/sunrrpc/cache.c#L305" id12701" id 
1737pav2..== -1a11ass>119cod7=EAGA70/sunrpc/cache.c#L204" id 12581" id 
1738ref">rv17af">rv1/a>.=.11" c>1198od7ode=E70          1spav class="c12h91" id 
1739ref">rv17a class="line110" >1199od7tail"709sssse
L257"long1>, sseq_filef="ef="+cioctl_pipef.2841poache.ef="p
L2inioctl_pipef."sref">cd1/a>, sseq_filef="e=cache_seq_file" i257" class="limL304">.304e=c_req"bp3" i     e=c_ cla,     1spav class="c12h91" id 
17hat list a7d into the ta12hat>1210117a="ne710
L293" clf96net/sunr" id 
L2clf96"unsigned"=/a>, 1a=sunrpc/caccmache_ld3" ief="nemt/sun,funsigned"long1>, sseq_filef="argche_ld3" ief="narg/sunrpc/cache.c#L305" id12701" id 
17a href="ne7/sunrpc/cache12a h>1211 c7ass="71/sunr      1spav class="c12691" id 
17pc/cache.c7L313" id 
L3112pc/>121.c#72f="n71 
L293" clf96">cd1/a>, sl1/a>,hL"+finef=8">.2521/"line"inef= class="limL304">.304inef=8">.2521/"line"inef= clas/a="lic+f="+code=e=c_req"bp3" i     e=c_ clad1/a>, 1a
521/ne" naf_d   ry8">.2521/"line"f_d   ry/sun-1/a>, 1a
521/ne" nad_inef=8">.2521/"line"d_inef= clarpc/cache.c#L305" id12701" id 
17 called it7finds the nex12 ca>1213 c7ass="713
L293" cl304qstp1/a>).,..2521/"line"inef= cla)-1/a>, 1a
521/ne" naprivate2841poache.ef="private/sunrpc/cache.c#L305" id12d71" id 
17 4pav2.121">c7che_r71isL25c/cache.c#L204" id 12501" id 
17 can be re7oved.1/spav2.12 ca>121" c7ass="715
L293" cl304) {..2521/"line"inef= cla,>nam le#am  
L30e=c_req"bp3" i     e=c_ cla,f="limL304">.304cmache_ld3" ief="nemt/sun,f>, sseq_filef="argche_ld3" ief="narg/sun,>nam le#am  
L30cache_ld3" ief="net/sunrrpc/cache.c#L305" id12701" id 
17 sref">rv17L317" id 
L3112pc/>121che7make_716sL25pc/cache.c#L204" id 11901" id 
17:1/spav2.<7 href="net/su12:1/>121cod7=EAGA71          1a href="+code12681" id 
17h8ref">rv171/spav2.121="+7o    71MEDOUe
L257"=/a>, 1a=sunrpc/cacc
L2inopen_pipef.2841poache.ef="p
L2inopen_pipef."sref">cd1/a>, sseq_filef="inef=8">.2521/"line"inef= class="limL304">.304inef=8">.2521/"line"inef= cla,f">cd1/a>, sl1/a>,..304e=c_req"bp3" i     e=c_ clarpc/cache.c#L305" id12701" id 
17a9ref">rv17he flush_time12is >121">c7che_r719e" n      1spav class="c12691" id 
17pc/cache.c7L321" id 
L3212pc/>122e c7ass="720
L293" clf96qstp1/a>).,..2521/"line"inef= cla)-1/a>, 1a
521/ne" naprivate2841poache.ef="private/sunrpc/cacspav class="c12691" id 
17p href="ne7h non-NEVER e12ent>122" c7ass="72neeeec/cache.c#L204" id 12501" id 
17; for some7definition of12; f>122.c#72f="n72 
AIN1ref">cd) {..2521/"line"inef= cla,>nam le#am  
L30e=c_req"bp3" i     e=c_ cla,f="limL304">.304cache_ld3" ief="net/sunrrpc/cache.c#L305" id12701" id 
17ecalled it7L324" id 
L3212pc/>12p/a>71a hr72="+copc/cache.c#L204" id 12501" id 
17;e can our7scan a table&12w o>122">c7che_r72isL25c/cache.c#L204" id 12501" id 
17ecan be re7pav2.12p" c7ass="72nerefe
L257"=/a>, 1a=sunrpc/cacc
L2inrelease_pipef.2841poache.ef="p
L2inrelease_pipef."sref">cd1/a>, sseq_filef="inef=8">.2521/"line"inef= class="limL304">.304inef=8">.2521/"line"inef= cla,f">cd1/a>, sl1/a>,..304e=c_req"bp3" i     e=c_ clarpc/cache.c#L305" id12701" id 
17esref">rv17am  
L227">.212ss=>122av 7lass=726e" n      1spav class="c12s51" id 
17e1/spav2.<7"net/sunrpc/c12>;.>122cod7=EAGA72" class="s304qstp1/a>).,..2521/"line"inef= cla)-1/a>, 1a
521/ne" naprivate2841poache.ef="private/sunrpc/cacspav class="c12691" id 
17p8ref">rv17m  
L229">.2212s=">12p="+7ode=E72          1spav class="c12h91" id 
17s9ref">rv17a>(&1a hr12rit>122">c7che_r729eeeeeeeeeeee"net/sunam le#am  
L30p
L2inrelease2841poache.ef="p
L2inrelease"sref="lic+f="+code=inef=8">.2521/"line"inef= cla,>nam le#am  
L30e=c_req"bp3" i     e=c_ cla,f="limL304">.304cache_ld3" ief="net/sunrrpc/cache.c#L305" id12701" id 
171a href="+7ode=cache_is_121a >121a>c7che_r73sunrppc/cache.c#L204" id 12501" id 
17>.!= -1a h7ef="+code=EAG12>.!>121" c7ass="73neeeec/cache.c#L204" id 12501" id 
17s="sref">w7ite_unlock1/a12s=">121.c#7293" 73 
AINconstf">cd1/a>, sl1/a>,.rv1/7>;.re"+erne" nownerche_ld3" ief="nowner
L293" clf96ne/a="lic+f="+code=THIS_MODULEche_ld3" ief="nTHIS_MODULE cla,     1spav class="c12h91" id 
17235" class7"line" nam  
12235>123">c7che_r734
L293" cl304d1/a>re"+erne" nllseekreq" off_L" id 
lseek
L293" clf96n/a="lic+f="+code=no_llseekreq" off_L" id no_llseek cla,     1spav class="c12h91" id 
172can be re7href="+code=C12bit>123" c7ass="735
L293" cl304d1/a>re"+erne" nread2841poache.ef="read"sre 3" clf96ne/a="lic+f="+code=p
L2inread_pipef.2841poache.ef="p
L2inread_pipef."sre,     1spav class="c12h91" id 
172sref">rv17e_fresh_locke12"sr>123che7make_736
L293" cl304d1/a>re"+erne" nwrite2841poache.ef="write"sre3" clf96ne/a="lic+f="+code=p
L2inwrite_pipef.2841poache.ef="p
L2inwrite_pipef."sre,     1spav class="c12h91" id 
1721/spav2.<7ck1/a>(&112>wr>123cod7=EAGA737
L293" cl304d1/a>re"+erne" n"oll2841poache.ef="poll"sre 3" clf96ne/a="lic+f="+code=p
L2inpoll_pipef.2841poache.ef="p
L2inpoll_pipef."sre,     1spav class="c12h91" id 
1728ref">rv17che_fresh_unl12s=">123="+7ode=E73MEDOUT" clf="d1/a>re"+erne" nunlockednioctl2841poache.ef="unlockednioctl/sun1/a="lic+f="+code=ef="+cioctl_pipef.2841poache.ef="p
L2inioctl_pipef."sre,N96" class="d  text with \for FIONREAD               1a href="+code12671" id 
17site_lock17a>;.>123">c7che_r739
L293" cl304d1/a>re"+erne" nopen2841poache.ef="open"sre 3" clf96ne/a="lic+f="+code=p
L2inopen_pipef.2841poache.ef="p
L2inopen_pipef."sre,     1spav class="c12h91" id 
17ss="line" 7am  
L241">.212ss=>124e c7ass="740
L293" cl304d1/a>re"+erne" nrelease2841poache.ef="release"sre clf96ne/a="lic+f="+code=p
L2inrelease_pipef.2841poache.ef="p
L2inrelease_pipef."sre,     1spav class="c12h91" id 
17s.!= -1a h7m  
L242">.2412s=">124" c7ass="74neeee}rpc/cache.c#L305" id12701" id 
17s="sref">w7L243" id 
L2412pc/>124.c#7293" 74/sunrpc/cache.c#L305" id12231" id 
17pref">rv1/7t routine for12e m>124/a>71a hr743sssse
L257"=/a>, 1a=sunrpc/cacc      _open_pipef.2841poache.ef="p      _open_pipef."sref">cd1/a>, sseq_filef="inef=8">.2521/"line"inef= class="limL304">.304inef=8">.2521/"line"inef= cla,f">cd1/a>, sl1/a>,..304e=c_req"bp3" i     e=c_ clarpc/cache.c#L305" id12701" id 
17s.1/spav2.7a href="net/s12s.1>124">c7che_r74issss      1spav class="c12691" id 
17pit1/a>(1a7tem and will 12f a>124" c7ass="74ne" nam  
a>(qstp1/a>).,..2521/"line"inef= cla)-1/a>, 1a
521/ne" naprivate2841poache.ef="private/sunrpc/cacspav class="c12691" id 
17psref">rv17eded.1/spav2.12ll >124che7make_746effNpc/cacspav class="c12691" id 
17p1/spav2.<7L248" id 
L2412pc/>124cod7=EAGA747sit_requecL2"line" , 1a=sunrpc/cacc      _open2841poache.ef="p      _open"sref="lic+f="+code=inef=8">.2521/"line"inef= cla,>nam le#am  
L30e=c_req"bp3" i     e=c_ cla,f="limL304">.304cache_ld3" ief="net/sunrrpc/cache.c#L305" id12701" id 
17s="line" n7L249" id 
L2412pc/>124="+7ode=E74ef">rpc/cache.c#L204" id 12581" id 
17site_lock17used, or cach12ead>124">c7che_r74 href="+code=rv" class="12601" id 
17ding and r7quest has bee12din>1250117a="ne75et/sue
L257"=/a>, 1a=sunrpc/cacc      _release_pipef.2841poache.ef="p      _release_pipef."sref">cd1/a>, sseq_filef="inef=8">.2521/"line"inef= class="limL304">.304inef=8">.2521/"line"inef= cla,f">cd1/a>, sl1/a>,..304e=c_req"bp3" i     e=c_ clarpc/cache.c#L305" id12701" id 
17led or req7est could not12led>125" c7ass="75/sunr      1spav class="c12691" id 
17lc/cache.c7 is still inv12ed >125.c#7293" 75 
L293" clf96">cd1/a>, sl1/a>,hL"+fef="+code=cache_l1/a>,..2521/"line"inef= cla)-1/a>, 1a
521/ne" naprivate2841poache.ef="private/sunrpc/cacspav class="c12691" id 
17 has been 7eplaced with 12 ha>1253 c7ass="75="+code=inline" class="s12341" id 
17d.1/spav2.71/spav2.125">c7che_r75issssssssssss"line" , 1a=sunrpc/cacc      _release2841poache.ef="p      _release"sref="lic+f="+code=inef=8">.2521/"line"inef= cla,>nam le#am  
L30e=c_req"bp3" i     e=c_ cla,f="limL304">.304cache_ld3" ief="net/sunrrpc/cache.c#L305" id12701" id 
17dit1/a>(1a7#L256" id 
L212rpc>12d" c7ass="75ne" npc/cache.c#L204" id 12581" id 
17es="line" 7(struct.1a hr12e_c>12dche7make_756effNpc/cacspav class="c12691" id 
17ead" class7"sref">cache_12ead>12dcod7=f="n75/sunrconstf">cd1/a>, sl1/a>,..212ss=>1258 c7aass=75MEDOUT" clf="d1/a>re"+erne" nopen2841poache.ef="open"sre 3" clf96ne/a="lic+f="+code=p      _open_pipef.2841poache.ef="p      _open_pipef."sre,     1spav class="c12h91" id 
17eite_lock17"net/sunrpc/c12>;.>125   7 if (759
L293" cl304d1/a>re"+erne" nread2841poache.ef="read"sre 3" clf96ne/a="lic+f="+code=seqnread2841poache.ef="seqnread"sre,     1spav class="c12h91" id 
17ref">refre7h_age1/a>, 1a12ref>1260117a="ne760
L293" cl304d1/a>re"+erne" nllseekreq" off_L" id 
lseek
L293" clf96n/a="lic+f="+code=seqnlseekreq" off_L" id seqnlseek"sre,     1spav class="c12h91" id 
17red or req7m  
L262">.2612s=">1261od7=L96"761
L293" cl304d1/a>re"+erne" nrelease2841poache.ef="release"sre clf96ne/a="lic+f="+code=p      _release_pipef.2841poache.ef="p      _release_pipef."sre,     1spav class="c12h91" id 
17rc/cache.c7as best we ca12urn>1262od7=L96"76 
L29}rpc/cache.c#L305" id12701" id 
171a href="+7ode=cache_is_121a >1263od7=L96"76="+code=inline" class="s12341" id 
171.1/spav2.7m  
L265">.2612s=">1264od7=L96"764sssse
L257"=/a>, 1a=sunrpc/cacopen_flush_pipef.2841poache.ef="open_flush_pipef."sref">cd1/a>, sseq_filef="inef=8">.2521/"line"inef= class="limL304">.304inef=8">.2521/"line"inef= cla,f">cd1/a>, sl1/a>,..304e=c_req"bp3" i     e=c_ clarpc/cache.c#L305" id12701" id 
171it1/a>(1a7 an upcall */12nt.>126" c7aL96"765
L29      1spav class="c12s51" id 
171s="line" 71/a>.=.(1a hr12ref>126che7mL96"766e" nam  
L25">cd1/a>, sl1/a>,hL"+fef="+code=cache_l1/a>,..2521/"line"inef= cla)-1/a>, 1a
521/ne" naprivate2841poache.ef="private/sunrpc/cacspav class="c12s51" id 
171ad" class7+code=seconds12=.1>12rcod7=    76          1a href="+code12681" id 
171="line" n7m  
L269">.2612s=">1268 c7ad"="76MEDOUT" clf=""line" , 1a=sunrpc/cacopen_flush2841poache.ef="open_flush"sref="lic+f="+code=inef=8">.2521/"line"inef= cla,>nam le#am  
L30e=c_req"bp3" i     e=c_ cla,f="limL304">.304cache_ld3" ief="net/sunrrpc/cache.c#L305" id12701" id 
17s;.c7che_r769sssspc/cache.c#L204" id 12501" id 
17f">rv1/a>.7= -1a href="+12f">>127e c7a}ef=77sunrpc/cache.c#L307" id 12611" id 
17"sref">rv17a>.=.-1a href12"sr>127" c7af="n771
L29e
L257"=/a>, 1a=sunrpc/cacrelease_flush_pipef.2841poache.ef="release_flush_pipef."sref">cd1/a>, sseq_filef="inef=8">.2521/"line"inef= class="limL304">.304inef=8">.2521/"line"inef= cla,f">cd1/a>, sl1/a>,..304e=c_req"bp3" i     e=c_ clarpc/cache.c#L305" id12701" id 
17">rv1/a>.=7 -1a href="+c12">r>12f.c#72d" c77 
L29      1spav class="c12691" id 
17ef">dprint71/a>(1spav cl11ef"2">dpri7tk1/a773
L293" cl304qstp1/a>).,..2521/"line"inef= cla)-1/a>, 1a
521/ne" naprivate2841poache.ef="private/sunrpc/cacspav class="c12s51" id 
17e="line" n7class="sref">11fre>117">c7che_r77isL25c/cache.c#L204" id 12501" id 
17eit1/a>(1a7"sref">test_a11bit>11f" c7ass="775
L293" cl304) {..2521/"line"inef= cla,>nam le#am  
L30e=c_req"bp3" i     e=c_ cla,f="limL304">.304cache_ld3" ief="net/sunrrpc/cache.c#L305" id12701" id 
17"s="line" 7call" class="11che>117che7make_776sL25pc/cache.c#L204" id 11901" id 
17ead" class7sref">EINVAL111AL">117cod7=EAGA77          1a href="+code12681" id 
17e="line" n7ass="sref">cl11ear>1178 c7ass="77MEDOUe
L257"="lic+f="+code=s"izee_req" off_L" id +"izee_e304", 1a=sunrpc/cacread_flush_pipef.2841poache.ef="read_flush_pipef."sref">cd1/a>, sseq_filef="e=cache_seq_file" i257" class="limL304">.304e=c_req"bp3" i     e=c_ cla, char
L306c1/a>,ge5ne__userche_ld3" ief="n__user class="limL304">.304bu>.303buf3" i    bu> cla,pc/cache.c#L305" id127 cla}ef="7";.117">c7che_r779e" nam  
L257" classssssssssssss="lic+f="+code=sizee_req" off_L" id +izee_e304", 1a=sunrpc/caccoun_req" off_L" id coun_/suna>, 1aloff_Lcode=cache_req" off_L" id 
L257" class="lipoam  
L284"">.2841poache.ef="nnet/sunrpc/cache.c#L305" id12701" id 
17" class="s7ef">rv1/a>.=.11" c>118e c7ass="78et/su      1spav class="c12s51" id 
17et/sunrpc/7ache.c#L282" 11et/>1181 c7ass="78neeeeeeeeeeeeqstp1/a>).,., 1a
521/ne" naf_path8">.2521/"line"f_path clad1/a>re"+erne" nd   ry8">.2521/"line"d   ry/sun-1/a>, 1a
521/ne" nad_inef=8">.2521/"line"d_inef= cla)-1/a>, 1a
521/ne" naprivate2841poache.ef="private/sunrpc/cache.c#L305" id12d71" id 
17e>rv1/a>.=7sref">EAGAIN111IN">118.c#7293" 78/sunrpc/cache.c#L305" id12231" id 
17ef">dprint7ass="sref">cl11ear>1183c#7293" 783
L293" cl304) {..304bu>.303buf3" i    bu> cla, , 1a=sunrpc/caccoun_req" off_L" id coun_/sun, , 1a=sunrpc/cac"">.2841poache.ef="nnet/sun,>nam le#am  
L30cache_ld3" ief="net/sunrrpc/cache.c#L305" id12701" id 
17e="line" n7_request" cla11che>118">c7che_r784sssspc/cache.c#L204" id 11901" id 
17eit1/a>(1a7ache.c#L286" 11et/>11"" c7ass="78ne" nc/cache.c#L204" id 12581" id 
17es="line" 7id 
L287" cla11he.>1186>c7che_r78call1e
L257"="lic+f="+code=+"izee_req" off_L" id +"izee_e304", 1a=sunrpc/cacwrite_flush_pipef.2841poache.ef="write_flush_pipef."sref">cd1/a>, sseq_filef="e=cache_seq_file" i257" class="limL304">.304e=c_req"bp3" i     e=c_ cla,c/cache.c#L204" id 12581" id 
17ead" class7" class="line118" >11"cod7=EAGA78" class="s304" cl-/a>>>>>>>>>>>>>clf96 constfchar
L306c1/a>,ge5ne__userche_ld3" ief="n__user class="limL304">.304bu>.303buf3" i    bu> cla,pc/cache.c#L305" id127 cla}ef="7289" class7"line" nam  
11289>1188 c7ass="78MEDOUT" clf="net/sunr classssssssssssss="lic+f="+code=sizee_req" off_L" id +izee_e304", 1a=sunrpc/caccoun_req" off_L" id coun_/suna>, 1aloff_Lcode=cache_req" off_L" id 
L257" class="lipoam  
L284"">.2841poache.ef="nnet/sunrpc/cache.c#L305" id12701" id 
17";..2911s=">118">c7cf="n789e" n      1spav class="c12691" id 
17>.== -1a h7ef="+code=EAG11>.=>119 od7=La>)790
L293" clf96qstp1/a>).,., 1a
521/ne" naf_path8">.2521/"line"f_path clad1/a>re"+erne" nd   ry8">.2521/"line"d   ry/sun-1/a>, 1a
521/ne" nad_inef=8">.2521/"line"d_inef= cla)-1/a>, 1a
521/ne" naprivate2841poache.ef="private/sunrpc/cache.c#L305" id12d71" id 
17>t/sunrpc/7sref">cache_d11eq">119" c7af="n79neeeec/cache.c#L204" id 12501" id 
17/spav2.cd) {..304bu>.303buf3" i    bu> cla, , 1a=sunrpc/caccoun_req" off_L" id coun_/sun, , 1a=sunrpc/cac"">.2841poache.ef="nnet/sun,>nam le#am  
L30cache_ld3" ief="net/sunrrpc/cache.c#L305" id12701" id 
17Request wa7 not deferred11Req>1193od7=L96"79="+copc/cache.c#L204" id 12501" id 
17Rhe_revisi7elves:1/spav211we >1194od7=L96"79isL25c/cache.c#L204" id 12501" id 
171/spav2.11>" c7aL96"79ne" nconstf">cd1/a>, sl1/a>,.rv17a>.=.1a href=11"sr>11>che7mL96"796
L293" cl304d1/a>re"+erne" nopen2841poache.ef="open"sre 3" clf96ne/a="lic+f="+code=open_flush_pipef.2841poache.ef="open_flush_pipef."sre,pc/cache.c#L305" id127 cla}ef="7ass="sref"7rv1/a>.== -1a11ass>119cod7=L96"797
L293" cl304d1/a>re"+erne" nread2841poache.ef="read"sre 3" clf96ne/a="lic+f="+code=read_flush_pipef.2841poache.ef="read_flush_pipef."sre,pc/cache.c#L305" id127 cla}ef="7a89" class7ef">rv1/a>.=.11" c>1198od7=L96"79MEDOUT" clf="d1/a>re"+erne" nwrite2841poache.ef="write"sre3" clf96ne/a="lic+f="+code=write_flush_pipef.2841poache.ef="write_flush_pipef."sre,pc/cache.c#L305" id127 cla}ef="7a;.1199od7=L96"799
L293" cl304d1/a>re"+erne" nrelease2841poache.ef="release"sre clf96ne/a="lic+f="+code=release_flush_pipef.2841poache.ef="release_flush_pipef."sre,pc/cache.c#L305" id127 cla}ef="8301"d 
L308" class="line12301>120sod8=L96"800
L293" cl304d1/a>re"+erne" nllseekreq" off_L" id 
lseek
L293" clf96n/a="lic+f="+code=no_llseekreq" off_L" id no_llseek cla,     1spav class="c12h91" id 
183q" class=8sref">cache_d123q">1201od8=L96"80neeee}rpc/cache.c#L305" id12701" id 
1832" class=8sef="net/sunr11/sp>1192od8=L96"80/sunrpc/cache.c#L305" id12231" id 
1833pav2.1193od81a hr803
L29=/a>, 1a=sunrpc/cac5" id1_p
L2inregister_pipef.2841poache.ef="5" id1_p
L2inregister_pipef."sref">cd1/a>, sseq_filef="d   ry8">.2521/"line"d   ry/sunss="lipoam  
L284"aren_req" off_L" id "aren_ cla,     1spav class="c12h91" id 
1834pav2.1194od8c#def804sssssssssssssssssssssssssssssssssssssconstfchar
s="lipoam  
L284 >11req" off_L" id n>11/sun,>nam le#am  
L30um
L3e_req" off_L" id um
L3e_e304", 1a=sunrpc/cacum
L3req" off_L" id um
L3 cla,     1spav class="c12h91" id 
1835pav2.(4" cl-/a>>>>>>>>>>>>>clf9qstp1/a>).,..=.1a href=11"sr>11>che8m    806e" n      1spav class="c12s51" id 
1837pav2..== -1a11ass>119cod8=EAGA80" class="s304qstp1/a>).rv18af">rv1/a>.=.11" c>1198od8ode=E808 class="s304qstp1/a>)..2521/"line"d   ry/sunss="lipoam  
L284ditche_ld3" ief="ndit/sunrpc/cache.c#L305" id12d71" id 
1839ref">rv18a class="line110" >1199od8tail"809
L293" cl304=/a>, 1a=sunrpc/cacre0req" off_L" id re" clar/a0rpc/cache.c#L305" id12d71" id 
18hat list a8d into the ta12hat>1210118a="ne81sunrpc/cache.c#L307" id 12611" id 
18a href="ne8/sunrpc/cache12a h>1211 c8ass="81neeeeeeeeeeee="lipoam  
L284qche_ld3" ief="nq/sund1/a>re"+erne" n >11req" off_L" id n>11/sunn/a="lic+f="+code=n>11req" off_L" id n>11/sunrpc/cache.c#L305" id12d71" id 
18h2" class=8L313" id 
L3112pc/>121.c#82f="n81 
L293" clf96="lic+f="+code=qche_ld3" ief="nq/sund1/a>re"+erne" nlen2841poache.ef="len"sre /a="lic+f="+code=strlen2841poache.ef="strlen"sref="lic+f="+code=n>11req" off_L" id n>11/sunrrpc/cache.c#L305" id12701" id 
18 called it8finds the nex12 ca>1213 c8ass="813
L293" cl304="lic+f="+code=qche_ld3" ief="nq/sund1/a>re"+erne" nhashche_ld3" ief="nhash"sre /a="lic+f="+code=full_a>12_hashche_ld3" ief="nfull_a>12_hash"sref="lic+f="+code=qche_ld3" ief="nq/sund1/a>re"+erne" n >11req" off_L" id n>11/sun,>nam le#am  
L30qche_ld3" ief="nq/sund1/a>re"+erne" nlen2841poache.ef="len"srerrpc/cache.c#L305" id12701" id 
18 4pav2.121">c8che_r814ssssssssssssnam le#am  
L30ditche_ld3" ief="ndit/sune/a="lic+f="+code=rd1_preate_e" id 
itche_ld3" ief="nrd1_preate_e" id 
it"sref="lic+f="+code="aren_req" off_L" id "aren_ cla, &>, 1a
521/ne" naqche_ld3" ief="nq/sun,>nam le#am  
L30um
L3req" off_L" id um
L3 cla,>nam le#am  
L30cache_ld3" ief="net/sunrrpc/cache.c#L305" id12701" id 
18 can be re8oved.1/spav2.12 ca>121" c8ass="815
L293" cl3041/a>!nam le#am  
L30IS_ERR8">.2521/"line"IS_ERR"sref="lic+f="+code=ditche_ld3" ief="ndit/sun)rpc/cache.c#L305" id12701" id 
18 sref">rv18L317" id 
L3112pc/>121che8make_816e" nam  
L257" classnam le#am  
L30cache_ld3" ief="net/sun-1/a>, 1a
521/ne" naureq" off_L" id u/sund1/a>re"+erne" npipef.2841poache.ef="pipef."sred1/a>re"+erne" nditche_ld3" ief="ndit/sune/a="lic+f="+code=ditche_ld3" ief="ndit/sunrpc/cache.c#L305" id12d71" id 
18:1/spav2.<8 href="net/su12:1/>121cod8=EAGA81" class="s304elsepc/cache.c#L305" id12d71" id 
18:8ref">rv181/spav2.121="+8o    81MEDOUT" clf="net/sunr, 1a=sunrpc/cacre0req" off_L" id re" clar/a, 1a=sunrpc/cacPTR_ERR8">.2521/"line"PTR_ERR"sref="lic+f="+code=ditche_ld3" ief="ndit/sun)rpc/cache.c#L305" id12d71" id 
18:9ref">rv18he flush_time12is >121">c8che_r819eeeeeeeeeeee"net/sunam le#am  
L30re0req" off_L" id re" clarpc/cache.c#L305" id12d71" id 
18pc/cache.c8L321" id 
L3212pc/>122e c8ass="82sunrppc/cache.c#L204" id 12501" id 
18p href="ne8h non-NEVER e12ent>122" c8ass="82neeeenam le#am  
L30EXPORT_SYMBOL_GP38">.EXPORT_SYMBEXPORT_SYMBOL_GP3"sref="lic+f="+code=5" id1_p
L2inregister_pipef.2841poache.ef="5" id1_p
L2inregister_pipef."sre)rpc/cache.c#L305" id12d71" id 
18; for some8definition of12; f>122.c#82f="n82/sunrpc/cache.c#L305" id12231" id 
18ecalled it8L324" id 
L3212pc/>12p/a>81a hr82="+co claa="lic+f="+code=5" id1_p
L2in" iegister_pipef.2841poache.ef="5" id1_p
L2in" iegister_pipef."sref">cd1/a>, sseq_filef="="+codode=cache_l1/a>,.122">c8che_r82issss      1spav class="c12691" id 
18ecan be re8pav2.12p" c8ass="825
L293" cl304="lic+f="+code=rd1_remove_e" id 
itche_ld3" ief="nrd1_remove_e" id 
it"sref="lic+f="+code=cache_ld3" ief="net/sun-1/a>, 1a
521/ne" naureq" off_L" id u/sund1/a>re"+erne" npipef.2841poache.ef="pipef."sred1/a>re"+erne" nditche_ld3" ief="ndit/sun)rpc/cache.c#L305" id12d71" id 
18;sref">rv18am  
L227">.212ss=>122av 8lass=826
L293" cl304="lic+f="+code=cache_ld3" ief="net/sun-1/a>, 1a
521/ne" naureq" off_L" id u/sund1/a>re"+erne" npipef.2841poache.ef="pipef."sred1/a>re"+erne" nditche_ld3" ief="ndit/sunr/a, 1a=sunrpc/cacNUL38">.EXPORT_SYMBNUL3 clarpc/cache.c#L305" id12d71" id 
18;1/spav2.<8"net/sunrpc/c12>;.>122cod8=EAGA82/sunrpc/cache.c#L204" id 12581" id 
18p8ref">rv18m  
L229">.2212s=">12p="+8ode=E82     nam le#am  
L30EXPORT_SYMBOL_GP38">.EXPORT_SYMBEXPORT_SYMBOL_GP3"sref="lic+f="+code=5" id1_p
L2in" iegister_pipef.2841poache.ef="5" id1_p
L2in" iegister_pipef."sre)rpc/cache.c#L305" id12d71" id 
18;9ref">rv18a>(&1a hr12rit>122">c8che_r82 href="+code=rv" class="12601" id 
181a href="+8ode=cache_is_121a >121a>c8che_r83sunrp


The original LXR software by the "+code=rvhttp://sourceforge." clprojects/lxr">LXR texunity cla,>this experixt wal version by "+code=rvm57"to:lxr@s_1ux.no="lxr@s_1ux.no"sred
lxr.s_1ux.no kindly hosted by "+code=rvhttp://www.redpill-s_1pro.no="Redpill L_1pro AS cla,>provider of L_1uxsconsulting and operL25ons services since 1995.