linux/fs/ceph/mds_client.c
<<
n> 2" /spa3.1 2" /form.1 2" a n> 2" href="../linux+v3pio10/fs/ceph/mds_client.c">n> 2" img src="../.static/gfx/right.png" alt=">>">n> /spa3.1n> spa3 class="lxr_search">n> n> 2" input typ4.1hidden" nam4.1navtarget" v3.14.1">n> 2" input typ4.1text" nam4.1search" id.1search">n> 2" butt typ4.1submit">Search spa3 class="lxr_prefs".1 2" a href="+prefs?return=fs/ceph/mds_client.c"n> 2" onclick="return ajax_prefs();">n> 2"Prefs1 2" /a>n> /spa3.1 2" " /div.1 2" " form ac="v3="ajax+*" method="post" onsubmit="return false;">n> input typ4.1hidden" nam4.1ajax_lookup" id.1ajax_lookup" v3.14.1">n 2" " /form.1n 2" " div class="headingbott m">" "1 /a>#include <linux/ceph/ceph_debug.h /a>> " "2 /a>n" "3 /a>#include <linux/fs.h /a>> " "4 /a>#include <linux/wait.h /a>> " "5 /a>#include <linux/slab.h /a>> " "6 /a>#include <linux/sched.h /a>> " "7 /a>#include <linux/debugfs.h /a>> " "8 /a>#include <linux/seq_file.h /a>> " "9 /a>n" vala>#include "super.h /a>"n" 11ala>#include "mds_client.h /a>"n" 12 /a>n" 13 /a>#include <linux/ceph/ceph_features.h /a>> " 14 /a>#include <linux/ceph/messenger.h /a>> " 15 /a>#include <linux/ceph/decode.h /a>> " 16 /a>#include <linux/ceph/pagelist.h /a>> " 17 /a>#include <linux/ceph/auth.h /a>> " 18 /a>#include <linux/ceph/debugfs.h /a>> " 19 /a>n" 2vala> spa3 class="comment"./* /spa3.1" 21ala> spa3 class="comment". * A cluster of MDS (metadata server) daemons is responsible for /spa3.1" 22ala> spa3 class="comment". * managing the file system nam4space (the directory hierarchy and /spa3.1" 23ala> spa3 class="comment". * inodes) and for coordinating shared access to storage. Metadata is /spa3.1" 24ala> spa3 class="comment". * parti="v3ing hierarchically across a number of servers, and that /spa3.1" 25ala> spa3 class="comment". * parti="v3 v3ries over time as the cluster adjusts the distribu="v3 /spa3.1" 26ala> spa3 class="comment". * in order to balance load. /spa3.1" 27ala> spa3 class="comment". * /spa3.1" 28ala> spa3 class="comment". * The MDS client is prim3rily responsible to managing synchronous /spa3.1" 29ala> spa3 class="comment". * metadata requests for opera="v3s like open, unlink, and so forth. /spa3.1" 3vala> spa3 class="comment". * If there is a MDS failure, we find out about it when we (possibly /spa3.1" 31ala> spa3 class="comment". * request and) receive a new MDS map, and ca3 resubmit affected /spa3.1" 32ala> spa3 class="comment". * requests. /spa3.1" 33ala> spa3 class="comment". * /spa3.1" 34ala> spa3 class="comment". * For the most part, though, we take advantage of a lossless /spa3.1" 35ala> spa3 class="comment". * communica="v3s channel to the MDS, and do not need to worry about /spa3.1" 36ala> spa3 class="comment". * timing out or resubmitting requests. /spa3.1" 37ala> spa3 class="comment". * /spa3.1" 38ala> spa3 class="comment". * We maintain a stateful "sess"v3" with each MDS we interact with. /spa3.1" 39ala> spa3 class="comment". * Within each sess"v3, we sent periodic heartbeat messages to ensure /spa3.1" 4vala> spa3 class="comment". * any capabili="es or leases we have been issues remain v3.id. If /spa3.1" 41ala> spa3 class="comment". * the sess"v3 times out and goes stale, our leases and capabili="es /spa3.1" 42ala> spa3 class="comment". * are no longer v3.id. /spa3.1" 43ala> spa3 class="comment". */ /spa3.1" 44 /a>n" 45ala>struct a href="+code=ceph_reconnect_state" class="sref">ceph_reconnect_stateala> {n" 46ala> struct a href="+code=ceph_pagelist" class="sref">ceph_pagelistala> * a href="+code=pagelist" class="sref">pagelistala>; " 47ala> a href="+code=bool" class="sref">boolala> a href="+code=flock" class="sref">flockala>; " 48ala>}; " 49 /a>n" 50ala>static void a href="+code=__wake_requests" class="sref">__wake_requestsala>(struct a href="+code=ceph_mds_client" class="sref">ceph_mds_clientala> * a href="+code=mdsc" class="sref">mdscala>,n" 51ala> struct a href="+code=list_head" class="sref">list_headala> * a href="+code=head" class="sref">headala>); " 52 /a>n" 53ala>static const struct a href="+code=ceph_connect"v3_opera="v3s" class="sref">ceph_connect"v3_opera="v3sala> a href="+code=mds_cv3_ops" class="sref">mds_cv3_opsala>; " 54 /a>n" 55 /a>n" 56ala> spa3 class="comment"./* /spa3.1" 57ala> spa3 class="comment". * mds reply parsing /spa3.1" 58ala> spa3 class="comment". */ /spa3.1" 59 /a>n" 6vala> spa3 class="comment"./* /spa3.1" 61ala> spa3 class="comment". * parse individual inode info /spa3.1" 62ala> spa3 class="comment". */ /spa3.1" 63ala>static int a href="+code=parse_reply_info_in" class="sref">parse_reply_info_inala>(void ** a href="+code=p" class="sref">pala>, void * a href="+code=end" class="sref">endala>,n" 64ala> struct a href="+code=ceph_mds_reply_info_in" class="sref">ceph_mds_reply_info_inala> * a href="+code=info" class="sref">info /a>,n" 65ala> int a href="+code=features" class="sref">featuresala>)n" 66ala>{n" 67ala> int a href="+code=err" class="sref">errala> = - a href="+code=EIO" class="sref">EIOala>; " 68 /a>n" 69ala> a href="+code=info" class="sref">info /a>-> a href="+code=in" class="sref">inala> = * a href="+code=p" class="sref">pala>; " 70ala> * a href="+code=p" class="sref">pala> += sizeof(struct a href="+code=ceph_mds_reply_inode" class="sref">ceph_mds_reply_inodeala>) + " 71ala> sizeof(* a href="+code=info" class="sref">info /a>-> a href="+code=in" class="sref">inala>-> a href="+code=fragtree" class="sref">fragtreeala>. a href="+code=splits" class="sref">splitsala>) * " 72ala> a href="+code=le32_to_cpu" class="sref">le32_to_cpuala>( a href="+code=info" class="sref">info /a>-> a href="+code=in" class="sref">inala>-> a href="+code=fragtree" class="sref">fragtreeala>. a href="+code=nsplits" class="sref">nsplitsala>); " 73 /a>n" 74ala> a href="+code=ceph_decode_32_safe" class="sref">ceph_decode_32_safeala>( a href="+code=p" class="sref">pala>, a href="+code=end" class="sref">endala>, a href="+code=info" class="sref">info /a>-> a href="+code=symlink_len" class="sref">symlink_lenala>, a href="+code=bad" class="sref">badala>); " 75ala> a href="+code=ceph_decode_need" class="sref">ceph_decode_needala>( a href="+code=p" class="sref">pala>, a href="+code=end" class="sref">endala>, a href="+code=info" class="sref">info /a>-> a href="+code=symlink_len" class="sref">symlink_lenala>, a href="+code=bad" class="sref">badala>); " 76ala> a href="+code=info" class="sref">info /a>-> a href="+code=symlink" class="sref">symlinkala> = * a href="+code=p" class="sref">pala>; " 77ala> * a href="+code=p" class="sref">pala> += a href="+code=info" class="sref">info /a>-> a href="+code=symlink_len" class="sref">symlink_lenala>; " 78 /a>n" 79ala> if ( a href="+code=features" class="sref">featuresala> & a href="+code=CEPH_FEATURE_DIRLAYOUTHASH" class="sref">CEPH_FEATURE_DIRLAYOUTHASHala>)n" 80ala> a href="+code=ceph_decode_copy_safe" class="sref">ceph_decode_copy_safeala>( a href="+code=p" class="sref">pala>, a href="+code=end" class="sref">endala>, & a href="+code=info" class="sref">info /a>-> a href="+code=dir_layout" class="sref">dir_layout /a>,n" 81ala> sizeof( a href="+code=info" class="sref">info /a>-> a href="+code=dir_layout" class="sref">dir_layout /a>), a href="+code=bad" class="sref">badala>); " 82ala> else " 83ala> a href="+code=memset" class="sref">memsetala>(& a href="+code=info" class="sref">info /a>-> a href="+code=dir_layout" class="sref">dir_layout /a>, 0, sizeof( a href="+code=info" class="sref">info /a>-> a href="+code=dir_layout" class="sref">dir_layout /a>)); " 84 /a>n" 85ala> a href="+code=ceph_decode_32_safe" class="sref">ceph_decode_32_safeala>( a href="+code=p" class="sref">pala>, a href="+code=end" class="sref">endala>, a href="+code=info" class="sref">info /a>-> a href="+code=xattr_len" class="sref">xattr_lenala>, a href="+code=bad" class="sref">badala>); " 86ala> a href="+code=ceph_decode_need" class="sref">ceph_decode_needala>( a href="+code=p" class="sref">pala>, a href="+code=end" class="sref">endala>, a href="+code=info" class="sref">info /a>-> a href="+code=xattr_len" class="sref">xattr_lenala>, a href="+code=bad" class="sref">badala>); " 87ala> a href="+code=info" class="sref">info /a>-> a href="+code=xattr_data" class="sref">xattr_dataala> = * a href="+code=p" class="sref">pala>; " 88ala> * a href="+code=p" class="sref">pala> += a href="+code=info" class="sref">info /a>-> a href="+code=xattr_len" class="sref">xattr_lenala>; " 89ala> return 0; " 9vala> a href="+code=bad" class="sref">badala>: " 91ala> return a href="+code=err" class="sref">errala>; " 92ala>} " 93 /a>n" 94ala> spa3 class="comment"./* /spa3.1" 95ala> spa3 class="comment". * parse a normal reply, which may contain a (dir+)dentry and/or a /spa3.1" 96ala> spa3 class="comment". * target inode. /spa3.1" 97ala> spa3 class="comment". */ /spa3.1" 98ala>static int a href="+code=parse_reply_info_trace" class="sref">parse_reply_info_traceala>(void ** a href="+code=p" class="sref">pala>, void * a href="+code=end" class="sref">endala>,n" 99ala> struct a href="+code=ceph_mds_reply_info_parsed" class="sref">ceph_mds_reply_info_parsedala> * a href="+code=info" class="sref">info /a>,n"100ala> int a href="+code=features" class="sref">featuresala>)n"101ala>{n"102ala> int a href="+code=err" class="sref">errala>; "103 /a>n"104ala> if ( a href="+code=info" class="sref">info /a>-> a href="+code=head" class="sref">headala>-> a href="+code=is_dentry" class="sref">is_dentryala>) {n"105ala> a href="+code=err" class="sref">errala> = a href="+code=parse_reply_info_in" class="sref">parse_reply_info_inala>( a href="+code=p" class="sref">pala>, a href="+code=end" class="sref">endala>, & a href="+code=info" class="sref">info /a>-> a href="+code=diri" class="sref">diriala>, a href="+code=features" class="sref">featuresala>); "106ala> if ( a href="+code=err" class="sref">errala> < 0)n"107ala> goto a href="+code=out_bad" class="sref">out_badala>; "108 /a>n"109ala> if ( a href="+code=unlikely" class="sref">unlikelyala>(* a href="+code=p" class="sref">pala> + sizeof(* a href="+code=info" class="sref">info /a>-> a href="+code=dirfrag" class="sref">dirfragala>) > a href="+code=end" class="sref">endala>))n"110ala> goto a href="+code=bad" class="sref">badala>;n"111ala> a href="+code=info" class="sref">info /a>-> a href="+code=dirfrag" class="sref">dirfragala> = * a href="+code=p" class="sref">pala>; "112ala> * a href="+code=p" class="sref">pala> += sizeof(* a href="+code=info" class="sref">info /a>-> a href="+code=dirfrag" class="sref">dirfragala>) + "113ala> sizeof( a href="+code=u32" class="sref">u32ala>)* a href="+code=le32_to_cpu" class="sref">le32_to_cpuala>( a href="+code=info" class="sref">info /a>-> a href="+code=dirfrag" class="sref">dirfragala>-> a href="+code=ndist" class="sref">ndistala>); "114ala> if ( a href="+code=unlikely" class="sref">unlikelyala>(* a href="+code=p" class="sref">pala> > a href="+code=end" class="sref">endala>))n"115ala> goto a href="+code=bad" class="sref">badala>;n"116 /a>n"117ala> a href="+code=ceph_decode_32_safe" class="sref">ceph_decode_32_safeala>( a href="+code=p" class="sref">pala>, a href="+code=end" class="sref">endala>, a href="+code=info" class="sref">info /a>-> a href="+code=dnam4_len" class="sref">dnam4_lenala>, a href="+code=bad" class="sref">badala>); "118ala> a href="+code=ceph_decode_need" class="sref">ceph_decode_needala>( a href="+code=p" class="sref">pala>, a href="+code=end" class="sref">endala>, a href="+code=info" class="sref">info /a>-> a href="+code=dnam4_len" class="sref">dnam4_lenala>, a href="+code=bad" class="sref">badala>); "119ala> a href="+code=info" class="sref">info /a>-> a href="+code=dnam4" class="sref">dnam4ala> = * a href="+code=p" class="sref">pala>; "120ala> * a href="+code=p" class="sref">pala> += a href="+code=info" class="sref">info /a>-> a href="+code=dnam4_len" class="sref">dnam4_lenala>; "121ala> a href="+code=info" class="sref">info /a>-> a href="+code=dlease" class="sref">dleaseala> = * a href="+code=p" class="sref">pala>; "122ala> * a href="+code=p" class="sref">pala> += sizeof(* a href="+code=info" class="sref">info /a>-> a href="+code=dlease" class="sref">dleaseala>); "123ala> } "124 /a>n"125ala> if ( a href="+code=info" class="sref">info /a>-> a href="+code=head" class="sref">headala>-> a href="+code=is_target" class="sref">is_targetala>) {n"126ala> a href="+code=err" class="sref">errala> = a href="+code=parse_reply_info_in" class="sref">parse_reply_info_inala>( a href="+code=p" class="sref">pala>, a href="+code=end" class="sref">endala>, & a href="+code=info" class="sref">info /a>-> a href="+code=targeti" class="sref">targetiala>, a href="+code=features" class="sref">featuresala>); "127ala> if ( a href="+code=err" class="sref">errala> < 0)n"128ala> goto a href="+code=out_bad" class="sref">out_badala>; "129ala> } "13vala> "131ala> if ( a href="+code=unlikely" class="sref">unlikelyala>(* a href="+code=p" class="sref">pala> != a href="+code=end" class="sref">endala>))n"132ala> goto a href="+code=bad" class="sref">badala>;n"133ala> return 0; "134 /a>n"135ala> a href="+code=bad" class="sref">badala>: "136ala> a href="+code=err" class="sref">errala> = - a href="+code=EIO" class="sref">EIOala>; "137ala> a href="+code=out_bad" class="sref">out_badala>: "138ala> a href="+code=pr_err" class="sref">pr_errala>( spa3 class="string">"problem parsing mds trace %d\3" /spa3., a href="+code=err" class="sref">errala>); "139ala> return a href="+code=err" class="sref">errala>; "14vala>} "141ala> "142ala> spa3 class="comment"./* /spa3.1"143ala> spa3 class="comment". * parse readdir results /spa3.1"144ala> spa3 class="comment". */ /spa3.1"145ala>static int a href="+code=parse_reply_info_dir" class="sref">parse_reply_info_dirala>(void ** a href="+code=p" class="sref">pala>, void * a href="+code=end" class="sref">endala>,n"146ala> struct a href="+code=ceph_mds_reply_info_parsed" class="sref">ceph_mds_reply_info_parsedala> * a href="+code=info" class="sref">info /a>,n"147ala> int a href="+code=features" class="sref">featuresala>)n"148ala>{n"149ala> a href="+code=u32" class="sref">u32ala> a href="+code=num" class="sref">numala>, a href="+code=i" class="sref">iala> = 0; "150ala> int a href="+code=err" class="sref">errala>; "151ala> "152ala> a href="+code=info" class="sref">info /a>-> a href="+code=dir_dir" class="sref">dir_dirala> = * a href="+code=p" class="sref">pala>; "153ala> if (* a href="+code=p" class="sref">pala> + sizeof(* a href="+code=info" class="sref">info /a>-> a href="+code=dir_dir" class="sref">dir_dirala>) > a href="+code=end" class="sref">endala>) "154ala> goto a href="+code=bad" class="sref">badala>;n"155ala> * a href="+code=p" class="sref">pala> += sizeof(* a href="+code=info" class="sref">info /a>-> a href="+code=dir_dir" class="sref">dir_dirala>) + "156ala> sizeof( a href="+code=u32" class="sref">u32ala>)* a href="+code=le32_to_cpu" class="sref">le32_to_cpuala>( a href="+code=info" class="sref">info /a>-> a href="+code=dir_dir" class="sref">dir_dirala>-> a href="+code=ndist" class="sref">ndistala>); "157ala> if (* a href="+code=p" class="sref">pala> > a href="+code=end" class="sref">endala>) "158ala> goto a href="+code=bad" class="sref">badala>;n"159 /a>n"160ala> a href="+code=ceph_decode_need" class="sref">ceph_decode_needala>( a href="+code=p" class="sref">pala>, a href="+code=end" class="sref">endala>, sizeof( a href="+code=num" class="sref">numala>) + 2, a href="+code=bad" class="sref">badala>); "161ala> a href="+code=num" class="sref">numala> = a href="+code=ceph_decode_32" class="sref">ceph_decode_32ala>( a href="+code=p" class="sref">pala>); "162ala> a href="+code=info" class="sref">info /a>-> a href="+code=dir_end" class="sref">dir_endala> = a href="+code=ceph_decode_8" class="sref">ceph_decode_8ala>( a href="+code=p" class="sref">pala>); "163ala> a href="+code=info" class="sref">info /a>-> a href="+code=dir_complete" class="sref">dir_completeala> = a href="+code=ceph_decode_8" class="sref">ceph_decode_8ala>( a href="+code=p" class="sref">pala>); "164ala> if ( a href="+code=num" class="sref">numala> == 0)n"165ala> goto a href="+code=done" class="sref">doneala>;n"166 /a>n"167ala> spa3 class="comment"./* alloc large array */ /spa3.1"168ala> a href="+code=info" class="sref">info /a>-> a href="+code=dir_nr" class="sref">dir_nrala> = a href="+code=num" class="sref">numala>;n"169ala> a href="+code=info" class="sref">info /a>-> a href="+code=dir_in" class="sref">dir_inala> = a href="+code=kcalloc" class="sref">kcallocala>( a href="+code=num" class="sref">numala>, sizeof(* a href="+code=info" class="sref">info /a>-> a href="+code=dir_in" class="sref">dir_inala>) + "170ala> sizeof(* a href="+code=info" class="sref">info /a>-> a href="+code=dir_dnam4" class="sref">dir_dnam4ala>) + "171ala> sizeof(* a href="+code=info" class="sref">info /a>-> a href="+code=dir_dnam4_len" class="sref">dir_dnam4_lenala>) + "172ala> sizeof(* a href="+code=info" class="sref">info /a>-> a href="+code=dir_dlease" class="sref">dir_dleaseala>),n"173ala> a href="+code=GFP_NOFS" class="sref">GFP_NOFSala>); "174ala> if ( a href="+code=info" class="sref">info /a>-> a href="+code=dir_in" class="sref">dir_inala> == a href="+code=NULL" class="sref">NULLala>) {n"175ala> a href="+code=err" class="sref">errala> = - a href="+code=ENOMEM" class="sref">ENOMEMala>;n"176ala> goto a href="+code=out_bad" class="sref">out_badala>; "177ala> } "178ala> a href="+code=info" class="sref">info /a>-> a href="+code=dir_dnam4" class="sref">dir_dnam4ala> = (void *)( a href="+code=info" class="sref">info /a>-> a href="+code=dir_in" class="sref">dir_inala> + a href="+code=num" class="sref">numala>); "179ala> a href="+code=info" class="sref">info /a>-> a href="+code=dir_dnam4_len" class="sref">dir_dnam4_lenala> = (void *)( a href="+code=info" class="sref">info /a>-> a href="+code=dir_dnam4" class="sref">dir_dnam4ala> + a href="+code=num" class="sref">numala>); "180ala> a href="+code=info" class="sref">info /a>-> a href="+code=dir_dlease" class="sref">dir_dleaseala> = (void *)( a href="+code=info" class="sref">info /a>-> a href="+code=dir_dnam4_len" class="sref">dir_dnam4_lenala> + a href="+code=num" class="sref">numala>); "181ala> "182ala> while ( a href="+code=num" class="sref">numala>) {n"183ala> spa3 class="comment"./* dentry */ /spa3.1"184ala> a href="+code=ceph_decode_need" class="sref">ceph_decode_needala>( a href="+code=p" class="sref">pala>, a href="+code=end" class="sref">endala>, sizeof( a href="+code=u32" class="sref">u32ala>)*2, a href="+code=bad" class="sref">badala>); "185ala> a href="+code=info" class="sref">info /a>-> a href="+code=dir_dnam4_len" class="sref">dir_dnam4_lenala>[ a href="+code=i" class="sref">iala>] = a href="+code=ceph_decode_32" class="sref">ceph_decode_32ala>( a href="+code=p" class="sref">pala>); "186ala> a href="+code=ceph_decode_need" class="sref">ceph_decode_needala>( a href="+code=p" class="sref">pala>, a href="+code=end" class="sref">endala>, a href="+code=info" class="sref">info /a>-> a href="+code=dir_dnam4_len" class="sref">dir_dnam4_lenala>[ a href="+code=i" class="sref">iala>], a href="+code=bad" class="sref">badala>); "187ala> a href="+code=info" class="sref">info /a>-> a href="+code=dir_dnam4" class="sref">dir_dnam4ala>[ a href="+code=i" class="sref">iala>] = * a href="+code=p" class="sref">pala>; "188ala> * a href="+code=p" class="sref">pala> += a href="+code=info" class="sref">info /a>-> a href="+code=dir_dnam4_len" class="sref">dir_dnam4_lenala>[ a href="+code=i" class="sref">iala>]; "189ala> a href="+code=dout" class="sref">dout /a>( spa3 class="string">"parsed dir dnam4 '%.*s'\3" /spa3., a href="+code=info" class="sref">info /a>-> a href="+code=dir_dnam4_len" class="sref">dir_dnam4_lenala>[ a href="+code=i" class="sref">iala>],n"190ala> a href="+code=info" class="sref">info /a>-> a href="+code=dir_dnam4" class="sref">dir_dnam4ala>[ a href="+code=i" class="sref">iala>]); "191ala> a href="+code=info" class="sref">info /a>-> a href="+code=dir_dlease" class="sref">dir_dleaseala>[ a href="+code=i" class="sref">iala>] = * a href="+code=p" class="sref">pala>; "192ala> * a href="+code=p" class="sref">pala> += sizeof(struct a href="+code=ceph_mds_reply_lease" class="sref">ceph_mds_reply_leaseala>); "193 /a>n"194ala> spa3 class="comment"./* inode */ /spa3.1"195ala> a href="+code=err" class="sref">errala> = a href="+code=parse_reply_info_in" class="sref">parse_reply_info_inala>( a href="+code=p" class="sref">pala>, a href="+code=end" class="sref">endala>, & a href="+code=info" class="sref">info /a>-> a href="+code=dir_in" class="sref">dir_inala>[ a href="+code=i" class="sref">iala>], a href="+code=features" class="sref">featuresala>); "196ala> if ( a href="+code=err" class="sref">errala> < 0)n"197ala> goto a href="+code=out_bad" class="sref">out_badala>; "198ala> a href="+code=i" class="sref">iala>++; "199ala> a href="+code=num" class="sref">numala>--; "200ala> } "201ala> "202ala> a href="+code=done" class="sref">doneala>: "203ala> if (* a href="+code=p" class="sref">pala> != a href="+code=end" class="sref">endala>) "204ala> goto a href="+code=bad" class="sref">badala>;n"205ala> return 0; "206 /a>n"207ala> a href="+code=bad" class="sref">badala>: "208ala> a href="+code=err" class="sref">errala> = - a href="+code=EIO" class="sref">EIOala>; "209ala> a href="+code=out_bad" class="sref">out_badala>: "210ala> a href="+code=pr_err" class="sref">pr_errala>( spa3 class="string">"problem parsing dir contents %d\3" /spa3., a href="+code=err" class="sref">errala>); "211ala> return a href="+code=err" class="sref">errala>; "212ala>} "213 /a>n"214ala> spa3 class="comment"./* /spa3.1"215ala> spa3 class="comment". * parse fcntl F_GETLK results /spa3.1"216ala> spa3 class="comment". */ /spa3.1"217ala>static int a href="+code=parse_reply_info_filelock" class="sref">parse_reply_info_filelockala>(void ** a href="+code=p" class="sref">pala>, void * a href="+code=end" class="sref">endala>,n"218ala> struct a href="+code=ceph_mds_reply_info_parsed" class="sref">ceph_mds_reply_info_parsedala> * a href="+code=info" class="sref">info /a>,n"219ala> int a href="+code=features" class="sref">featuresala>)n"220ala>{n"221ala> if (* a href="+code=p" class="sref">pala> + sizeof(* a href="+code=info" class="sref">info /a>-> a href="+code=filelock_reply" class="sref">filelock_replyala>) > a href="+code=end" class="sref">endala>) "222ala> goto a href="+code=bad" class="sref">badala>;n"223 /a>n"224ala> a href="+code=info" class="sref">info /a>-> a href="+code=filelock_reply" class="sref">filelock_replyala> = * a href="+code=p" class="sref">pala>; "225ala> * a href="+code=p" class="sref">pala> += sizeof(* a href="+code=info" class="sref">info /a>-> a href="+code=filelock_reply" class="sref">filelock_replyala>); "226 /a>n"227ala> if ( a href="+code=unlikely" class="sref">unlikelyala>(* a href="+code=p" class="sref">pala> != a href="+code=end" class="sref">endala>))n"228ala> goto a href="+code=bad" class="sref">badala>;n"229ala> return 0; "23vala> "231ala> a href="+code=bad" class="sref">badala>: "232ala> return - a href="+code=EIO" class="sref">EIOala>; "233ala>} "234 /a>n"235ala> spa3 class="comment"./* /spa3.1"236ala> spa3 class="comment". * parse extra results /spa3.1"237ala> spa3 class="comment". */ /spa3.1"238ala>static int a href="+code=parse_reply_info_extra" class="sref">parse_reply_info_extraala>(void ** a href="+code=p" class="sref">pala>, void * a href="+code=end" class="sref">endala>,n"239ala> struct a href="+code=ceph_mds_reply_info_parsed" class="sref">ceph_mds_reply_info_parsedala> * a href="+code=info" class="sref">info /a>,n"240ala> int a href="+code=features" class="sref">featuresala>)n"241ala>{n"242ala> if ( a href="+code=info" class="sref">info /a>-> a href="+code=head" class="sref">headala>-> a href="+code=op" class="sref">opala> == a href="+code=CEPH_MDS_OP_GETFILELOCK" class="sref">CEPH_MDS_OP_GETFILELOCKala>)n"243ala> return a href="+code=parse_reply_info_filelock" class="sref">parse_reply_info_filelockala>( a href="+code=p" class="sref">pala>, a href="+code=end" class="sref">endala>, a href="+code=info" class="sref">info /a>, a href="+code=features" class="sref">featuresala>); "244ala> else "245ala> return a href="+code=parse_reply_info_dir" class="sref">parse_reply_info_dirala>( a href="+code=p" class="sref">pala>, a href="+code=end" class="sref">endala>, a href="+code=info" class="sref">info /a>, a href="+code=features" class="sref">featuresala>); "246ala>} "247ala> "248ala> spa3 class="comment"./* /spa3.1"249ala> spa3 class="comment". * parse entire mds replyalspa3.1"250ala> spa3 class="comment". */ /spa3.1"251ala>static int a href="+code=parse_reply_info" class="sref">parse_reply_infoala>(struct a href="+code=ceph_msg" class="sref">ceph_msgala> * a href="+code=msg" class="sref">msgala>,n"252ala> struct a href="+code=ceph_mds_reply_info_parsed" class="sref">ceph_mds_reply_info_parsedala> * a href="+code=info" class="sref">info /a>,n"253ala> int a href="+code=features" class="sref">featuresala>)n"254ala>{n"255ala> void * a href="+code=p" class="sref">pala>, * a href="+code=end" class="sref">endala>; "256ala> a href="+code=u32" class="sref">u32ala> a href="+code=len" class="sref">lenala>; "257ala> int a href="+code=err" class="sref">errala>; "258 /a>n"259ala> a href="+code=info" class="sref">info /a>-> a href="+code=head" class="sref">headala> = a href="+code=msg" class="sref">msgala>-> a href="+code=front" class="sref">frontala>. a href="+code=iov_base" class="sref">iov_baseala>; "260ala> a href="+code=p" class="sref">pala> = a href="+code=msg" class="sref">msgala>-> a href="+code=front" class="sref">frontala>. a href="+code=iov_base" class="sref">iov_baseala> + sizeof(struct a href="+code=ceph_mds_reply_head" class="sref">ceph_mds_reply_headala>); "261ala> a href="+code=end" class="sref">endala> = a href="+code=p" class="sref">pala> + a href="+code=msg" class="sref">msgala>-> a href="+code=front" class="sref">frontala>. a href="+code=iov_len" class="sref">iov_lenala> - sizeof(struct a href="+code=ceph_mds_reply_head" class="sref">ceph_mds_reply_headala>); "262ala> "263ala> spa3 class="comment"./* trace */ /spa3.1"264ala> a href="+code=ceph_decode_32_safe" class="sref">ceph_decode_32_safeala>(& a href="+code=p" class="sref">pala>, a href="+code=end" class="sref">endala>, a href="+code=len" class="sref">lenala>, a href="+code=bad" class="sref">badala>); "265ala> if ( a href="+code=len" class="sref">lenala> > 0) {n"266ala> a href="+code=ceph_decode_need" class="sref">ceph_decode_needala>(& a href="+code=p" class="sref">pala>, a href="+code=end" class="sref">endala>, a href="+code=len" class="sref">lenala>, a href="+code=bad" class="sref">badala>); "267ala> a href="+code=err" class="sref">errala> = a href="+code=parse_reply_info_trace" class="sref">parse_reply_info_traceala>(& a href="+code=p" class="sref">pala>, a href="+code=p" class="sref">pala>+ a href="+code=len" class="sref">lenala>, a href="+code=info" class="sref">info /a>, a href="+code=features" class="sref">featuresala>); "268ala> if ( a href="+code=err" class="sref">errala> < 0)n"269ala> goto a href="+code=out_bad" class="sref">out_badala>; "270ala> } "271ala> "272ala> spa3 class="comment"./* extra */ /spa3.1"273ala> a href="+code=ceph_decode_32_safe" class="sref">ceph_decode_32_safeala>(& a href="+code=p" class="sref">pala>, a href="+code=end" class="sref">endala>, a href="+code=len" class="sref">lenala>, a href="+code=bad" class="sref">badala>); "274ala> if ( a href="+code=len" class="sref">lenala> > 0) {n"275ala> a href="+code=ceph_decode_need" class="sref">ceph_decode_needala>(& a href="+code=p" class="sref">pala>, a href="+code=end" class="sref">endala>, a href="+code=len" class="sref">lenala>, a href="+code=bad" class="sref">badala>); "276ala> a href="+code=err" class="sref">errala> = a href="+code=parse_reply_info_extra" class="sref">parse_reply_info_extraala>(& a href="+code=p" class="sref">pala>, a href="+code=p" class="sref">pala>+ a href="+code=len" class="sref">lenala>, a href="+code=info" class="sref">info /a>, a href="+code=features" class="sref">featuresala>); "277ala> if ( a href="+code=err" class="sref">errala> < 0)n"278ala> goto a href="+code=out_bad" class="sref">out_badala>; "279ala> } "28vala> "281ala> spa3 class="comment"./* snap blob */ /spa3.1"282ala> a href="+code=ceph_decode_32_safe" class="sref">ceph_decode_32_safeala>(& a href="+code=p" class="sref">pala>, a href="+code=end" class="sref">endala>, a href="+code=len" class="sref">lenala>, a href="+code=bad" class="sref">badala>); "283ala> a href="+code=info" class="sref">info /a>-> a href="+code=snapblob_len" class="sref">snapblob_lenala> = a href="+code=len" class="sref">lenala>; "284ala> a href="+code=info" class="sref">info /a>-> a href="+code=snapblob" class="sref">snapblobala> = a href="+code=p" class="sref">pala>; "285ala> a href="+code=p" class="sref">pala> += a href="+code=len" class="sref">lenala>; "286 /a>n"287ala> if ( a href="+code=p" class="sref">pala> != a href="+code=end" class="sref">endala>) "288ala> goto a href="+code=bad" class="sref">badala>;n"289ala> return 0; "29vala> "291ala> a href="+code=bad" class="sref">badala>: "292ala> a href="+code=err" class="sref">errala> = - a href="+code=EIO" class="sref">EIOala>; "293 /a> a href="+code=out_bad" class="sref">out_badala>: "294ala> a href="+code=pr_err" class="sref">pr_errala>( spa3 class="string">"mds parse_reply err %d\3" /spa3., a href="+code=err" class="sref">errala>); "295ala> return a href="+code=err" class="sref">errala>; "296ala>} "297ala> "298ala>static void a href="+code=destroy_reply_info" class="sref">destroy_reply_infoala>(struct a href="+code=ceph_mds_reply_info_parsed" class="sref">ceph_mds_reply_info_parsedala> * a href="+code=info" class="sref">info /a>) "299ala>{n"300ala> a href="+code=kfree" class="sref">kfreeala>( a href="+code=info" class="sref">info /a>-> a href="+code=dir_in" class="sref">dir_inala>); "301ala>} "302ala> "303 /a>n"304ala> spa3 class="comment"./* /spa3.1"305ala> spa3 class="comment". * sessions /spa3.1"306ala> spa3 class="comment". */ /spa3.1"307ala>static const char * a href="+code=session_state_nam4" class="sref">session_state_nam4ala>(int a href="+code=s" class="sref">sala>)n"308ala>{n"309ala> switch ( a href="+code=s" class="sref">sala>) {n"310ala> case a href="+code=CEPH_MDS_SESSION_NEW" class="sref">CEPH_MDS_SESSION_NEWala>: return spa3 class="string">"new" /spa3.; "311ala> case a href="+code=CEPH_MDS_SESSION_OPENING" class="sref">CEPH_MDS_SESSION_OPENINGala>: return spa3 class="string">"opening" /spa3.; "312ala> case a href="+code=CEPH_MDS_SESSION_OPEN" class="sref">CEPH_MDS_SESSION_OPENala>: return spa3 class="string">"open" /spa3.; "313ala> case a href="+code=CEPH_MDS_SESSION_HUNG" class="sref">CEPH_MDS_SESSION_HUNGala>: return spa3 class="string">"hung" /spa3.; "314ala> case a href="+code=CEPH_MDS_SESSION_CLOSING" class="sref">CEPH_MDS_SESSION_CLOSINGala>: return spa3 class="string">"closing" /spa3.; "315ala> case a href="+code=CEPH_MDS_SESSION_RESTARTING" class="sref">CEPH_MDS_SESSION_RESTARTINGala>: return spa3 class="string">"restarting" /spa3.; "316ala> case a href="+code=CEPH_MDS_SESSION_RECONNECTING" class="sref">CEPH_MDS_SESSION_RECONNECTINGala>: return spa3 class="string">"reconnecting" /spa3.; "317ala> default: return spa3 class="string">"???" /spa3.; "318ala> } "319ala>} "32vala> "321ala>static struct a href="+code=ceph_mds_session" class="sref">ceph_mds_sessionala> * a href="+code=get_session" class="sref">get_sessionala>(struct a href="+code=ceph_mds_session" class="sref">ceph_mds_sessionala> * a href="+code=s" class="sref">sala>)n"322ala>{n"323ala> if ( a href="+code=atomic_inc_not_zero" class="sref">atomic_inc_not_zeroala>(& a href="+code=s" class="sref">sala>-> a href="+code=s_ref" class="sref">s_refala>)) {n"324ala> a href="+code=dout" class="sref">dout /a>( spa3 class="string">"mdsc get_session %p %d -> %d\3" /spa3., a href="+code=s" class="sref">sala>,n"325ala> a href="+code=atomic_read" class="sref">atomic_readala>(& a href="+code=s" class="sref">sala>-> a href="+code=s_ref" class="sref">s_refala>)-1, a href="+code=atomic_read" class="sref">atomic_readala>(& a href="+code=s" class="sref">sala>-> a href="+code=s_ref" class="sref">s_refala>)); "326ala> return a href="+code=s" class="sref">sala>; "327ala> } else {n"328ala> a href="+code=dout" class="sref">dout /a>( spa3 class="string">"mdsc get_session %p 0 -- FAIL" /spa3., a href="+code=s" class="sref">sala>); "329ala> return a href="+code=NULL" class="sref">NULLala>; "330ala> } "331ala>} "332ala> "333ala>void a href="+code=ceph_put_mds_session" class="sref">ceph_put_mds_sessionala>(struct a href="+code=ceph_mds_session" class="sref">ceph_mds_sessionala> * a href="+code=s" class="sref">sala>)n"334ala>{n"335ala> a href="+code=dout" class="sref">dout /a>( spa3 class="string">"mdsc put_session %p %d -> %d\3" /spa3., a href="+code=s" class="sref">sala>,n"336ala> a href="+code=atomic_read" class="sref">atomic_readala>(& a href="+code=s" class="sref">sala>-> a href="+code=s_ref" class="sref">s_refala>), a href="+code=atomic_read" class="sref">atomic_readala>(& a href="+code=s" class="sref">sala>-> a href="+code=s_ref" class="sref">s_refala>)-1); "337ala> if ( a href="+code=atomic_dec_and_test" class="sref">atomic_dec_and_testala>(& a href="+code=s" class="sref">sala>-> a href="+code=s_ref" class="sref">s_refala>)) {n"338ala> if ( a href="+code=s" class="sref">sala>-> a href="+code=s_auth" class="sref">s_authala>. a href="+code=authorizer" class="sref">authorizerala>)n"339ala> a href="+code=s" class="sref">sala>-> a href="+code=s_mdsc" class="sref">s_mdscala>-> a href="+code=fsc" class="sref">fscala>-> a href="+code=client" class="sref">clientala>-> a href="+code=monc" class="sref">moncala>. a href="+code=auth" class="sref">authala>-> a href="+code=ops" class="sref">ops /a>-> a href="+code=destroy_authorizer" class="sref">destroy_authorizerala>(n"340ala> a href="+code=s" class="sref">sala>-> a href="+code=s_mdsc" class="sref">s_mdscala>-> a href="+code=fsc" class="sref">fscala>-> a href="+code=client" class="sref">clientala>-> a href="+code=monc" class="sref">moncala>. a href="+code=auth" class="sref">authala>,n"341ala> a href="+code=s" class="sref">sala>-> a href="+code=s_auth" class="sref">s_authala>. a href="+code=authorizer" class="sref">authorizerala>); "342ala> a href="+code=kfree" class="sref">kfreeala>( a href="+code=s" class="sref">sala>); "343ala> } "344ala>} "345ala> "346ala> spa3 class="comment"./* /spa3.1"347ala> spa3 class="comment". * called under mdsc->mutex /spa3.1"348ala> spa3 class="comment". */ /spa3.1"349ala>struct a href="+code=ceph_mds_session" class="sref">ceph_mds_sessionala> * a href="+code=__ceph_lookup_mds_session" class="sref">__ceph_lookup_mds_sessionala>(struct a href="+code=ceph_mds_client" class="sref">ceph_mds_clientala> * a href="+code=mdsc" class="sref">mdscala>,n"350ala> int a href="+code=mds" class="sref">mdsala>)n"351ala>{n"352ala> struct a href="+code=ceph_mds_session" class="sref">ceph_mds_sessionala> * a href="+code=session" class="sref">sessionala>; "353 /a>n"354ala> if ( a href="+code=mds" class="sref">mdsala> >= a href="+code=mdsc" class="sref">mdscala>-> a href="+code=max_sessions" class="sref">max_sessionsala> || a href="+code=mdsc" class="sref">mdscala>-> a href="+code=sessions" class="sref">sessionsala>[ a href="+code=mds" class="sref">mdsala>] == a href="+code=NULL" class="sref">NULLala>)n"355ala> return a href="+code=NULL" class="sref">NULLala>; "356ala> a href="+code=session" class="sref">sessionala> = a href="+code=mdsc" class="sref">mdscala>-> a href="+code=sessions" class="sref">sessionsala>[ a href="+code=mds" class="sref">mdsala>]; "357ala> a href="+code=dout" class="sref">dout /a>( spa3 class="string">"lookup_mds_session %p %d\3" /spa3., a href="+code=session" class="sref">sessionala>,n"358ala> a href="+code=atomic_read" class="sref">atomic_readala>(& a href="+code=session" class="sref">sessionala>-> a href="+code=s_ref" class="sref">s_refala>)); "359ala> a href="+code=get_session" class="sref">get_sessionala>( a href="+code=session" class="sref">sessionala>); "360ala> return a href="+code=session" class="sref">sessionala>; "361ala>} "362ala> "363ala>static a href="+code=bool" class="sref">boolala> a href="+code=__have_session" class="sref">__have_sessionala>(struct a href="+code=ceph_mds_client" class="sref">ceph_mds_clientala> * a href="+code=mdsc" class="sref">mdscala>, int a href="+code=mds" class="sref">mdsala>)n"364ala>{n"365ala> if ( a href="+code=mds" class="sref">mdsala> >= a href="+code=mdsc" class="sref">mdscala>-> a href="+code=max_sessions" class="sref">max_sessionsala>)n"366ala> return a href="+code=false" class="sref">falseala>; "367ala> return a href="+code=mdsc" class="sref">mdscala>-> a href="+code=sessions" class="sref">sessionsala>[ a href="+code=mds" class="sref">mdsala>]; "368ala>} "369ala> "370ala>static int a href="+code=__verify_registered_session" class="sref">__verify_registered_sessionala>(struct a href="+code=ceph_mds_client" class="sref">ceph_mds_clientala> * a href="+code=mdsc" class="sref">mdscala>,n"371ala> struct a href="+code=ceph_mds_session" class="sref">ceph_mds_sessionala> * a href="+code=s" class="sref">sala>)n"372ala>{n"373ala> if ( a href="+code=s" class="sref">sala>-> a href="+code=s_mds" class="sref">s_mdsala> >= a href="+code=mdsc" class="sref">mdscala>-> a href="+code=max_sessions" class="sref">max_sessionsala> ||n"374ala> a href="+code=mdsc" class="sref">mdscala>-> a href="+code=sessions" class="sref">sessionsala>[ a href="+code=s" class="sref">sala>-> a href="+code=s_mds" class="sref">s_mdsala>] != a href="+code=s" class="sref">sala>)n"375ala> return - a href="+code=ENOENT" class="sref">ENOENTala>; "376ala> return 0; "377ala>} "378 /a>n"379ala> spa3 class="comment"./* /spa3.1"380ala> spa3 class="comment". * create+register a new session for given mds. /spa3.1"381ala> spa3 class="comment". * called under mdsc->mutex. /spa3.1"382ala> spa3 class="comment". */ /spa3.1"383ala>static struct a href="+code=ceph_mds_session" class="sref">ceph_mds_sessionala> * a href="+code=register_session" class="sref">register_sessionala>(struct a href="+code=ceph_mds_client" class="sref">ceph_mds_clientala> * a href="+code=mdsc" class="sref">mdscala>,n"384ala> int a href="+code=mds" class="sref">mdsala>)n"385ala>{n"386ala> struct a href="+code=ceph_mds_session" class="sref">ceph_mds_sessionala> * a href="+code=s" class="sref">sala>; "387ala> "388ala> a href="+code=s" class="sref">sala> = a href="+code=kzalloc" class="sref">kzallocala>(sizeof(* a href="+code=s" class="sref">sala>), a href="+code=GFP_NOFS" class="sref">GFP_NOFSala>); "389ala> if (! a href="+code=s" class="sref">sala>)n"390ala> return a href="+code=ERR_PTR" class="sref">ERR_PTRala>(- a href="+code=ENOMEM" class="sref">ENOMEMala>); "391ala> a href="+code=s" class="sref">sala>-> a href="+code=s_mdsc" class="sref">s_mdscala> = a href="+code=mdsc" class="sref">mdscala>; "392ala> a href="+code=s" class="sref">sala>-> a href="+code=s_mds" class="sref">s_mdsala> = a href="+code=mds" class="sref">mdsala>; "393ala> a href="+code=s" class="sref">sala>-> a href="+code=s_state" class="sref">s_stateala> = a href="+code=CEPH_MDS_SESSION_NEW" class="sref">CEPH_MDS_SESSION_NEWala>; "394ala> a href="+code=s" class="sref">sala>-> a href="+code=s_ttl" class="sref">s_ttlala> = 0; "395ala> a href="+code=s" class="sref">sala>-> a href="+code=s_seq" class="sref">s_seqala> = 0; "396ala> a href="+code=mutex_init" class="sref">mutex_initala>(& a href="+code=s" class="sref">sala>-> a href="+code=s_mutex" class="sref">s_mutex /a>); "397ala> "398ala> a href="+code=ceph_con_init" class="sref">ceph_con_initala>(& a href="+code=s" class="sref">sala>-> a href="+code=s_con" class="sref">s_conala>, a href="+code=s" class="sref">sala>, & a href="+code=mds_con_ops" class="sref">mds_con_opsala>, & a href="+code=mdsc" class="sref">mdscala>-> a href="+code=fsc" class="sref">fscala>-> a href="+code=client" class="sref">clientala>-> a href="+code=msgr" class="sref">msgr /a>); "399ala> "400ala> a href="+code=spin_lock_init" class="sref">spin_lock_initala>(& a href="+code=s" class="sref">sala>-> a href="+code=s_gen_ttl_lock" class="sref">s_gen_ttl_lock /a>); "401ala> a href="+code=s" class="sref">sala>-> a href="+code=s_cap_gen" class="sref">s_cap_genala> = 0; "402ala> a href="+code=s" class="sref">sala>-> a href="+code=s_cap_ttl" class="sref">s_cap_ttlala> = a href="+code=jiffies" class="sref">jiffiesala> - 1; "403 /a>n"404ala> a href="+code=spin_lock_init" class="sref">spin_lock_initala>(& a href="+code=s" class="sref">sala>-> a href="+code=s_cap_lock" class="sref">s_cap_lock /a>); "405ala> a href="+code=s" class="sref">sala>-> a href="+code=s_renew_requested" class="sref">s_renew_requestedala> = 0; "406ala> a href="+code=s" class="sref">sala>-> a href="+code=s_renew_seq" class="sref">s_renew_seqala> = 0; "407ala> a href="+code=INIT_LIST_HEAD" class="sref">INIT_LIST_HEADala>(& a href="+code=s" class="sref">sala>-> a href="+code=s_caps" class="sref">s_caps /a>); "408ala> a href="+code=s" class="sref">sala>-> a href="+code=s_nr_caps" class="sref">s_nr_capsala> = 0; "409ala> a href="+code=s" class="sref">sala>-> a href="+code=s_trim_caps" class="sref">s_trim_capsala> = 0; "410ala> a href="+code=atomic_set" class="sref">atomic_setala>(& a href="+code=s" class="sref">sala>-> a href="+code=s_ref" class="sref">s_refala>, 1); "411ala> a href="+code=INIT_LIST_HEAD" class="sref">INIT_LIST_HEADala>(& a href="+code=s" class="sref">sala>-> a href="+code=s_waiting" class="sref">s_waiting /a>); "412ala> a href="+code=INIT_LIST_HEAD" class="sref">INIT_LIST_HEADala>(& a href="+code=s" class="sref">sala>-> a href="+code=s_unsafe" class="sref">s_unsafe /a>); "413ala> a href="+code=s" class="sref">sala>-> a href="+code=s_num_cap_releases" class="sref">s_num_cap_releasesala> = 0; "414ala> a href="+code=s" class="sref">sala>-> a href="+code=s_cap_iterator" class="sref">s_cap_iteratorala> = a href="+code=NULL" class="sref">NULLala>; "415ala> a href="+code=INIT_LIST_HEAD" class="sref">INIT_LIST_HEADala>(& a href="+code=s" class="sref">sala>-> a href="+code=s_cap_releases" class="sref">s_cap_releasesala>); "416ala> a href="+code=INIT_LIST_HEAD" class="sref">INIT_LIST_HEADala>(& a href="+code=s" class="sref">sala>-> a href="+code=s_cap_releases_done" class="sref">s_cap_releases_doneala>); "417ala> a href="+code=INIT_LIST_HEAD" class="sref">INIT_LIST_HEADala>(& a href="+code=s" class="sref">sala>-> a href="+code=s_cap_flushing" class="sref">s_cap_flushingala>); "418ala> a href="+code=INIT_LIST_HEAD" class="sref">INIT_LIST_HEADala>(& a href="+code=s" class="sref">sala>-> a href="+code=s_cap_snaps_flushing" class="sref">s_cap_snaps_flushingala>); "419ala> "420ala> a href="+code=dout" class="sref">dout /a>( spa3 class="string">"register_session mds%d\3" /spa3., a href="+code=mds" class="sref">mdsala>); "421ala> if ( a href="+code=mds" class="sref">mdsala> >= a href="+code=mdsc" class="sref">mdscala>-> a href="+code=max_sessions" class="sref">max_sessionsala>) {n"422ala> int a href="+code=newmax" class="sref">newmaxala> = 1 << a href="+code=get_count_order" class="sref">get_count_order /a>( a href="+code=mds" class="sref">mdsala>+1); "423ala> struct a href="+code=ceph_mds_session" class="sref">ceph_mds_sessionala> ** a href="+code=sa" class="sref">saala>; "424ala> "425ala> a href="+code=dout" class="sref">dout /a>( spa3 class="string">"register_session realloc to %d\3" /spa3., a href="+code=newmax" class="sref">newmaxala>); "426ala> a href="+code=sa" class="sref">saala> = a href="+code=kcalloc" class="sref">kcallocala>( a href="+code=newmax" class="sref">newmaxala>, sizeof(void *), a href="+code=GFP_NOFS" class="sref">GFP_NOFSala>); "427ala> if ( a href="+code=sa" class="sref">saala> == a href="+code=NULL" class="sref">NULLala>)n"428ala> goto a href="+code=fail_realloc" class="sref">fail_reallocala>; "429ala> if ( a href="+code=mdsc" class="sref">mdscala>-> a href="+code=sessions" class="sref">sessionsala>) {n"430ala> a href="+code=memcpy" class="sref">memcpyala>( a href="+code=sa" class="sref">saala>, a href="+code=mdsc" class="sref">mdscala>-> a href="+code=sessions" class="sref">sessionsala>,n"431ala> a href="+code=mdsc" class="sref">mdscala>-> a href="+code=max_sessions" class="sref">max_sessionsala> * sizeof(void *)); "432ala> a href="+code=kfree" class="sref">kfreeala>( a href="+code=mdsc" class="sref">mdscala>-> a href="+code=sessions" class="sref">sessionsala>); "433ala> } "434ala> a href="+code=mdsc" class="sref">mdscala>-> a href="+code=sessions" class="sref">sessionsala> = a href="+code=sa" class="sref">saala>; "435ala> a href="+code=mdsc" class="sref">mdscala>-> a href="+code=max_sessions" class="sref">max_sessionsala> = a href="+code=newmax" class="sref">newmaxala>; "436ala> } "437ala> a href="+code=mdsc" class="sref">mdscala>-> a href="+code=sessions" class="sref">sessionsala>[ a href="+code=mds" class="sref">mdsala>] = a href="+code=s" class="sref">sala>; "438ala> a href="+code=atomic_inc" class="sref">atomic_incala>(& a href="+code=s" class="sref">sala>-> a href="+code=s_ref" class="sref">s_refala>); spa3 class="comment"./* one ref to sessions[], one to caller */ /spa3.1"439ala> "440ala> a href="+code=ceph_con_open" class="sref">ceph_con_openala>(& a href="+code=s" class="sref">sala>-> a href="+code=s_con" class="sref">s_conala>, a href="+code=CEPH_ENTITY_TYPE_MDS" class="sref">CEPH_ENTITY_TYPE_MDSala>, a href="+code=mds" class="sref">mdsala>,n"441ala> a href="+code=ceph_mdsmap_get_addr" class="sref">ceph_mdsmap_get_addrala>( a href="+code=mdsc" class="sref">mdscala>-> a href="+code=mdsmap" class="sref">mdsmapala>, a href="+code=mds" class="sref">mdsala>)); "442ala> "443ala> return a href="+code=s" class="sref">sala>; "444ala> "445ala> a href="+code=fail_realloc" class="sref">fail_reallocala>: "446ala> a href="+code=kfree" class="sref">kfreeala>( a href="+code=s" class="sref">sala>); "447ala> return a href="+code=ERR_PTR" class="sref">ERR_PTRala>(- a href="+code=ENOMEM" class="sref">ENOMEMala>); "448ala>} "449ala> "450ala> spa3 class="comment"./* /spa3.1"451ala> spa3 class="comment". * called under mdsc->mutex /spa3.1"452ala> spa3 class="comment". */ /spa3.1"453ala>static void a href="+code=__unregister_session" class="sref">__unregister_sessionala>(struct a href="+code=ceph_mds_client" class="sref">ceph_mds_clientala> * a href="+code=mdsc" class="sref">mdscala>,n"454ala> struct a href="+code=ceph_mds_session" class="sref">ceph_mds_sessionala> * a href="+code=s" class="sref">sala>)n"455ala>{n"456ala> a href="+code=dout" class="sref">dout /a>( spa3 class="string">"__unregister_session mds%d %p\3" /spa3., a href="+code=s" class="sref">sala>-> a href="+code=s_mds" class="sref">s_mdsala>, a href="+code=s" class="sref">sala>); "457ala> a href="+code=BUG_ON" class="sref">BUG_ONala>( a href="+code=mdsc" class="sref">mdscala>-> a href="+code=sessions" class="sref">sessionsala>[ a href="+code=s" class="sref">sala>-> a href="+code=s_mds" class="sref">s_mdsala>] != a href="+code=s" class="sref">sala>); "458ala> a href="+code=mdsc" class="sref">mdscala>-> a href="+code=sessions" class="sref">sessionsala>[ a href="+code=s" class="sref">sala>-> a href="+code=s_mds" class="sref">s_mdsala>] = a href="+code=NULL" class="sref">NULLala>; "459ala> a href="+code=ceph_con_close" class="sref">ceph_con_closeala>(& a href="+code=s" class="sref">sala>-> a href="+code=s_con" class="sref">s_conala>); "460ala> a href="+code=ceph_put_mds_session" class="sref">ceph_put_mds_sessionala>( a href="+code=s" class="sref">sala>); "461ala>} "462ala> "463ala> spa3 class="comment"./* /spa3.1"464ala> spa3 class="comment". * drop session refs in request. /spa3.1"465ala> spa3 class="comment". * /spa3.1"466ala> spa3 class="comment". * should be last request ref, or hold mdsc->mutex /spa3.1"467ala> spa3 class="comment". */ /spa3.1"468ala>static void a href="+code=put_request_session" class="sref">put_request_sessionala>(struct a href="+code=ceph_mds_request" class="sref">ceph_mds_requestala> * a href="+code=req" class="sref">reqala>)n"469ala>{n"470ala> if ( a href="+code=req" class="sref">reqala>-> a href="+code=r_session" class="sref">r_sessionala>) {n"471ala> a href="+code=ceph_put_mds_session" class="sref">ceph_put_mds_sessionala>( a href="+code=req" class="sref">reqala>-> a href="+code=r_session" class="sref">r_sessionala>); "472ala> a href="+code=req" class="sref">reqala>-> a href="+code=r_session" class="sref">r_sessionala> = a href="+code=NULL" class="sref">NULLala>; "473ala> } "474ala>} "475ala> "476ala>void a href="+code=ceph_mdsc_release_request" class="sref">ceph_mdsc_release_requestala>(struct a href="+code=kref" class="sref">krefala> * a href="+code=kref" class="sref">krefala>)n"477ala>{n"478ala> struct a href="+code=ceph_mds_request" class="sref">ceph_mds_requestala> * a href="+code=req" class="sref">reqala> = a href="+code=container_of" class="sref">container_ofala>( a href="+code=kref" class="sref">krefala>,n"479ala> struct a href="+code=ceph_mds_request" class="sref">ceph_mds_requestala>,n"480ala> a href="+code=r_kref" class="sref">r_krefala>); "481ala> if ( a href="+code=req" class="sref">reqala>-> a href="+code=r_request" class="sref">r_requestala>)n"482ala> a href="+code=ceph_msg_put" class="sref">ceph_msg_putala>( a href="+code=req" class="sref">reqala>-> a href="+code=r_request" class="sref">r_requestala>); "483ala> if ( a href="+code=req" class="sref">reqala>-> a href="+code=r_reply" class="sref">r_replyala>) {n"484ala> a href="+code=ceph_msg_put" class="sref">ceph_msg_putala>( a href="+code=req" class="sref">reqala>-> a href="+code=r_reply" class="sref">r_replyala>); "485ala> a href="+code=destroy_reply_info" class="sref">destroy_reply_infoala>(& a href="+code=req" class="sref">reqala>-> a href="+code=r_reply_info" class="sref">r_reply_infoala>); "486ala> } "487ala> if ( a href="+code=req" class="sref">reqala>-> a href="+code=r_inode" class="sref">r_inodeala>) {n"488ala> a href="+code=ceph_put_cap_refs" class="sref">ceph_put_cap_refsala>( a href="+code=ceph_inode" class="sref">ceph_inodeala>( a href="+code=req" class="sref">reqala>-> a href="+code=r_inode" class="sref">r_inodeala>), a href="+code=CEPH_CAP_PIN" class="sref">CEPH_CAP_PINala>); "489ala> a href="+code=iput" class="sref">iputala>( a href="+code=req" class="sref">reqala>-> a href="+code=r_inode" class="sref">r_inodeala>); "490ala> } "491ala> if ( a href="+code=req" class="sref">reqala>-> a href="+code=r_locked_dir" class="sref">r_locked_dirala>)n"492ala> a href="+code=ceph_put_cap_refs" class="sref">ceph_put_cap_refsala>( a href="+code=ceph_inode" class="sref">ceph_inodeala>( a href="+code=req" class="sref">reqala>-> a href="+code=r_locked_dir" class="sref">r_locked_dirala>), a href="+code=CEPH_CAP_PIN" class="sref">CEPH_CAP_PINala>); "493ala> if ( a href="+code=req" class="sref">reqala>-> a href="+code=r_target_inode" class="sref">r_target_inodeala>)n"494ala> a href="+code=iput" class="sref">iputala>( a href="+code=req" class="sref">reqala>-> a href="+code=r_target_inode" class="sref">r_target_inodeala>); "495ala> if ( a href="+code=req" class="sref">reqala>-> a href="+code=r_dentry" class="sref">r_dentryala>)n"496ala> a href="+code=dput" class="sref">dputala>( a href="+code=req" class="sref">reqala>-> a href="+code=r_dentry" class="sref">r_dentryala>); "497ala> if ( a href="+code=req" class="sref">reqala>-> a href="+code=r_old_dentry" class="sref">r_old_dentryala>) {n"498ala> spa3 class="comment"./* /spa3.1"499ala> spa3 class="comment". * track (and drop pins for) r_old_dentry_diralspa3.1"500ala> spa3 class="comment". * separately, since r_old_dentry's d_parent may havealspa3.1"501ala> spa3 class="comment". * changed between the dir mutex being dropped andalspa3.1"502ala> spa3 class="comment". * this request being freed. /spa3.1"503ala> spa3 class="comment". */ /spa3.1"504ala> a href="+code=ceph_put_cap_refs" class="sref">ceph_put_cap_refsala>( a href="+code=ceph_inode" class="sref">ceph_inodeala>( a href="+code=req" class="sref">reqala>-> a href="+code=r_old_dentry_dir" class="sref">r_old_dentry_dirala>),1"505ala> a href="+code=CEPH_CAP_PIN" class="sref">CEPH_CAP_PINala>); "506ala> a href="+code=dput" class="sref">dputala>( a href="+code=req" class="sref">reqala>-> a href="+code=r_old_dentry" class="sref">r_old_dentryala>); "507ala> a href="+code=iput" class="sref">iputala>( a href="+code=req" class="sref">reqala>-> a href="+code=r_old_dentry_dir" class="sref">r_old_dentry_dirala>); "508ala> } "509ala> a href="+code=kfree" class="sref">kfreeala>( a href="+code=req" class="sref">reqala>-> a href="+code=r_path1" class="sref">r_path1ala>); "510ala> a href="+code=kfree" class="sref">kfreeala>( a href="+code=req" class="sref">reqala>-> a href="+code=r_path2" class="sref">r_path2ala>); "511ala> a href="+code=put_request_session" class="sref">put_request_sessionala>( a href="+code=req" class="sref">reqala>); "512ala> a href="+code=ceph_unreserve_caps" class="sref">ceph_unreserve_capsala>( a href="+code=req" class="sref">reqala>-> a href="+code=r_mdsc" class="sref">r_mdscala>, & a href="+code=req" class="sref">reqala>-> a href="+code=r_caps_reservation" class="sref">r_caps_reservationala>); "513ala> a href="+code=kfree" class="sref">kfreeala>( a href="+code=req" class="sref">reqala>); "514ala>} "515ala> "516ala> spa3 class="comment"./* /spa3.1"517ala> spa3 class="comment". * lookup session, bump ref if found. /spa3.1"518ala> spa3 class="comment". * /spa3.1"519ala> spa3 class="comment". * called under mdsc->mutex. /spa3.1"520ala> spa3 class="comment". */ /spa3.1"521ala>static struct a href="+code=ceph_mds_request" class="sref">ceph_mds_requestala> * a href="+code=__lookup_request" class="sref">__lookup_requestala>(struct a href="+code=ceph_mds_client" class="sref">ceph_mds_clientala> * a href="+code=mdsc" class="sref">mdscala>,n"522ala> a href="+code=u64" class="sref">u64ala> a href="+code=tid" class="sref">tidala>)n"523ala>{n"524ala> struct a href="+code=ceph_mds_request" class="sref">ceph_mds_requestala> * a href="+code=req" class="sref">reqala>; "525ala> struct a href="+code=rb_node" class="sref">rb_nodeala> * a href="+code=n" class="sref">nala> = a href="+code=mdsc" class="sref">mdscala>-> a href="+code=request_tree" class="sref">request_treeala>. a href="+code=rb_node" class="sref">rb_nodeala>; "526ala> "527ala> while ( a href="+code=n" class="sref">nala>) {n"528ala> a href="+code=req" class="sref">reqala> = a href="+code=rb_entry" class="sref">rb_entryala>( a href="+code=n" class="sref">nala>, struct a href="+code=ceph_mds_request" class="sref">ceph_mds_requestala>, a href="+code=r_node" class="sref">r_nodeala>); "529ala> if ( a href="+code=tid" class="sref">tidala> < a href="+code=req" class="sref">reqala>-> a href="+code=r_tid" class="sref">r_tidala>)n"530ala> a href="+code=n" class="sref">nala> = a href="+code=n" class="sref">nala>-> a href="+code=rb_left" class="sref">rb_leftala>; "531ala> else if ( a href="+code=tid" class="sref">tidala> > a href="+code=req" class="sref">reqala>-> a href="+code=r_tid" class="sref">r_tidala>)n"532ala> a href="+code=n" class="sref">nala> = a href="+code=n" class="sref">nala>-> a href="+code=rb_right" class="sref">rb_rightala>; "533ala> else {n"534ala> a href="+code=ceph_mdsc_get_request" class="sref">ceph_mdsc_get_requestala>( a href="+code=req" class="sref">reqala>); "535ala> return a href="+code=req" class="sref">reqala>; "536ala> } "537ala> } "538ala> return a href="+code=NULL" class="sref">NULLala>; "539ala>} "540ala> "541ala>static void a href="+code=__insert_request" class="sref">__insert_requestala>(struct a href="+code=ceph_mds_client" class="sref">ceph_mds_clientala> * a href="+code=mdsc" class="sref">mdscala>,n"542ala> struct a href="+code=ceph_mds_request" class="sref">ceph_mds_requestala> * a href="+code=new" class="sref">newala>)n"543ala>{n"544ala> struct a href="+code=rb_node" class="sref">rb_nodeala> ** a href="+code=p" class="sref">pala> = & a href="+code=mdsc" class="sref">mdscala>-> a href="+code=request_tree" class="sref">request_treeala>. a href="+code=rb_node" class="sref">rb_nodeala>; "545ala> struct a href="+code=rb_node" class="sref">rb_nodeala> * a href="+code=parent" class="sref">parentala> = a href="+code=NULL" class="sref">NULLala>; "546ala> struct a href="+code=ceph_mds_request" class="sref">ceph_mds_requestala> * a href="+code=req" class="sref">reqala> = a href="+code=NULL" class="sref">NULLala>; "547ala> "548ala> while (* a href="+code=p" class="sref">pala>) {n"549ala> a href="+code=parent" class="sref">parentala> = * a href="+code=p" class="sref">pala>; "550ala> a href="+code=req" class="sref">reqala> = a href="+code=rb_entry" class="sref">rb_entryala>( a href="+code=parent" class="sref">parentala>, struct a href="+code=ceph_mds_request" class="sref">ceph_mds_requestala>, a href="+code=r_node" class="sref">r_nodeala>); "551ala> if ( a href="+code=new" class="sref">newala>-> a href="+code=r_tid" class="sref">r_tidala> < a href="+code=req" class="sref">reqala>-> a href="+code=r_tid" class="sref">r_tidala>)n"552ala> a href="+code=p" class="sref">pala> = &(* a href="+code=p" class="sref">pala>)-> a href="+code=rb_left" class="sref">rb_leftala>; "553ala> else if ( a href="+code=new" class="sref">newala>-> a href="+code=r_tid" class="sref">r_tidala> > a href="+code=req" class="sref">reqala>-> a href="+code=r_tid" class="sref">r_tidala>)n"554ala> a href="+code=p" class="sref">pala> = &(* a href="+code=p" class="sref">pala>)-> a href="+code=rb_right" class="sref">rb_rightala>; "555ala> else "556ala> a href="+code=BUG" class="sref">BUGala>(); "557ala> } "558ala> "559ala> a href="+code=rb_link_node" class="sref">rb_link_nodeala>(& a href="+code=new" class="sref">newala>-> a href="+code=r_node" class="sref">r_nodeala>, a href="+code=parent" class="sref">parentala>, a href="+code=p" class="sref">pala>); "560ala> a href="+code=rb_insert_color" class="sref">rb_insert_colorala>(& a href="+code=new" class="sref">newala>-> a href="+code=r_node" class="sref">r_nodeala>, & a href="+code=mdsc" class="sref">mdscala>-> a href="+code=request_tree" class="sref">request_treeala>); "561ala>} "562ala> "563ala> spa3 class="comment"./* /spa3.1"564ala> spa3 class="comment". * Register a3 in-flight request, and assign a tid. Link to directoryalspa3.1"565ala> spa3 class="comment". * are modifying (if any). /spa3.1"566ala> spa3 class="comment". * /spa3.1"567ala> spa3 class="comment". * Called under mdsc->mutex. /spa3.1"568ala> spa3 class="comment". */ /spa3.1"569ala>static void a href="+code=__register_request" class="sref">__register_requestala>(struct a href="+code=ceph_mds_client" class="sref">ceph_mds_clientala> * a href="+code=mdsc" class="sref">mdscala>,n"570ala> struct a href="+code=ceph_mds_request" class="sref">ceph_mds_requestala> * a href="+code=req" class="sref">reqala>,n"571ala> struct a href="+code=inode" class="sref">inodeala> * a href="+code=dir" class="sref">dirala>)n"572ala>{n"573ala> a href="+code=req" class="sref">reqala>-> a href="+code=r_tid" class="sref">r_tidala> = ++ a href="+code=mdsc" class="sref">mdscala>-> a href="+code=last_tid" class="sref">last_tidala>; "574ala> if ( a href="+code=req" class="sref">reqala>-> a href="+code=r_num_caps" class="sref">r_num_capsala>)n"575ala> a href="+code=ceph_reserve_caps" class="sref">ceph_reserve_capsala>( a href="+code=mdsc" class="sref">mdscala>, & a href="+code=req" class="sref">reqala>-> a href="+code=r_caps_reservation" class="sref">r_caps_reservationala>,n"576ala> a href="+code=req" class="sref">reqala>-> a href="+code=r_num_caps" class="sref">r_num_capsala>); "577ala> a href="+code=dout" class="sref">dout /a>( spa3 class="string">"__register_request %p tid %lld\3" /spa3., a href="+code=req" class="sref">reqala>, a href="+code=req" class="sref">reqala>-> a href="+code=r_tid" class="sref">r_tidala>); "578ala> a href="+code=ceph_mdsc_get_request" class="sref">ceph_mdsc_get_requestala>( a href="+code=req" class="sref">reqala>); "579ala> a href="+code=__insert_request" class="sref">__insert_requestala>( a href="+code=mdsc" class="sref">mdscala>, a href="+code=req" class="sref">reqala>); "580ala> "581ala> a href="+code=req" class="sref">reqala>-> a href="+code=r_uid" class="sref">r_uidala> = a href="+code=current_fsuid" class="sref">current_fsuidala>(); "582ala> a href="+code=req" class="sref">reqala>-> a href="+code=r_gid" class="sref">r_gidala> = a href="+code=current_fsgid" class="sref">current_fsgidala>(); "583ala> "584ala> if ( a href="+code=dir" class="sref">dirala>) {n"585ala> struct a href="+code=ceph_inode_info" class="sref">ceph_inode_infoala> * a href="+code=ci" class="sref">ciala> = a href="+code=ceph_inode" class="sref">ceph_inodeala>( a href="+code=dir" class="sref">dirala>); "586ala> "587ala> a href="+code=ihold" class="sref">iholdala>( a href="+code=dir" class="sref">dirala>); "588ala> a href="+code=spin_lock" class="sref">spin_lockala>(& a href="+code=ci" class="sref">ciala>-> a href="+code=i_unsafe_lock" class="sref">i_unsafe_lockala>); "589ala> a href="+code=req" class="sref">reqala>-> a href="+code=r_unsafe_dir" class="sref">r_unsafe_dirala> = a href="+code=dir" class="sref">dirala>; "590ala> a href="+code=list_add_tail" class="sref">list_add_tailala>(& a href="+code=req" class="sref">reqala>-> a href="+code=r_unsafe_dir_item" class="sref">r_unsafe_dir_itemala>, & a href="+code=ci" class="sref">ciala>-> a href="+code=i_unsafe_dirops" class="sref">i_unsafe_diropsala>); "591ala> a href="+code=spin_unlock" class="sref">spin_unlockala>(& a href="+code=ci" class="sref">ciala>-> a href="+code=i_unsafe_lock" class="sref">i_unsafe_lockala>); "592ala> } "593ala>} "594ala> "595ala>static void a href="+code=__unregister_request" class="sref">__unregister_requestala>(struct a href="+code=ceph_mds_client" class="sref">ceph_mds_clientala> * a href="+code=mdsc" class="sref">mdscala>,n"596ala> struct a href="+code=ceph_mds_request" class="sref">ceph_mds_requestala> * a href="+code=req" class="sref">reqala>)n"597ala>{n"598ala> a href="+code=dout" class="sref">dout /a>( spa3 class="string">"__unregister_request %p tid %lld\3" /spa3., a href="+code=req" class="sref">reqala>, a href="+code=req" class="sref">reqala>-> a href="+code=r_tid" class="sref">r_tidala>); "599ala> a href="+code=rb_erase" class="sref">rb_eraseala>(& a href="+code=req" class="sref">reqala>-> a href="+code=r_node" class="sref">r_nodeala>, & a href="+code=mdsc" class="sref">mdscala>-> a href="+code=request_tree" class="sref">request_treeala>); "600ala> a href="+code=RB_CLEAR_NODE" class="sref">RB_CLEAR_NODEala>(& a href="+code=req" class="sref">reqala>-> a href="+code=r_node" class="sref">r_nodeala>); "601ala> "602ala> if ( a href="+code=req" class="sref">reqala>-> a href="+code=r_unsafe_dir" class="sref">r_unsafe_dirala>) {n"603ala> struct a href="+code=ceph_inode_info" class="sref">ceph_inode_infoala> * a href="+code=ci" class="sref">ciala> = a href="+code=ceph_inode" class="sref">ceph_inodeala>( a href="+code=req" class="sref">reqala>-> a href="+code=r_unsafe_dir" class="sref">r_unsafe_dirala>); "604ala> "605ala> a href="+code=spin_lock" class="sref">spin_lockala>(& a href="+code=ci" class="sref">ciala>-> a href="+code=i_unsafe_lock" class="sref">i_unsafe_lockala>); "606ala> a href="+code=list_del_init" class="sref">list_del_initala>(& a href="+code=req" class="sref">reqala>-> a href="+code=r_unsafe_dir_item" class="sref">r_unsafe_dir_itemala>); "607ala> a href="+code=spin_unlock" class="sref">spin_unlockala>(& a href="+code=ci" class="sref">ciala>-> a href="+code=i_unsafe_lock" class="sref">i_unsafe_lockala>); "608ala> "609ala> a href="+code=iput" class="sref">iputala>( a href="+code=req" class="sref">reqala>-> a href="+code=r_unsafe_dir" class="sref">r_unsafe_dirala>); "610ala> a href="+code=req" class="sref">reqala>-> a href="+code=r_unsafe_dir" class="sref">r_unsafe_dirala> = a href="+code=NULL" class="sref">NULLala>; "611ala> } "612ala> "613ala> a href="+code=ceph_mdsc_put_request" class="sref">ceph_mdsc_put_requestala>( a href="+code=req" class="sref">reqala>); "614ala>} "615ala> "616ala> spa3 class="comment"./* /spa3.1"617ala> spa3 class="comment". * Choose mds to send request to next. If there is a hint set in the /spa3.1"618ala> spa3 class="comment". * request (e.g., due to a prior forward hint from the mds), use that. /spa3.1"619ala> spa3 class="comment". * Otherwise, consult frag tree and/or caps to identify the /spa3.1"620ala> spa3 class="comment". * appropriate mds. If all else fails, choose randomly. /spa3.1"621ala> spa3 class="comment". * /spa3.1"622ala> spa3 class="comment". * Called under mdsc->mutex. /spa3.1"623ala> spa3 class="comment". */ /spa3.1"624ala>static struct a href="+code=dentry" class="sref">dentryala> * a href="+code=get_nonsnap_parent" class="sref">get_nonsnap_parentala>(struct a href="+code=dentry" class="sref">dentryala> * a href="+code=dentry" class="sref">dentryala>)n"625ala>{n"626ala> spa3 class="comment"./* /spa3.1"627ala> spa3 class="comment". * we don't need to worry about protecting the d_parent access /spa3.1"628ala> spa3 class="comment". * here because we never renaming inside the snapped nam4space /spa3.1"629ala> spa3 class="comment". * except to r4splice to another snapdir, and either the old or newalspa3.1"630ala> spa3 class="comment". * result is a valid result. /spa3.1"631ala> spa3 class="comment". */ /spa3.1"632ala> while (! a href="+code=IS_ROOT" class="sref">IS_ROOTala>( a href="+code=dentry" class="sref">dentryala>) && a href="+code=ceph_snap" class="sref">ceph_snapala>( a href="+code=dentry" class="sref">dentryala>-> a href="+code=d_inode" class="sref">d_inodeala>) != a href="+code=CEPH_NOSNAP" class="sref">CEPH_NOSNAPala>)n"633ala> a href="+code=dentry" class="sref">dentryala> = a href="+code=dentry" class="sref">dentryala>-> a href="+code=d_parent" class="sref">d_parentala>; "634ala> return a href="+code=dentry" class="sref">dentryala>; "635ala>} "636ala> "637ala>static int a href="+code=__choose_mds" class="sref">__choose_mdsala>(struct a href="+code=ceph_mds_client" class="sref">ceph_mds_clientala> * a href="+code=mdsc" class="sref">mdscala>,n"638ala> struct a href="+code=ceph_mds_request" class="sref">ceph_mds_requestala> * a href="+code=req" class="sref">reqala>)n"639ala>{n"640ala> struct a href="+code=inode" class="sref">inodeala> * a href="+code=inode" class="sref">inodeala>; "641ala> struct a href="+code=ceph_inode_info" class="sref">ceph_inode_infoala> * a href="+code=ci" class="sref">ciala>; "642ala> struct a href="+code=ceph_cap" class="sref">ceph_capala> * a href="+code=cap" class="sref">capala>; "643ala> int a href="+code=mode" class="sref">modeala> = a href="+code=req" class="sref">reqala>-> a href="+code=r_direct_mode" class="sref">r_direct_modeala>; "644ala> int a href="+code=mds" class="sref">mdsala> = -1; "645ala> a href="+code=u32" class="sref">u32ala> a href="+code=hash" class="sref">hashala> = a href="+code=req" class="sref">reqala>-> a href="+code=r_direct_hash" class="sref">r_direct_hashala>; "646ala> a href="+code=bool" class="sref">boolala> a href="+code=is_hash" class="sref">is_hashala> = a href="+code=req" class="sref">reqala>-> a href="+code=r_direct_is_hash" class="sref">r_direct_is_hashala>; "647ala> "648ala> spa3 class="comment"./* /spa3.1"649ala> spa3 class="comment". * is there a specific mds we should try? ignore hint if we havealspa3.1"650ala> spa3 class="comment". * no session and the mds is not up (active or recovering). /spa3.1"651ala> spa3 class="comment". */ /spa3.1"652ala> if ( a href="+code=req" class="sref">reqala>-> a href="+code=r_resend_mds" class="sref">r_resend_mdsala> >= 0 &&1"653ala> ( a href="+code=__have_session" class="sref">__have_sessionala>( a href="+code=mdsc" class="sref">mdscala>, a href="+code=req" class="sref">reqala>-> a href="+code=r_resend_mds" class="sref">r_resend_mdsala>) ||1"654ala> a href="+code=ceph_mdsmap_get_state" class="sref">ceph_mdsmap_get_stateala>( a href="+code=mdsc" class="sref">mdscala>-> a href="+code=mdsmap" class="sref">mdsmapala>, a href="+code=req" class="sref">reqala>-> a href="+code=r_resend_mds" class="sref">r_resend_mdsala>) > 0)) {n"655ala> a href="+code=dout" class="sref">dout /a>( spa3 class="string">"choose_mds using resend_mds mds%d\3" /spa3.,n"656ala> a href="+code=req" class="sref">reqala>-> a href="+code=r_resend_mds" class="sref">r_resend_mdsala>);1"657ala> return a href="+code=req" class="sref">reqala>-> a href="+code=r_resend_mds" class="sref">r_resend_mdsala>;1"658ala> } "659ala> "660ala> if ( a href="+code=mode" class="sref">modeala> == a href="+code=USE_RANDOM_MDS" class="sref">USE_RANDOM_MDSala>)n"661ala> goto a href="+code=random" class="sref">randomala>;1"662ala> "663ala> a href="+code=inode" class="sref">inodeala> = a href="+code=NULL" class="sref">NULLala>; "664ala> if ( a href="+code=req" class="sref">reqala>-> a href="+code=r_inode" class="sref">r_inodeala>) {n"665ala> a href="+code=inode" class="sref">inodeala> = a href="+code=req" class="sref">reqala>-> a href="+code=r_inode" class="sref">r_inodeala>; "666ala> } else if ( a href="+code=req" class="sref">reqala>-> a href="+code=r_dentry" class="sref">r_dentryala>) {n"667ala> spa3 class="comment"./* ignore race with rename; old or new d_parent is okay */ /spa3.1"668ala> struct a href="+code=dentry" class="sref">dentryala> * a href="+code=parent" class="sref">parentala> = a href="+code=req" class="sref">reqala>-> a href="+code=r_dentry" class="sref">r_dentryala>-> a href="+code=d_parent" class="sref">d_parentala>; "669ala> struct a href="+code=inode" class="sref">inodeala> * a href="+code=dir" class="sref">dirala> = a href="+code=parent" class="sref">parentala>-> a href="+code=d_inode" class="sref">d_inodeala>; "670ala> "671ala> if ( a href="+code=dir" class="sref">dirala>-> a href="+code=i_sb" class="sref">i_sbala> != a href="+code=mdsc" class="sref">mdscala>-> a href="+code=fsc" class="sref">fscala>-> a href="+code=sb" class="sref">sbala>) {n"672ala> spa3 class="comment"./* not this fs! */ /spa3.1"673ala> a href="+code=inode" class="sref">inodeala> = a href="+code=req" class="sref">reqala>-> a href="+code=r_dentry" class="sref">r_dentryala>-> a href="+code=d_inode" class="sref">d_inodeala>; "674ala> } else if ( a href="+code=ceph_snap" class="sref">ceph_snapala>( a href="+code=dir" class="sref">dirala>) != a href="+code=CEPH_NOSNAP" class="sref">CEPH_NOSNAPala>) {n"675ala> spa3 class="comment"./* direct snapped/virtual snapdir requests /spa3.1"676ala> spa3 class="comment". * based on parent dir inode */ /spa3.1"677ala> struct a href="+code=dentry" class="sref">dentryala> * a href="+code=dn" class="sref">dnala> = a href="+code=get_nonsnap_parent" class="sref">get_nonsnap_parentala>( a href="+code=parent" class="sref">parentala>);1"678ala> a href="+code=inode" class="sref">inodeala> = a href="+code=dn" class="sref">dnala>-> a href="+code=d_inode" class="sref">d_inodeala>; "679ala> a href="+code=dout" class="sref">dout /a>( spa3 class="string">"__choose_mds using nonsnap parent %p\3" /spa3., a href="+code=inode" class="sref">inodeala>);1"680ala> } else if ( a href="+code=req" class="sref">reqala>-> a href="+code=r_dentry" class="sref">r_dentryala>-> a href="+code=d_inode" class="sref">d_inodeala>) {n"681ala> spa3 class="comment"./* dentry target */ /spa3.1"682ala> a href="+code=inode" class="sref">inodeala> = a href="+code=req" class="sref">reqala>-> a href="+code=r_dentry" class="sref">r_dentryala>-> a href="+code=d_inode" class="sref">d_inodeala>; "683ala> } else {n"684ala> spa3 class="comment"./* dir + nam4 */ /spa3.1"685ala> a href="+code=inode" class="sref">inodeala> = a href="+code=dir" class="sref">dirala>; "686ala> a href="+code=hash" class="sref">hashala> = a href="+code=ceph_dentry_hash" class="sref">ceph_dentry_hashala>( a href="+code=dir" class="sref">dirala>, a href="+code=req" class="sref">reqala>-> a href="+code=r_dentry" class="sref">r_dentryala>); "687ala> a href="+code=is_hash" class="sref">is_hashala> = a href="+code=true" class="sref">trueala>; "688ala> } "689ala> } "690ala> "691ala> a href="+code=dout" class="sref">dout /a>( spa3 class="string">"__choose_mds %p is_hash=%d (%d) mode %d\3" /spa3., a href="+code=inode" class="sref">inodeala>, (int) a href="+code=is_hash" class="sref">is_hashala>,n"692ala> (int) a href="+code=hash" class="sref">hashala>, a href="+code=mode" class="sref">modeala>); "693ala> if (! a href="+code=inode" class="sref">inodeala>) "694ala> goto a href="+code=random" class="sref">randomala>;1"695ala> a href="+code=ci" class="sref">ciala> = a href="+code=ceph_inode" class="sref">ceph_inodeala>( a href="+code=inode" class="sref">inodeala>);1"696ala> "697ala> if ( a href="+code=is_hash" class="sref">is_hashala> && a href="+code=S_ISDIR" class="sref">S_ISDIRala>( a href="+code=inode" class="sref">inodeala>-> a href="+code=i_mode" class="sref">i_modeala>)) {n"698ala> struct a href="+code=ceph_inode_frag" class="sref">ceph_inode_fragala> a href="+code=frag" class="sref">fragala>;1"699ala> int a href="+code=found" class="sref">foundala>;1"700ala> "701ala> a href="+code=ceph_choose_frag" class="sref">ceph_choose_fragala>( a href="+code=ci" class="sref">ciala>, a href="+code=hash" class="sref">hashala>, & a href="+code=frag" class="sref">fragala>, & a href="+code=found" class="sref">foundala>);1"702ala> if ( a href="+code=found" class="sref">foundala>) {n"703ala> if ( a href="+code=mode" class="sref">modeala> == a href="+code=USE_ANY_MDS" class="sref">USE_ANY_MDSala> && a href="+code=frag" class="sref">fragala>. a href="+code=ndist" class="sref">ndistala> > 0) {n"704ala> a href="+code=u8" class="sref">u8ala> a href="+code=r" class="sref">rala>;1"705ala> "706ala> spa3 class="comment"./* choose a random replica */ /spa3.1"707ala> a href="+code=get_random_bytes" class="sref">get_random_bytesala>(& a href="+code=r" class="sref">rala>, 1);1"708ala> a href="+code=r" class="sref">rala> %= a href="+code=frag" class="sref">fragala>. a href="+code=ndist" class="sref">ndistala>;1"709ala> a href="+code=mds" class="sref">mdsala> = a href="+code=frag" class="sref">fragala>. a href="+code=dist" class="sref">distala>[ a href="+code=r" class="sref">rala>];1"710ala> a href="+code=dout" class="sref">dout /a>( spa3 class="string">"choose_mds %p %llx.%llx " /spa3.1"711ala> spa3 class="string">"frag %u mds%d (%d/%d)\3" /spa3.,n"712ala> a href="+code=inode" class="sref">inodeala>, a href="+code=ceph_vinop" class="sref">ceph_vinopala>( a href="+code=inode" class="sref">inodeala>),n"713ala> a href="+code=frag" class="sref">fragala>. a href="+code=frag" class="sref">fragala>, a href="+code=mds" class="sref">mdsala>,n"714ala> (int) a href="+code=r" class="sref">rala>, a href="+code=frag" class="sref">fragala>. a href="+code=ndist" class="sref">ndistala>);1"715ala> if ( a href="+code=ceph_mdsmap_get_state" class="sref">ceph_mdsmap_get_stateala>( a href="+code=mdsc" class="sref">mdscala>-> a href="+code=mdsmap" class="sref">mdsmapala>, a href="+code=mds" class="sref">mdsala>) >=1"716ala> a href="+code=CEPH_MDS_STATE_ACTIVE" class="sref">CEPH_MDS_STATE_ACTIVEala>) "717ala> return a href="+code=mds" class="sref">mdsala>;1"718ala> } "719ala> "720ala> spa3 class="comment"./* since this file/dir wasn't known to bealspa3.1"721ala> spa3 class="comment". * replicated, then we want to look for the /spa3.1"722ala> spa3 class="comment". * authoritative mds. */ /spa3.1"723ala> a href="+code=mode" class="sref">modeala> = a href="+code=USE_AUTH_MDS" class="sref">USE_AUTH_MDSala>;1"724ala> if ( a href="+code=frag" class="sref">fragala>. a href="+code=mds" class="sref">mdsala> >= 0) {n"725ala> spa3 class="comment"./* choose auth mds */ /spa3.1"726ala> a href="+code=mds" class="sref">mdsala> = a href="+code=frag" class="sref">fragala>. a href="+code=mds" class="sref">mdsala>;1"727ala> a href="+code=dout" class="sref">dout /a>( spa3 class="string">"choose_mds %p %llx.%llx " /spa3.1"728ala> spa3 class="string">"frag %u mds%d (auth)\3" /spa3.,n"729ala> a href="+code=inode" class="sref">inodeala>, a href="+code=ceph_vinop" class="sref">ceph_vinopala>( a href="+code=inode" class="sref">inodeala>), a href="+code=frag" class="sref">fragala>. a href="+code=frag" class="sref">fragala>, a href="+code=mds" class="sref">mdsala>);1"730ala> if ( a href="+code=ceph_mdsmap_get_state" class="sref">ceph_mdsmap_get_stateala>( a href="+code=mdsc" class="sref">mdscala>-> a href="+code=mdsmap" class="sref">mdsmapala>, a href="+code=mds" class="sref">mdsala>) >=1"731ala> a href="+code=CEPH_MDS_STATE_ACTIVE" class="sref">CEPH_MDS_STATE_ACTIVEala>) "732ala> return a href="+code=mds" class="sref">mdsala>;1"733ala> } "734ala> } "735ala> } "736ala> "737ala> a href="+code=spin_lock" class="sref">spin_lockala>(& a href="+code=ci" class="sref">ciala>-> a href="+code=i_ceph_lock" class="sref">i_ceph_lockala>);1"738ala> a href="+code=cap" class="sref">capala> = a href="+code=NULL" class="sref">NULLala>; "739ala> if ( a href="+code=mode" class="sref">modeala> == a href="+code=USE_AUTH_MDS" class="sref">USE_AUTH_MDSala>) "740ala> a href="+code=cap" class="sref">capala> = a href="+code=ci" class="sref">ciala>-> a href="+code=i_auth_cap" class="sref">i_auth_capala>; "741ala> if (! a href="+code=cap" class="sref">capala> && ! a href="+code=RB_EMPTY_ROOT" class="sref">RB_EMPTY_ROOTala>(& a href="+code=ci" class="sref">ciala>-> a href="+code=i_caps" class="sref">i_capsala>)) "742ala> a href="+code=cap" class="sref">capala> = a href="+code=rb_entry" class="sref">rb_entryala>( a href="+code=rb_first" class="sref">rb_firstala>(& a href="+code=ci" class="sref">ciala>-> a href="+code=i_caps" class="sref">i_capsala>), struct a href="+code=ceph_cap" class="sref">ceph_capala>, a href="+code=ci_node" class="sref">ci_nodeala>);1"743ala> if (! a href="+code=cap" class="sref">capala>) {n"744ala> a href="+code=spin_unlock" class="sref">spin_unlockala>(& a href="+code=ci" class="sref">ciala>-> a href="+code=i_ceph_lock" class="sref">i_ceph_lockala>);1"745ala> goto a href="+code=random" class="sref">randomala>;1"746ala> } "747ala> a href="+code=mds" class="sref">mdsala> = a href="+code=cap" class="sref">capala>-> a href="+code=session" class="sref">sessionala>-> a href="+code=s_mds" class="sref">s_mdsala>;1"748ala> a href="+code=dout" class="sref">dout /a>( spa3 class="string">"choose_mds %p %llx.%llx mds%d (%scap %p)\3" /spa3.,n"749ala> a href="+code=inode" class="sref">inodeala>, a href="+code=ceph_vinop" class="sref">ceph_vinopala>( a href="+code=inode" class="sref">inodeala>), a href="+code=mds" class="sref">mdsala>,n"750ala> a href="+code=cap" class="sref">capala> == a href="+code=ci" class="sref">ciala>-> a href="+code=i_auth_cap" class="sref">i_auth_capala> ? spa3 class="string">"auth " /spa3. : spa3 class="string">"" /spa3., a href="+code=cap" class="sref">capala>);1"751ala> a href="+code=spin_unlock" class="sref">spin_unlockala>(& a href="+code=ci" class="sref">ciala>-> a href="+code=i_ceph_lock" class="sref">i_ceph_lockala>);1"752ala> return a href="+code=mds" class="sref">mdsala>;1"753ala>1"754ala> a href="+code=random" class="sref">randomala>:1"755ala> a href="+code=mds" class="sref">mdsala> = a href="+code=ceph_mdsmap_get_random_mds" class="sref">ceph_mdsmap_get_random_mdsala>( a href="+code=mdsc" class="sref">mdscala>-> a href="+code=mdsmap" class="sref">mdsmapala>);1"756ala> a href="+code=dout" class="sref">dout /a>( spa3 class="string">"choose_mds chose random mds%d\3" /spa3., a href="+code=mds" class="sref">mdsala>);1"757ala> return a href="+code=mds" class="sref">mdsala>;1"758ala>} "759ala> "760ala> "761ala> spa3 class="comment"./* /spa3.1"762ala> spa3 class="comment". * session messages /spa3.1"763ala> spa3 class="comment". */ /spa3.1"764ala>static struct a href="+code=ceph_msg" class="sref">ceph_msgala> * a href="+code=create_session_msg" class="sref">create_session_msgala>( a href="+code=u32" class="sref">u32ala> a href="+code=op" class="sref">opala>, a href="+code=u64" class="sref">u64ala> a href="+code=seq" class="sref">seqala>)n"765ala>{n"766ala> struct a href="+code=ceph_msg" class="sref">ceph_msgala> * a href="+code=msg" class="sref">msgala>;1"767ala> struct a href="+code=ceph_mds_session_head" class="sref">ceph_mds_session_headala> * a href="+code=h" class="sref">hala>;1"768ala> "769ala> a href="+code=msg" class="sref">msgala> = a href="+code=ceph_msg_new" class="sref">ceph_msg_newala>( a href="+code=CEPH_MSG_CLIENT_SESSION" class="sref">CEPH_MSG_CLIENT_SESSIONala>, sizeof(* a href="+code=h" class="sref">hala>), a href="+code=GFP_NOFS" class="sref">GFP_NOFSala>,n"770ala> a href="+code=false" class="sref">falseala>);1"771ala> if (! a href="+code=msg" class="sref">msgala>) {n"772ala> a href="+code=pr_err" class="sref">pr_err /a>( spa3 class="string">"create_session_msg ENOMEM creating msg\3" /spa3.);1"773ala> return a href="+code=NULL" class="sref">NULLala>; "774ala> } "775ala> a href="+code=h" class="sref">hala> = a href="+code=msg" class="sref">msgala>-> a href="+code=front" class="sref">frontala>. a href="+code=iov_base" class="sref">iov_baseala>; "776ala> a href="+code=h" class="sref">hala>-> a href="+code=op" class="sref">opala> = a href="+code=cpu_to_le32" class="sref">cpu_to_le32ala>( a href="+code=op" class="sref">opala>);1"777ala> a href="+code=h" class="sref">hala>-> a href="+code=seq" class="sref">seqala> = a href="+code=cpu_to_le64" class="sref">cpu_to_le64ala>( a href="+code=seq" class="sref">seqala>);1"778ala> return a href="+code=msg" class="sref">msgala>;1"779ala>} "780ala> "781ala> spa3 class="comment"./* /spa3.1"782ala> spa3 class="comment". * send session open request. /spa3.1"783ala> spa3 class="comment". * /spa3.1"784ala> spa3 class="comment". * called under mdsc->mutex /spa3.1"785ala> spa3 class="comment". */ /spa3.1"786ala>static int a href="+code=__open_session" class="sref">__open_sessionala>(struct a href="+code=ceph_mds_client" class="sref">ceph_mds_clientala> * a href="+code=mdsc" class="sref">mdscala>,n"787ala> struct a href="+code=ceph_mds_session" class="sref">ceph_mds_sessionala> * a href="+code=session" class="sref">sessionala>)n"788ala>{n"789ala> struct a href="+code=ceph_msg" class="sref">ceph_msgala> * a href="+code=msg" class="sref">msgala>;1"790ala> int a href="+code=mstate" class="sref">mstateala>;1"791ala> int a href="+code=mds" class="sref">mdsala> = a href="+code=session" class="sref">sessionala>-> a href="+code=s_mds" class="sref">s_mdsala>;1"792ala> "793ala> spa3 class="comment"./* wait for mds to go active? */ /spa3.1"794ala> a href="+code=mstate" class="sref">mstateala> = a href="+code=ceph_mdsmap_get_state" class="sref">ceph_mdsmap_get_stateala>( a href="+code=mdsc" class="sref">mdscala>-> a href="+code=mdsmap" class="sref">mdsmapala>, a href="+code=mds" class="sref">mdsala>);1"795ala> a href="+code=dout" class="sref">dout /a>( spa3 class="string">"open_session to mds%d (%s)\3" /spa3., a href="+code=mds" class="sref">mdsala>,n"796ala> a href="+code=ceph_mds_state_nam4" class="sref">ceph_mds_state_nam4ala>( a href="+code=mstate" class="sref">mstateala>));1"797ala> a href="+code=session" class="sref">sessionala>-> a href="+code=s_state" class="sref">s_stateala> = a href="+code=CEPH_MDS_SESSION_OPENING" class="sref">CEPH_MDS_SESSION_OPENINGala>;1"798ala> a href="+code=session" class="sref">sessionala>-> a href="+code=s_renew_requested" class="sref">s_renew_requestedala> = a href="+code=jiffies" class="sref">jiffiesala>;1"799ala> "800ala> spa3 class="comment"./* send connect message */ /spa3.1"801ala> a href="+code=msg" class="sref">msgala> = a href="+code=create_session_msg" class="sref">create_session_msgala>( a href="+code=CEPH_SESSION_REQUEST_OPEN" class="sref">CEPH_SESSION_REQUEST_OPENala>, a href="+code=session" class="sref">sessionala>-> a href="+code=s_seq" class="sref">s_seqala>);1"802ala> if (! a href="+code=msg" class="sref">msgala>)1"803ala> return - a href="+code=ENOMEM" class="sref">ENOMEMala>;1"804ala> a href="+code=ceph_con_send" class="sref">ceph_con_sendala>(& a href="+code=session" class="sref">sessionala>-> a href="+code=s_con" class="sref">s_conala>, a href="+code=msg" class="sref">msgala>);1"805ala> return 0;1"806ala>} "807ala> "808ala> spa3 class="comment"./* /spa3.1"809ala> spa3 class="comment". * open sessions for any export targets for the given mdsalspa3.1"810ala> spa3 class="comment". * /spa3.1"811ala> spa3 class="comment". * called under mdsc->mutex /spa3.1"812ala> spa3 class="comment". */ /spa3.1"813ala>static void a href="+code=__open_export_target_sessions" class="sref">__open_export_target_sessionsala>(struct a href="+code=ceph_mds_client" class="sref">ceph_mds_clientala> * a href="+code=mdsc" class="sref">mdscala>,n"814ala> struct a href="+code=ceph_mds_session" class="sref">ceph_mds_sessionala> * a href="+code=session" class="sref">sessionala>)n"815ala>{n"816ala> struct a href="+code=ceph_mds_info" class="sref">ceph_mds_infoala> * a href="+code=mi" class="sref">miala>;1"817ala> struct a href="+code=ceph_mds_session" class="sref">ceph_mds_sessionala> * a href="+code=ts" class="sref">tsala>;1"818ala> int a href="+code=i" class="sref">iala>, a href="+code=mds" class="sref">mdsala> = a href="+code=session" class="sref">sessionala>-> a href="+code=s_mds" class="sref">s_mdsala>;1"819ala> int a href="+code=target" class="sref">targetala>;1"820ala> "821ala> if ( a href="+code=mds" class="sref">mdsala> >= a href="+code=mdsc" class="sref">mdscala>-> a href="+code=mdsmap" class="sref">mdsmapala>-> a href="+code=m_max_mds" class="sref">m_max_mdsala>)n"822ala> return;1"823ala> a href="+code=mi" class="sref">miala> = & a href="+code=mdsc" class="sref">mdscala>-> a href="+code=mdsmap" class="sref">mdsmapala>-> a href="+code=m_info" class="sref">m_infoala>[ a href="+code=mds" class="sref">mdsala>];1"824ala> a href="+code=dout" class="sref">dout /a>( spa3 class="string">"open_export_target_sessions for mds%d (%d targets)\3" /spa3.,n"825ala> a href="+code=session" class="sref">sessionala>-> a href="+code=s_mds" class="sref">s_mdsala>, a href="+code=mi" class="sref">miala>-> a href="+code=num_export_targets" class="sref">num_export_targetsala>);1"826ala> "827ala> for ( a href="+code=i" class="sref">iala> = 0; a href="+code=i" class="sref">iala> < a href="+code=mi" class="sref">miala>-> a href="+code=num_export_targets" class="sref">num_export_targetsala>; a href="+code=i" class="sref">iala>++) {n"828ala> a href="+code=target" class="sref">targetala> = a href="+code=mi" class="sref">miala>-> a href="+code=export_targets" class="sref">export_targetsala>[ a href="+code=i" class="sref">iala>];1"829ala> a href="+code=ts" class="sref">tsala> = a href="+code=__ceph_lookup_mds_session" class="sref">__ceph_lookup_mds_sessionala>( a href="+code=mdsc" class="sref">mdscala>, a href="+code=target" class="sref">targetala>);1"830ala> if (! a href="+code=ts" class="sref">tsala>) {n"831ala> a href="+code=ts" class="sref">tsala> = a href="+code=register_session" class="sref">register_sessionala>( a href="+code=mdsc" class="sref">mdscala>, a href="+code=target" class="sref">targetala>);1"832ala> if ( a href="+code=IS_ERR" class="sref">IS_ERRala>( a href="+code=ts" class="sref">tsala>))n"833ala> return;1"834ala> } "835ala> if ( a href="+code=session" class="sref">sessionala>-> a href="+code=s_state" class="sref">s_stateala> == a href="+code=CEPH_MDS_SESSION_NEW" class="sref">CEPH_MDS_SESSION_NEWala> || "836ala> a href="+code=session" class="sref">sessionala>-> a href="+code=s_state" class="sref">s_stateala> == a href="+code=CEPH_MDS_SESSION_CLOSING" class="sref">CEPH_MDS_SESSION_CLOSINGala>)n"837ala> a href="+code=__open_session" class="sref">__open_sessionala>( a href="+code=mdsc" class="sref">mdscala>, a href="+code=session" class="sref">sessionala>);1"838ala> else1"839ala> a href="+code=dout" class="sref">dout /a>( spa3 class="string">" mds%d target mds%d %p is %s\3" /spa3., a href="+code=session" class="sref">sessionala>-> a href="+code=s_mds" class="sref">s_mdsala>,1"840ala> a href="+code=i" class="sref">iala>, a href="+code=ts" class="sref">tsala>, a href="+code=session_state_nam4" class="sref">session_state_nam4ala>( a href="+code=ts" class="sref">tsala>-> a href="+code=s_state" class="sref">s_stateala>));1"841ala> a href="+code=ceph_put_mds_session" class="sref">ceph_put_mds_sessionala>( a href="+code=ts" class="sref">tsala>);1"842ala> } "843ala>} "844ala> "845ala>void a href="+code=ceph_mdsc_open_export_target_sessions" class="sref">ceph_mdsc_open_export_target_sessionsala>(struct a href="+code=ceph_mds_client" class="sref">ceph_mds_clientala> * a href="+code=mdsc" class="sref">mdscala>,n"846ala> struct a href="+code=ceph_mds_session" class="sref">ceph_mds_sessionala> * a href="+code=session" class="sref">sessionala>)n"847ala>{n"848ala> a href="+code=mutex_lock" class="sref">mutex_lockala>(& a href="+code=mdsc" class="sref">mdscala>-> a href="+code=mutex" class="sref">mutexala>);1"849ala> a href="+code=__open_export_target_sessions" class="sref">__open_export_target_sessionsala>( a href="+code=mdsc" class="sref">mdscala>, a href="+code=session" class="sref">sessionala>);1"850ala> a href="+code=mutex_unlock" class="sref">mutex_unlockala>(& a href="+code=mdsc" class="sref">mdscala>-> a href="+code=mutex" class="sref">mutexala>);1"851ala>} "852ala> "853ala> spa3 class="comment"./* /spa3.1"854ala> spa3 class="comment". * session capsalspa3.1"855ala> spa3 class="comment". */ /spa3.1"856ala> "857ala> spa3 class="comment"./* /spa3.1"858ala> spa3 class="comment". * Free preallocated cap messages assigned to this sessionalspa3.1"859ala> spa3 class="comment". */ /spa3.1"860ala>static void a href="+code=cleanup_cap_releases" class="sref">cleanup_cap_releasesala>(struct a href="+code=ceph_mds_session" class="sref">ceph_mds_sessionala> * a href="+code=session" class="sref">sessionala>)n"861ala>{n"862ala> struct a href="+code=ceph_msg" class="sref">ceph_msgala> * a href="+code=msg" class="sref">msgala>;1"863ala>1"864ala> a href="+code=spin_lock" class="sref">spin_lockala>(& a href="+code=session" class="sref">sessionala>-> a href="+code=s_cap_lock" class="sref">s_cap_lockala>);1"865ala> while (! a href="+code=list_empty" class="sref">list_emptyala>(& a href="+code=session" class="sref">sessionala>-> a href="+code=s_cap_releases" class="sref">s_cap_releasesala>)) {n"866ala> a href="+code=msg" class="sref">msgala> = a href="+code=list_first_entry" class="sref">list_first_entryala>(& a href="+code=session" class="sref">sessionala>-> a href="+code=s_cap_releases" class="sref">s_cap_releasesala>,n"867ala> struct a href="+code=ceph_msg" class="sref">ceph_msgala>, a href="+code=list_head" class="sref">list_headala>);1"868ala> a href="+code=list_del_init" class="sref">list_del_initala>(& a href="+code=msg" class="sref">msgala>-> a href="+code=list_head" class="sref">list_headala>);1"869ala> a href="+code=ceph_msg_put" class="sref">ceph_msg_putala>( a href="+code=msg" class="sref">msgala>);1"870ala> } "871ala> while (! a href="+code=list_empty" class="sref">list_emptyala>(& a href="+code=session" class="sref">sessionala>-> a href="+code=s_cap_releases_done" class="sref">s_cap_releases_doneala>)) {n"872ala> a href="+code=msg" class="sref">msgala> = a href="+code=list_first_entry" class="sref">list_first_entryala>(& a href="+code=session" class="sref">sessionala>-> a href="+code=s_cap_releases_done" class="sref">s_cap_releases_doneala>,n"873ala> struct a href="+code=ceph_msg" class="sref">ceph_msgala>, a href="+code=list_head" class="sref">list_headala>);1"874ala> a href="+code=list_del_init" class="sref">list_del_initala>(& a href="+code=msg" class="sref">msgala>-> a href="+code=list_head" class="sref">list_headala>);1"875ala> a href="+code=ceph_msg_put" class="sref">ceph_msg_putala>( a href="+code=msg" class="sref">msgala>);1"876ala> } "877ala> a href="+code=spin_unlock" class="sref">spin_unlockala>(& a href="+code=session" class="sref">sessionala>-> a href="+code=s_cap_lock" class="sref">s_cap_lockala>);1"878ala>} "879ala> "880ala> spa3 class="comment"./* /spa3.1"881ala> spa3 class="comment". * Helper to safely iterate over all caps associated with a session, with /spa3.1"882ala> spa3 class="comment". * special care taken to handle a racing __ceph_remove_cap(). /spa3.1"883ala> spa3 class="comment". * /spa3.1"884ala> spa3 class="comment". * Caller must hold session s_mutex. /spa3.1"885ala> spa3 class="comment". */ /spa3.1"886ala>static int a href="+code=iterate_session_caps" class="sref">iterate_session_capsala>(struct a href="+code=ceph_mds_session" class="sref">ceph_mds_sessionala> * a href="+code=session" class="sref">sessionala>,n"887ala> int (* a href="+code=cb" class="sref">cbala>)(struct a href="+code=inode" class="sref">inodeala> *, struct a href="+code=ceph_cap" class="sref">ceph_capala> *,n"888ala> void *), void * a href="+code=arg" class="sref">argala>)n"889ala>{n"890ala> struct a href="+code=list_head" class="sref">list_headala> * a href="+code=p" class="sref">pala>; "891ala> struct a href="+code=ceph_cap" class="sref">ceph_capala> * a href="+code=cap" class="sref">capala>; "892ala> struct a href="+code=inode" class="sref">inodeala> * a href="+code=inode" class="sref">inodeala>, * a href="+code=last_inode" class="sref">last_inodeala> = a href="+code=NULL" class="sref">NULLala>; "893ala> struct a href="+code=ceph_cap" class="sref">ceph_capala> * a href="+code=old_cap" class="sref">old_capala> = a href="+code=NULL" class="sref">NULLala>; "894ala> int a href="+code=ret" class="sref">retala>;1"895ala>1"896ala> a href="+code=dout" class="sref">dout /a>( spa3 class="string">"iterate_session_caps %p mds%d\3" /spa3., a href="+code=session" class="sref">sessionala>, a href="+code=session" class="sref">sessionala>-> a href="+code=s_mds" class="sref">s_mdsala>);1"897ala> a href="+code=spin_lock" class="sref">spin_lockala>(& a href="+code=session" class="sref">sessionala>-> a href="+code=s_cap_lock" class="sref">s_cap_lockala>);1"898ala> a href="+code=p" class="sref">pala> = a href="+code=session" class="sref">sessionala>-> a href="+code=s_caps" class="sref">s_capsala>. a href="+code=next" class="sref">nextala>;1"899ala> while ( a href="+code=p" class="sref">pala> != & a href="+code=session" class="sref">sessionala>-> a href="+code=s_caps" class="sref">s_capsala>) {n"900ala> a href="+code=cap" class="sref">capala> = a href="+code=list_entry" class="sref">list_entryala>( a href="+code=p" class="sref">pala>, struct a href="+code=ceph_cap" class="sref">ceph_capala>, a href="+code=session_caps" class="sref">session_capsala>);1"901ala> a href="+code=inode" class="sref">inodeala> = a href="+code=igrab" class="sref">igrabala>(& a href="+code=cap" class="sref">capala>-> a href="+code=ci" class="sref">ciala>-> a href="+code=vfs_inode" class="sref">vfs_inodeala>);1"902ala> if (! a href="+code=inode" class="sref">inodeala>) {n"903ala> a href="+code=p" class="sref">pala> = a href="+code=p" class="sref">pala>-> a href="+code=next" class="sref">nextala>;1"904ala> continue;1"905ala> } "906ala> a href="+code=session" class="sref">sessionala>-> a href="+code=s_cap_iterator" class="sref">s_cap_iteratorala> = a href="+code=cap" class="sref">capala>; "907ala> a href="+code=spin_unlock" class="sref">spin_unlockala>(& a href="+code=session" class="sref">sessionala>-> a href="+code=s_cap_lock" class="sref">s_cap_lockala>);1"908ala> "909ala> if ( a href="+code=last_inode" class="sref">last_inodeala>) {n"910ala> a href="+code=iput" class="sref">iputala>( a href="+code=last_inode" class="sref">last_inodeala>);1"911ala> a href="+code=last_inode" class="sref">last_inodeala> = a href="+code=NULL" class="sref">NULLala>; "912ala> } "913ala> if ( a href="+code=old_cap" class="sref">old_capala>) {n"914ala> a href="+code=ceph_put_cap" class="sref">ceph_put_capala>( a href="+code=session" class="sref">sessionala>-> a href="+code=s_mdsc" class="sref">s_mdscala>, a href="+code=old_cap" class="sref">old_capala>); "915ala> a href="+code=old_cap" class="sref">old_capala> = a href="+code=NULL" class="sref">NULLala>; "916ala> } "917ala> "918ala> a href="+code=ret" class="sref">retala> = a href="+code=cb" class="sref">cbala>( a href="+code=inode" class="sref">inodeala>, a href="+code=cap" class="sref">capala>, a href="+code=arg" class="sref">argala>); "919ala> a href="+code=last_inode" class="sref">last_inodeala> = a href="+code=inode" class="sref">inodeala>; "920ala> "921ala> a href="+code=spin_lock" class="sref">spin_lockala>(& a href="+code=session" class="sref">sessionala>-> a href="+code=s_cap_lock" class="sref">s_cap_lockala>);1"922ala> a href="+code=p" class="sref">pala> = a href="+code=p" class="sref">pala>-> a href="+code=next" class="sref">nextala>;1"923ala> if ( a href="+code=cap" class="sref">capala>-> a href="+code=ci" class="sref">ciala> == a href="+code=NULL" class="sref">NULLala>) {n"924ala> a href="+code=dout" class="sref">dout /a>( spa3 class="string">"iterate_session_caps finishing cap %p removal\3" /spa3.,n"925ala> a href="+code=cap" class="sref">capala>);1"926ala> a href="+code=BUG_ON" class="sref">BUG_ONala>( a href="+code=cap" class="sref">capala>-> a href="+code=session" class="sref">sessionala> != a href="+code=session" class="sref">sessionala>);1"927ala> a href="+code=list_del_init" class="sref">list_del_initala>(& a href="+code=cap" class="sref">capala>-> a href="+code=session_caps" class="sref">session_capsala>);1"928ala> a href="+code=session" class="sref">sessionala>-> a href="+code=s_nr_caps" class="sref">s_nr_capsala>--;1"929ala> a href="+code=cap" class="sref">capala>-> a href="+code=session" class="sref">sessionala> = a href="+code=NULL" class="sref">NULLala>; "930ala> a href="+code=old_cap" class="sref">old_capala> = a href="+code=cap" class="sref">capala>; spa3 class="comment"./* put_cap it w/o locks held */ /spa3.1"931ala> } "932ala> if ( a href="+code=ret" class="sref">retala> < 0)n"933ala> goto a href="+code=out" class="sref">out /a>; "934ala> } "935ala> a href="+code=ret" class="sref">retala> = 0;1"936ala> a href="+code=out" class="sref">out /a>:1"937ala> a href="+code=session" class="sref">sessionala>-> a href="+code=s_cap_iterator" class="sref">s_cap_iteratorala> = a href="+code=NULL" class="sref">NULLala>; "938ala> a href="+code=spin_unlock" class="sref">spin_unlockala>(& a href="+code=session" class="sref">sessionala>-> a href="+code=s_cap_lock" class="sref">s_cap_lockala>);1"939ala> "940ala> if ( a href="+code=last_inode" class="sref">last_inodeala>) "941ala> a href="+code=iput" class="sref">iputala>( a href="+code=last_inode" class="sref">last_inodeala>);1"942ala> if ( a href="+code=old_cap" class="sref">old_capala>)1"943ala> a href="+code=ceph_put_cap" class="sref">ceph_put_capala>( a href="+code=session" class="sref">sessionala>-> a href="+code=s_mdsc" class="sref">s_mdscala>, a href="+code=old_cap" class="sref">old_capala>); "944ala> "945ala> return a href="+code=ret" class="sref">retala>; "946ala>} "947ala> "948ala>static int a href="+code=remove_session_caps_cb" class="sref">remove_session_caps_cbala>(struct a href="+code=inode" class="sref">inodeala> * a href="+code=inode" class="sref">inodeala>, struct a href="+code=ceph_cap" class="sref">ceph_capala> * a href="+code=cap" class="sref">capala>,n"949ala> void * a href="+code=arg" class="sref">argala>)n"950ala>{n"951ala> struct a href="+code=ceph_inode_info" class="sref">ceph_inode_infoala> * a href="+code=ci" class="sref">ciala> = a href="+code=ceph_inode" class="sref">ceph_inodeala>( a href="+code=inode" class="sref">inodeala>); "952ala> int a href="+code=drop" class="sref">dropala> = 0;1"953ala>1"954ala> a href="+code=dout" class="sref">dout /a>( spa3 class="string">"removing cap %p, ci is %p, inode is %p\3" /spa3.,n"955ala> a href="+code=cap" class="sref">capala>, a href="+code=ci" class="sref">ciala>, & a href="+code=ci" class="sref">ciala>-> a href="+code=vfs_inode" class="sref">vfs_inodeala>);1"956ala> a href="+code=spin_lock" class="sref">spin_lockala>(& a href="+code=ci" class="sref">ciala>-> a href="+code=i_ceph_lock" class="sref">i_ceph_lockala>);1 a href="+code=la>, gt; 25-> a href="+code=vfs_inode" class8a3.,n_inodeala>);1, gt; 25spin_lock" class="srefe=s_cap_releases_done" class="sref">9ned to th9s sessionalspa3.1ceph_mdsc_open_export_target_sessionsala>(struct a href="+code=ceph_mds_client" class="sref">ceph =cap_releases_done" class="sref">9class="co9ment". */ /spa3.1 = a href="+code=ceph_inode" class="sref">">spin_lockala>(& s="+code=inode" cl s=srefef">miala> = & a hrelient" class="sref">cephnode" class8a3.,n_inodeala>);1sessionala>)n);1"861ala>{n"956ala> a href="+codehrelient" class="sref">ceph if ( aap_dirtylass="line" nam4.1L9aap_dirtylass=vfs_inode" class8a3.,n_inodeala>);1msgala>;1"871ala> while (! a href="+code=l=spin_lock" class="sref">spin_lockala>(& dirtylitem"+code=inode" cl dirtylitemsrefe=s_cap_releases_done" class="sref">9line" nam9.1L863">"863ala>1"951ala> pram4.1954">"954ala> a href="+c 952"pout"dirty class= s="sr.c#L83 class3 clall3 class="string">cap_releases_done" class="sref">9lis %ps_cap_lockala>);1inode_ a ef="+code=la>, gt; 25spin_lock" class="sref">spin_lockala>(& dirtyl4.1L886">"886ala>sta dirtyl4.1Lsrefe>cap_releases_done" class="sref">9lss="sref"releasesala>)) {n = a href="+code=cb" class="sref">cbala>( a s="sref="+code=ci" class="srefciala> = a href="+code=ceph_inode" class="sref">cinode" class8a3.,n_inodeala>);1iap_releasesala>,n, gt; 25spin_lock" class="sref">spin_lockala>(& dirtyl4.1L886">"886ala>sta dirtyl4.1Lsref2ala> int a href="+code=drop" ass="sref9>list_headala>);1, gt; 2nam4.1L927">"927ala> a href="+code=list_delspin_lock" class="sref">spin_lockala>(& dirtylitem"+code=inode" cl dirtylitemsrefe> int a href="+code=drop" aed to th9>list_headala>);1, gt; 2lass="line" nam4.1L952">"952al1> int a href="+code=drop" sg" class9"sref">msgala>);19870ala> } "871ala> while (! a href="+code=l=spin_lock" class="sref">spin_lockala>(& flut /a>litem"+code=inode" cl flut /a>litemsrefe=s_cap_releases_done" class="sref">9_cap_rele9ses_doneala>)) {n, gt; 2pram4.1L951">"951ala> pram4.1954">"954ala> a href="+c 952"pout"dirty+flut /a> class= s="sr.c#L83 class3 clall3 class="string">cap_releases_done" class="sref">9">s_cap_r9leases_doneala>,ninode_ a ef="+code=la>, gt; 25spin_lock" class="sref">spin_lockala>(& flut /a>l4.1L886">"886ala>sta flut /a>l4.1Lsrefe>cap_releases_done" class="sref">9ass="sref9>list_headala>);1 = a href="+code=cb" class="sref">cbala>( a s="sref="+code=ci" class="srefciala> = a href="+code=ceph_inode" class="sref">cinode" class8a3.,n_inodeala>);1spin_lockala>(& flut /a>l4.1L886">"886ala>sta flut /a>l4.1Lsref2ala> int a href="+code=drop" sg" class9"sref">msgala>);1"927ala> a href="+code=list_delspin_lock" class="sref">spin_lockala>(& flut /a>litem"+code=inode" cl flut /a>litemsrefe> int a href="+code=drop" s="sref">i876ala> } , gt; 2hrelient" class="sref">ceph if ( mialode_flut /a>ient" class="srmialode_flut /a>ceph >-> a href="+code=s_nr_caps" class="sref"9s_cap_lockala>);1, gt; 2lass="line" nam4.1L952">"952al1> int a href="+code=drop" sed to th91L878">"878ala>} "879ala> , gt; 2lass="line" nam4.1L952">"952 href href=" class="line" nspin_lock" class="sref">spin_lockala>(& wrbuffer_clas+code=inode" cl wrbuffer_clasrefes_cap_releases_done" class="sref">9 class="c9mment"./* /spa3.1"951ala> pram4.1954">"954ala> a href="+c 952"pout"dirty data.c#L83 class3 clall3 class="string">cap_releases_done" class="sref">9ith a ses9ion, with /spa3.1 = a href="+code=cb" class="sref">cbala>( a s="sref="+code=ci" class="srefciala> = a href="+code=ceph_inode" class="sref">cinode" class8a3.,n_inodeala>);1spin_lockala>(& wrbuffer_clas+code=inode" cl wrbuffer_clasref2ala> int a href="+code=drop" class="c9mment". * /spa3.1spin_lockala>(& wrbuffer_claine" nam4.1L890">"89; wrbuffer_claine" sref2ala> int a href="+code=drop" ss="sref9 s_mutex. /spa3.1"95++> int a href="+code=drop" g" class9ment". */ /spa3.1sessionala>,n"938ala> a href="+code=spihrelient" class="sref">ceph if ( aap_dirtylass="line" nam4.1L9aap_dirtylass=vfs_inode" class8a3.,n_inodeala>);1argala>)n"938ala> a href="+code=spi=spin_lock" class="sref">spin_lockala>(& a href="+code=ci" class="sref">ciala>-> a href="+code=i_ceph_lock" clasine" nam491L889">"889ala>{n"95-- void * a href="+code=ode=p" cl9ss="sref">pala>; "941ala> ode=ceph_inode" class="sref">ceph_inodeala>( a href="+code=inodecap" clas9="sref">capala>; int a href="+code=drop" LL" class9"sref">NULLala>; NULLala>; retala>;1"880ala> spa9line" nam9.1L895">"895ala>1"884al" class="line" nam4.1L880">"880ala> spa9lclass="s9ref">s_mdsala>);1; spa3 class="comment"./* put_cap iss="sref"9s_cap_lockala>);1cleanup_cap_releasesala>(struct a href="+code=ceph_mds_session" class="sref">ceph_mds_sessionala> * a href="+code=session9xt" class9"sref">nextala>;1nextala>;110cl/mds_client.c#L954" id.1L954" class="line" nam4.1L954">"954ala> a href="+code=dut" class="sref84""string">"removinla>-> a href="+code=session" class="sref">sessiona/pre>lient.c#L889" id.1L889" class="10c1ass="sr10cs="sref">pala>; 10c1/mds_client.c#L954" id.1L95class="line" nam4.1L886">"886ala>static int a href="+code=ia>-> a href="+code=session" class="sref">sessnla>-> a href=class="line" nam4.1L948">"948ala>static int a href="+code=remonla>-> a href=t; a href="+code=ci" class="> int a href="+code=drop"10c2ass="sr10c"sref">capala>; 10c2/mds_client.c#L954" id.1L95nam4.1L926">"926ala> a nam4.1L928">"928ala> a href="+code=session" class="sref">sessional 0"> int a href="+code=drop"10c3ass="sr10csref">NULLala>; 10c3/mds_client.c#L954" id.1L95nam4.1L926">"926ala> id.1L871" class="line" nam4.1L871">"871ala> while (! a href="+code=list_empty" class="sref">list_emptyala>(& a href="+code=flut /a>ient" class="srslode_flut /a>cephcinode" class8a3.,n_inodeala>);1NULLala>; 10ch/mds_client.c#L954" id.1L95lass="line" nam4.1L860">"860ala>static void a href="+code=ca>-> a href="+code=session" class="sref">sessionae" class8a3.,n_inodeala>);1retala>;110c5/mds_client.c#L843" id.1L843" class="10c6ass="sr10c1L895">"895ala>110ch/mds_client.c#L856" id.1L856" class=10c7ass="sr10cef">s_mdsala>);110ch/mds_client.c#L857" id.1L857" class="line" nam4.1L857">"857ala> spa10c8ass="sr10c_cap_lockala>);110ch/mds_client.c#L858" id.1L858"wake up any tne"ads"waitout"84"ss="comment""st9;s> spa." id.the" claie" nam4.1L854">"854ala> spa3 class="comm10c9ass="sr10csref">nextala>;110ch/mds_client.c#L859" id.1L859 nam(did""st9;t get.c#newed"84"sseessss=".c#connect),s="streap" nowa> spa3 class="comment". * Caller must h101lass="sr10ast_inodeala>) {n10as/mds_client.c#L859" id.1L859> spa3 class="comment". * Caller must h1011ass="sr10last_inodeala>);110ah/mds_client.c#L881" id.1L881"cclass="line" nam4"884ala> spa3 class="comment". * Caller must h10a2ass="sr10"sref">NULLala>; 10ah/mds_client.c#L882" id.1L882ala>; spa3 class="comment"./* put_cap 10a3ass="sr10 } 10a3/mds_clientc#L952" id.1L952" cwake_oid a href="48">"948ala>statwake_oid a href="41ala>leanup_cap_releases" css="sref">remove_session_caps_cbala>(struct a href="+code=inode" class="sref">inodeala> * a href="+code=inode" class="sref">inodeala>, struct a href="+code=ceph_cap" class="sref">ceph_capala> * a href="+code10a4ass="sr10">old_capala>) {no>10ah/mds_client.c#L874" id.1L873" clasine" nam4.1L949">"949ala> void * a href="+code10a5ass="sr10f">old_capala>); >10a5/mds_client.c#L889" id.1L889" class="1016ass="sr10"sref">NULLala>; 10ah/mds_client.c#L951" id.1L951" class="line" nam4.1L951">"951ala> struct a href="+code=ceph_inode_info" class="sref">ceph_inode_infoala> * a href="+code=ci" class="sref">ciala> = a href="+code=ceph_inode" class="sref">ceph_inodeala>( a href="+code=inod10a7ass="sr10 } 10ah/mds_client.c#L947" id.1L947" class=10a8ass="sr10.1L917">"917ala> 10ah/mds_client.c#L938" id.1L93wake_oidcla8">"948ala>statwake_oidcla a href="+code=spi=spin_lock" class="sref">spin_lockala>(& a a wqcode=ci" class="sr a wqef">ceph_inodeala>( a href="+code=inod10a9ass="sr10"sref">argala>); 10ah/mds_client.id.1code=la>, gt; 2ala> s_cap_releases_done" class="sref">102lass="sr10sref">inodeala>; 10sr/mds_client.c#L887" id.1L922" class6" class="line" nam4.1L956">"956ala> a href="+code=spin_lock" class="sref">spin_lockala>(& a href="+code=ci" class="sref">ciala>-> a href="+code=i_ceph_lock" cla10s1ass="sr10.1L920">"920ala> 10sh/mds_client.c#L941" id.1L941" classnspin_lock" class="sref">spin_lockala>(& wanted_max_sizceph_inode" class wanted_max_sizcsref2ala> int a href="+code=drop"10s2ass="sr10s_cap_lockala>);110sh/mds_client.c#L922" id.1L922" classnspin_lock" class="sref">spin_lockala>(& requested_max_sizceph_inode" class requested_max_sizcsref2ala> int a href="+code=drop"10s3ass="sr10"sref">nextala>;110sh/mds_client.c#L943" id.1L943" class6" class="line" nam4.1L938">"938ala> a href="+code=spi=spin_lock" class="sref">spin_lockala>(& a href="+code=ci" class="sref">ciala>-> a href="+code=i_ceph_lock" cla10s4ass="sr10ref">NULLala>) {n10sh/mds_client.c#L934" id.1L934" class="line" na10s5ass="sr10\3" /spa3.,n10sh/mds_client.c#L945"a> int a href="+code=drop"10s6ass="sr10"sref">capala>);110sh/mds_client.c#L946" id.1L946" class="1027ass="sr10" } 102h/mds_client.c#L947" id.1L947" class=1028ass="sr10ssion_capsala>);1102h/mds_client.c#L860" id.1L860" cwake_oid a href="session" class="srwake_oid a href="ses1ala>leanup_cap_releases" class="sref">cleanup_cap_releasesala>(struct a href="+code=ceph_mds_session" class="sref">ceph_mds_seref">ceph_capala> * a href="+code1029ass="sr10s_nr_capsala>--;1102h/mds_client.c#L949" id.1L949" class=".c#L948" id.1L948" clconnect8">"948ala>staticconnect void * a href="+code103lass="sr10"sref">NULLala>; 10"s/mds_client.c#L889" id.1L889" class="1031ass="sr10s held */ /spa3.110"1/mds_client.c#L954" id.1L954" class="line" nam4.1L954">"954ala> a href="+cwake_oid a href="sesf">dout /a>( spa3 class="string">"iterate_session_caps %p mds%d\3" /spa3., a href="+code=session" class="sref">sessionala>, a href="+code=session" class="sref">sessionala>-> a href="+code=s_md10"2ass="sr10 } 10"2/mds_client.c#L954" id.1L95class="line" nam4.1L886">"886ala>static int a href="+code=ia>-> a href="+code=session" class="sref">sessnla>-> a href=wake_oid a href="48">"948ala>statwake_oid a href="41alaref">ceph_capala> * a href="+code1033ass="sr10>retala> < 0)nre>10"h/mds_client.c#L873" id.1L873" cla(1L888">(unsigned long)948" id.1L948" clconnect8">"948ala>staticconnect ssionala>-> a href="+code=s_md10"4ass="sr10="sref">out /a>; } 10"h/mds_client.c#L895" id.1L895" class=10"6ass="sr10ef">retala> = 0;110"h/mds_client.c#L884" id.1L857" class="line" nam4.1L857">"857ala> spa1037ass="sr10="sref">out /a>:1 urc#ntlyef">ca spa." The" class="line" nam4.1L857">"857ala> spa1038ass="sr10"sref">NULLala>; 10"h/mds_client.c#L858" id.1L858"ack wila>reset"sseeexpic i884"c#L8ala> spa3from"ss="comment"a> spa3 class="comment". * Caller must h1039ass="sr10s_cap_lockala>);110"h/mds_client.c#L859" id.1L859> spa3 class="comment". * Caller must h104lass="sr10.1L939">"939ala> 10.1/mds_client.c#L881" id.1L881"cclass=" nas">"884al" class="line" nam4.1L880">"880ala> spa10.1ass="sr10>last_inodeala>) la>10.h/mds_client.c#L881" id.1L881ala>; spa3 class="comment"./* put_cap 1042ass="sr10last_inodeala>);110.2/mds_clientc#L952" id.1L952" csend_c#new"+code=cap" class="srend_c#new"+cod1ala>leanup_cap_releases" class="sre_export_target_sessionsala>(struct a href="+code=ceph_mds_client" class="sref">cephref">ceph_capala> * a href="+code1043ass="sr10ef">old_capala>)110.h/mds_client.c#L873" id.1L873" cleanup_cap_releases" class="sref">cleanup_cap_releasesala>(struct a href="+code=ceph_mds_session" class="sref">ceph_mds_sessionala> * a href="+code=session10.4ass="sr10f">old_capala>); >10.4/mds_client.c#L889" id.1L889" class="1045ass="sr10.1L944">"944ala> 10.h/mds_client.nam4.1L873">"873ala> ef="+code=ceph_mdseph_msg_put" class="srefssionala>-> a href="+code=s_md1046ass="sr10="sref">retala>; c="srsrefssionala>-> a href="+code=s_md1047ass="sr101L946">"946ala>} 10.h/mds_client.c#L947" id.1L947" class=1048ass="sr10.1L947">"947ala> 10.h/mds_client.cd.152" id.1L952" ctime_aftic_eqcode=ci" class=time_aftic_eqode=ia>-> a href=jiffiL860">"860ala>stajiffiL8" /spa3., a href="+code=session" class="sref">sessionala>, a href="+cr a tta8">"948ala>stat+cr a tta s href href_client.c#L947" id.1L947" class=1049ass="sr10="sref">capala>,n-> a href=f="+code=session" class="sref">sessionala>, a href="+cr a tta8">"948ala>stat+cr a tta t; /spa3., a href="+code=session" class="sref">sessionala>, a href="+cc#new"requested8">"948ala>stat+cc#new"requestedcephci_client.c#L947" id.1L947" class=105lass="sr10="sref">argala>)n"951ala> pram4.1954">"954ala> a href="+c/a>( spa3> spa3c="le class="string">"iterate_session_caps %p mds%d\3&quossionala>, a href="+code=session" class="sref">sessionala>-> a href="+code=s_md1051ass="sr101L950">"950ala>{n10=1/mds_client.c#L954" id.1L95f="+code=session" class="sref">sessionala>, a href="+cc#new"requested8">"948ala>stat+cc#new"requestedcephceph_inode_infoalajiffiL860">"860ala>stajiffiL8&quossionala>-> a href="+code=s_md1052ass="sr10ref">inodeala>); 10=2/mds_client.c#L947" id.1L947" class=1053ass="sr10f">dropala> = 0;1>10=3/mds_client.c>old_capala> = a href="do not"sry.1L8c#new> spa3until a.c#cove a /a> has.c#connectedce>; spa3 class="comment"./* put_cap 1054ass="sr10.1L953">"953ala>110=4/mds_client.c#L881" id.1L8888888888* with itsessss="a."1ala>; spa3 class="comment"./* put_cap 1055ass="sr10\3" /spa3.,n10=h/mds_client.c#L935" id.1L93s="sr" class="sref">c="srsrefceph_inode_infoala> * at".m a get_s="sr" class="sref">> * at".m a get_s="srode=ia>-> a href=hrelient" class="sref">ceph if ( t".m aient" class="sref"m>pala>, struct a href="+code=aps %p mds%d\3&quossionala>, a href="+code=session" class="sref">sessionala>-> a href="+code=s_md1056ass="sr10>vfs_inodeala>);1vf>10=6/mds_client.cd.152" id.1L952" cs="sr" class="sref">c="srsrefc 52" id.1L952" cCEPH_MDS_STATE_RECONNECT" class="sref">CEPH_MDS_STATE_RECONNECT s_cap_releases_done" class="sref">1057ass="sr10_ceph_lockala>);110=h/mds_client.c#L887" id.1L922" class4" class="line" nam4.1L954">"954ala> a href="+crend_c#new"+cod igno a /a>( spa3>(class=) class="string">cap_releases_done" class="sref">10=8ass="sr10ph/mds_client>-> a h 10ph/>10=h/mds_client.c#L868" id.1Lstruct a href="+code=aps %p mds%d\3&quossionala>, a href="+code=session" class="sref">s="sref">cbala>( a s="s(stru="sr_t; anup_cap_releasesala>(stru="sr_t; aode=ia>-> a href=f="sr" class="sref">c="srsrefcinode" class8a3.,n_inodeala>);1 int a href="+code=drop"106lass="sr10ment". */ /spa3.110me/mds_client.c#L934" id.1L934" class="line" na1061ass="sr10ef">sessionala>)n10mh/mdsode" class8a3.,n_inodeala>);1"861ala>{n10m2/mds_client.c#L954" id.1L954" class="line" nam4.1L954">"954ala> a href="+crend_c#new"+cod 1L8/a>( spa3>(class=) class="string">Lstruct a href="+code=aps %p mds%d\3&quossionala>, a href="+code=session" class="sref">s=ode" class8a3.,n_inodeala>);1msgala>;1(stru="sr_t; aode=ia>-> a href=f="sr" class="sref">c="srsrefcinode" class8a3.,n_inodeala>);1"863ala>110mh/mds_client.c#L954" id.1L95seph_msg_put" class="srefceph_inode_infoala>re int a href re int a href ode=ia>-> a href=CEPH_SESSION_REQUEST_RENEWCAPS" class="sref">CEPH_SESSION_REQUEST_RENEWCAPSf">s=ode" class8a3.,n_inodeala>);1sessionala>, a href="+cc#new"seqcode=ci" class=+cc#new"seqf">sessionala>-> a href="+code=s_md1066ass="sr10releasesala>)) {n10m6/mds_client.cd.1 id.1L871" classseph_msg_put" class="srefi_client.c#L947" id.1L947" class=1067ass="sr10ap_releasesala>,n10mh/mds_client.c#L887" c#L945"-id.1L871" classENOMEMh_msg_put" clasENOMEM&quossionala>-> a href="+code=s_md1068ass="sr10>list_headala>);1li>10mh/mds_client.c#L938" id.1L93f">inorefrendnup_cap_releasesala>orefrend a href="+code=spif="+code=session" class="sref">sessionala>, a href="+crode=session" classcrodf">s="sref">cbala>( aseph_msg_put" class="srefissionala>-> a href="+code=s_md1069ass="sr10>list_headala>);1li>10mh/mds_client.c#L945"a> int a href="+code=drop"107lass="sr10"sref">msgala>);110"s/mds_client.c#L946" id.1L946" class="1071ass="sr10870ala> } 10"h/mdsode" class8a3.,n_inodeala>);1"857ala> spa1073ass="sr10leases_doneala>,n10"3/mds_client.c#L881" id.1L881"Note new> sp ttl, and any transii884"crom"c="le ssion not"c="le (fresh?)a> spa3 class="comment". * Caller must h1074ass="sr10>list_headala>);1li>10"4/mds_client.c#L881" id.1L887" class="line" nam4.1L857">"857ala> spa1075ass="sr10>list_headala>);1li>10"h/mds_client.c#L885" id.1L881"Cclasd undercomment"ssion>"884al" class="line" nam4.1L880">"880ala> spa1076ass="sr10"sref">msgala>);110"h/mds_client.c#L884" id.1L884ala>; spa3 class="comment"./* put_cap 1077ass="sr10876ala> } 10"7/mds_client.c#L860" id.1L860" cc#newed="+coeph_inode" clasicnewed="+co1ala>leanup_cap_releases" class="sre_export_target_sessionsala>(struct a href="+code=ceph_mds_client" class="sref">cephref">ceph_capala> * a href="+code1078ass="sr10s_cap_lockala>);110"h/mds_client.c#L868" id.1L867cleanup_cap_releases" class="sref">cleanup_cap_releasesala>(struct a href="+code=ceph_mds_session" class="sref">ceph_mds_se,.c#L952" id.1L952" ci+cc#new886">"886ala>sta+cc#newsrefi_client.c#L947" id.1L947" class=1079ass="sr101L878">"878ala>} 10"h/mds_client.c#L889" id.1L889" class="108lass="sr10.1L879">"879ala> 10.1/mds_client.c#L952" id.1L952" cwatru="lr" class="sref">watru="lr&quossionala>-> a href="+code=s_md1081ass="sr10mment"./* /spa3.110.1/mds_client.c#L952" id.1L952" cwakr" class="sref">wakcsref2ala> int a href="+code=drop"1082ass="sr10ion, with /spa3.110.2/mds_client.c#L947" id.1L947" class=1083ass="sr10ve_cap(). /spa3.110.3/mds_client.c#L954" id.1L95="line" nam4.1L921">"921ala> a href="+code=spin_lock" class="sref">spin_lockala>(& a href="+code=session" class="sref">sessionala>-> a href="+code=s_cap_lock" cl10.4ass="sr10mment". * /spa3.110.h/mds_client.c#L954" id.1L95watru="lr" class="sref">watru="lr&quo a href="+code+cc#new886">"886ala>sta+cc#newsref2 href href=" class="line" time_aftic_eqcode=ci" class=time_aftic_eqode=ia>-> a href=jiffiL860">"860ala>stajiffiL8" /spa3., a href="+code=session" class="sref">sessionala>, a href="+cr a tta8">"948ala>stat+cr a tta > a href="+code=s_cap_lock" cl10.5ass="sr10 s_mutex. /spa3.110.h/mds_client.c#L895" id.1L895" class=1086ass="sr10ment". */ /spa3.110.h/mds_client.c#L956" id.1L956="+code=session" class="sref">sessionala>, a href="+cr a tta8">"948ala>stat+cr a tta a href="+codf="+code=session" class="sref">sessionala>, a href="+cc#new"requested8">"948ala>stat+cc#new"requestedcephc+_client.c#L895" id.1L895" class=1087ass="sr10ef">sessionala>,n10.h/mds_client.c#L887" id.1L922" classhrelient" class="sref">ceph if ( t".m aient" class="sref"m>pala> if ( tt a hreftime" class="line" namtt a hreftime" cala>"+code=ceph_mds_HZlass="line" namHZ&quossionala>-> a href="+code=s_md1088ass="sr10>ceph_capala> *,nce>10.8/mds_client.c#L895" id.1L895" class=1089ass="sr10="sref">argala>)nwatru="lr&quo s_cap_releases_done" class="sref">109lass="sr101L889">"889ala>{n101L/mds_client.c#L887" cd.152" id.1L952" ctime_beforr" class="sref">time_beforrode=ia>-> a href=jiffiL860">"860ala>stajiffiL8" /spa3., a href="+code=session" class="sref">sessionala>, a href="+cr a tta8">"948ala>stat+cr a tta s_cap_releases_done" class="sref">1091ass="sr10ss="sref">pala>; 101h/mds_client.c#L911" id.1L911" class="line" pram4.1L951">"951ala> pram4.1954">"954ala> a href="+c/a>( spa3> spa3icnewed class="string">"iterate_session_caps %p mds%d\3&quossionala>, a href="+code=session" class="sref">sessionala>-> a href="+code=s_md1092ass="sr10="sref">capala>; , gt; 2wakr" class="sref">wakcsref2al1> int a href="+code=drop"1013ass="sr10"sref">NULLala>; 101h/mds_client.c#L943" } elses_cap_releases_done" class="sref">1094ass="sr10"sref">NULLala>; 101h/mds_client.c#L924" id.1L924" class="line" pram4.1L951">"951ala> pram4.1954">"954ala> a href="+c/a>( spa3> spa3c=ila>c="le class="string">"iterate_session_caps %p mds%d\3&quossionala>, a href="+code=session" class="sref">sessionala>-> a href="+code=s_md1095ass="sr10="sref">retala>;1"895ala>1101h/mds_client._client.c#L946" id.1L946" class="1097ass="sr10ref">s_mdsala>);1101h/mds_client.c#L957" id.1L954" class="line" nam4.1L954">"954ala> a href="+codnewed="+co8/a>( spa3>tta nows3 clalu, wat class=, nows3 clas class="string">cap_releases_done" class="sref">1098ass="sr10s_cap_lockala>);1101h/mds_client.c#L86struct a href="+code=aps %p mds%d\3&quossionala>, a href="+code=session" class="sref">s="sref">cbala>( af="+code=session" class="sref">sessionala>, a href="+cr a tta8">"948ala>stat+cr a tta t; /spa3., a hrewatru="lr" class="sref">watru="lr&quo ? "954ala> a href="+cr="lrlass="string" : "954ala> a href="+cfreshlass="string">cap_releases_done" class="sref">1099ass="sr10"sref">nextala>;1101h/mds_client.c#L9452" id.1L952" ctime_beforr" class="sref">time_beforrode=ia>-> a href=jiffiL860">"860ala>stajiffiL8" /spa3., a href="+code=session" class="sref">sessionala>, a href="+cr a tta8">"948ala>stat+cr a tta ? "954ala> a href="+cr="lrlass="string" : "954ala> a href="+cfreshlass="string"essionala>-> a href="+code=s_md11class="sr11clasf">nextala>;111cl/mds_client.c#L954" id.1L958" class="line" nam4.1L938">"938ala> a href="+code=spin_unlock" class="sref">spin_unlockala>(& a href="+code=session" class="sref">sessionala>-> a href="+code=s_cap_lock" cl11c1ass="sr11cs="sref">pala>; 110h/mdsode" class8a3.,n_inodeala>);1capala>; 110h/mds_client.c#L942" id.1L942" cwakr" class="sref">wakcsrefi_client.c#L947" id.1L947" class=11c3ass="sr11csref">NULLala>; 110h/mds_client.c#L943" id.1L943" classwake_oid a href="session" class="srwake_oid a href="ses1ala>+code=ceph_mds_session" class="sref">ceph_mds_se,.0"> int a href="+code=drop"11c4ass="sr11csref">NULLala>; 1104/mds_client.c#L946" id.1L946" class="11c5ass="sr11c"sref">retala>;1110h/mds_client.c#L895" id.1L895" class=11c6ass="sr11c1L895">"895ala>1110h/mds_client.c#L884" id.1L857" class="line" nam4.1L857">"857ala> spa11c7ass="sr11cef">s_mdsala>);111ch/mds_client.c#L857" id.1L8 * rend am4.1L884"closesrequest" class="line" nam4.1L857">"857ala> spa11c8ass="sr11c_cap_lockala>);111ch/mds_client.c#L858" id.1L858ala>; spa3 class="comment"./* put_cap 11c9ass="sr11csref">nextala>;111ch/mds_client.c#L948" id.1L948" clquest_closeef">cleanup_cap_releaseclquest_closeef">clea1ala>leanup_cap_releases" class="sre_export_target_sessionsala>(struct a href="+code=ceph_mds_client" class="sref">cephref">ceph_capala> * a href="+code111lass="sr11ast_inodeala>) {n111h/mds_client.c#L930" id.1L930000000000leanup_cap_releases" class="sref">cleanup_cap_releasesala>(struct a href="+code=ceph_mds_session" class="sref">ceph_mds_sessionala> * a href="+code=session1111ass="sr11last_inodeala>);111ah/mds_cap_releases_done" class="sref">11a2ass="sr11"sref">NULLala>; 111h/mds_client.nam4.1L873">"873ala> ef="+code=ceph_mdseph_msg_put" class="srefssionala>-> a href="+code=s_md11a3ass="sr11 } 111h/mds_client.c#L953" id.1L953" class=1114ass="sr11">old_capala>) {no>111h/mds_client.c#L954" id.1L954" class="line" nam4.1L954">"954ala> a href="+codquest_closeef">clea8/a>( spa3>s="sr.class= seqs3 clall3 class="string">cap_releases_done" class="sref">1115ass="sr11f">old_capala>); >111h/mds_client.c#L955" id.1L955" cl"+code=aps %p mds%d\3&quossionala>, a href="+code=session" class="sref">s="sref">cbala>( af="+codru="sr_t; anup_cap_releasef="+codru="sr_t; a1ala>+code=ceph_mds_session" class="sref">ceph_mds_sessionala>, a href="+cf="sr" class="sref">c_s="srode=e>cap_releases_done" class="sref">1116ass="sr11"sref">NULLala>; 111h/mds_client.c#L91+code=ceph_mds_session" class="sref">ceph_mds_sessionala>, a href="+cfeqcode=ci" class=+cseqf">sessionala>-> a href="+code=s_md11a7ass="sr11 } 111h/mds_client.c#L957" id.1L95seph_msg_put" class="srefceph_inode_infoala>re int a href re int a href ode=ia>-> a href=CEPH_SESSION_REQUEST_CLOSE CEPH_SESSION_REQUEST_CLOSE" /spa3., a href="+code=session" class="sref">sessionala>, a href="+cfeqcode=ci" class=+cseqf">sessionala>-> a href="+code=s_md11a8ass="sr11.1L917">"917ala> 111h/mds_client.cd.1L902" class="linseph_msg_put" class="srefi_client.c#L947" id.1L947" class=11a9ass="sr11"sref">argala>); 111h/mds_client.c#L949" c#L945"-id.1L871" classENOMEMh_msg_put" clasENOMEM&quossionala>-> a href="+code=s_md112lass="sr11sref">inodeala>; 112l/mds_client.c#L954" id.1L95f">inorefrendnup_cap_releasesala>orefrend a href="+code=spif="+code=session" class="sref">sessionala>, a href="+crode=session" classcrodf">s="sref">cbala>( aseph_msg_put" class="srefissionala>-> a href="+code=s_md11s1ass="sr11.1L920">"920ala> 11sh/mds_client.c#L945"a> int a href="+code=drop"11s2ass="sr11s_cap_lockala>);111sh/mds_client.c#L946" id.1L946" class="11s3ass="sr11"sref">nextala>;1112h/mds_client.c#L953" id.1L953" class=11s4ass="sr11ref">NULLala>) {n1124/mds_client.c#L881" id.1L857" class="line" nam4.1L857">"857ala> spa11s5ass="sr11\3" /spa3.,n112h/mds_client.c#L885" id.1L881"Cclasd with >"884alef">ca> spa3 class="comment". * Caller must h11s6ass="sr11"sref">capala>);1112h/mds_client.c#L884" id.1L884ala>; spa3 class="comment"./* put_cap 1127ass="sr11" } 1127/mds_client.c#L948" id.1L948" __closeef">cleanup_cap_release__closeef">clea1ala>leanup_cap_releases" class="sre_export_target_sessionsala>(struct a href="+code=ceph_mds_client" class="sref">cephref">ceph_capala> * a href="+code1128ass="sr11ssion_capsala>);1112h/mds_client.c#L868" id.1L867cleanup_cap_releases" class="sref">cleanup_cap_releasesala>(struct a href="+code=ceph_mds_session" class="sref">ceph_mds_sei_client.c#L947" id.1L947" class=1129ass="sr11s_nr_capsala>--;1112h/mds_client.c#L889" id.1L889" class="113lass="sr11"sref">NULLala>; 1130/mds_client.cd.1+code=ceph_mds_session" class="sref">ceph_mds_sessionala>, a href="+cf="sr" class="sref">c_s="srode= eph_inode_infoalaCEPH_MDS_SESSION_CLOSING CEPH_MDS_SESSION_CLOSINGs_sei_client.c#L947" id.1L947" class=1131ass="sr11s held */ /spa3.1113h/mds_client.c#L911" c#L945"a> int a href="+code=drop"11"2ass="sr11 } 11"2/mds_client.c#L954" id.1L95session" class="sref">ceph_mds_sessionala>, a href="+cf="sr" class="sref">c_s="srode= eph_inode_infoalaCEPH_MDS_SESSION_CLOSING CEPH_MDS_SESSION_CLOSINGs_se> int a href="+code=drop"11"3ass="sr11>retala> < 0)nre>11"h/mds_client.c#L945"948" id.1L948" clquest_closeef">cleanup_cap_releaseclquest_closeef">clea1ala>="+code=ceph_mds_client" class="sref">cephrla>-> a href="+code=session" class="sref">sessiona int a href="+code=drop"11"4ass="sr11="sref">out /a>; } 11"h/mds_client.c#L895" id.1L895" class=11"6ass="sr11ef">retala> = 0;111"h/mds_client.c#L884" id.1L857" class="line" nam4.1L857">"857ala> spa1137ass="sr11="sref">out /a>:1"857ala> spa1138ass="sr11"sref">NULLala>; 11"h/mds_client.c#L858" id.1L858" class="line" nam4.1L857">"857ala> spa1139ass="sr11s_cap_lockala>);111"h/mds_client.c#L859" id.1L859 Because we" c""st9;t cache iens="sr without one or more" cls, we"do" class="line" nam4.1L857">"857ala> spa114lass="sr11.1L939">"939ala> 11.1/mds_client.c#L881" id.1L881"ss="cindirectly:.cd.a" claie unused, we"prune itseali="+c, at.c#Lch" class="line" nam4.1L857">"857ala> spa1141ass="sr11>last_inodeala>) la>11.h/mds_client.c#L881" id.1L881 po.c#Lssees="sr will hopefully get.952"psd to." class="line" nam4.1L857">"857ala> spa1142ass="sr11last_inodeala>);1114h/mds_client.c#L882" id.1L882" class="line" nam4.1L857">"857ala> spa1143ass="sr11ef">old_capala>)11143/mds_client.c#L881" id.1L881"Y+c, ss="cisea bit sl2"py. Our only real goal here"is.1L8c#spond to" class="line" nam4.1L857">"857ala> spa1144ass="sr11f">old_capala>); >1144/mds_client.c#L881" id.1L887 memory"prsreure"from"sse8MDS, ssough, soap" need""st9;t be perfect." class="line" nam4.1L857">"857ala> spa1145ass="sr11.1L944">"944ala> 114h/mds_client.c#L885" id.1L881ala>; spa3 class="comment"./* put_cap 1146ass="sr11="sref">retala>; "948ala>stattrimam4.1L941ala>leanup_cap_releases" css="sref">remove_session_caps_cbala>(struct a href="+code=inode" class="sref">inodeala> * a href="+code=inode" class="sref">inodeala>, struct a href="+code=ceph_cap" class="srsine" nam4.1L949">"949ala> void * a href="+code1147ass="sr111L946">"946ala>} 11.h/mds_client.c#L889" id.1L889" class="1148ass="sr11.1L947">"947ala> 11.h/mds_client.leanup_cap_releases" class="sref">cleanup_cap_releasesala>(struct a href="+code=ceph_mds_session" class="sref">ceph_mds_se eph_inode_infoalaala> ona int a href="+code=drop"1149ass="sr11="sref">capala>,n"951ala> struct a href="+code=ceph_inode_info" class="sref">ceph_inode_infoala> * a href="+code=ci" class="sref">ciala> = a href="+code=ceph_inode" class="sref">ceph_inodeala>( a href="+code=inod115lass="sr11="sref">argala>)n-> a href=oireuedeph_inode" clasoireuedf">s="sref">cbala>( asla>)nnt" class="srela> ona int a href="+code=drop"1151ass="sr111L950">"950ala>{n115h/mdsode" class8a3.,n_inodeala>);1inodeala>); 115h/mds_client.c#L942" id.1L942" csession" class="sref">ceph_mds_sessionala>, a href="+ctrimam4.1" class="sref">c_trimam4.1ode= l ep0 void * a href="+code1153ass="sr11f">dropala> = 0;1>115h/mds_client.c#L943" c#L945"-1> int a href="+code=drop"1154ass="sr11.1L953">"953ala>1115h/mds_client.c#L944" id.1L944" class=1155ass="sr11\3" /spa3.,n11=h/mds_client.c#L935" id.1L93s" class="line" nam4.1L956">"956ala> a href="+code=spin_lock" class="sref">spin_lockala>(& a href="+code=ci" class="sref">ciala>-> a href="+code=i_ceph_lock" cla1156ass="sr11>vfs_inodeala>);1vf>115h/mds_client.c#L956" id.1L95sla>)nnt" class="srela> ceph_inode_infoala>+code=ceph_cap" class="s">spin_lockala>(&reuedeph_inode" clasireuedf">s |ph_inode_infoala>+code=ceph_cap" class="s">spin_lockala>(&mpleid.1edeph_inode" clasimpleid.1ed ona int a href="+code=drop"1157ass="sr11_ceph_lockala>);1115h/mds_client.c#L957" id.1L95usedeph_inode" clasusedcephceph_inode_infoala__f">inodes_usedeph_inode" clas__f">inodes_usedciala> = a href="+c=spin_lock" class="srefgt; a href="+code=i_ceph_lock" cla1158ass="sr11ph/mds_client>-> a h 11ph/>115h/mds_client.c#L938" id.1L93oireuedeph_inode" clasoireuedf">sceph_inode_infoala__f">inodes_ireued_ossereph_inode" clas__f">inodes_ireued_osserciala> = a href="+c=spin_lock" class="sref="sref">cbala>( a +code=ceph_cap" class="sgt; a href="+code=i_ceph_lock" cla1159ass="sr11s sessionalspa3.111=h/mds; a href="+code=i_ceph_lock" cla116lass="sr11ment". */ /spa3.1116l/mds_client.c#L954" id.1L954" class="line" nam4.1L954">"954ala> a href="+ctrimam4.1L94f">dout cla">dout /pa3.class= oireued.class= useds3 clas class="string">cap_releases_done" class="sref">1161ass="sr11ef">sessionala>)n116h/mds_client.c#L91bala>(struct a href="+code=inode" class="srefstruct a href="+code=ceph_cap" class="srsala> * a href="+code=in_ a hde" class="sref">inode_ a 1ala>="+code=ceph_mdsla>)nnt" class="srela> )rsala> * a href="+code=in_ a hde" class="sref">inode_ a 1ala>="+code=ceph_mdoireuedeph_inode" clasoireuedf">se>cap_releases_done" class="sref">11m2ass="sr111L861">"861ala>{n116h/mds_client.c#L87ala> * a href="+code=in_ a hde" class="sref">inode_ a 1ala>="+code=ceph_mdusedeph_inode" clasusedcephcinode" class8a3.,n_inodeala>);1msgala>;1spin_lockala>(& dirtym4.1L886">"886ala>sta dirtym4.1L void * a href="+code1164ass="sr11.1L863">"863ala>1116h/mds_client.c#L924" goto.c#L938" id.1L93o class="line" nam.1L954"; t.c>old_capala> = a href="dirty> spa31ala>; spa3 class="comment"./* put_cap 11m5ass="sr11s_cap_lockala>);111mh/mds_client.c#L9>="+code=ceph_mdusedeph_inode" clasusedceph2 href ~="+code=ceph_mdoireuedeph_inode" clasoireuedf">se href=" class="line" sla>)nnt" class="srela> )spa3 class="comment"./* put_cap 11m6ass="sr11releasesala>)) {n116h/mds_client.c#L914" goto.c#L938" id.1L93o class="line" nam.1L954"; t.c>old_capala> = a href="we need"ssese> spa31ala>; spa3 class="comment"./* put_cap 11m7ass="sr11ap_releasesala>,n116h/mds_client.c#L947" id.1L947" class=1168ass="sr11>list_headala>);1li>11mh/mds_client.c#L938" id.1L93session" class="sref">ceph_mds_sessionala>, a href="+ctrimam4.1" class="sref">c_trimam4.1ode=--node" class8a3.,n_inodeala>);1se _client.c#L889" id.1L889" class="117lass="sr11"sref">msgala>);1117"/mds_client.c#L943" i>old_capala> = a href="we are""st9;t sse8only m4... jline="streaua31ala>; spa3 class="comment"./* put_cap 1171ass="sr11870ala> } 117h/mds_client.c#L941" id.1L941" class__f">inic int "+code=ceph_cap" c__f">inic int "+cciala> = a href="+c=+code=ceph_cap" class="sgt; a href="+code=i_ceph_lock" cla1172ass="sr11ses_doneala>)) {n117h/mds_client.} elses_cap_releases_done" class="sref">1173ass="sr11leases_doneala>,n117h/mds_client.c#L943" i>old_capala> = a href="sry.1L8952"e="fer a da hriea31ala>; spa3 class="comment"./* put_cap 1174ass="sr11>list_headala>);1li>117h/mds_client.c#L924" c#L935" id.1L93s" class="line" nam4.1L938">"938ala> a href="+code=spi=spin_lock" class="sref">spin_lockala>(& a href="+code=ci" class="sref">ciala>-> a href="+code=i_ceph_lock" cla1175ass="sr11>list_headala>);1li>117h/mds_client.c#L925" c#L954" id.1L954_prune_ali="+class="line" nam4_prune_ali="+cciala> = a href="+code=ceph_inode" class="sref">ceph_inodeala>( a href="+code=inod1176ass="sr11"sref">msgala>);1117h/mds_client.c#L914" c#L954" id.1L954" class="line" nam4.1L954">"954ala> a href="+ctrimam4.1L94f">dout cla">dout "pruned, count nows3 cla3 class="string">cap_releases_done" class="sref">1177ass="sr11876ala> } 117h/mds_client.c#L887" 914" c#L954" id.1L95 href="+code=inode" class="srefstruct a href="+code=ceph_cap" class="srsala> * a href="atomic_e"ad> tomic_e"ad a href="+code=spi href="+code=inode" class="sr">spin_lockala>(& aountcode=ci" class="srountcephcinode" class8a3.,n_inodeala>);1 int a href="+code=drop"1179ass="sr111L878">"878ala>} 117h/mds_client._client.c#L946" id.1L946" class="118lass="sr11.1L879">"879ala> 11.1/mdsclient.c#L946" id.1L946" class="1181ass="sr11mment"./* /spa3.111.1/mdsc#L938" id.1L93o class="line" nam.1L954":client.c#L946" id.1L946" class="1182ass="sr11ion, with /spa3.11182/mds_client.c#L954" id.1L95s" class="line" nam4.1L938">"938ala> a href="+code=spi=spin_lock" class="sref">spin_lockala>(& a href="+code=ci" class="sref">ciala>-> a href="+code=i_ceph_lock" cla1183ass="sr11ve_cap(). /spa3.1118h/mds_client.c#L945"a> int a href="+code=drop"11.4ass="sr11mment". * /spa3.11184/mds_client.c#L946" id.1L946" class="11.5ass="sr11 s_mutex. /spa3.111.h/mds_client.c#L895" id.1L895" class=1186ass="sr11ment". */ /spa3.1118h/mds_client.c#L884" id.1L857" class="line" nam4.1L857">"857ala> spa1187ass="sr11ef">sessionala>,n118h/mds_client.c#L857" id.1L8ap Trim 4.1L884"cclacount down.1L8some max number." class="line" nam4.1L857">"857ala> spa1188ass="sr11>ceph_capala> *,nce>118h/mds_client.c#L858" id.1L858ala>; spa3 class="comment"./* put_cap 1189ass="sr11="sref">argala>)ntrimam4.1ode=>leanup_cap_releases" class="sre_export_target_sessionsala>(struct a href="+code=ceph_mds_client" class="sref">cephref">ceph_capala> * a href="+code119lass="sr111L889">"889ala>{n111L/mds_client.c#L887" leanup_cap_releases" class="sref">cleanup_cap_releasesala>(struct a href="+code=ceph_mds_session" class="sref">ceph_mds_seref">ceph_capala> * a href="+code1191ass="sr11ss="sref">pala>; 111h/mds_client.c#L911" id.1L.c#L948" id.1L948" max_m4.1" class="sref">max_m4.1 )spa3 class="comment"./* put_cap 1192ass="sr11="sref">capala>; 1113ass="sr11"sref">NULLala>; 111h/mds_client..c#L948" id.1L948" trimam4.1" class="sref">trimam4.1ode= a href="+codf="+code=session" class="sref">sessionala>, a href="+cnram4.1" class="sref">c_nram4.1ode= -L948" id.1L948" max_m4.1" class="sref">max_m4.1 > int a href="+code=drop"1194ass="sr11"sref">NULLala>; 119h/mds_client.c#L944" id.1L944" class=1195ass="sr11="sref">retala>;1"954ala> a href="+ctrimam4.18/a>( spa3>s="rt:s3 cla3 /s3 cla3, trims3 cla3 class="string">cap_releases_done" class="sref">1196ass="sr11.1L895">"895ala>1119h/mds_client.c#L91+code=ceph_mds_session" class="sref">ceph_mds_sessionala>, a href="+code=session" class="sref">s="sref">cbala>( af="+code=session" class="sref">sessionala>, a href="+cnram4.1" class="sref">c_nram4.1ode=="sref">cbala>( asax_m4.1" class="sref">max_m4.1 ="sref">cbala>( atrimam4.1" class="sref">trimam4.1ode=gt; a href="+code=i_ceph_lock" cla1197ass="sr11ref">s_mdsala>);1111h/mds_client.cd.152" id.1L952" ctrimam4.1" class="sref">trimam4.1ode= sion 0e _client.c#L889" id.1L889" class="1198ass="sr11s_cap_lockala>);1111h/mds_client.c#L86L91+code=ceph_mds_session" class="sref">ceph_mds_sessionala>, a href="+ctrimam4.1" class="sref">c_trimam4.1ode= a href="+codtrimam4.1" class="sref">trimam4.1ode=t; a href="+code=i_ceph_lock" cla1199ass="sr11"sref">nextala>;1111h/mds_client.c#L944" c#L954" id.1L95 lass="line" nam4.1L886">"886ala>static int a href="+code=ia>-> a href="+code=session" class="sref">sessnla>-> a href=trimam4.1L948">"948ala>stattrimam4.1L941alarla>-> a href="+code=session" class="sref">sessiona int a href="+code=drop"12class="sr12clasf">nextala>;1120"/mds_client.c#L943" id.1L943" class4" class="line" nam4.1L954">"954ala> a href="+ctrimam4.18/a>( spa3>done:s3 cla3 /s3 cla3, trimmeds3 cla3 class="string">cap_releases_done" class="sref">12c1ass="sr12cs="sref">pala>; 120h/mds_client.c#L911" id.1L+code=ceph_mds_session" class="sref">ceph_mds_sessionala>, a href="+code=session" class="sref">s="sref">cbala>( af="+code=session" class="sref">sessionala>, a href="+cnram4.1" class="sref">c_nram4.1ode=="sref">cbala>( asax_m4.1" class="sref">max_m4.1 =cap_releases_done" class="sref">12c2ass="sr12c"sref">capala>; 120h/mds_client.c#L872" id.1L867code=la>, gt; 2trimam4.1" class="sref">trimam4.1ode= -L948" id.1L948" session" class="sref">ceph_mds_sessionala>, a href="+ctrimam4.1" class="sref">c_trimam4.1ode=iona int a href="+code=drop"12c3ass="sr12csref">NULLala>; 120h/mds_client.c#L943" id.1L943" classsession" class="sref">ceph_mds_sessionala>, a href="+ctrimam4.1" class="sref">c_trimam4.1ode= a> int a href="+code=drop"12c4ass="sr12csref">NULLala>; 120h/mds_client._client.c#L946" id.1L946" class="12c5ass="sr12c"sref">retala>;1120h/mds_client.c#L945"a> int a href="+code=drop"12c6ass="sr12c1L895">"895ala>1120h/mds_client.c#L946" id.1L946" class="12c7ass="sr12cef">s_mdsala>);1120h/mds_client.c#L947" id.1L947" class=12c8ass="sr12c_cap_lockala>);112ch/mds_client.c#L858" id.1L857" class="line" nam4.1L857">"857ala> spa12c9ass="sr12csref">nextala>;1120h/mds_client.c#L859" id.1L859 Alloc"sr.ode_release mephages. If ssere"is.a p"rtially full mephage" class="line" nam4.1L857">"857ala> spa121lass="sr12ast_inodeala>) {n1211/mds_client.c#L881" id.1L881"in sse8queue,"sry.1L8alloc"sr.enough.1L8cove it"st9;a3icmainder, soathat" class="line" nam4.1L857">"857ala> spa1211ass="sr12last_inodeala>);1121h/mds_client.c#L881" id.1L881 we" c" rend it immedi"srly." class="line" nam4.1L857">"857ala> spa12a2ass="sr12"sref">NULLala>; 121h/mds_client.c#L882" id.1L882" class="line" nam4.1L857">"857ala> spa12a3ass="sr12 } 1213/mds_client.c#L881" id.1L881"Cclasd underco"884al." class="line" nam4.1L857">"857ala> spa12a4ass="sr12">old_capala>) {no>1214/mds_client.c#L881" id.1L887ala>; spa3 class="comment"./* put_cap 1215ass="sr12f">old_capala>); >121h/mds.c#L948" id.1L948" sala>add="+c_release1" class="sref">sala>add="+c_release1ode=>leanup_cap_releases" class="sre_export_target_sessionsala>(struct a href="+code=ceph_mds_client" class="sref">cephref">ceph_capala> * a href="+code1216ass="sr12"sref">NULLala>; 121h/mds_client.c#L911111111111111leanup_cap_releases" class="sref">cleanup_cap_releasesala>(struct a href="+code=ceph_mds_session" class="sref">ceph_mds_sei_client.c#L947" id.1L947" class=12a7ass="sr12 } 121h/mds_client.c#L889" id.1L889" class="12a8ass="sr12.1L917">"917ala> 121h/mds_client.leanup_cap_releases" class=" ef="+code=ceph_mdseph_msg_put" class="sref,ef="+code=ceph_mdp"rtialh_msg_put" clasp"rtialode= a href="+codNULLh_msg_put" clasNULLode=t; a href="+code=i_ceph_lock" cla12a9ass="sr12"sref">argala>); 121h/mds_client.c#L951" id.1L951" class="liceph_+c_releaset_target_sessionsala>(str+c_release ef="+code=ceph_mdh"ad> h"ad t; a href="+code=i_ceph_lock" cla122lass="sr12sref">inodeala>; 1221/mds_client.c#L952" id.1L952" cerreph_inode" claserrode= -id.1L871" classENOMEMh_msg_put" clasENOMEM&quossionala>-> a href="+code=s_md12s1ass="sr12.1L920">"920ala> 1221/mds_client.c#L952" id.1L952" cextraeph_inode" clasextraode= a href="+cods_client" class="sref">cephssionala>, a href="fclient" class="srf">ceph if ( tount_opi8841" class="sref">mount_opi8841ceph if ( r+c_release_safetyode=ceph_cap" clas_release_safety&quossionala>-> a href="+code=s_md12s2ass="sr12s_cap_lockala>);11222/mds_client.c#L952" id.1L952" cnumode=ceph_cap" cnum&quossionala>-> a href="+code=s_md12s3ass="sr12"sref">nextala>;1122h/mds_client.c#L953" id.1L953" class=12s4ass="sr12ref">NULLala>) {n122h/mds_client.c#L954" id.1L954" class="line" nam4.1L954">"954ala> a href="+cadd="+c_release1a">dout /a>( spa3>extras3 cla3 class="string"> id.1L943" classsession" class="sref">ceph_mds_se>Lstruct a href="+code=aps %p mds%d\3&quossionala>, a href="+code=session" class="sref">s=ode" class8a3.,n_inodeala>);1capala>);1122h/mdsna int a href="+code=drop"12s7ass="sr12" } 122h/mds_client.c#L957" id.1L95="line" nam4.1L921">"921ala> a href="+code=spin_lock" class="sref">spin_lockala>(& a href="+code=session" class="sref">sessionala>-> a href="+code=s_cap_lock" cl1228ass="sr12ssion_capsala>);11228/mds_client.c#L895" id.1L895" class=1229ass="sr12s_nr_capsala>--;1122h/mds_client.id.1L902" class="linlist_emptyode=ceph_cap" clist_empty a href="+code=spin_lock" class="sref">spin_lockala>(& a href="+code=release1" class="sref">s="+c_release1ode= s_cap_releases_done" class="sref">123lass="sr12"sref">NULLala>; 123"/mds_client.c#L943" id.1L943" classseph_msg_put" class="srefceph_inode_infoalalist_first_ensryode=ceph_cap" clist_first_ensry a href="+code=spin_lock" class="sref">spin_lockala>(& a href="+code=release1" class="sref">s="+c_release1ode==ode" class8a3.,n_inodeala>);1);1 list_h"adala>-> a href="+code=s_cap_lock" cl12"3ass="sr12>retala> < 0)nre>123h/mds_client.c#L943" id.1L943" classh"ad> h"ad a href="+codseph_msg_put" class="srefssionala>, a href="froort_target_sessiofroorsref.c#L954" id.1L95 ov_baset_target_sessio ov_base&quossionala>-> a href="+code=s_md12"4ass="sr12="sref">out /a>; le32_to_cpuode=ia>-> a href=h"ad> h"ad ssionala>, a href="numode=ceph_cap" cnum&quo-> a href="+code=s_cap_lock" cl12"5ass="sr12934ala> } 123h/mds_client.c#L925" cd.152" id.1L952" cnumode=ceph_cap" cnum&quo-s_cap_releases_done" class="sref">1236ass="sr12ef">retala> = 0;1123h/mds_client.c#L9111111111111c#L954" id.1L954" class="line" nam4.1L954">"954ala> a href="+c p"rtiala">dout with (3 cla3/3 cla3) class="string"> id.1L943" classseph_msg_put" class="sref,e52" id.1L952" cnumode=ceph_cap" cnum&quo=ode" class8a3.,n_inodeala>);1out /a>:1NULLala>; 123h/mds_client.c#L868" id.1L86752" id.1L952" cextraeph_inode" clasextraode= +eph_inode_infoalaCEPH_CAPS_PER_RELEASE CEPH_CAPS_PER_RELEASE&quo -L948" id.1L948" numode=ceph_cap" cnum&quossionala>-> a href="+code=s_md1239ass="sr12s_cap_lockala>);1123h/mds_client.c#L944" id.1L86752" id.1L952" cp"rtialh_msg_put" clasp"rtialode= a href="+codseph_msg_put" class="srefssionala>-> a href="+code=s_md124lass="sr12.1L939">"939ala> 124"/mds_client.c#L943" _client.c#L946" id.1L946" class="1241ass="sr12>last_inodeala>) la>124h/mds_client._client.c#L946" id.1L946" class="1242ass="sr12last_inodeala>);1124h/mds_client.while (sref">cbala>( af="+code=session" class="sref">sessionala>, a href="+cnumcode=release1" class="sref">s=numcode=release1ode= sltf=" class="line" f="+code=session" class="sref">sessionala>, a href="+cnram4.1" class="sref">c_nram4.1ode= +55" id.1L955" clextraeph_inode" clasextraode=is_cap_releases_done" class="sref">1243ass="sr12ef">old_capala>)1124h/mds_client.c#L943" id.1L943" classs" class="line" nam4.1L938">"938ala> a href="+code=spin_unlock" class="sref">spin_unlockala>(& a href="+code=session" class="sref">sessionala>-> a href="+code=s_cap_lock" cl1244ass="sr12f">old_capala>); >124h/mds_client.c#L924" c#L935" id.1L93seph_msg_put" class="srefceph_inode_infoala> _new886">"886ala>st> _newode=ia>-> a href=CEPH_MSG_CLIENT_CAPRELEASE CEPH_MSG_CLIENT_CAPRELEASEsref,e52" id.1L952" cPAGE_CACHE_SIZE PAGE_CACHE_SIZE&quo=ode" class8a3.,n_inodeala>);1"944ala> 124h/mds_client.c#L925" nt.c#L944" id.1L86752" id.1L952" cGFP_NOFS GFP_NOFSsref,e52" id.1L952" cfalset_target_sessiofalseala>-> a href="+code=s_cap_lock" cl1246ass="sr12="sref">retala>; "946ala>} 124h/mds_client.c#L887" 914" goto.c#L938" id.1L93o c38ala> edeph_inode" claso c38ala> edsrefssionala>-> a href="+code=s_md1248ass="sr12.1L947">"947ala> 124h/mds_client.c#L86L91+code=ceph_mds_4" class="line" nam4.1L954">"954ala> a href="+cadd="+c_release1a">dout /sga">dout nows3 cla3 class="string"> id.1L943" classsession" class="sref">ceph_mds_se>Lstruct a href=seph_msg_put" class="sref,sionala>-> a href="+code=s_md1249ass="sr12="sref">capala>,n ov_lenala>-> a href="+code=s_cap_lock" cl125lass="sr12="sref">argala>)n h"ad a href="+codseph_msg_put" class="srefssionala>, a href="froort_target_sessiofroorsref.c#L954" id.1L95 ov_baset_target_sessio ov_base&quossionala>-> a href="+code=s_md1251ass="sr121L950">"950ala>{n125h/mds_client.c#L941" id.1L941" classh"ad> h"ad ssionala>, a href="numode=ceph_cap" cnum&quoceph_inode_infoala>pu_to_le32886">"886ala>st>pu_to_le32954">0"> int a href="+code=drop"1252ass="sr12ref">inodeala>); 125h/mds_client.c#L872" 52" id.1L952" cseph_msg_put" class="srefssionala>, a href="froort_target_sessiofroorsref.c#L954" id.1L95 ov_len" class="sref"> ov_lenala>cepsizeof(f="+code=ceph_mdh"ad> h"ad "> int a href="+code=drop"1253ass="sr12f">dropala> = 0;1>125h/mds_client.c#L943" c#L957" id.1L95="line" nam4.1L921">"921ala> a href="+code=spin_lock" class="sref">spin_lockala>(& a href="+code=session" class="sref">sessionala>-> a href="+code=s_cap_lock" cl1254ass="sr12.1L953">"953ala>1125h/mds_client.c#L924" c#L935" id.1L93list_add> list_add a href="+codeseph_msg_put" class="srefssionala>, a href="list_h"ad> list_h"adala>, a href="+code=spin_lock" class="sref">spin_lockala>(& a href="+code=release1" class="sref">s="+c_release1ode= > a href="+code=s_cap_lock" cl1255ass="sr12\3" /spa3.,n125h/mds_client.c#L925" c#L954" id.1L95f="+code=session" class="sref">sessionala>, a href="+cnumcode=release1" class="sref">s=numcode=release1ode= +eph_inode_infoalaCEPH_CAPS_PER_RELEASE CEPH_CAPS_PER_RELEASE&quo> a href="+code=s_cap_lock" cl1256ass="sr12>vfs_inodeala>);1vf>125h/mds_client._client.c#L946" id.1L946" class="1257ass="sr12_ceph_lockala>);1125h/mds_client.c#L947" id.1L947" class=1258ass="sr12ph/mds_client>-> a h 12ph/>125h/mds_client.cd.152" id.1L952" cp"rtialh_msg_put" clasp"rtialode=is_cap_releases_done" class="sref">1259ass="sr12s sessionalspa3.1125h/mds_client.c#L944" c#L954" id.1L95h"ad> h"ad a href="+codp"rtialh_msg_put" clasp"rtialode=ssionala>, a href="froort_target_sessiofroorsref.c#L954" id.1L95 ov_baset_target_sessio ov_base&quossionala>-> a href="+code=s_md126lass="sr12ment". */ /spa3.1126"/mds_client.c#L943" id.1L943" classnumode=ceph_cap" cnum&quoceph_inode_infoalale32_to_cpu> le32_to_cpuode=ia>-> a href=h"ad> h"ad ssionala>, a href="numode=ceph_cap" cnum&quo-> a href="+code=s_cap_lock" cl1261ass="sr12ef">sessionala>)n126h/mds_client.c#L913" id.1L943" class4" class="line" nam4.1L954">"954ala> a href="+c queue a p"rtiala">dout with 3 cla3/3 cla3 class="string"> id.1L943" classp"rtialh_msg_put" clasp"rtialode=,e52" id.1L952" cnumode=ceph_cap" cnum&quo=ode" class8a3.,n_inodeala>);1"861ala>{n126h/mds_client.c#L8777777777(c#L)52" id.1L952" cCEPH_CAPS_PER_RELEASE CEPH_CAPS_PER_RELEASE&quo-> a href="+code=s_cap_lock" cl12m3ass="sr12="sref">msgala>;1, a href="list_h"ad> list_h"adala>,gt; a href="+code=s_cap_lock" cl12m4ass="sr12.1L863">"863ala>1126h/mds_client.c#L924" a href="+code=spin_lock" class="sref">spin_lockala>(& a href="+code=release1_done" class="sref">s="+c_release1_done&quo-> a href="+code=s_cap_lock" cl12m5ass="sr12s_cap_lockala>);1126h/mds_client.c#L925" c#L954" id.1L95f="+code=session" class="sref">sessionala>, a href="+cnumcode=release1" class="sref">s=numcode=release1ode= -eph_inode_infoalaCEPH_CAPS_PER_RELEASE CEPH_CAPS_PER_RELEASE&quo -L948" id.1L948" numode=ceph_cap" cnum&quossionala>-> a href="+code=s_md12m6ass="sr12releasesala>)) {n126h/mds_client._client.c#L946" id.1L946" class="12m7ass="sr12ap_releasesala>,n126h/mds_client.c#L957" id.1L95erreph_inode" claserrode= a> int a href="+code=drop"1268ass="sr12>list_headala>);1li>12mh/mds_client.c#L938" id.1L93s" class="line" nam4.1L938">"938ala> a href="+code=spin_unlock" class="sref">spin_unlockala>(& a href="+code=session" class="sref">sessionala>-> a href="+code=s_cap_lock" cl12m9ass="sr12>list_headala>);1li>126h/mdsc#L938" id.1L93o c38ala> edeph_inode" claso c38ala> edsref:client.c#L946" id.1L946" class="127lass="sr12"sref">msgala>);1127"/mds_client.c#L945"948" id.1L948" erreph_inode" claserrode=> a href="+code=s_cap_lock" cl1271ass="sr12870ala> } 127h/mds_client.c#L946" id.1L946" class="1272ass="sr12ses_doneala>)) {n127h/mdsclient.c#L946" id.1L946" class="1273ass="sr12leases_doneala>,n1273/mds_client.c#L881" id.1L857" class="line" nam4.1L857">"857ala> spa1274ass="sr12>list_headala>);1li>1274/mds_client.c#L881" id.1L887 flush8all"dirty>s="sr data.1L89isk." class="line" nam4.1L857">"857ala> spa1275ass="sr12>list_headala>);1li>127h/mds_client.c#L885" id.1L881" class="line" nam4.1L857">"857ala> spa1276ass="sr12"sref">msgala>);1127h/mds_client.c#L884" id.1L884.c#L945s true.cd.we"st9;ve flushed"ssrough.want_flushcseqf"class="line" nam4.1L857">"857ala> spa1277ass="sr12876ala> } 127h/mds_client.c#L857" id.1L8apala>; spa3 class="comment"./* put_cap 1278ass="sr12s_cap_lockala>);112"h/mds_client.c#L948" id.1L948" check">sesflush886">"886ala>st>heck">sesflush leanup_cap_releases" class="sre_export_target_sessionsala>(struct a href="+code=ceph_mds_client" class="sref">cephr.c#L957" id.1L95u.1L863">"86ss="sru6h/mds_c#L957" id.1L95want_flushcseqL863">"86ss="srwant_flushcseqf"efi_client.c#L947" id.1L947" class=1279ass="sr121L878">"878ala>} 127h/mds_client.c#L889" id.1L889" class="128lass="sr12.1L879">"879ala> 1281/mds_client.c#L952" id.1L952" code=session" classsref">s="sref">cbala>( ac#L=session" classc#Lode= 1> int a href="+code=drop"1281ass="sr12mment"./* /spa3.1128h/mdsode" class8a3.,n_inodeala>);1"954ala> a href="+c>heck">sesflush.want 3 clall3 class="string"> id.1L943" classwant_flushcseqL863">"86ss="srwant_flushcseqf"efi> int a href="+code=drop"1283ass="sr12ve_cap(). /spa3.1128h/mds_client.52" id.1L952" co84al=session" class="sreo84al=sess a href="+codes_client" class="sref">cephssionala>, a href="o84alion" class="sreo84alf"efi> int a href="+code=drop"1284ass="sr12mment". * /spa3.1128h/mds_client.for.152" id.1L952" code=session" classsref">s a>"sref">cbala>( ac#L=session" classc#Lode= href=" class="line" sde=session" classsref">s sltf=" class="line" s_client" class="sref">cephssionala>, a href="oaxruct a 1" class="sref">max_uct a 1ode=&=" class="line" sde=session" classsref">s++is_cap_releases_done" class="sref">12.5ass="sr12 s_mutex. /spa3.1128h/mds_client.c#L925" leanup_cap_releases" class="sref">cleanup_cap_releasesala>(struct a href="+code=ceph_mds_session" class="sref">ceph_mds_se eph_inode_infoalas_client" class="sref">cephssionala>, a href="uct a 1" class="sref">uct a 1ode=[" class="line" sde=session" classsref">s]> int a href="+code=drop"1286ass="sr12ment". */ /spa3.1128h/mdsna int a href="+code=drop"1287ass="sr12ef">sessionala>,n128h/mds_client.c#L887" cd.1L902" class="linsession" class="sref">ceph_mds_sei_client.c#L947" id.1L947" class=1288ass="sr12>ceph_capala> *,nce>128h/mds_client.c#L868" id.1L867continue> int a href="+code=drop"1289ass="sr12="sref">argala>)ncleanup_cap_releasegetef">cleaode=ia>-> a href="+code=session" class="sref">sessiona int a href="+code=drop"129lass="sr121L889">"889ala>{n121L/mds_client.c#L887" 52" id.1L952" co84al=ass="line" nam4.1L938o84al=ass="l a href="+codes_client" class="sref">cephssionala>, a href="o84alion" class="sreo84alf"efi> int a href="+code=drop"1291ass="sr12ss="sref">pala>; 129h/mdsode" class8a3.,n_inodeala>);1capala>; , a href="+co84alion" class="sre+co84alf"efi> int a href="+code=drop"1293ass="sr12"sref">NULLala>; 129h/mds_client.c#L943" id.1L902" class="linlist_emptyode=ceph_cap" clist_empty a href="+code=spin_lock" class="sref">spin_lockala>(& a href="+code=flush a hde" class="sre+code=flush a f"efiis_cap_releases_done" class="sref">1294ass="sr12"sref">NULLala>; 129h/mds_client.c#L924" c#L951" id.1L951" class="line" nam4.1L951">"951ala> struct a href="+code=ceph_inode_info" class="sref">cecap_releases_done" class="sref">1295ass="sr12="sref">retala>;1spin_lockala>(& a href="+code=flush a hde" class="sre+code=flush a f"ef.c#L954" id.1L95nexL=session" classnexLala>,gt; a href="+code=s_cap_lock" cl1296ass="sr12.1L895">"895ala>1129h/mds_client.c#L91111111111111111111111111111111c#L951" id.1L951" class="line" nam4.1L951">"951ala> struct a hr,gt; a href="+code=s_cap_lock" cl1297ass="sr12ref">s_mdsala>);1129h/mds_client.c#L887" 914" .c#L944" id.1L902" class="lini=flush a _itemode=ceph_cap" ci=flush a _itemf"efi> int a href="+code=drop"1298ass="sr12s_cap_lockala>);1121h/mds_client.c#L86L9111111111c#L951" id.1L951" classs="sref">remove_session_caps_cbala>(struct a href="+code=inode" class="sr ep a href="+code=spi=spin_lock" class="sref">spin_lockala>(&vfsa href="+code=ci" clavfsa hrefode=> a href="+code=s_cap_lock" cl1299ass="sr12"sref">nextala>;1129h/mds; a href="+code=i_ceph_lock" cla13class="sr13clasf">nextala>;1130"/mds_client.c#L943" 4" id.1L902" class="lins" class="line" nam4.1L956">"956ala> a href="+code=spin_lock" class="sref">spin_lockala>(& a href="+code=ci" class="sref">ciala>-> a href="+code=i_ceph_lock" cla13c1ass="sr13cs="sref">pala>; 130h/mds_client.c#L911" id.1L t.c#L942" id.1L942" c=spin_lock" class="sref">spin_lockala>(& ode=flushcseqL863">"86ss="sr; ode=flushcseqf">s sltfeph_inode_infoalawant_flushcseqL863">"86ss="srwant_flushcseqf"efis_cap_releases_done" class="sref">13c2ass="sr13c"sref">capala>; 130h/mds_client.c#L872" id.1L8674" id.1L902" class="lin4" class="line" nam4.1L954">"954ala> a href="+c>heck">sesflush.still flush a a">dout lass="string"cap_releases_done" class="sref">13c3ass="sr13csref">NULLala>; 130h/mds_client.c#L943" 872" id.1L8674" id.1L9954ala> a href="+cseq 3 clall3 sltfep3 clall3 to /a>( spa3 class="string"> id.1L943" class href="+code=inode" class="srecap_releases_done" class="sref">13c4ass="sr13csref">NULLala>; 130h/mds_client.c#L924" id.1L902" class="lin=spin_lock" class="sref">spin_lockala>(& ode=flushcseqL863">"86ss="sr; ode=flushcseqf">s> id.1L943" classwant_flushcseqL863">"86ss="srwant_flushcseqf"efecap_releases_done" class="sref">13c5ass="sr13c"sref">retala>;1130h/mds_client.c#L925" nt.c#L944" id.1L8671L+code=ceph_mds_session" class="sref">ceph_mds_sessionala>, a href="+code=session" class="sref">sgt; a href="+code=i_ceph_lock" cla13c6ass="sr13c1L895">"895ala>1130h/mds_client.c#L911111111111111111111sref">cbala>( ac#L=session" classc#Lode= a> int a href="+code=drop"13c7ass="sr13cef">s_mdsala>);1130h/mds_client.c#L887" 914" _client.c#L946" id.1L946" class="13c8ass="sr13c_cap_lockala>);1130h/mds_client.c#L868" id.1L86752" id.1L952" cs" class="line" nam4.1L938">"938ala> a href="+code=spi=spin_lock" class="sref">spin_lockala>(& a href="+code=ci" class="sref">ciala>-> a href="+code=i_ceph_lock" cla13c9ass="sr13csref">nextala>;1130h/mds_client.c#L944" _client.c#L946" id.1L946" class="131lass="sr13ast_inodeala>) {n131L/mds_client.c#L887" 52" id.1L952" co84al=ass="line" nam4.1L938o84al=ass="l a href="+code"+code=aps %p mds%d\3&quossionala>, a href="+co84alion" class="sre+co84alf"efi> int a href="+code=drop"1311ass="sr13last_inodeala>);1131h/mds_client.c#L913" id.1L943" classref">put="sref">cleanup_cap_releasesala>put="sref">cleaode=ia>-> a href="+code=session" class="sref">sessiona int a href="+code=drop"13a2ass="sr13"sref">NULLala>; 131h/mdsclient.c#L946" id.1L946" class="13a3ass="sr13 } 131h/mds_client.c#L943" id.1L902" class="linc#L=session" classc#Lode=i_client.c#L947" id.1L947" class=13a4ass="sr13">old_capala>) {no>131h/mds_client.c#L924" c#L945"948" id.1L948" c#L=session" classc#Lode=ona int a href="+code=drop"13a5ass="sr13f">old_capala>); >131h/mds_client.c#L925" c#L954" id.1L95o84al=session" class="sreo84al=sess a href="+codes_client" class="sref">cephssionala>, a href="o84alion" class="sreo84alf"efi> int a href="+code=drop"1316ass="sr13"sref">NULLala>; 131h/mds_client._client.c#L946" id.1L946" class="13a7ass="sr13 } 131h/mds_client.c#L947" id.1L947" class=13a8ass="sr13.1L917">"917ala> 131h/mds_client.c#L938" id.1L93o84al=ass="line" nam4.1L938o84al=ass="l a href="+codes_client" class="sref">cephssionala>, a href="o84alion" class="sreo84alf"efi> int a href="+code=drop"13a9ass="sr13"sref">argala>); 131h/mds_client.902" class="lin4" class="line" nam4.1L954">"954ala> a href="+c>heck">sesflush.ok, flushed"ssru 3 clall3 class="string"> id.1L943" classwant_flushcseqL863">"86ss="srwant_flushcseqf"efi> int a href="+code=drop"132lass="sr13sref">inodeala>; 132"/mds_client.c#L945"948" id.1L948" c#L=session" classc#Lode=ona int a href="+code=drop"13s1ass="sr13.1L920">"920ala> 132h/mds_client.c#L946" id.1L946" class="13s2ass="sr13s_cap_lockala>);1132h/mdsclient.c#L946" id.1L946" class="13s3ass="sr13"sref">nextala>;11323/mds_client.c#L881" id.1L857" class="line" nam4.1L857">"857ala> spa13s4ass="sr13ref">NULLala>) {n1324/mds_client.c#L881" id.1L887 cclasd underco"884al" class="line" nam4.1L857">"857ala> spa13s5ass="sr13\3" /spa3.,n132h/mds_client.c#L885" id.1L881ala>; spa3 class="comment"./* put_cap 13s6ass="sr13"sref">capala>);1132h/mdsvoid id.1L943" classref">rend="+c_release1" class="sref">sala>rend="+c_release1 leanup_cap_releases" class="sre_export_target_sessionsala>(struct a href="+code=ceph_mds_client" class="sref">cephrspa3 class="comment"./* put_cap 13s7ass="sr13" } 132h/mds_client.c#L887" 914" leanup_cap_releases" class="sref">cleanup_cap_releasesala>(struct a href="+code=ceph_mds_session" class="sref">ceph_mds_sei_client.c#L947" id.1L947" class=1328ass="sr13ssion_capsala>);11328/mds_cap_releases_done" class="sref">1329ass="sr13s_nr_capsala>--;1132h/mds_client.c#L951" id.1L951" class="lic ef="+code=ceph_mdseph_msg_put" class="srefona int a href="+code=drop"133lass="sr13"sref">NULLala>; 1331/mdsclient.c#L946" id.1L946" class="1331ass="sr13s held */ /spa3.1133h/mds_client.902" class="lin4" class="line" nam4.1L954">"954ala> a href="+crend="+c_release1 /a>( spa3 class="string"> id.1L943" classsession" class="sref">ceph_mds_sessionala>, a href="+code=session" class="sref">sgt; a href="+code=i_ceph_lock" cla1332ass="sr13 } 1332/mds_client.c#L954" id.1L95s" cle" nam4.1L921">"921ala> a href="+code=spin_lock" class="sref">spin_lockala>(& a href="+code=session" class="sref">sessionala>-> a href="+code=s_cap_lock" cl13"3ass="sr13>retala> < 0)nre>133h/mds_client.while (L902" class="linlist_emptyode=ceph_cap" clist_empty a href="+code=spin_lock" class="sref">spin_lockala>(& a href="+code=release1_done" class="sref">s="+c_release1_done&quo-is_cap_releases_done" class="sref">13"4ass="sr13="sref">out /a>; spin_lockala>(& a href="+code=release1_done" class="sref">s="+c_release1_done&quorspa3 class="comment"./* put_cap 13"5ass="sr13934ala> } 133h/mds_client.c#L925" 887" 914" leanup_cap_releases" class=" = id.1L943" classlist_h"ad> list_h"adala>-> a href="+code=s_cap_lock" cl1336ass="sr13ef">retala> = 0;1133h/mds_client.c#L91111id.1L943" classlist_del_iniclass="line" namlist_del_inic a href="+codeseph_msg_put" class="srefssionala>, a href="list_h"ad> list_h"adala>-> a href="+code=s_cap_lock" cl1337ass="sr13="sref">out /a>:1"938ala> a href="+code=spi=spin_lock" class="sref">spin_lockala>(& a href="+code=session" class="sref">sessionala>-> a href="+code=s_cap_lock" cl13"8ass="sr13"sref">NULLala>; 133h/mds_client.c#L868" a href="+codeseph_msg_put" class="srefssionala>, a href="hdreph_inode" clashdrf"ef.c#L954" id.1L95froor_len" class="sref">froor_lensrefceph_inode_infoala>pu_to_le32886">"886ala>st>pu_to_le32954"> a href="+codeseph_msg_put" class="srefssionala>, a href="froort_target_sessiofroorsref.c#L954" id.1L95 ov_len" class="sref"> ov_lenala>-> a href="+code=s_cap_lock" cl1339ass="sr13s_cap_lockala>);1133h/mds_client.c#L944" 902" class="lin4" class="line" nam4.1L954">"954ala> a href="+crend="+c_release1 /a>( spa3a">dout class="string"> id.1L943" classsession" class="sref">ceph_mds_sessionala>, a href="+code=session" class="sref">s>Lstruct a href=seph_msg_put" class="sref-> a href="+code=s_cap_lock" cl134lass="sr13.1L939">"939ala> 134"/mds_client.c#L943" cap_releases" class=con>rend con>rend a href="+code=spi=spin_lock" class="sref">spin_lockala>(& a href="+co_lock" class="srefco_lf">s>Lstruct a href=seph_msg_put" class="sref-> a href="+code=s_cap_lock" cl1341ass="sr13>last_inodeala>) la>134h/mds_client.c#L913" id.1L943" classs" cle" nam4.1L921">"921ala> a href="+code=spin_lock" class="sref">spin_lockala>(& a href="+code=session" class="sref">sessionala>-> a href="+code=s_cap_lock" cl1342ass="sr13last_inodeala>);1134h/mds_client._client.c#L946" id.1L946" class="1343ass="sr13ef">old_capala>)1134h/mds_client.52" id.1L952" cs" class="line" nam4.1L938">"938ala> a href="+code=spi=spin_lock" class="sref">spin_lockala>(& a href="+code=session" class="sref">sessionala>-> a href="+code=s_cap_lock" cl1344ass="sr13f">old_capala>); >134h/mds_client.c#L946" id.1L946" class="1345ass="sr13.1L944">"944ala> 134h/mdsclient.c#L946" id.1L946" class="1346ass="sr13="sref">retala>; discard="+c_release1 leanup_cap_releases" class="sre_export_target_sessionsala>(struct a href="+code=ceph_mds_client" class="sref">cephrspa3 class="comment"./* put_cap 1347ass="sr131L946">"946ala>} 134h/mds_client.c#L887" 914" " leanup_cap_releases" class="sref">cleanup_cap_releasesala>(struct a href="+code=ceph_mds_session" class="sref">ceph_mds_sei_client.c#L947" id.1L947" class=1348ass="sr13.1L947">"947ala> 1348/mds_cap_releases_done" class="sref">1349ass="sr13="sref">capala>,nargala>)n h"ad t; a href="+code=i_ceph_lock" cla1351ass="sr131L950">"950ala>{n135h/mds_client.unsigned id.1L943" classnumode=ceph_cap" cnum&quossionala>-> a href="+code=s_md1352ass="sr13ref">inodeala>); 135h/mdsclient.c#L946" id.1L946" class="1353ass="sr13f">dropala> = 0;1>135h/mds_client.52" id.1L952" c4" class="line" nam4.1L954">"954ala> a href="+cdiscard="+c_release1 /a>( spa3 class="string"> id.1L943" classsession" class="sref">ceph_mds_sessionala>, a href="+code=session" class="sref">sgt; a href="+code=i_ceph_lock" cla1354ass="sr13.1L953">"953ala>1135h/mds_client.id.1L943" classs" cle" nam4.1L921">"921ala> a href="+code=spin_lock" class="sref">spin_lockala>(& a href="+code=session" class="sref">sessionala>-> a href="+code=s_cap_lock" cl1355ass="sr13\3" /spa3.,n135h/mdsclient.c#L946" id.1L946" class="1356ass="sr13>vfs_inodeala>);1vf>135h/mds_client._client.c#L881" id.1L857 zero .1L sse8in-progr">s mephage81ala>; spa3 class="comment"./* put_cap 1357ass="sr13_ceph_lockala>);1135h/mds_client.c#L957" id.1L95seph_msg_put" class="srefceph_inode_infoalalist_first_ensryode=ceph_cap" clist_first_ensry a href="+code=spin_lock" class="sref">spin_lockala>(& a href="+code=release1" class="sref">s="+c_release1cephrspa3 class="comment"./* put_cap 1358ass="sr13ph/mds_client>-> a h 13ph/>135h/mds_client.c#L868" id.1L867client.c#L951" id.1L951" class="lic = id.1L943" classlist_h"ad> list_h"adala>-> a href="+code=s_cap_lock" cl1359ass="sr13s sessionalspa3.1135h/mds_client.902" class="linh"ad> h"ad a href="+codseph_msg_put" class="srefssionala>, a href="froort_target_sessiofroorsref.c#L954" id.1L95 ov_baset_target_sessio ov_base&quossionala>-> a href="+code=s_md136lass="sr13ment". */ /spa3.1136"/mds_client.id.1L943" classnumode=ceph_cap" cnum&quoceph_inode_infoalale32_to_cpu> le32_to_cpuode=ia>-> a href=h"ad> h"ad ssionala>, a href="numode=ceph_cap" cnum&quo-> a href="+code=s_cap_lock" cl1361ass="sr13ef">sessionala>)n136h/mds_client.902" class="lin4" class="line" nam4.1L954">"954ala> a href="+cdiscard="+c_release1 /a>( spa3a">dout l>douu class="string"> id.1L943" classsession" class="sref">ceph_mds_sessionala>, a href="+code=session" class="sref">s>Lstruct a href=seph_msg_put" class="sref,e52" id.1L952" cnumode=ceph_cap" cnum&quo-> a href="+code=s_cap_lock" cl1362ass="sr131L861">"861ala>{n1362/mds_client.c#L954" id.1L95h"ad> h"ad ssionala>, a href="numode=ceph_cap" cnum&quoceph_inode_infoala>pu_to_le32886">"886ala>st>pu_to_le32954">0"> int a href="+code=drop"13m3ass="sr13="sref">msgala>;1sessionala>, a href="+cnumcode=release1" class="sref">s=numcode=release1ode= +eph_inode_infoalanumode=ceph_cap" cnum&quossionala>-> a href="+code=s_md13m4ass="sr13.1L863">"863ala>1136h/mdssionala>-> a href="+code=s_md13m5ass="sr13s_cap_lockala>);1136h/mds_client._client.c#L881" id.1L857 requeue 1" pleted mephages81ala>; spa3 class="comment"./* put_cap 13m6ass="sr13releasesala>)) {n136h/mds_client.while (L902" class="linlist_emptyode=ceph_cap" clist_empty a href="+code=spin_lock" class="sref">spin_lockala>(& a href="+code=release1_done" class="sref">s="+c_release1_done&quo-is_cap_releases_done" class="sref">13m7ass="sr13ap_releasesala>,n136h/mds_client.c#L887" 52" id.1L952" cseph_msg_put" class="srefceph_inode_infoalalist_first_ensryode=ceph_cap" clist_first_ensry a href="+code=spin_lock" class="sref">spin_lockala>(& a href="+code=release1_done" class="sref">s="+c_release1_done&quorspa3 class="comment"./* put_cap 1368ass="sr13>list_headala>);1li>136h/mds_client.c#L868" id.1L867client.t.c#L951" id.1L951" class="lic = id.1L943" classlist_h"ad> list_h"adala>-> a href="+code=s_cap_lock" cl13m9ass="sr13>list_headala>);1li>136h/mds_client.c#L944" 902" class="linlist_del_iniclass="line" namlist_del_inic a href="+codeseph_msg_put" class="srefssionala>, a href="list_h"ad> list_h"adala>-> a href="+code=s_cap_lock" cl137lass="sr13"sref">msgala>);11371/mdsclient.c#L946" id.1L946" class="1371ass="sr13870ala> } 137h/mds_client.c#L941" id.1L941" classh"ad> h"ad a href="+codseph_msg_put" class="srefssionala>, a href="froort_target_sessiofroorsref.c#L954" id.1L95 ov_baset_target_sessio ov_base&quossionala>-> a href="+code=s_md1372ass="sr13ses_doneala>)) {n137h/mds_client.c#L872" 52" id.1L952" cnumode=ceph_cap" cnum&quoceph_inode_infoalale32_to_cpu> le32_to_cpuode=ia>-> a href=h"ad> h"ad ssionala>, a href="numode=ceph_cap" cnum&quo-> a href="+code=s_cap_lock" cl1373ass="sr13leases_doneala>,n137h/mds_client.c#L943" c#L957" id.1L954" class="line" nam4.1L954">"954ala> a href="+cdiscard="+c_release1 /a>( spa3a">dout l>douu class="string"> id.1L943" classsession" class="sref">ceph_mds_sessionala>, a href="+code=session" class="sref">s>Lstruct a href=seph_msg_put" class="sref,gt; a href="+code=s_cap_lock" cl1374ass="sr13>list_headala>);1li>137h/mds_client.c#L924" ala>, a href="numode=ceph_cap" cnum&quo-> a href="+code=s_cap_lock" cl1375ass="sr13>list_headala>);1li>137h/mds_client.c#L925" c#L954" id.1L95f="+code=session" class="sref">sessionala>, a href="+cnumcode=release1" class="sref">s=numcode=release1ode= +eph_inode_infoalanumode=ceph_cap" cnum&quossionala>-> a href="+code=s_md1376ass="sr13"sref">msgala>);1137h/mds_client.c#L91111id.1L943" classh"ad> h"ad ssionala>, a href="numode=ceph_cap" cnum&quoceph_inode_infoala>pu_to_le32886">"886ala>st>pu_to_le32954">0"> int a href="+code=drop"1377ass="sr13876ala> } 137h/mds_client.c#L887" 52" id.1L952" cseph_msg_put" class="srefssionala>, a href="froort_target_sessiofroorsref.c#L954" id.1L95 ov_len" class="sref"> ov_lenala>cepsizeof(f="+code=ceph_mdh"ad> h"ad "> int a href="+code=drop"1378ass="sr13s_cap_lockala>);1137h/mds_client.c#L868" a href="+codelist_add> list_add a href="+codeseph_msg_put" class="srefssionala>, a href="list_h"ad> list_h"adala>, a href="+code=spin_lock" class="sref">spin_lockala>(& a href="+code=release1" class="sref">s="+c_release1od "> int a href="+code=drop"1379ass="sr131L878">"878ala>} 137h/mds_client._client.c#L946" id.1L946" class="138lass="sr13.1L879">"879ala> 1381/mdsclient.c#L946" id.1L946" class="1381ass="sr13mment"./* /spa3.1138h/mds_client.902" class="lins" class="line" nam4.1L938">"938ala> a href="+code=spi=spin_lock" class="sref">spin_lockala>(& a href="+code=session" class="sref">sessionala>-> a href="+code=s_cap_lock" cl1382ass="sr13ion, with /spa3.11382/mds_client.c#L946" id.1L946" class="1383ass="sr13ve_cap(). /spa3.1138h/mdsclient.c#L946" id.1L946" class="1384ass="sr13mment". * /spa3.11384/mds_client.c#L881" id.1L857" class="line" nam4.1L857">"857ala> spa13.5ass="sr13 s_mutex. /spa3.1138h/mds_client.c#L885" id.1L881 requests" class="line" nam4.1L857">"857ala> spa13.6ass="sr13ment". */ /spa3.1138h/mds_client.c#L884" id.1L884ala>; spa3 class="comment"./* put_cap 1387ass="sr13ef">sessionala>,n138h/mds_client.c#L947" id.1L947" class=1388ass="sr13>ceph_capala> *,nce>138h/mds_client.c#L881" id.1L857" class="line" nam4.1L857">"857ala> spa13.9ass="sr13="sref">argala>)n" request." class="line" nam4.1L857">"857ala> spa139lass="sr131L889">"889ala>{n131L/mds_client.c#L884" id.1L884ala>; spa3 class="comment"./* put_cap 1391ass="sr13ss="sref">pala>; 139h/mdsc#L951" id.1L951" class="licephrequestt_target_sessionsala>(strequest efspa3 class="comment"./* put_cap 1392ass="sr13="sref">capala>; cephr.c#L952" id.1L952" copient" class="sropcephr.c#L952" id.1L952" cmoef="+code=inode" moefala>-spa3 class="comment"./* put_cap 1393ass="sr13"sref">NULLala>; 139h/mds_cap_releases_done" class="sref">1394ass="sr13"sref">NULLala>; 139h/mds_client.c#L951" id.1L951" class="licephrequestt_target_sessionsala>(strequest ef id.1L951" clasreqL863">"86ss="srreqf">s eph_inode_infoalakzalsioL863">"86ss="srkzalsio lizeof(f="+code=ceph_mdreqL863">"86ss="srreqf">s)>Lstruct a href=GFP_NOFS GFP_NOFSsref-> a href="+code=s_cap_lock" cl1395ass="sr13="sref">retala>;1"895ala>1139h/mds_client.id.1L902" class="linc#qL863">"86ss="srreqf">s)client.c#L946" id.1L946" class="1397ass="sr13ref">s_mdsala>);1139h/mds_client.c#L887" c#L945"948" id.1L948" ERR_PTRL863">"86ss="srERR_PTR -948" id.1L948" ENOMEML863">"86ss="srENOMEMsref-> a href="+code=s_cap_lock" cl1398ass="sr13s_cap_lockala>);1131h/mdsgt; a href="+code=s_cap_lock" cl1399ass="sr13"sref">nextala>;1139h/mds_client.902" class="lino84al=iniclass="line" namo84al=inic a href="+code=spic#qL863">"86ss="srreqf">skala>(& a href="r_fillco84alion" class="srer_fillco84alsref-> a href="+code=s_cap_lock" cl14class="sr14clasf">nextala>;1140"/mds_client.id.1L943" classc#qL863">"86ss="srreqf">skala>(& a href="r_s_client" class="srr_s_cl a href="+cods_client" class="sref">ceph> a href="+code=s_cap_lock" cl14c1ass="sr14cs="sref">pala>; 140h/mds_client.902" class="linc#qL863">"86ss="srreqf">skala>(& a href="r_startedeph_inode" clasr_started a href="+codjiffie1" class="sref">jiffie1ceph> a href="+code=s_cap_lock" cl14c2ass="sr14c"sref">capala>; 1402/mds_client.c#L954" id.1L95c#qL863">"86ss="srreqf">skala>(& a href="r_rerend=ode=session" classr_rerend=ode -1> int a href="+code=drop"14c3ass="sr14csref">NULLala>; 140h/mds_client.52" id.1L952" cINIT_LIST_HEAD=session" classINIT_LIST_HEAD a href="+code=spic#qL863">"86ss="srreqf">skala>(& a href="r_unsafe_dir_itemode=ceph_cap" cr_unsafe_dir_itemsref-> a href="+code=s_cap_lock" cl14c4ass="sr14csref">NULLala>; 140h/mds_client.id.1L943" classc#qL863">"86ss="srreqf">skala>(& a href="r_fmoef="+code=inode" r_fmoef -1> int a href="+code=drop"14c5ass="sr14c"sref">retala>;1140h/mds_client.h_inode_infoalakode=iniclass="line" namkode=inic a href="+code=spic#qL863">"86ss="srreqf">skala>(& a href="r_kode="+code=inode" r_kodesref-> a href="+code=s_cap_lock" cl14c6ass="sr14c1L895">"895ala>1140h/mds_client.52" id.1L952" cINIT_LIST_HEAD=session" classINIT_LIST_HEAD a href="+code=spic#qL863">"86ss="srreqf">skala>(& a href="r_waiclass="line" namr_waicsref-> a href="+code=s_cap_lock" cl14c7ass="sr14cef">s_mdsala>);1140h/mds_client.c#L957" id.1L95inic_1" pletn_lock" class="sreinic_1" pletn_l a href="+code=spic#qL863">"86ss="srreqf">skala>(& a href="r_1" pletn_lock" class="srer_1" pletn_l -> a href="+code=s_cap_lock" cl14c8ass="sr14c_cap_lockala>);1140h/mds_client.c#L938" id.1L93inic_1" pletn_lock" class="sreinic_1" pletn_l a href="+code=spic#qL863">"86ss="srreqf">skala>(& a href="r_safe_1" pletn_lock" class="srer_safe_1" pletn_l -> a href="+code=s_cap_lock" cl14c9ass="sr14csref">nextala>;1140h/mds_client.902" class="linINIT_LIST_HEAD=session" classINIT_LIST_HEAD a href="+code=spic#qL863">"86ss="srreqf">skala>(& a href="r_unsafe_itemode=ceph_cap" cr_unsafe_itemsref-> a href="+code=s_cap_lock" cl141lass="sr14ast_inodeala>) {n1411/mdsclient.c#L946" id.1L946" class="1411ass="sr14last_inodeala>);1141h/mds_client.902" class="linc#qL863">"86ss="srreqf">skala>(& a href="r_opient" class="srr_op a href="+codopient" class="sropceph> a href="+code=s_cap_lock" cl1412ass="sr14"sref">NULLala>; 1412/mds_client.c#L954" id.1L95c#qL863">"86ss="srreqf">skala>(& a href="r_direct_ ief="+code=inode" r_direct_ ief a href="+codsoef="+code=inode" moefala>> a href="+code=s_cap_lock" cl1413ass="sr14 } 141h/mds_client.c#L945"948" id.1L948" c#qL863">"86ss="srreqf">s> a href="+code=s_cap_lock" cl1414ass="sr14">old_capala>) {no>141h/mds_client.c#L946" id.1L946" class="14a5ass="sr14f">old_capala>); >141h/mdsclient.c#L946" id.1L946" class="1416ass="sr14"sref">NULLala>; 141h/mds_client.c#L884" id.1L857" class="line" nam4.1L857">"857ala> spa14a7ass="sr14 } 141h/mds_client.c#L857" id.1L8ap.c#L945"oldest (lowest) request, tid in request tree, 0.id.none." class="line" nam4.1L857">"857ala> spa14a8ass="sr14.1L917">"917ala> 141h/mds_client.c#L881" id.1L881" class="line" nam4.1L857">"857ala> spa14a9ass="sr14"sref">argala>); 141h/mds_client.c#L885" id.1L881 cclasd undercef">kala>o84al." class="line" nam4.1L857">"857ala> spa142lass="sr14sref">inodeala>; 142L/mds_client.c#L884" id.1L884ala>; spa3 class="comment"./* put_cap 14s1ass="sr14.1L920">"920ala> 142h/mdsc#lientc#L951" id.1L951" class="licephrequestt_target_sessionsala>(strequest ef id.1L951" clas__geteoldest_c#qL863">"86ss="sr__geteoldest_c#q leanup_cap_releases" class="sre_export_target_sessionsala>(struct a href="+code=ceph_mds_client" class="sref">ceph)client.c#L946" id.1L946" class="14s2ass="sr14s_cap_lockala>);1142h/mds_cap_releases_done" class="sref">14s3ass="sr14"sref">nextala>;1142h/mds_client.c#L942" id.1L942" cRB_EMPTY_ROOTient" class="srRB_EMPTY_ROOT a href="+codes_client" class="sref">cephssionala>, a href="request_treeL863">"86ss="srrequest_treeceph))client.c#L946" id.1L946" class="14s4ass="sr14ref">NULLala>) {n142h/mds_client.c#L924" c#L945"948" id.1L948" NULLL863">"86ss="srNULLf">s> a href="+code=s_cap_lock" cl14s5ass="sr14\3" /spa3.,n1425/mds_client.c#L945"948" id.1L948" cb_ensryode=ceph_cap" ccb_ensry 948" id.1L948" cb_firstode=ceph_cap" ccb_first a href="+codes_client" class="sref">cephssionala>, a href="request_treeL863">"86ss="srrequest_treeceph),gt; a href="+code=s_cap_lock" cl14s6ass="sr14"sref">capala>);1142h/mds_client.c#L9111111111111c#L951" id.1L951" class="licephrequestt_target_sessionsala>(strequest ="sref">cbala>( ac_href="+code=inode" c_hrefsref-> a href="+code=s_cap_lock" cl14s7ass="sr14" } 142h/mds_client.c#L946" id.1L946" class="1428ass="sr14ssion_capsala>);1142h/mdsgt; a href="+code=s_cap_lock" cl1429ass="sr14s_nr_capsala>--;1142h/mdsc#lientsref">cbala>( au.1L863">"86ss="sru6h/mds_c#L957" id.1L95__geteoldest_tidL863">"86ss="sr__geteoldest_tid leanup_cap_releases" class="sre_export_target_sessionsala>(struct a href="+code=ceph_mds_client" class="sref">ceph)client.c#L946" id.1L946" class="143lass="sr14"sref">NULLala>; 1431/mds_cap_releases_done" class="sref">1431ass="sr14s held */ /spa3.1143h/mds_client.c#L951" id.1L951" class="licephrequestt_target_sessionsala>(strequest ef id.1L951" clasreqL863">"86ss="srreqf">s eph_inode_infoala__geteoldest_c#qL863">"86ss="sr__geteoldest_c#q ="+code=ceph_mds_client" class="sref">ceph)> a href="+code=s_cap_lock" cl1432ass="sr14 } 143h/mdsclient.c#L946" id.1L946" class="14"3ass="sr14>retala> < 0)nre>143h/mds_client.c#L942" id.1L942" cc#qL863">"86ss="srreqf">s)client.c#L946" id.1L946" class="14"4ass="sr14="sref">out /a>; "86ss="srreqf">skala>(& a href="r_tidL863">"86ss="srr_tid > a href="+code=s_cap_lock" cl1435ass="sr14934ala> } 1435/mds_client.c#L945"a> int a href="+code=drop"1436ass="sr14ef">retala> = 0;1143h/mds_client.c#L946" id.1L946" class="1437ass="sr14="sref">out /a>:1NULLala>; 143h/mds_client.c#L881" id.1L857" class="line" nam4.1L857">"857ala> spa1439ass="sr14s_cap_lockala>);1143h/mds_client.c#L885" id.1L881 Build a densry"st9;s path. Alsioate on heap; cclasrceust kfree. Based class="line" nam4.1L857">"857ala> spa144lass="sr14.1L939">"939ala> 144L/mds_client.c#L884" id.1L884 on build_path_from_densry in m4.1im4.dir.c." class="line" nam4.1L857">"857ala> spa1441ass="sr14>last_inodeala>) la>144h/mds_client.c#L881" id.1L881" class="line" nam4.1L857">"857ala> spa1442ass="sr14last_inodeala>);1144h/mds_client.c#L884" id.1L884 If @stop_on_hrsnap, generate path.c#llieve to sse8first.non-snapped class="line" nam4.1L857">"857ala> spa1443ass="sr14ef">old_capala>)11443/mds_client.c#L881" id.1L884 class." class="line" nam4.1L857">"857ala> spa1444ass="sr14f">old_capala>); >1444/mds_client.c#L881" id.1L887" class="line" nam4.1L857">"857ala> spa1445ass="sr14.1L944">"944ala> 144h/mds_client.c#L885" id.1L881 Enref= hidden .snap dirs as a double /, i.s." class="line" nam4.1L857">"857ala> spa1446ass="sr14="sref">retala>; .foo//bar" class="line" nam4.1L857">"857ala> spa1447ass="sr141L946">"946ala>} 144h/mds_client.c#L857" id.1L8apala>; spa3 class="comment"./* put_cap 1448ass="sr14.1L947">"947ala> 1448/mdschar f id.1L951" clasnsala>(sc_build_patht_target_sessionsala>(sc_build_path leanup_cap_releases" cdensryode=ceph_cap" cdensry f id.1L951" clasdensryode=ceph_cap" cdensry r.c#L9f id.1L951" clasplen" class="sref">plenala>="sref">cbala>( au.1L863">"86ss="sru6h/mds_f id.1L951" clasbaset_target_sessiobase&quo,gt; a href="+code=s_cap_lock" cl1449ass="sr14="sref">capala>,ns)client.c#L946" id.1L946" class="145lass="sr14="sref">argala>)n1451ass="sr141L950">"950ala>{n145h/mds_client.c#L951" id.1L951" clasdensryode=ceph_cap" cdensry f id.1L951" clastempt_target_sessiotemp > a href="+code=s_cap_lock" cl1452ass="sr14ref">inodeala>); 1452/mds_client.char f id.1L951" claspatht_target_sessiopath > a href="+code=s_cap_lock" cl1453ass="sr14f">dropala> = 0;1>145h/mds_client.c#L952" id.1L952" clen" class="sref">lenala>="sref">cbala>( apoe=session" classpoe > a href="+code=s_cap_lock" cl1454ass="sr14.1L953">"953ala>1145h/mds_client.unsigned id.1L943" classseqL863">"86ss="srseqf">s> a href="+code=s_cap_lock" cl1455ass="sr14\3" /spa3.,n145h/mdsclient.c#L946" id.1L946" class="1456ass="sr14>vfs_inodeala>);1vf>145h/mds_client.id.1 id.1L951" clasdensryode=ceph_cap" cdensry =eph_inode_infoalaNULLL863">"86ss="srNULLf">s)client.c#L946" id.1L946" class="1457ass="sr14_ceph_lockala>);1145h/mds_client.c#L887" c#L945"948" id.1L948" ERR_PTRL863">"86ss="srERR_PTR -948" id.1L948" EINVALL863">"86ss="srEINVALceph)> a href="+code=s_cap_lock" cl1458ass="sr14ph/mds_client>-> a h 14ph/>145h/mdsgt; a href="+code=s_cap_lock" cl1459ass="sr14s sessionalspa3.1145h/mds948" id.1L948" c#sryode=ceph_cap" ccesry :gt; a href="+code=s_cap_lock" cl146lass="sr14ment". */ /spa3.1146"/mds_client.id.1L943" classlen" class="sref">lenala> a> int a href="+code=drop"1461ass="sr14ef">sessionala>)n146h/mds_client.902" class="linseqL863">"86ss="srseqf">s eph_inode_infoalareadcseqbegilock" class="srereadcseqbegil a href="+code=spic#"861ala>{n1462/mds_client.c#L954" id.1L95rcu_readcsession" class="sreccu_readcsess )> a href="+code=s_cap_lock" cl1463ass="sr14="sref">msgala>;114m4ass="sr14.1L863">"863ala>1146h/mds_client.c#L924" c#L951" id.1L951" classs="sref">remove_session_caps_cbala>(struct a href="+code=inode" class="sr ep="+code=ceph_mdtempt_target_sessiotemp kala>(& a href="da href="+code=ci" clada hrefode=> a href="+code=s_cap_lock" cl14m5ass="sr14s_cap_lockala>);1146h/mds_client.c#L925" id.1 id.1L951" clas href="+code=inode" class="sr a a id.1L943" classref">rnapt_target_sessioref">rnap ="+code=ceph_md href="+code=inode" class="sr) =eph_inode_infoalaCEPH_SNAPDIRL863">"86ss="srCEPH_SNAPDIRf">s)client.c#L946" id.1L946" class="14m6ass="sr14releasesala>)) {n146h/mds_client.c#L9111111111111id.1L943" classlen" class="sref">lenala>++;t._client.c#L881" id.1L857 s.c#h onlyapala>; spa3 class="comment"./* put_cap 14m7ass="sr14ap_releasesala>,n146h/mds_client.c#L887" else id.1 id.1L951" classtop_on_hrsnapt_target_sessiostop_on_hrsnapf">s a a id.1L943" class href="+code=inode" class="sr a a spa3 class="comment"./* put_cap 14m8ass="sr14>list_headala>);1li>146h/mds_client.c#L868" id.1L867cid.1L943" classref">rnapt_target_sessioref">rnap ="+code=ceph_md href="+code=inode" class="sr) =eph_inode_infoalaCEPH_NOSNAPL863">"86ss="srCEPH_NOSNAPf">s)client.c#L946" id.1L946" class="14m9ass="sr14>list_headala>);1li>146h/mds_client.c#L944" break spa3 class="comment"./* put_cap 147lass="sr14"sref">msgala>);1147"/mds_client.c#L943" elsespa3 class="comment"./* put_cap 1471ass="sr14870ala> } 147h/mds_client.c#L941" 11111111id.1L943" classlen" class="sref">lenala> +ep1 +p="+code=ceph_mdtempt_target_sessiotemp kala>(& a href="dalenala> spa3 class="comment"./* put_cap 1472ass="sr14ses_doneala>)) {n147h/mds_client.c#L872" 52" id.1L952" ctempt_target_sessiotemp eph_inode_infoalatempt_target_sessiotemp kala>(& a href="daparport_target_sessiodaparporala> spa3 class="comment"./* put_cap 1473ass="sr14leases_doneala>,n147h/mds_client._client.c#L946" id.1L946" class="1474ass="sr14>list_headala>);1li>147h/mds_client.id.1L943" classccu_readcass="line" nam4.1L938ccu_readcass="l )> a href="+code=s_cap_lock" cl1475ass="sr14>list_headala>);1li>147h/mds_client.id.1 id.1L951" claslen" class="sref">lenala>)client.c#L946" id.1L946" class="1476ass="sr14"sref">msgala>);1147h/mds_client.c#L91111id.1L943" classlen" class="sref">lenala>--;t._client.c#L881" id.1L857 no leading "st9;/"st9;apala>; spa3 class="comment"./* put_cap 1477ass="sr14876ala> } 147h/mds_client.c#L947" id.1L947" class=1478ass="sr14s_cap_lockala>);1147h/mds_client.c#L938" id.1L93patht_target_sessiopath eph_inode_infoalakmalsioL863">"86ss="srkmalsio id.1L943" classlen" class="sref">lenala>+1>Lstruct a href=GFP_NOFS GFP_NOFSsref-> a href="+code=s_cap_lock" cl1479ass="sr141L878">"878ala>} 147h/mds_client.id.1 id.1L951" claspatht_target_sessiopath eeph_inode_infoalaNULLL863">"86ss="srNULLf">s)client.c#L946" id.1L946" class="148lass="sr14.1L879">"879ala> 148"/mds_client.c#L943" c#L945"948" id.1L948" ERR_PTRL863">"86ss="srERR_PTR -948" id.1L948" ENOMEML863">"86ss="srENOMEMsref-> a href="+code=s_cap_lock" cl1481ass="sr14mment"./* /spa3.1148h/mds_client.902" class="linpoe=session" classpoe ceph_inode_infoalalen" class="sref">lenala> spa3 class="comment"./* put_cap 1482ass="sr14ion, with /spa3.11482/mds_client.c#L954" id.1L95patht_target_sessiopath [902" class="linpoe=session" classpoe ] a>t._client.c#L881" id.1L857 trailing nullapala>; spa3 class="comment"./* put_cap 1483ass="sr14ve_cap(). /spa3.1148h/mds_client.52" id.1L952" crcu_readcsession" class="sreccu_readcsess )> a href="+code=s_cap_lock" cl1484ass="sr14mment". * /spa3.1148h/mds_client.for.1 id.1L951" clastempt_target_sessiotemp eph_inode_infoaladensryode=ceph_cap" cdensry ; L902" class="linIS_ROOTient" class="srIS_ROOT ="+code=ceph_mdtempt_target_sessiotemp ) a a id.1L943" classpoe=session" classpoe c! a>tis_cap_releases_done" class="sref">14.5ass="sr14 s_mutex. /spa3.1148h/mds_client.c#L925" c#L951" id.1L951" classs="sref">remove_session_caps_cbala>(struct a href="+code=inode" class="sr> a href="+code=s_cap_lock" cl1486ass="sr14ment". */ /spa3.1148h/mdsgt; a href="+code=s_cap_lock" cl1487ass="sr14ef">sessionala>,n148h/mds_client.c#L887" 52" id.1L952" cs" cle" nam4.1L921">"921ala> a href="+codetempt_target_sessiotemp kala>(& a href="dae" nam4.1L921">"921d=sessceph)> a href="+code=s_cap_lock" cl1488ass="sr14>ceph_capala> *,nce>148h/mds_client.c#L868" a href="+code href="+code=inode" class="sr ep="+code=ceph_mdtempt_target_sessiotemp kala>(& a href="da href="+code=ci" clada hrefode=> a href="+code=s_cap_lock" cl14.9ass="sr14="sref">argala>)nrnapt_target_sessioref">rnap ="+code=ceph_md href="+code=inode" class="sr) =eph_inode_infoalaCEPH_SNAPDIRL863">"86ss="srCEPH_SNAPDIRf">s)s_cap_releases_done" class="sref">149lass="sr141L889">"889ala>{n149"/mds_client.c#L943" c#L868" a href="+code4" class="line" nam4.1L954">"954ala> a href="+cbuild_path path+( spa3:a">dout SNAPDIR class="string">cap_releases_done" class="sref">1491ass="sr14ss="sref">pala>; 149h/mds_client.c#L941" 11111111ient.902" class="linpoe=session" classpoe >Lstruct a href=tempt_target_sessiotemp );cap_releases_done" class="sref">1492ass="sr14="sref">capala>; s a a id.1L943" class href="+code=inode" class="sr a a spa3 class="comment"./* put_cap 1493ass="sr14"sref">NULLala>; 149h/mds_client.c#L943" 111111ient.902" class="linref">rnapt_target_sessioref">rnap ="+code=ceph_md href="+code=inode" class="sr) =eph_inode_infoalaCEPH_NOSNAPL863">"86ss="srCEPH_NOSNAPf">s)s_cap_releases_done" class="sref">1494ass="sr14"sref">NULLala>; 149h/mds_client.c#L924" 111ient.902" class="lins" class="line" nam4.1L938">"938ala> a href="+code=spitempt_target_sessiotemp kala>(& a href="dae" nam4.1L921">"921d=sessceph)> a href="+code=s_cap_lock" cl1495ass="sr14="sref">retala>;1"895ala>1149h/mds_client.c#L91111} else _cap_releases_done" class="sref">1497ass="sr14ref">s_mdsala>);1149h/mds_client.c#L887" 111ient.902" class="linpoe=session" classpoe -ep="+code=ceph_mdtempt_target_sessiotemp kala>(& a href="dalenala> spa3 class="comment"./* put_cap 1498ass="sr14s_cap_lockala>);1149h/mds_client.c#L868" id.1L867id.1 id.1L951" claspoe=session" classpoe < 0)s_cap_releases_done" class="sref">1499ass="sr14"sref">nextala>;1149h/mds_client.c#L944" ient.902" class="lins" class="line" nam4.1L938">"938ala> a href="+code=spitempt_target_sessiotemp kala>(& a href="dae" nam4.1L921">"921d=sessceph)> a href="+code=s_cap_lock" cl15class="sr15clasf">nextala>;1150"/mds_client.c#L943" c#L868" 887" 914break spa3 class="comment"./* put_cap 15c1ass="sr15cs="sref">pala>; 150h/mds_client.c#L941" 11111111_client.c#L946" id.1L946" class="15c2ass="sr15c"sref">capala>; 150h/mds_client.c#L872" ient.902" class="linstrncpyode=ceph_cap" cstrncpy ="+code=ceph_mdpatht_target_sessiopath +p="+code=ceph_mdpoe=session" classpoe >Lstruct a href=tempt_target_sessiotemp kala>(& a href="dacap_releases_done" class="sref">15c3ass="sr15csref">NULLala>; 150h/mds_client.c#L943" 111111ient.ient.902" class="lintempt_target_sessiotemp kala>(& a href="dalenala>)> a href="+code=s_cap_lock" cl15c4ass="sr15csref">NULLala>; 150h/mds_client.c#L924" _client.c#L946" id.1L946" class="15c5ass="sr15c"sref">retala>;1150h/mds_client.c#L925" 902" class="lins" class="line" nam4.1L938">"938ala> a href="+code=spitempt_target_sessiotemp kala>(& a href="dae" nam4.1L921">"921d=sessceph)> a href="+code=s_cap_lock" cl15c6ass="sr15c1L895">"895ala>1150h/mds_client.c#L91111id.1 id.1L951" claspoe=session" classpoe )client.c#L946" id.1L946" class="15c7ass="sr15cef">s_mdsala>);1150h/mds_client.c#L887" 111ient.902" class="linpatht_target_sessiopath [--948" id.1L948" poe=session" classpoe ] "954ala> a hrest9;/"st9;string"> a href="+code=s_cap_lock" cl15c8ass="sr15c_cap_lockala>);1150h/mds_client.c#L868" a href="+codetempt_target_sessiotemp eph_inode_infoalatempt_target_sessiotemp kala>(& a href="daparport_target_sessiodaparporala> spa3 class="comment"./* put_cap 15c9ass="sr15csref">nextala>;1150h/mds_client._client.c#L946" id.1L946" class="151lass="sr15ast_inodeala>) {n151"/mds_client.id.1L943" classccu_readcass="line" nam4.1L938ccu_readcass="l )> a href="+code=s_cap_lock" cl1511ass="sr15last_inodeala>);1151h/mds_client.id.1 id.1L951" claspoe=session" classpoe ! a ||ph_inode_infoalareadcseqc#sryode=ceph_cap" cceadcseqc#sry a href="+code=spic#"86ss="srseqf">s-is_cap_releases_done" class="sref">1512ass="sr15"sref">NULLala>; 151h/mds_client.c#L872" 52" id.1L952" cpr_err=session" classpr_err954">"954ala> a href="+cbuild_path did not end path.lookup where lass="string"cap_releases_done" class="sref">1513ass="sr15 } 151h/mds_client.c#L943" 111111i"954ala> a href="+cexpected, doud, poe isa">doud class="string"> id.1L943" classlen" class="sref">lenala>="sref">cbala>( apoe=session" classpoe )> a href="+code=s_cap_lock" cl1514ass="sr15">old_capala>) {no>151h/mds_client.c#L924" _client.c#L881" id.1L857 presumably thie isaonlyapoesible id.racing with.astring"cap_releases_done" class="sref">1515ass="sr15f">old_capala>); >151h/mds_client.c#L885" id.1L88888888888888888888c#1516ass="sr15"sref">NULLala>; 151h/mds_client.c#L884" id.1L88888888888888888888sessasse8densries above us to prevpor thie, butstring"cap_releases_done" class="sref">1517ass="sr15 } 151h/mds_client.c#L857" id.1L8a888888888888888888c#srying should be harmless)apala>; spa3 class="comment"./* put_cap 15a8ass="sr15.1L917">"917ala> 151h/mds_client.c#L868" a href="+codekfreeL863">"86ss="srkfreeceph ="+code=ceph_mdpatht_target_sessiopath )> a href="+code=s_cap_lock" cl1519ass="sr15"sref">argala>); 151h/mds_client.c#L944" goto href="+code=spic#sryode=ceph_cap" ccesry > a href="+code=s_cap_lock" cl152lass="sr15sref">inodeala>; 1520/mds_client._client.c#L946" id.1L946" class="15s1ass="sr15.1L920">"920ala> 152h/mdsclient.c#L946" id.1L946" class="15s2ass="sr15s_cap_lockala>);1152h/mds_client.f id.1L951" clasbaset_target_sessiobase&quoceph_inode_infoala>ef">inot_target_sessioref">ino ="+code=ceph_mdtempt_target_sessiotemp kala>(& a href="da href="+code=ci" clada hrefode=)> a href="+code=s_cap_lock" cl15s3ass="sr15"sref">nextala>;1152h/mds_client.f id.1L951" clasplen" class="sref">plenala>ceph_inode_infoalalen" class="sref">lenala> spa3 class="comment"./* put_cap 15s4ass="sr15ref">NULLala>) {n152h/mds_client.id.1L943" class4" class="line" nam4.1L954">"954ala> a href="+cbuild_path ona">dout l>doud built l>doullx "st9;l>dou.*s"st9; class="string">cap_releases_done" class="sref">15s5ass="sr15\3" /spa3.,n152h/mds_client.c#L92h_inode_infoaladensryode=ceph_cap" cdensry ="sref">cbala>( adensryode=ceph_cap" cdensry kala>(& a href="dacouort_target_sessiodacouor ="f id.1L951" clasbaset_target_sessiobase&quo, id.1L943" classlen" class="sref">lenala>="sref">cbala>( apatht_target_sessiopath )> a href="+code=s_cap_lock" cl15s6ass="sr15"sref">capala>);1152h/mds_client.c#L945"948" id.1L948" patht_target_sessiopath > a href="+code=s_cap_lock" cl15s7ass="sr15" } 152h/mds_client.c#L946" id.1L946" class="1528ass="sr15ssion_capsala>);1152h/mdsgt; a href="+code=s_cap_lock" cl1529ass="sr15s_nr_capsala>--;1152h/mdsc#lientc#L952" id.1L952" cbuild_densry_patht_target_sessiobuild_densry_path954">leanup_cap_releases" cdensryode=ceph_cap" cdensry f id.1L951" clasdensryode=ceph_cap" cdensry rgt; a href="+code=s_cap_lock" cl153lass="sr15"sref">NULLala>; 153"/mds_client.c#L943" c#L868" 887" const.char ff id.1L951" clasppatht_target_sessioppath954"r.c#L9f id.1L951" clasppathlen" class="sref">ppathlenala>="sref">cbala>( au.1L863">"86ss="sru6h/mds_f id.1L951" claspinot_target_sessiopino rgt; a href="+code=s_cap_lock" cl1531ass="sr15s held */ /spa3.1153h/mds_client.c#L941" 11111111ient.c#L9f id.1L951" claspfreepatht_target_sessiopfreepath )client.c#L946" id.1L946" class="1532ass="sr15 } 153h/mds_cap_releases_done" class="sref">15"3ass="sr15>retala> < 0)nre>153h/mds_client.char f id.1L951" claspatht_target_sessiopath > a href="+code=s_cap_lock" cl15"4ass="sr15="sref">out /a>; } 153h/mds_client.id.1 id.1L951" clasref">rnapt_target_sessioref">rnap ="+code=ceph_mddensryode=ceph_cap" cdensry kala>(& a href="daparport_target_sessiodaparporala>kala>(& a href="da href="+code=ci" clada hrefode=) =eph_inode_infoalaCEPH_NOSNAPL863">"86ss="srCEPH_NOSNAPf">s)s_cap_releases_done" class="sref">1536ass="sr15ef">retala> = 0;1153h/mds_client.c#L91111f id.1L951" claspinot_target_sessiopino ceph_inode_infoala>ef">inot_target_sessioref">ino ="+code=ceph_mddensryode=ceph_cap" cdensry kala>(& a href="daparport_target_sessiodaparporala>kala>(& a href="da href="+code=ci" clada hrefode=)> a href="+code=s_cap_lock" cl15"7ass="sr15="sref">out /a>:1(& a href="daNULLala>; 153h/mds_client.c#L868" f id.1L951" clasppathlen" class="sref">ppathlenala> eph_inode_infoaladensryode=ceph_cap" cdensry kala>(& a href="dalenala> spa3 class="comment"./* put_cap 1539ass="sr15s_cap_lockala>);1153h/mds_client.c#L944" c#L945"a> int a href="+code=drop"154lass="sr15.1L939">"939ala> 1540/mds_client._client.c#L946" id.1L946" class="1541ass="sr15>last_inodeala>) la>154h/mds_client.902" class="linpatht_target_sessiopath eph_inode_infoalansala>(sc_build_patht_target_sessionsala>(sc_build_path h_inode_infoaladensryode=ceph_cap" cdensry ="sref">cbala>( appathlen" class="sref">ppathlenala>="sref">cbala>( apinot_target_sessiopino r 1)> a href="+code=s_cap_lock" cl1542ass="sr15last_inodeala>);11542/mds_client.id.1 id.1L951" clasIS_ERRL863">"86ss="srIS_ERRceph ="+code=ceph_mdpatht_target_sessiopath ))client.c#L946" id.1L946" class="1543ass="sr15ef">old_capala>)1154h/mds_client.c#L943" c#L945"948" id.1L948" PTR_ERRL863">"86ss="srPTR_ERRceph ="+code=ceph_mdpatht_target_sessiopath )> a href="+code=s_cap_lock" cl1544ass="sr15f">old_capala>); >154h/mds_client.f id.1L951" clasppatht_target_sessioppath954" eph_inode_infoalapatht_target_sessiopath > a href="+code=s_cap_lock" cl1545ass="sr15.1L944">"944ala> 1545/mds_client.f id.1L951" claspfreepatht_target_sessiopfreepath ep1> int a href="+code=drop"1546ass="sr15="sref">retala>; int a href="+code=drop"1547ass="sr151L946">"946ala>} 154h/mds_client.c#L946" id.1L946" class="1548ass="sr15.1L947">"947ala> 154h/mdsgt; a href="+code=s_cap_lock" cl1549ass="sr15="sref">capala>,nleanup_cap_releases" css="sref">remove_session_caps_cbala>(struct a href="+code=inode" class="srrgt; a href="+code=s_cap_lock" cl155lass="sr15="sref">argala>)nppathlenala>="sref">cbala>( au.1L863">"86ss="sru6h/mds_f id.1L951" claspinot_target_sessiopino rgt; a href="+code=s_cap_lock" cl1551ass="sr151L950">"950ala>{n155h/mds_client.c#L941" 11111111ientc#L9f id.1L951" claspfreepatht_target_sessiopfreepath )client.c#L946" id.1L946" class="1552ass="sr15ref">inodeala>); 155h/mds_cap_releases_done" class="sref">1553ass="sr15f">dropala> = 0;1>155h/mds_client.leanup_cap_releases" cdensryode=ceph_cap" cdensry f id.1L951" clasdensryode=ceph_cap" cdensry > int a href="+code=drop"1554ass="sr15.1L953">"953ala>1155h/mds_client.char f id.1L951" claspatht_target_sessiopath > a href="+code=s_cap_lock" cl1555ass="sr15\3" /spa3.,n155h/mdsclient.c#L946" id.1L946" class="1556ass="sr15>vfs_inodeala>);1vf>155h/mds_client.id.1 id.1L951" clasref">rnapt_target_sessioref">rnap ="+code=ceph_md href="+code=inode" class="sr) =eph_inode_infoalaCEPH_NOSNAPL863">"86ss="srCEPH_NOSNAPf">s)s_cap_releases_done" class="sref">1557ass="sr15_ceph_lockala>);1155h/mds_client.c#L887" f id.1L951" claspinot_target_sessiopino ceph_inode_infoala>ef">inot_target_sessioref">ino ="+code=ceph_md href="+code=inode" class="sr)> a href="+code=s_cap_lock" cl1558ass="sr15ph/mds_client>-> a h 15ph/>155h/mds_client.c#L868" f id.1L951" clasppathlen" class="sref">ppathlenala> epa> int a href="+code=drop"1559ass="sr15s sessionalspa3.1155h/mds_client.c#L944" c#L945"a> int a href="+code=drop"156lass="sr15ment". */ /spa3.11560/mds_client._client.c#L946" id.1L946" class="1561ass="sr15ef">sessionala>)n156h/mds_client.902" class="lindensryode=ceph_cap" cdensry =.902" class="lind_find_aliae=session" classd_find_aliae ="+code=ceph_md href="+code=inode" class="sr)> a href="+code=s_cap_lock" cl1562ass="sr151L861">"861ala>{n1562/mds_client.c#L954" id.1L95patht_target_sessiopath eph_inode_infoalansala>(sc_build_patht_target_sessionsala>(sc_build_path h_inode_infoaladensryode=ceph_cap" cdensry ="sref">cbala>( appathlen" class="sref">ppathlenala>="sref">cbala>( apinot_target_sessiopino r 1)> a href="+code=s_cap_lock" cl1563ass="sr15="sref">msgala>;1"_inode_infoaladensryode=ceph_cap" cdensry )> a href="+code=s_cap_lock" cl1564ass="sr15.1L863">"863ala>1156h/mds_client.id.1 id.1L951" clasIS_ERRL863">"86ss="srIS_ERRceph ="+code=ceph_mdpatht_target_sessiopath ))client.c#L946" id.1L946" class="15m5ass="sr15s_cap_lockala>);1156h/mds_client.c#L925" c#L945"948" id.1L948" PTR_ERRL863">"86ss="srPTR_ERRceph ="+code=ceph_mdpatht_target_sessiopath )> a href="+code=s_cap_lock" cl15m6ass="sr15releasesala>)) {n156h/mds_client.f id.1L951" clasppatht_target_sessioppath954" eph_inode_infoalapatht_target_sessiopath > a href="+code=s_cap_lock" cl15m7ass="sr15ap_releasesala>,n156h/mds_client.f id.1L951" claspfreepatht_target_sessiopfreepath ep1> int a href="+code=drop"15m8ass="sr15>list_headala>);1li>156h/mds_client.c#L945"a> int a href="+code=drop"1569ass="sr15>list_headala>);1li>156h/mds_client.c#L946" id.1L946" class="157lass="sr15"sref">msgala>);11571/mdsclient.c#L946" id.1L946" class="1571ass="sr15870ala> } 157h/mds_client.c#L881" id.1L857" class="line" nam4.1L857">"857ala> spa1572ass="sr15ses_doneala>)) {n157h/mds_client.c#L884" id.1L884 request arguid.1s may be specified via ienclass *, a densry *, or" class="line" nam4.1L857">"857ala> spa1573ass="sr15leases_doneala>,n1573/mds_client.c#L881" id.1L884 ienexplicitncla+path." class="line" nam4.1L857">"857ala> spa1574ass="sr15>list_headala>);1li>1574/mds_client.c#L881" id.1L887ala>; spa3 class="comment"./* put_cap 1575ass="sr15>list_headala>);1li>157h/mdsc#lientc#L952" id.1L952" csettrequest_path_attr=session" classsettrequest_path_attr954">leanup_cap_releases" css="sref">remove_session_caps_cbala>(struct arss="sref">remove_sesrclass="srr.leanup_cap_releases" cdensryode=ceph_cap" cdensry f id.1L951" clasrdensryode=ceph_cap" crdensry rgt; a href="+code=s_cap_lock" cl1576ass="sr15"sref">msgala>);1157h/mds_client.c#L91111111111111111111111const.char f id.1L951" clasrpatht_target_sessiorpath954"r.sref">cbala>( au.1L863">"86ss="sru6h/mds_bala>(struct arss=ref">remove_sesrcla rgt; a href="+code=s_cap_lock" cl1577ass="sr15876ala> } 157h/mds_client.c#L887" 111ient.1111111111const.char ff id.1L951" clasppatht_target_sessioppath954"r.c#L9f id.1L951" claspathlen" class="sref">pathlenala>=gt; a href="+code=s_cap_lock" cl1578ass="sr15s_cap_lockala>);1157h/mds_client.c#L868" sref">cbala>( au.1L863">"86ss="sru6h/mds_f id.1L951" classs=ref">remove_sesino r c#L9f id.1L951" clasfreepatht_target_sessiofreepath )client.c#L946" id.1L946" class="1579ass="sr151L878">"878ala>} 157h/mds_cap_releases_done" class="sref">158lass="sr15.1L879">"879ala> 158"/mds_client.c#L952" id.1L952" cr=session" classrala> epa> int a href="+code=drop"1581ass="sr15mment"./* /spa3.1158h/mdsclient.c#L946" id.1L946" class="1582ass="sr15ion, with /spa3.11582/mds_client.id.1 id.1L951" clasrss="sref">remove_sesrclass="sr)s_cap_releases_done" class="sref">1583ass="sr15ve_cap(). /spa3.1"86ss="srCEPH_NOSNAPf">s)s_cap_releases_done" class="sref">1494as"sref">pat148lass3--;1152h/mdsc#lientc#L952"ases_done" class="sref">158lass= sref">cbala>( au.1L863">="sru6h/mds_f id.1L951" classs=ref">remove_sesino 158"/mds_client.c#L952" id.1L952" crexplicitnceadcsess )> a href5"+cod58s_cap_lock" cl1514ass=ps_cbala>(strucf">NULLala>) {n152h/mds_client.id.1L943" t.c#L88"line" nam4.llx.nam4.llx a href="+cexpected, s)s_cap_releases_done" class="sre id.1L951" claspinot_target_sessiopino ceph_inodwith /spa3.11582/mdh954"r.c#L9f id.1L951" claspathlen"on" classp5e c! a>tis_cap_releas5s_don5" class="sref">14.5ass14ass=ps_cbala>(struinodeala>);1vf>155h/mds_client.id.1 id.1L95with /spa3.11582/md 158"/mds_client.c#L952" id.1L952" cre=ceph_capode" class="sr> a href5"+cod58s_cap_lock" c="sr14="sref">capala>; remof14men>148h/mdsgt; a href5"+cod5=s_cap_lock" cl1487ass="sr14ef">sessi /spa3.1--;1152h/mdsc#lientc#L952" id.1L"srr.leanup_cap_releases" cdensryode=ceph_cap" cddone" class="sref">1494as"sref">pat148lass3--;1152h/mdsc#lientc#L952"ases_done" class="sref">158lass= sref">cbala>( au.1L863">="sru6h/mds_f id.1L951" classs=ref">remove_sesino 158"/mds_client.c#L952" id.1L952" crclass="sre921d=sessceph)> a href5"+cod5=s_cap_lock" cl1488ass="sr14>ceph_capcf">NULLala>) {n152h/mds_client.id.1L943" t.1L884 "line" nam4.llx/ a href a href="+cexpected, cbala>( au.1L863">st.char ff id.1L951" clasppatht_target_sessioppath954"r.c#L9f id.1L951" claspathlen""+code=ci"5clada hrefode=> a href5"+cod5=s_cap_lock" cl14.9asssssss15876>157h/mds_client.c#L887" 111ient.1111111 158"/mds_client.c#L952" id.1L952" c6ss="srCEP5_SNAPDIRf">s)s_cap_releas5s_don5" class="sref"="sr14="sref">capala>; cbala>( au.1L863"ds_client.id.1 id.1L951" clasrss="sreut SNAPDIR5class="string">cap_releas5s_don5" class="sref">1491ass sref">cbala>( au.1L863ef">146h/mds_client"r.sref">cbala>( au.1L863"158"/mds_client.c#L952" id.1L952" c6a3.11492assl15m6ass="sr15releasesala>)) {n156h/mds_client.f i_lient.c#L9111111111111111111158"/mds_client.c#L952" id.1L952" c6">remove_s="sr a a spa3 class5"comm5nt"./* put_cap 1493assst.char ff id.1L951" clasppatht_target_sessioppat56h/mds_client.f ient clasppatht_targetent clid.1L"srr.leanup_cap_lient.c#L9111111111111111111 158"/mds_client.c#L952" id.1L952" c6explicitncH_NOSNAPf">s)s_cap_releas5s_don5" class="sref">1494ass="sr14>ceph_capcf">NULLala>) {n152h/mds_client.id.1L943" t" cla a href a href="+st.char ff id.1L951" clasppatht_target_sessioppathh/mds_client.f i_lient.c#L9111111111111111111 158"/mds_client.c#L952" id.1L952" c6n" classp5921d=sessceph)> a href5"+cod5=s_cap_lock" code=drop"1569ass="sr15>list_headalaent.c#L9255 887" 914break spa3 class5"comm59s_cap_lock" cl1486ass="sr14ment". */ /5ds_client.5#L91111} else _cap_releas5s_don5" class="sref"="sr14="sref">out /a>; /spa3.1lenala> spa3 class5"comm5nt"./*ode=drop"1569ass="sr15>list_headalae+code=ci"5e < 0)s_cap_releas5s_don5" clasde=drop"1569ass="sr15>list_headal6m4.1L921">6921d=sessceph)> a href6"+cod60">"857ala> spa144lass="sr14870ala> } 157h/mds_cli643" c#L8686 887" 914break spa3 class6"comm60">"857ala> spa1441ass="sr14>lL885" d und id.dscpathlmutex0ala> } 157h/mds_cli642" c#L8686 ssiotemp );cap_releas646" i60">"857ala> spa1572ass="sr15seist_headala>);1li>1574/mds_clie6 h="+code=6i" clacap_releas6s_don6" clas put_ca>1431ass="sr14s held */ /spasg_target_sessiopath sgL868" createntc#L952"messag/spa3.1"86ss="sr__gh954"r.c#L9f id.1L951" claspathlen6en" class=6sref">lenala>)> a href6"+cod6=s_cap_lock" cl15c4asssssssssssssssssssssssssssssssssttrequest_path_attr=seath 5tc#L952_target_sessiopath 5tc#L952class="srr.leanup_cap_"86ss="ino r c#L9f id.1L951" clasfreepatht6m4.1L921">6921d=sessceph)> a href6"+cod6=s_cap_client.id.1 id.1L951" clasrss="sr6poe=sessio6" classpoe )client.c#L646" i6.1L946" class=>1431ass="sr14s held */ /spasg_target_sessiopath sgL868" asg_target_sessiop sgL868158"/mds_client.c#L952" id.1L952" 6 a hrest6;/"st9;string"> a href6"+cod6=s_cap_lock" cttrequest_path_attr=seath 5tc#L952_head_target_sessiopath 5tc#L952_headL868" head_target_sessiopheadL868158"/mds_client.c#L952" id.1L952" 6 9 a hrest6; < 0)s_cap_releas6"comm6nt"./* put_capa>);1157h/mds_11111asppatht_target_ses1ppat56h/mds_client.f iid.1L951" claspatht_target_158"/mds_client.c#L952" id.1L952" 6ref15csr>160h/mds_client._client.c#L646" i6.1L946" class=a>);1157h/mds_11112asppatht_target_ses2ppat56h/mds_client.f iid.1L951" claspatht_target_158"/mds_client.c#L952" id.1L952" 6r3" c#L8686dcass="l )> a href6"+cod611L946" class="1561ass="sr15eid.1L951" clasrpatht_target_sessiorpath95.1L1asppatht_target.1L1ef15.1L>ass="sref">158lass= 2asppatht_targets= 2ef15.1L>158"/mds_client.c#L952" id.1L952" 6L863">"86s6="srseqf">s-is_cap_releas6s_don6" class="sref">158lass="sr15.1L87_sessio1asppatht_target_sessio1ef15.1L>ass="sref">158las_sessio2asppatht_target_sessio2ef15.1L>158"/mds_client.c#L952" id.1L952" 6Lh="+code=6e lass="string"cap_releas6s_don6" class="sref">158lass="sr15.1L87move_ses1asppatht_targetmove_ses1ef15.1L>ass="sref">158lasmove_ses2asppatht_targetmove_ses2ef15.1L>158"/mds_client.c#L952" id.1L952" 6Ln" class=6 classpoe )> a href6"+cod6=s_cap_lock" cl1453ass="sr14f">dropala> = 0;1>158"/mds_client.c#L952" id.1L952" 6L5" class=6g with.astring"cap_releas6s_don615L946" class="1561ass="sr15ei ciennotstrasrpath" clas15"sref">argala>);lease"t_c#qL863">"86s);lease"f">>158"/mds_client.c#L952" id.1L952" 6L4.1L921">6 ciennotstring"cap_releas6s_don61s_cap_lock" cvoidef15"sr>157h/mds_1asppatht_target_L863">st.char ff id.1Lend_target_sessiopendf">>158"/mds_client.c#L952" id.1L952" 6Loe=sessio6hie, butstring"cap_releas6s_don617_cap_lock" cl1453ass="sr14f">dr="st_c#qL863">"86s);iotemp kala>(& a href="daparport6uld be har6less)apala>; spa3 class6"comm611L946" class="1548ass="sr15.1L947">"946ht_target_6essiopath )> a href6"+cod6=s_cap_lock" c3ass="sr14f">dr="st_c#qL863">"86s);iotem56h/mds_client.f ie_headala>);1li>157h/mdsc#lientc#L952" id.1L952" cse"srr.leanup_cap_143h/mds_clpathlenala> eph_inodrereleases" cdensryode=c_eph_cap" cdensry f id.1L951" clasrdensry6yode=ceph_6ap" ccesry > a href6"+cod62s_cap_lock" cl15class="sr15clasf">none" class="sre_143h/mds_clpathlenala> eph_inodre.1L1asppatht_targetre.1L1s_clensry kala>(& sref">cbala>( au.1L863"ensry f id.1L951" clasrdensry6y3" c#L868620/mds_client._client.c#L646" i62s_cap_lock" cl1531ass="sr15s held _inode_infoalareadcs11111asppatht_target_ses1ppat, _inode_infoalareadcs1111sio1asppatht_target_sessio1ef15, _inode_infoalareadcs.1L1asppatht_target.1L1ef15, _inode_infoalareadcsmove_ses1asppatht_targetmove_ses1ef15 158"/mds_client.c#L952" id.1L952" 6ala> 152h/mdsclient.c#L646" i621L946" class="1582ass="sr15ion, w"st_c#qL863">"86s);iotem5#L868" id.1L867id.1 id.1L951" claspoe=sess6+code=ci" 6lada hrefode=)> a href6"+cod62 class="sref">1583ass="sr15ve_cap().asg_target_sessiop sgL86856h/mds_client.f i 148"/mds_client.c#L92ass="sr15ion, w"st_c#qL863">"86s);iotem 158"/mds_client.c#L952" id.1L952" 6an" class=6"sref">lenala> spa3 class6"comm62s_cap_lock" cl15c4ass="sr15"sref">argala>f">NULLala>) {ncap_releas6s_don62s_cap_lock" code=drop"1569ass="sr15>list_headal6ht_target_6essiopath )> a href6"+cod62s_cap_lock" cl1486ass="sr14ment". */ /6tht_target6sessiopath > a href6"+cod627_cap_lock" c3ass="sr14f">dr="st_c#qL863">"86s);iotem56h/mds_client.f ie_headala>);1li>157h/mdsc#lientc#L952" id.1L952" cse"srr.leanup_capid.1L951" claspatht_target__done" class="sre_152h/mds_client.c#L646" i62s_cap_lock" cl1578ass="sr15s_cap_loone" class="sre_143h/mds_clpathlenala> eph_inodre.1L2asppatht_targetres= 2ef15ensry kala>(& sref">cbala>( au.1L863"ensry f id.1L951" clasrdensry6yt_target_6f15ssi>152h/mdsgt; a href6"+cod62 class="sref">1499ass="sr14"sref">n_inode_infoalareadcs11112asppatht_target_ses2ppat, _inode_infoalareadcs1111sio2asppatht_target_sessio2ef15, _inode_infoalareadcs.1L2asppatht_targets= 2ef15, _inode_infoalareadcsmove_ses2asppatht_targetmove_ses2ef15 158"/mds_client.c#L952" id.1L952" 6ode=ceph_c6p" cdensry rgt; a href6"+cod6=s_cap_lock" c"1582ass="sr15ion, w"st_c#qL863">"86s);iotem5#L868" id.1L867id.1 id.1L951" claspoe=sess6not_target6sessiopino rgt; a href6"+cod6=s_cap_lock" cl1531ass="sr15ve_cap().asg_target_sessiop sgL86856h/mds_client.f i 148"/mds_client.c#L92ass="sr15ion, w"st_c#qL863">"86s);iotem 158"/mds_client.c#L952" id.1L952" 6arget_sess6opfreepath )client.c#L646" i63 class="sref">1492ass="sr15"sref">argala>f">_move1asppatht_targetf">_move115re158"/mds_client.c#L952" id.1L952" 6 } 153h/mds_cap_releas6s_don6" class="sref"ode=drop"1569ass="sr15>list_headal6tht_target6sessiopath > a href6"+cod6=s_cap_lock" cl15"4ass="sr15="sref">out6/a>; 147h/mds_clie= sizeof( head_target_sessiopheadL868) +_lock" cl15"4ass="sr15="sref">out6/t_target_6H_NOSNAPf">s)s_cap_releas6s_don6" class="sref">1536asslass="sr15.1L87_sessio1asppatht_target_sessio1ef15.ap" cstrncpy =sessio2asppatht_target_sessio2ef15.+ 2*(c#L9sizeof("1561ass="sr15ei32asppatht_targetu3 clas)#L9sizeof("1561ass="sr15eid.1L951" clasrpatht_targd 158"/mds_client.c#L952" id.1L952" 6+code=ci" 6lada hrefode=)> a href6"+cod63t"./* put_cap 1477ass="sr14876ala> 6 h="+code=6i" claold_capala>) {n);1li>1574/mds_clie6len" class6"sref">lenala> spa3 class6"comm63s_cap_lock" c3ass="sr14f">dr147h/mds_clie+= sizeof(ttrequest_path_attr=seath 5tc#L952_);lease_target_sessiopath 5tc#L952_);leaseclas)#*ala>);1li>1574/mds_clie6s_client.c6L944" c#L945"a> in6 a h64s_cap_lock" cl15class(!otemp eph_in_143h/mds_clpathlenala> eph_inodreentc#L9dro1asppatht_targetreentc#L9dro1ef15.+ala>);1li>1574/mds_clie6sot_target640/mds_client._client.c#L646" i64s_cap_lock" cl1531ass=!otemp eph_in_143h/mds_clpathlenala> eph_inodreo#lientc#LCdro1asppatht_targetreo_inentc#L9dro1ef15 158"/mds_client.c#L952" id.1L952" 6target_ses6iopino r 1)> a href6"+cod6=s_cap_lock" cl1542ass="sr15last__dr147h/mds_clie+= one" class="sre_ eph_inode_infoaladensryode=ceph_cap" cdensry kala>(& a href="da143h/mds_clpathlenala> eph_inodreo#lientc#LCdro1asppatht_targetreo_inentc#L9dro1ef15 =ci" clada; dr147h/mds_clie+= one" class="sre_(& a href="da in6 a h64s_cap_lock" cl1486ass="sr14ment". */ /6>154h/mds_6lient.c#L945"a> in6 a h647_cap_lock" c3ass="sr14f">drasg_target_sessiop sgL86856h/mds_client.f iath sg_new_target_sessiopath sg_new.c#L92ass="sr15ion, ode" MSG_CLIENT_REQUESfoaladensryode=code" MSG_CLIENT_REQUESfases_done" class="sref id.1L951" clasbaset_target_sessiobase&quGFP_NOFSd.1L951" clasbaGFP_NOFS_target_sessiobase&qufalse_target_sessiopfalseef15 158"/mds_client.c#L952" id.1L952" 6th="+code=6151L9>154h/mds_client.c#L646" i648_cap_lock" cl156otemp eph_inasg_target_sessiop sgL868 id.1L867id.1 id.1L951" claspoe=sess6ala> 154h/mdsgt; a href6"+cod64 class="sref">1499ass="sr15ve_cap().asg_target_sessiop sgL86856h/mds_client.f i 148"/mds_client.c#L9c#L887" 111ient.ENOMEMf14.1L>148"/mds_NOMEMef15 158"/mds_client.c#L952" id.1L952" 6f="+code=i6ode" class="srrgt; a href6"+cod6=s_cap_lock" cl155lass="sr15"sref">argala>f">_move2asppatht_targetf">_move2+code=ci" cladalist_headal6arget_sess6opfreepath )client.c#L646" i6.1L946de=drop"1569ass="sr15>list_headal6at_target_615ref>155h/mds_cap_releas6s_don65s_cap_lock" cl1563ass="sr15=asg_target_sessiop sgL868pathlenala> eph_inodhd15>li>157h/mdsc#hd1" cdensry kala>(&tid_target_sessioptidL86856h/mds_client.f iapu_to_led.1L951" clasrpatapu_to_led." cse"srr.leanup_cap_ in6 a h65s_cap_lock" cl15"4ass="sr15="sref">out6tht_target6sessiopath > a href6"+cod655L946" class="1561ass="sr15ehead_target_sessiopheadL86856h/mds_client.f iasg_target_sessiop sgL868pathlenala> eph_inodfrods_target_sessiopfrodsef15ensry kala>(& ov_ a href="dacouort_t ov_ a h+code=ci" clada155h/mdsclient.c#L646" i6.1L946" class=" cstrncpy =asppatht_target_L86856h/mds_client.f iasg_target_sessiop sgL868pathlenala> eph_inodfrods_target_sessiopfrodsef15ensry kala>(& ov_ a href="dacouort_t ov_ a h+cod#L9sizeof( head_target_sessiopheadL868)e=ci" cladas)s_cap_releas6s_don657_cap_lock" c3ass="sr14f">drend_target_sessiopendf">>56h/mds_client.f iasg_target_sessiop sgL868pathlenala> eph_inodfrods_target_sessiopfrodsef15ensry kala>(& ov_ a href="dacouort_t ov_ a h+cod#L9/mds_client.f iasg_target_sessiop sgL868pathlenala> eph_inodfrods_target_sessiopfrodsef15ensry kala>(& ov_f id.1L951" clasba ov_f i+code=ci" clada"946s="sref">p6athlenala> epa> in6 a h65s_cap_lock" c3ass="sr14f">drhead_target_sessiopheadL868pathlenala> eph_inodsr1map_epocnt.c#L9111111111sr1map_epocnL86856h/mds_client.f iapu_to_le32asppatht_targetapu_to_le32" cse"srr.leanup_capmdest_c#qL863">"86ss="sr__gpathlenala> eph_inodsr1mapt.c#L9111111111sr1mapr__gpathlenala> eph_inods_epocnt.c#L9111111111s_epocnL868)e=ci" clada in6 a h661L946" class="151lass="sr15ahead_target_sessiopheadL868pathlenala> eph_inodo1asppatht_targeto_L86856h/mds_client.f iapu_to_le32asppatht_targetapu_to_le32" cse"srr.leanup_cap_1660/mds_client._client.c#L646" i6.1L946" class="1561ass="sr15ehead_target_sessiopheadL868pathlenala> eph_inod885" r_uid_target_sessiop885" r_uidL86856h/mds_client.f iapu_to_le32asppatht_targetapu_to_le32" cse"srr.leanup_cap_"86sarg"L86856h/mds_client.f i_"86srearg"+code=ci" cladaout6ht_target_6essiopath ))client.c#L646" i665L946" class="1561ass="sr15eath ensr15_filL951" classs=ref">reath ensr15_filL951"" cse_inode_infoalareadcs1asppatht_target_L868get_sessiobase&quend_target_sessiopendf">>ass="sref">158lass= 1asppatht_target.1L1ef15, " cstrncpy =ses1asppatht_target_ses1ppat 158"/mds_client.c#L952" id.1L952" 6rt_target_6essiopath )> a href6"+cod661L946" class=" cstrncpy ath ensr15_filL951" classs=ref">reath ensr15_filL951"" cse_inode_infoalareadcs1asppatht_target_L868get_sessiobase&quend_target_sessiopendf">>ass="sref">158lass= 2asppatht_targets= 2ef15, " cstrncpy =ses2asppatht_target_ses2ppat 158"/mds_client.c#L952" id.1L952" 6r154h/mds_6sessiopath > a href6"+cod66t"./* put_cap 1477ass="sr14876ala> 6t_sessiopf6eepath ep1> in6 a h66s_cap_lock" c="sr15">old_capala>) {n"8 case1we88eed.c#Lreplayseist_headala>);1li>1574/mds_clie6>156h/mds_6lient.c#L945"a> in6 a h66s_cap_lock" c3ass="sr14f">dr="a href14="s>143h/mds_clpathlenala> eph_inodretc#L952_);lease_h/fsett_c#qL863">"86sretc#L952_);lease_h/fsetL86856h/mds_client.f i=asppatht_target_L8685-h/mds_client.f iasg_target_sessiop sgL868pathlenala> eph_inodfrods_target_sessiopfrodsef15ensry kala>(& ov_ a href="dacouort_t ov_ a h+cod158"/mds_client.c#L952" id.1L952" 6>);1li>156h/mds_client.c#L646" i6.1L946" class="157lass="sr15"sref">msga6a>);11571/mdsclient.c#L646" i671_cap_lock" c="sr15">old_capala>) {n);1li>1574/mds_clie6nt.c#L881"6id.1L857" class="line" na64.1L867s_cap_lock" cl1562ass="sr151);lease"t_c#qL863">"86s);lease"f">>.1L>158"/mds_client.c#L952" id.1L952" 6s *, a den6ry *, or" class="line" na64.1L867 class="sref">1564ass="sr15.1L86_1494ass="sr14>ceph_cap);lease"t_c#qL863">"86s);lease"f">>.+= one" class="sreath ensr15_f="da_);lease_target_sessiopath ensr15_f="da_);lease" cse_inode_infoalareadcs1asppatht_target_L868g=ci" clada; spa3 class6"comm671L946" class="15c5assssssss4ass="sr15.1L86_143h/mds_clpathlenala> eph_inodref="daasppatht_targetref="daL946": one" class="sre_ eph_inode_f="daparport_target_sessiodaparg=ci" clada"86sref="da_unles"ef15, 0 158"/mds_client.c#L952" id.1L952" 6s=ref">rem6ve_sesrcla rgt; a href6"+cod6=s_cap_lock" cl1542ass="sr15last__pathlenala>=gt; a href6"+cod6=s_cap_lock" cl1578ass="sr14>ceph_cap);lease"t_c#qL863">"86s);lease"f">>.+= one" class="sreath ensr15_entc#L9);lease_target_sessiopath ensr15_entc#L9);lease" cse_inode_infoalareadcs1asppatht_target_L868get_sessiobase&qu_1499ass="sr14"enala> eph_inodsr1t.c#L9111111111sr1ef15, " cstrncpy _"86sreentc#L9unles"ppat 158"/mds_client.c#L952" id.1L952" 6a>} 157h/mds_cap_releas6s_don68s_cap_lock" c"1582ass="sr15ion, w"a href14="s>143h/mds_clpathlenala> eph_inodreo#lientc#LCdro1asppatht_targetreo_inentc#L9dro1ef15 =ci" clada epa> in6 a h68s_cap_lock" cl1531ass="sr15ve_cap().);lease"t_c#qL863">"86s);lease"f">>.+= one" class="sreath ensr15_entc#L9);lease_target_sessiopath ensr15_entc#L9);lease" cse_inode_infoalareadcs1asppatht_target_L868get_sessiobase&qu_158h/mdsclient.c#L646" i68 class="sref">1492ass="sr14"enala> eph_inodsr1t.c#L9111111111sr1ef15, " cstrncpy _"86sreo#lientc#LCunles"ppat 158"/mds_client.c#L952" id.1L952" 6a *, a den6esrclass="sr)s_cap_releas6s_don68 class="sref">1564ass="sr15.1L86_(stru);lease"t_c#qL863">"86s);lease"f">>.+= one" class="sreath ensr15_f="da_);lease_target_sessiopath ensr15_f="da_);lease" cse_inode_infoalareadcs1asppatht_target_L868g=ci" cladatis_cap_releas6s_don6" class="sref">14.5ass14ass one" class="sre_"86sreo#lif="da_unles"ef15, 0 158"/mds_client.c#L952" id.1L952" 6f=ref">rem6f14men>148h/mdsgt; a href6"+cod687_cap_lock" c3ass="sr14f">drhead_target_sessiopheadL868pathlenala> eph_inodnum_);lease"t_c#qL863">"86snum_);lease"L86856h/mds_client.f iapu_to_le ciennotstrasrpatapu_to_le c" cse"srr.leanup_cap_"86s);lease"f">> 158"/mds_client.c#L952" id.1L952" 6fclass="sr6921d=sessceph)> a href6"+cod681L946" class="1548ass="sr15.1L947">"946"+code=ci"6clada hrefode=> a href6"+cod68s_cap_lock" c3ass="sr14f">drBUG_ONt_c#qL863">"86sBUG_ON" cse"srr.leanup_cap=asppatht_target_L8685athlet_sessiobase&quend_target_sessiopendf">> 158"/mds_client.c#L952" id.1L952" 66ss="srCEP6_SNAPDIRf">s)s_cap_releas6s_don691L946" class="151lass="sr15aasg_target_sessiop sgL868pathlenala> eph_inodfrods_target_sessiopfrodsef15ensry kala>(& ov_f id.1L951" clasba ov_f i+cod56h/mds_client.f i=asppatht_target_L8685-h/mds_client.f iasg_target_sessiop sgL868pathlenala> eph_inodfrods_target_sessiopfrodsef15ensry kala>(& ov_ a href="dacouort_t ov_ a h+cod158"/mds_client.c#L952" id.1L952" 6ut SNAPDIR6class="string">cap_releas6s_don691L946" class="1561ass="sr15easg_target_sessiop sgL868pathlenala> eph_inodhd15>li>157h/mdsc#hd1" cdensry kala>(&frods_f id.1L951" clasbafrods_f iL86856h/mds_client.f iapu_to_le32asppatht_targetapu_to_le32" cse"srr.leanup_capasg_target_sessiop sgL868pathlenala> eph_inodfrods_target_sessiopfrodsef15ensry kala>(& ov_f id.1L951" clasba ov_f i+cod 158"/mds_client.c#L952" id.1L952" 66a3.1list_headal66">remove_6="sr a a spa3 class6"comm69s_cap_lock" cl1563ass="sr15=asg_target_sessiop sgL868pathlenala> eph_inodpage"t_c#qL863">"86spage"L86856h/mds_client.f i_"86srepage"+cod158"/mds_client.c#L952" id.1L952" 6uexplicitn6H_NOSNAPf">s)s_cap_releas6s_don6" class="sref"l1563ass="sr15=asg_target_sessiop sgL868pathlenala> eph_inodnrepage"t_c#qL863">"86snrepage"+cod56h/mds_client.f i_"86srenum_page"+cod158"/mds_client.c#L952" id.1L952" 6un" classp6921d=sessceph)> a href6"+cod695L946" class="1561ass="sr15easg_target_sessiop sgL868pathlenala> eph_inodhd15>li>157h/mdsc#hd1" cdensry kala>(&data_f id.1L951" clasbadata_f iL86856h/mds_client.f iapu_to_le32asppatht_targetapu_to_le32" cse"srr.leanup_cap_(&data_offd.1L951" clasbadata_offL86856h/mds_client.f iapu_to_le ciennotstrasrpatapu_to_le c" cse0 158"/mds_client.c#L952" id.1L952" 6ds_client.6#L91111} else _cap_releas6s_don69t"./* put_cap 1477ass="sr14876ala> 66class="sr6"sref">lenala> spa3 class6"comm6nt"./*/mds_client.f if">_move2asppatht_targetf">_move2+cod: put_cap 1477ass="sr14876ala> 66+code=ci"6e < 0)s_cap_releas6s_don69s_cap_lock" c>1564ass="sr15.1L86move_ses2asppatht_targetmove_ses2ef15 put_cap 1477ass="sr14876ala> 7m4.1L921">7921d=sessceph)> a href7"+cod70s_cap_lock" cl155lass4ass="sr15.1L86kmoveasppatht_targetkmove" cse(a href)enala> eph_inodpaes2asppatht_target_ses2ppat 158"/mds_client.c#L952" id.1L952" 743" c#L8687 887" 914break spa3 class7"comm70">"857mds_client.f if">_move1asppatht_targetf">_move115re: put_cap 1477ass="sr14876ala> 742" c#L8687 ssiotemp );cap_releas746" i70s_cap_lock" cl1542ass="sr15last_move_ses1asppatht_targetmove_ses1ef15 put_cap 1477ass="sr14876ala> 743" c#L8687 "sr a a spa3 class7s_don701L946" class="1543ass3ass="sr14f">drkmoveasppatht_targetkmove" cse(a href)enala> eph_inodpaes1asppatht_target_ses1ppat 158"/mds_client.c#L952" id.1L952" 7en" class=7sref">lenala>)> a href7"+cod7=s_cap7mds_client.f if">asppatht_targetf">15re: put_cap 1477ass="sr14876ala> 745" class=7s21d=sessceph)> a href746" i7.1L946" class=="sr14="sref">out /a>;asg_target_sessiop sgL868158"/mds_client.c#L952" id.1L952" 7m4.1L921">7921d=sessceph)> a href7"+cod7=s_capode=drop"1569ass="sr15>list_headal7poe=sessio7" classpoe )client.c#L746" i70t"./* put_cap 1477ass="sr14876ala> 7 a hrest7;/"st9;string"> a href7"+cod7=s_cap7ala> spa144lass="sr14870ala> } 157h/mds_cli7 9 a hrest7; < 0)s_cap_releas7"comm7nt"./*7ala> spa1441ass="sr14>lL885" d und id.dscpathlmutexcl15error, und idno mutexcl10ala> } 157h/mds_cli7ref15csr>170h/mds_client._client.c#L746" i71">"857ala> spa144lass="sr14>lLsuccessf15lea>1573/mds_client.c#L881" id.1L884 i7r3" c#L8687dcass="l )> a href7"+cod71">"857ala> spa1441ass="sr14>list_headala>);1li>1574/mds_clie7L863">"86s7="srseqf">s-is_cap_releas7s_don7" clas put_cavoide/mds_client.f iaompletentc#L952iennotstrasrpataompletentc#L952" csettrequest_path_attr=seath 574/mds_target_sessiopath 574/mdsL868" mdest_c#qL863">"86ss="sr__gh954"r.c#L9f id.1L951" claspathlen7Lh="+code=7e lass="string"cap_releas7s_don711L946" class="1543asssssssssssssssttrequest_path_attr=seath 5tc#L952_target_sessiopath 5tc#L952class="srr.leanup_cap_ 7Ln" class=7 classpoe )> a href7"+cod7=s_capd.1L867id.1 id.1L951" claspoe=sess7L5" class=7g with.astring"cap_releas7s_don715L946" class=>1564ass="sr15.1L86_7 ciennotstring"cap_releas7s_don71 class="sref">1536asslass="sr15.1L87_"86ss="sr__g, " cstrncpy _; spa3 class7"comm71s_cap_lock" cl1578ass="sr14>ceph_capaompleten85"iennotstrasrpataompleten85"" cse_inode_infoalareadcs_msga7y3" c#L868720/mds_client._client.c#L746" i721L946" class="1571ass="sr15870ala> } 157h/mds_cli7ala> 152h/mdsclient.c#L746" i72">"857ala> spa1572ass="sr15ses885" d und id.dscpathlmutex0ala> } 157h/mds_cli7+code=ci" 7lada hrefode=)> a href7"+cod72">"857ala> spa1573ass="sr15leist_headala>);1li>1574/mds_clie7an" class=7"sref">lenala> spa3 class7"comm72s_cap put_cap 1575ass="sr15>lis__pre_sre_send5tc#L952_target_sessiop__pre_sre_send5tc#L952" csettrequest_path_attr=seath 574/mds_target_sessiopath 574/mdsL868" mdest_c#qL863">"86ss="sr__gh954"r.c#L9f id.1L951" claspathlen7a5" class=7class="string">cap_releas7s_don72 class="sref">14.5ass14ass ssssssssssssttrequest_path_attr=seath 5tc#L952_target_sessiopath 5tc#L952class="srr.leanup_cap_7essiopath )> a href7"+cod72s_cap_lock" cl1576ass="sr15"sref">msgal>158lass="sr15.1L8751"t_c#qL863">"86ss="ino r c#L9f id.1L951" clasfreepatht7tht_target7sessiopath > a href7"+cod727_capd.1L867id.1 id.1L951" claspoe=sess7yld be har7152 >152h/mds_client.c#L746" i72s_cap_lock" cttrequest_path_attr=seath 5tc#L952_head_target_sessiopath 5tc#L952_headL868" rhead_target_sessioprheadL868158"/mds_client.c#L952" id.1L952" 7yt_target_7f15ssi>152h/mdsgt; a href7"+cod72 class="sref">1431ass="sr14s held */ /spasg_target_sessiopath sgL868" asg_target_sessiop sgL868158"/mds_client.c#L952" id.1L952" 7ode=ceph_c7p" cdensry rgt; a href7"+cod7=s_cap_lock" c"158lass="sr15.1L87mlag"t_c#qL863">"86smlag"L86856h>158"/mds_client.c#L952" id.1L952" 7not_target7sessiopino rgt; a href7"+cod73f="+code=drop"1581ass="sr15mment"./* /7arget_sess7opfreepath )client.c#L746" i73s_cap_lock" cl1562ass="sr151);a href14="s>143h/mds_clpathlenala> eph_inodreattempt"t_c#qL863">"86sreattempt"s_cl++158"/mds_client.c#L952" id.1L952" 7ncode=ci" 715 >153h/mds_cap_releas7s_don73 class="sref">1564ass="sr15.1L86_"86sreon>1582/mds_client.id.1 id.1L951" clasrss="sr7tht_target7sessiopath > a href7"+cod73s_cap_lock" cl1514ass>1431ass="sr14s held */ /spca>);1vf>155hcapr__g" ca>);1vf>apr__g"=client.id.1 id.1L951" clasrss="sr7t5" class=7f15="s>153h/mdssionala>-&7t; a 73 class="sref">14.5ass14ass sss="sr14s held */ /spgethcap_for_51"t_c#qL863">"86s/ /spgethcap_for_51"s_cle"srr.leanup_cap/ /spf="dat_c#qL863">"86s/ /spf="da" cse"srr.leanup_cap_"86sreon>1582/md, " cstrncpy 51"t_c#qL863">"86ss="ino 158"/mds_client.c#L952" id.1L952" 7n4.1L921">7H_NOSNAPf">s)s_cap_releas7s_don73s_cap_lock" cl1486ass="sr14ment". */ /7+code=ci" 7lada hrefode=)> a href7"+cod73s_cap_lock" cl1487ass>1564ass="sr15.1L86ca>);1vf>apr__g r c#L9f id.1L951" clasfreepatht7 h="+code=7i" cla143h/esent_on s);1vf>apr__gpathlenala> eph_inodsslenala> spa3 class7"comm73 class="sref">1499asssr1458"/mds_client.c#L952" id.1L952" 7s_client.c7L944" c#L945"a> in7 a h74s_cap_lock" cl15class="sr15s_"srr.leanup_cap_143h/esent_on slist_headal7target_ses7iopino r 1)> a href7"+cod74s_cap_lock" cl1562ass="sr151cf">NULLala>) {n152h/mds_client.id.1L943" pre_sre_send5tc#L952 "line" tid nam4.lld nam4.s (attempt nam4.d) a href="+cexpected, "86sreattempt"s_cl 158"/mds_client.c#L952" id.1L952" 7ht_target_7essiopath )> a href7"+cod74s_cap_lock" cl15"4ass="sr15="sref">out7ha>; 1564ass="sr15.1L86_"86sregot_unsafa82/mds_client.id.1 id.1L951" clasrss="sr7ht_target_7eepath ep1> in7 a h74 class="sref">1536assl class="1571ass="sr15870ala> } 157h/mds_cli7>154h/mds_7lient.c#L945"a> in7 a h747_cap7ala> spa1573ass="sr15lllllllllllllllll* Replay. Do8888 regenerate messag/ (and rebuild0ala> } 157h/mds_cli7>h="+code=7151L9>154h/mds_client.c#L746" i74s_cap7ala> spa144lass="sr14lllllllllllllllll* _sess, etc.); ju52 use the original messag/f15lea>1573/mds_client.c#L881" id.1L884 i7ala> 154h/mdsgt; a href7"+cod74t"./*7ala> spa1441ass="sr14>llllllllllllllll* Rebuild.id _sess will breakcl148re; a s becau h+clea>1573/mds_client.c#L881" id.1L884 i7f="+code=i7ode" class="srrgt; a href7"+cod75">"857ala> spa144lass="sr14>llllllllllllllll* d_move mangl s the srct; a f15lea>1573/mds_client.c#L881" id.1L884 i7not_target7sessiopino rgt; a href7"+cod75">"857ala> spa1441ass="sr14>llllllllllllllll*ist_headala>);1li>1574/mds_clie7arget_sess7opfreepath )client.c#L746" i75 class="sref">1492ass asg_target_sessiop sgL86856h/mds_client.f i_155h/mds_cap_releas7s_don751L946" class="1543ass3ass="sr14f">drrhead_target_sessioprheadL86856h/mds_client.f iasg_target_sessiop sgL868pathlenala> eph_inodfrods_target_sessiopfrodsef15ensry kala>(& ov_ a href="dacouort_t ov_ a h+cod158"/mds_client.c#L952" id.1L952" 7at_target_7p" cdensry > in7 a h75s_cap_lock" cl15"4ass="sr15="sref">out7tht_target7sessiopath > a href7"+cod75 class="sref">14.5asslass="sr15.1L87mlag"t_c#qL863">"86smlag"L86856hlass="sr15.1L87le32_to_cput_c#qL863">"86sle32_to_cpu" cse"srr.leanup_cap_head_target_sessioprheadL868pathlenala> eph_inodflag"t_c#qL863">"86smlag"L868 158"/mds_client.c#L952" id.1L952" 7nt_target_7f15\3&>155h/mdsclient.c#L746" i75 class="sref">1536asslass="sr15.1L87mlag"t_c#qL863">"86smlag"L8685|6hlass="sr15.1L87ode" MDS_FLAG_REPLAYt_c#qL863">"86sode" MDS_FLAG_REPLAY+cod158"/mds_client.c#L952" id.1L952" 7a154h/mds_7H_NOSNAPf">s)s_cap_releas7s_don75s_cap_lock" cl1487ass"srr.leanup_cap_head_target_sessioprheadL868pathlenala> eph_inodflag"t_c#qL863">"86smlag"L86856h/mds_client.f iapu_to_le32asppatht_targetapu_to_le32" cse"srr.leanup_capflag"t_c#qL863">"86smlag"L868 158"/mds_client.c#L952" id.1L952" 7nh="+code=7de" class="sr)> a href7"+cod751L946" class="1548ass="sr15.1L947">"947s="sref">p7athlenala> epa> in7 a h75 class="sref">1499ass>1564ass="sr15.1L86_"86sretargethf="dar__g r c#L9f id.1L951" clasfreepatht7s_client.c7L944" c#L945"a> in7 a h76s_cap_lock" cl15class="sr15s_"srr.leanup_cap_head_target_sessioprheadL868pathlenala> eph_inod sref">cbala>( au.1L86356h/mds_client.f iapu_to_led.1L951" clasrpatapu_to_led." cse"srr.leanup_cap/ /spf="t_c#qL863">"86s/ /spf="" cse"srr.leanup_cap_"86sretargethf="dar__g 158"/mds_client.c#L952" id.1L952" 7ref15men>1760/mds_client._client.c#L746" i76f="+code=drop"1581ass="sr15mment"./* /7rrget_sess7de" class="sr)> a href7"+cod76 class="sref">1492ass _head_target_sessioprheadL868pathlenala> eph_inodnum_);c#Lasppatht_targetnum_);c#LL86856h/mds_client.f i_"86sreattempt"s_cl - 1158"/mds_client.c#L952" id.1L952" 7rt_target_7iopino r 1)> a href7"+cod7=s_cap58"/mds_client.c#L952" id.1L952" 7rt_target_7" cdensry )> a href7"+cod76s_cap_lock" cl1514ass="sr15">old_capala>) {n);1li>1574/mds_clie7ht_target_7essiopath ))client.c#L746" i76 class="sref">14.5asslass="sr15.1L87_head_target_sessioprheadL868pathlenala> eph_inodnum_);lease"t_c#qL863">"86snum_);lease"L86856h>158"/mds_client.c#L952" id.1L952" 7rt_target_7essiopath )> a href7"+cod76 class="sref">1536asslass="sr15.1L87asg_target_sessiop sgL868pathlenala> eph_inodhd15>li>157h/mdsc#hd1" cdensry kala>(&frods_f id.1L951" clasbafrods_f iL86856h/mds_client.f iapu_to_le32asppatht_targetapu_to_le32" cse"srr.leanup_cap="a href14="s>143h/mds_clpathlenala> eph_inodretc#L952_);lease_h/fsett_c#qL863">"86sretc#L952_);lease_h/fsetL868 158"/mds_client.c#L952" id.1L952" 7r154h/mds_7sessiopath > a href7"+cod76s_cap_lock" cl1487ass"srr.leanup_capasg_target_sessiop sgL868pathlenala> eph_inodfrods_target_sessiopfrodsef15ensry kala>(& ov_f id.1L951" clasba ov_f i+cod56h/mds_client.f i="a href14="s>143h/mds_clpathlenala> eph_inodretc#L952_);lease_h/fsett_c#qL863">"86sretc#L952_);lease_h/fsetL868158"/mds_client.c#L952" id.1L952" 7rh="+code=7eepath ep1> in7 a h76s_cap_lock" cl1578ass="sr14=>158"/mds_client.c#L952" id.1L952" 7r="sref">p7lient.c#L945"a> in7 a h76s_cap_lock" code=drop"1569ass="sr15>list_headal7>);1li>156h/mds_client.c#L746" i7.1L946" class="157lass="sr15"sref">msga7a>);11571/mdsclient.c#L746" i771_cap_lock" c>1564ass="sr15.1L86_1492ass ath sg_p">NULLala>) {n" cse"srr.leanup_cap="a href14="s>143h/mds_clpathlenala> eph_inodretc#L952_target_sessiopr5tc#L952clasd158"/mds_client.c#L952" id.1L952" 7s *, a den7ry *, or" class="line" na74.1L8771L946" class="1543ass3ass="sr14f">drr"a href14="s>143h/mds_clpathlenala> eph_inodretc#L952_target_sessiopr5tc#L952clas56h/mds_client.f iid.1L951" claspatht_target_158"/mds_client.c#L952" id.1L952" 7st_target_7la+path." class="line" na74.1L877 class="sref"ode=drop"1569ass="sr15>list_headal7>t_target_7d.1L887ala>; spa3 class7"comm775L946" class="1561ass="sr15easg_target_sessiop sgL86856h/mds_client.f iareatentc#L952_messag/NULLala>) {n"86ss="sr__g, " cstrncpy _"86ss="ino 158"/mds_client.c#L952" id.1L952" 7nt_target_7" crdensry rgt; a href7"+cod7=s_cap_lock" c>1564ass="sr15.1L86IS_ERef14.1L>148"/mdsIS_ERe" cse"srr.leanup_capmsg_target_sessiop sgL868 ds_client.id.1 id.1L951" clasrss="sr7n154h/mds_7ve_sesrcla rgt; a href7"+cod77s_cap_lock" cl1487ass"srr.leanup_cap_"a href14="s>143h/mds_clpathlenala> eph_inodreer15>li>157h/mdsc#reer1L86856h/mds_client.f iPTR_ERef14.1L>148"/mdsPTR_ERe" cse"srr.leanup_capmsg_target_sessiop sgL868 158"/mds_client.c#L952" id.1L952" 7nh="+code=7f">pathlenala>=gt; a href7"+cod7=s_cap_lock" cl1578ass="sr14>ceph_capaompletentc#L952iennotstrasrpataompletentc#L952" cse"srr.leanup_capmdest_c#qL863">"86ss="sr__g, " cstrncpy _p7iofreepath )client.c#L746" i77 class="sref">1499ass="sr14="sref">out /a>;PTR_ERef14.1L>148"/mdsPTR_ERe" cse"srr.leanup_capmsg_target_sessiop sgL868 158"/mds_client.c#L952" id.1L952" 7a>} 157h/mds_cap_releas7s_don78s_cap_lock" code=drop"1569ass="sr15>list_headal7r=session"7classrala> epa> in7 a h78s_cap_lock" c3ass="sr14f">drr"a href14="s>143h/mds_clpathlenala> eph_inodretc#L952_target_sessiopr5tc#L952clas56h/mds_client.f iasg_target_sessiop sgL868158"/mds_client.c#L952" id.1L952" 7pa3.1158h/mdsclient.c#L746" i781L946de=drop"1569ass="sr15>list_headal7a *, a den7esrclass="sr)s_cap_releas7s_don78s_cap_lock" cl1563ass="sr15=rhead_target_sessioprheadL86856h/mds_client.f iasg_target_sessiop sgL868pathlenala> eph_inodfrods_target_sessiopfrodsef15ensry kala>(& ov_ a href="dacouort_t ov_ a h+cod158"/mds_client.c#L952" id.1L952" 7rexplicitn7eadcsess )> a href7"+cod78s_cap_lock" class="sr15.1L87_head_target_sessioprheadL868pathlenala> eph_inodold952_ id.1Letid_target_sessiopold952_ id.1LetidL86356h/mds_client.f iapu_to_led.1L951" clasrpatapu_to_led." cse"srr.leanup_cap_pgethold952_tid_target_sessiop_pgethold952_tid" cse"srr.leanup_capmdest_c#qL863">"86ss="sr__g 158"/mds_client.c#L952" id.1L952" 7on" classp7e c! a>tis_cap_releas7s_don785L946" class=>1564ass="sr15.1L86_"86sregot_unsafa82/md58"/mds_client.c#L952" id.1L952" 7ot_target_7ode" class="sr> a href7"+cod78s_cap_lock" cl1576asslass="sr15.1L87mlag"t_c#qL863">"86smlag"L8685|6hlass="sr15.1L87ode" MDS_FLAG_REPLAYt_c#qL863">"86sode" MDS_FLAG_REPLAY+cod158"/mds_client.c#L952" id.1L952" 7f=ref">rem7f14men>148h/mdsgt; a href7"+cod78s_cap_lock" cl1542ass="sr15last__"86smlag"L8685|6hlass="sr15.1L87ode" MDS_FLAG_WANT_DENTRYt_c#qL863">"86sode" MDS_FLAG_WANT_DENTRY+cod158"/mds_client.c#L952" id.1L952" 7f="sref">p7clada hrefode=> a href7"+cod78s_cap_lock" c3ass="sr14f">dr_head_target_sessioprheadL868pathlenala> eph_inodflag"t_c#qL863">"86smlag"L86856h/mds_client.f iapu_to_le32asppatht_targetapu_to_le32" cse"srr.leanup_capflag"t_c#qL863">"86smlag"L868 158"/mds_client.c#L952" id.1L952" 76ss="srCEP7_SNAPDIRf">s)s_cap_releas7s_don791L946" class="151lass="sr15a_head_target_sessioprheadL868pathlenala> eph_inodnum_fwd_target_sessiopnum_fwd+cod56h/mds_client.f i="a href14="s>143h/mds_clpathlenala> eph_inodrenum_fwd_target_sessioprenum_fwd+cod158"/mds_client.c#L952" id.1L952" 7ut SNAPDIR7class="string">cap_releas7s_don791L946" class="1561ass="sr15e_head_target_sessioprheadL868pathlenala> eph_inodnum_);c#Lasppatht_targetnum_);c#LL86856h/mds_client.f i_"86sreattempt"s_cl - 1158"/mds_client.c#L952" id.1L952" 76a3.1cbala>( au.1L86356h>158"/mds_client.c#L952" id.1L952" 76">remove_7="sr a a spa3 class7"comm79s_cap58"/mds_client.c#L952" id.1L952" 7uexplicitn7H_NOSNAPf">s)s_cap_releas7s_don7" class="sref"l1563ass="sr15=cf">NULLala>) {n152h/mds_client.id.1L943" relocked_di156h"line" a href="+cexpected, 158"/mds_client.c#L952" id.1L952" 76t_target_7 887" 914break spa3 class7"comm79s_capode=drop"1569ass="sr15>list_headal7ds_client.7#L91111} else _cap_releas7s_don79t"./* put_cap 1477ass="sr14876ala> 76class="sr7"sref">lenala> spa3 class7"comm79s_cap7ala> spa144lass="sr14870ala> } 157h/mds_cli76+code=ci"7e < 0)s_cap_releas7s_don79t"./*7ala> spa1441ass="sr14>lLsend tc#L952, or put it on the appropriate wait listf15lea>1573/mds_client.c#L881" id.1L884 i8m4.1L921">8921d=sessceph)> a href8"+cod80">"857ala> spa144lass="sr14>list_headala>);1li>1574/mds_clie843" c#L8688 887" 914break spa3 class8"comm80">"85 put_cap 1575ass="sr15>lis__do5tc#L952_target_sessiop__do5tc#L95215refttrequest_path_attr=seath 574/mds_target_sessiopath 574/mdsL868" mdest_c#qL863">"86ss="sr__gh954"r.c#L9f id.1L951" claspathlen842" c#L8688 ssiotemp );cap_releas846" i80 class="sref">1492ass="sr14"sttrequest_path_attr=seath 5tc#L952_target_sessiopath 5tc#L952class="srr.leanup_cap_ 843" c#L8688 "sr a a spa3 class8s_don801L946_client.id.1 id.1L951" clasrss="sr8en" class=8sref">lenala>)> a href8"+cod80 class="sref"ttrequest_path_attr=seath 5sessioid.1L951" clasbaath 5sessioiclass="srr.leanup_capsessioid.1L951" clasbasessioiclass6h/mds_client.f iid.1L951" claspatht_target_158"/mds_client.c#L952" id.1L952" 845" class=8s21d=sessceph)> a href846" i8.1L946" class=>158lass="sr15.1L8751"t_c#qL863">"86ss="ino 56h-1158"/mds_client.c#L952" id.1L952" 8m4.1L921">8921d=sessceph)> a href8"+cod806L946" class=>158lass="sr15.1L87er15>li>157h/mdsc#er1L86856h-lass="sr15.1L87EAGAINt_c#qL863">"86sEAGAINget_158"/mds_client.c#L952" id.1L952" 847.1L921">89L91111} else _cap_releas846" i80t"./* put_cap 1477ass="sr14876ala> 8 a hrest8;/"st9;string"> a href8"+cod80s_cap_lock" cl1542ass="sr15last__143h/mds_clpathlenala> eph_inodregot_resul2_target_sessiopr5got_resul2s_cl put_cap 1477ass="sr14876ala> 849 a hrest8; < 0)s_cap_releas8"comm80 class="sref">1499assgoto+cexpected, asppatht_targetf">15re158"/mds_client.c#L952" id.1L952" 8ref15csr>180h/mds_client._client.c#L846" i811L946" class="157lass="sr15"sref">msga8r3" c#L8688dcass="l )> a href8"+cod811_cap_lock" c>1564ass="sr15.1L86_asppatht_targetretimef">_cap__inod_inod" class="157lass="sr15"sref">msga8r2" c#L8688="srseqf">s-is_cap_releas8s_don81 class="sref">149enala> eph_inodtime_aftereea href14="s>143htime_aftereea" cse"srr.leanup_capjiffie"t_c#qL863">"86sjiffie"r__g, " cstrncpy _143h/mds_clpathlenala> eph_inodretimef">asppatht_targetretimef">_cap ds_client.id.1 id.1L951" clasrss="sr8Lh="+code=8e lass="string"cap_releas8s_don811L946" class="1543assl1563ass="sr15=cf">NULLala>) {n152h/mds_client.id.1L943" do5tc#L952 timed ref a href=d158"/mds_client.c#L952" id.1L952" 8Ln" class=8 classpoe )> a href8"+cod81s_cap_lock" cl1514ass=ps_cbala>(struer15>li>157h/mdsc#er1L86856h-lass="sr15.1L87EIOt_c#qL863">"86sEIO15re158"/mds_client.c#L952" id.1L952" 8r5" class=8g with.astring"cap_releas8s_don81 class="sref">14.5assgoto+cexpected, refinis"15re158"/mds_client.c#L952" id.1L952" 8r4.1L921">8 ciennotstring"cap_releas8s_don81 class="sref"ode=drop"1569ass="sr15>list_headal8Loe=sessio8hie, butstring"cap_releas8s_don81t"./* put_cap 1477ass="sr14876ala> 8L a hrest8less)apala>; spa3 class8"comm81s_cap_lock" ccexpected, "86ss="ino 56h75ass="sr15>lis__choose_51"t_c#qL863">"86s__choose_51"" cse"srr.leanup_capmdest_c#qL863">"86ss="sr__g, " cstrncpy _1564ass="sr15.1L86a1"t_c#qL863">"86ss="ino 5< 05||58"/mds_client.c#L952" id.1L952" 8y2" c#L8688f15.1L>152h/mdsclient.c#L846" i82 class="sref">149enala> eph_inodath mappgeth putoaladensryode=ceath mappgeth puto" cse"srr.leanup_capmdest_c#qL863">"86ss="sr__gpathlenala> eph_inods mapt_c#qL863">"86ss="ma1ef15, " cstrncpy 51"t_c#qL863">"86ss="ino 5< lass="sr15.1L87ode" MDS_STATE_ACTIVEt_c#qL863">"86sode" MDS_STATE_ACTIVEino 5_client.id.1 id.1L951" clasrss="sr8+code=ci" 8lada hrefode=)> a href8"+cod821L946" class="1543assl1563ass="sr15=cf">NULLala>) {n152h/mds_client.id.1L943" do5tc#L952 no mds or 888 active, wait.id l148ma1 a href=d158"/mds_client.c#L952" id.1L952" 8an" class=8"sref">lenala> spa3 class8"comm82s_cap_lock" cl1514ass=ps_cbala>(strulist_add_target_sessioplist_add15ref_inode_infoalareadcs_"86ss="sr__gpathlenala> eph_inodwait.id_for_5apt_c#qL863">"86swait.id_for_5aps_cl 158"/mds_client.c#L952" id.1L952" 8y5" class=8class="string">cap_releas8s_don82 class="sref">14.5assgoto+cexpected, asppatht_targetf">15re158"/mds_client.c#L952" id.1L952" 8a4.1L921">8essiopath )> a href8"+cod82 class="sref"ode=drop"1569ass="sr15>list_headal8tht_target8sessiopath > a href8"+cod82t"./* put_cap 1477ass="sr14876ala> 8yld be har8152 >152h/mds_client.c#L846" i82s_cap_lock" c="sr15">old_capala>) {nlist_headala>);1li>1574/mds_clie8yt_target_8f15ssi>152h/mdsgt; a href8"+cod82s_cap_lock" c3ass="sr14f">drsessioid.1L951" clasbasessioiclass6h/mds_client.f i__cth lookup 5sessioid.1L951" clasba__cth lookup 5sessioi" cse"srr.leanup_capmdest_c#qL863">"86ss="sr__g, " cstrncpy 51"t_c#qL863">"86ss="ino 158"/mds_client.c#L952" id.1L952" 8ode=ceph_c8p" cdensry rgt; a href8"+cod83s_cap_lock" c"158!3ass="sr14f">drsessioid.1L951" clasbasessioiclas 5_client.id.1 id.1L951" clasrss="sr8not_target8sessiopino rgt; a href8"+cod83s_cap_lock" cl1531ass="sr15ve_cap().sessioid.1L951" clasbasessioiclass6h/mds_client.f iregister5sessioid.1L951" clasbaregister5sessioi" cse"srr.leanup_capmdest_c#qL863">"86ss="sr__g, " cstrncpy 51"t_c#qL863">"86ss="ino 158"/mds_client.c#L952" id.1L952" 8o2" c#L8688opfreepath )client.c#L846" i83 class="sref">1492ass>1564ass="sr15.1L86IS_ERef14.1L>148"/mdsIS_ERe" cse"srr.leanup_capsessioid.1L951" clasbasessioiclas 5_client.id.1 id.1L951" clasrss="sr8ncode=ci" 815 >153h/mds_cap_releas8s_don831L946" class="1543assl1531ass="sr15ve_cap().er15>li>157h/mdsc#er1L86856h="sr15ve_cap().PTR_ERef14.1L>148"/mdsPTR_ERe" cse"srr.leanup_capsessioid.1L951" clasbasessioiclas 158"/mds_client.c#L952" id.1L952" 8on" class=8sessiopath > a href8"+cod83s_cap_lock" cl1514ass>14.5assgoto+cexpected, refinis"15re158"/mds_client.c#L952" id.1L952" 8t5" class=8f15="s>153h/mdssionala>-&8t; a 83 class="sref">14.5assode=drop"1569ass="sr15>list_headal8n4.1L921">8H_NOSNAPf">s)s_cap_releas8s_don83 class="sref"ode=drop"1569ass="sr15>list_headal8+code=ci" 8lada hrefode=)> a href8"+cod83s_cap_lock" c" cstrncpy _"948nt_target_8"sref">lenala> spa3 class8"comm83s_cap_lock" c3ass="sr14f">drcf">NULLala>) {n152h/mds_client.id.1L943" do5tc#L952 sr1nam4.d sessioi>"line" puto nam4.s a href="+cexpected, "86ss="ino "+cexpected, in8 a h84s_cap_lock" cl15clcexpected, eph_inodsh putoaladensryode=cesh puto" cs 158"/mds_client.c#L952" id.1L952" 8sot_target840/mds_client._client.c#L846" i841_cap_lock" c>1564ass="sr15.1L86sessioid.1L951" clasbasessioiclaspathlenala> eph_inodsh putoaladensryode=cesh puto" cs !6hlass="sr15.1L87ode" MDS_SESSION_OPENt_c#qL863">"86sode" MDS_SESSION_OPEN_cap__inod_inod" class="157lass="sr15"sref">msga8target_ses8iopino r 1)> a href8"+cod84 class="sref">149enala> eph_inodsessioid.1L951" clasbasessioiclaspathlenala> eph_inodsh putoaladensryode=cesh puto" cs !6hlass="sr15.1L87ode" MDS_SESSION_HUNGt_c#qL863">"86sode" MDS_SESSION_HUNGclas 5_client.id.1 id.1L951" clasrss="sr8ht_target_8essiopath ))client.c#L846" i8.1L946" class="1543" c>1564ass="sr15.1L86sessioid.1L951" clasbasessioiclaspathlenala> eph_inodsh putoaladensryode=cesh puto" cs =6hlass="sr15.1L87ode" MDS_SESSION_NEWt_c#qL863">"86sode" MDS_SESSION_NEWL8685||client.id.1 id.1L951" clasrss="sr8hn" class=8essiopath )> a href8"+cod84s_cap_lock" cl1514ass>14.4ass="sr15.1L86sessioid.1L951" clasbasessioiclaspathlenala> eph_inodsh putoaladensryode=cesh puto" cs =6hlass="sr15.1L87ode" MDS_SESSION_CLOSINGt_c#qL863">"86sode" MDS_SESSION_CLOSINGs_cl put_cap 1477ass="sr14876ala> 8ha>; 14.5ass4ass>14.4ass="sr15.1L86__open5sessioid.1L951" clasba__open5sessioi" cse"srr.leanup_capmdest_c#qL863">"86ss="sr__g, " cstrncpy sessioid.1L951" clasbasessioiclas 158"/mds_client.c#L952" id.1L952" 8ht_target_8eepath ep1> in8 a h84 class="sref">1536asslps_cbala>(strulist_add_target_sessioplist_add15ref_inode_infoalareadcs_ eph_inodshwait.idaladensryode=ceshwait.idclas 158"/mds_client.c#L952" id.1L952" 8hcode=ci" 8lient.c#L945"a> in8 a h84s_cap_lock" cl1487assgoto+cexpected, 5sessioid.1L951" clasbaf">5sessioi15re158"/mds_client.c#L952" id.1L952" 8>h="+code=8151L9>154h/mds_client.c#L846" i84s_cap_lock" code=drop"1569ass="sr15>list_headal8ala> 154h/mdsgt; a href8"+cod84f="+c58"/mds_client.c#L952" id.1L952" 8f="+code=i8ode" class="srrgt; a href8"+cod851L946" class=""sr15">old_capala>) {nlist_headala>);1li>1574/mds_clie8not_target8sessiopino rgt; a href8"+cod85s_cap_lock" c3ass="sr14f">drr"a href14="s>143h/mds_clpathlenala> eph_inodretcsend551"t_c#qL863">"86sretcsend551"L86856h-1;ss=""sr15">old_capala>) {n158list_headala>);1li>1574/mds_clie8narget_ses8opfreepath )client.c#L846" i851L946de=drop"1569ass="sr15>list_headal8at_target_815ref>155h/mds_cap_releas8s_don851L946" class=>1564ass="sr15.1L86_old_capala>) {nstart time8list_headala>);1li>1574/mds_clie8nn" class=8p" cdensry > in8 a h85s_cap_lock" cl1514ass=ps_cbala>(stru_(strujiffie"t_c#qL863">"86sjiffie"r__g158"/mds_client.c#L952" id.1L952" 8tht_target8sessiopath > a href8"+cod85 clas58"/mds_client.c#L952" id.1L952" 8tt_target_8f15\3&>155h/mdsclient.c#L846" i851L946" class=" cstrncpy er15>li>157h/mdsc#er1L86856h="sr15ve_cap().__pre_sre_send5tc#L952_target_sessiop__pre_sre_send5tc#L952" cse"srr.leanup_capmdest_c#qL863">"86ss="sr__g, " cstrncpy _"86ss="ino 158"/mds_client.c#L952" id.1L952" 8a154h/mds_8H_NOSNAPf">s)s_cap_releas8s_don85s_cap_lock" cl154!3ass="sr14f">drer15>li>157h/mdsc#er1L868 5_client.id.1 id.1L951" clasrss="sr8nh="+code=8de" class="sr)> a href8"+cod85s_cap_lock" cl1578ass="sr14>ceph_capath sg_gett_c#qL863">"86sath sg_get" cse"srr.leanup_cap_p8athlenala> epa> in8 a h85 class="sref">1499ass="sr14>ceph_capath coih endt_c#qL863">"86sath coih end15ref_inode_infoalareadcssessioid.1L951" clasbasessioiclaspathlenala> eph_inodshcoid.1L951" clasbashcoir__g, " cstrncpy _ in8 a h86s_cap_lock" code=drop"1569ass="sr15>list_headal8ref15men>1860/mds_client._client.c#L846" i86f="+code=drop"1581ass="sr15mment"./* /8rrget_sess8de" class="sr)> a href8"+cod86 clascexpected, 5sessioid.1L951" clasbaf">5sessioi15re: put_cap 1477ass="sr14876ala> 8rt_target_8iopino r 1)> a href8"+cod86s_cap_lock" cl1563ass="sr15=ath putn 5sessioid.1L951" clasbaath putn 5sessioi" cse"srr.leanup_capsessioid.1L951" clasbasessioiclas 158"/mds_client.c#L952" id.1L952" 8rt_target_8" cdensry )> a href8"+cod86s_cap7mds_client.f if">asppatht_targetf">15re: put_cap 1477ass="sr14876ala> 8ht_target_8essiopath ))client.c#L846" i861L946" class=="sr14=3ass="sr14f">drer15>li>157h/mdsc#er1L868158"/mds_client.c#L952" id.1L952" 8rt_target_8essiopath )> a href8"+cod86s_cap_lock" cl1486ass="sr14ment". */ /8r154h/mds_8sessiopath > a href8"+cod86s_capcexpected, refinis"15re: put_cap 1477ass="sr14876ala> 8hh="+code=8eepath ep1> in8 a h86s_cap_lock" ccexpected, p8lient.c#L945"a> in8 a h86s_cap_lock" c3ass="sr14f">draompletentc#L952iennotstrasrpataompletentc#L952" cse"srr.leanup_capmdest_c#qL863">"86ss="sr__g, " cstrncpy _);1li>156h/mds_client.c#L846" i87s_cap_lock" cgoto+cexpected, asppatht_targetf">15re158"/mds_client.c#L952" id.1L952" 8a>);11571/mdsclient.c#L846" i871_capode=drop"1569ass="sr15>list_headal8nt.c#L881"8id.1L857" class="line" na84.1L8871L946de=drop"1569ass="sr15>list_headal8s *, a den8ry *, or" class="line" na84.1L887">"857ala> spa1573ass="sr15870ala> } 157h/mds_cli8st_target_8la+path." class="line" na84.1L887 clas7ala> spa1572ass="sr15ses885" d und id.dscpathlmutex0ala> } 157h/mds_cli8>t_target_8d.1L887ala>; spa3 class8"comm875L9467ala> spa144lass="sr14>list_headala>);1li>1574/mds_clie8nt_target_8" crdensry rgt; a href8"+cod8=s_cap put_cavoide/mds_client.f i__wakentc#L952"t_c#qL863">"86s__wakentc#L952"" csettrequest_path_attr=seath 574/mds_target_sessiopath 574/mdsL868" mdest_c#qL863">"86ss="sr__gh954"r.c#L9f id.1L951" claspathlen8n154h/mds_8ve_sesrcla rgt; a href8"+cod87s_cap_lock" cl1487assssssssssssssttrequest_path_attr=selist_head_target_sessioplist_headL868" head_target_sessiopheadL868 put_cap 1477ass="sr14876ala> 8nh="+code=8f">pathlenala>=gt; a href8"+cod8=s_cap_client.id.1 id.1L951" clasrss="sr8n="sref">p8iofreepath )client.c#L846" i87 class="sref">1431ass="sr14s held */ /spa 5tc#L952_target_sessiopath 5tc#L952class="srr.leanup_cap_} 157h/mds_cap_releas8s_don881L946" class="157lass="sr15"sref">msga8r=session"8classrala> epa> in8 a h88s_cap_lock" c3ass="sr14f">drlist_for_each_etc#L_safat_c#qL863">"86slist_for_each_etc#L_safa" cse"srr.leanup_cap_1492ass list_del_initasppatht_targetlist_del_init15ref_inode_infoalareadcs_"86ss="sr__g, " cstrncpy _list_headal8on" classp8e c! a>tis_cap_releas8s_don885L946ode=drop"1569ass="sr15>list_headal8ot_target_8ode" class="sr> a href8"+cod88s_cap_lock" cl1486ass="sr14ment". */ /8f=ref">rem8f14men>148h/mdsgt; a href8"+cod887_cap7ala> spa1573ass="sr15870ala> } 157h/mds_cli8oh="+code=8921d=sessceph)> a href8"+cod88s_cap7ala> spa144lass="sr14l* Wake up t }ads with tc#L952s pend.id l148@70>, so t at theys88n0ala> } 157h/mds_cli8o="sref">p8clada hrefode=> a href8"+cod88t"./*7ala> spa1441ass="sr14>lLresubmit their tc#L952s to+a possibly differ"srd.dsf15lea>1573/mds_client.c#L881" id.1L884 i86ss="srCEP8_SNAPDIRf">s)s_cap_releas8s_don89">"857ala> spa144lass="sr14>list_headala>);1li>1574/mds_clie8ut SNAPDIR8class="string">cap_releas8s_don89">"85 put_cavoide/mds_client.f ikickntc#L952"t_c#qL863">"86skickntc#L952"" csettrequest_path_attr=seath 574/mds_target_sessiopath 574/mdsL868" mdest_c#qL863">"86ss="sr__ghl>158lass="sr15.1L8751"t_c#qL863">"86ss="ino r c#L9f id.1L951" clasfreepatht86a3.1remove_8="sr a a spa3 class8"comm893class="sref">1431ass="sr14s held */ /spa 5tc#L952_target_sessiopath 5tc#L952class="srr.leanup_cap_s)s_cap_releas8s_don8" class="sref">1431ass="sr14s held *rb_="dat_c#qL863">"86srb_="daclass="srr.leanup_cappt_c#qL863">"86sps_cl158"/mds_client.c#L952" id.1L952" 8un" classp8921d=sessceph)> a href8"+cod89 clas58"/mds_client.c#L952" id.1L952" 86t_target_8 887" 914break spa3 class8"comm891L946" class=" cstrncpy cf">NULLala>) {n152h/mds_client.id.1L943" kickntc#L952" sr1nam4.d a href="+cexpected, "86ss="ino 158"/mds_client.c#L952" id.1L952" 8ds_client.8#L91111} else _cap_releas8s_don89s_cap_lock" cl148f"srr.leanup_cappt_c#qL863">"86sps_cls6h/mds_client.f irb_fir52_target_sessioprb_fir5215ref_inode_infoalareadcsmdest_c#qL863">"86ss="sr__gpathlenala> eph_inodtc#L952etreat_c#qL863">"86src#L952etreaino 1ccexpected, "86sps_cl1ccexpected, "86sps_cls6h/mds_client.f irb_nex2_target_sessioprb_nex215ref"srr.leanup_cappt_c#qL863">"86sps_cl 5_client.id.1 id.1L951" clasrss="sr86class="sr8"sref">lenala> spa3 class8"comm89s_cap_lock" cl1578ass="sr14>ceph_cap_"86sps_cl,">1431ass="sr14s held */ /spa 5tc#L952_target_sessiopath 5tc#L952clas, " cstrncpy _e="dat_c#qL863">"86sre="dar__g 158"/mds_client.c#L952" id.1L952" 8d="sref">p8e < 0)s_cap_releas8s_don89 class="sref">1499ass>1564ass="sr15.1L86_"86sregot_unsafa82/md58"/mds_client.c#L952" id.1L952" 9m4.1L921">9921d=sessceph)> a href9"+cod90s_cap_lock" cl15class="sr15s_continue158"/mds_client.c#L952" id.1L952" 943" c#L8689 887" 914break spa3 class9"comm90s_cap_lock" cl1531ass>1564ass="sr15.1L86_msga942" c#L8689 ssiotemp );cap_releas946" i90 class="sref">1492ass="sr4ass="sr15.1L86_ eph_inodsh51"t_c#qL863">"86ss551"L868566h/mds_client.f ia1"t_c#qL863">"86ss="ino 5_client.id.1 id.1L951" clasrss="sr943" c#L8689 "sr a a spa3 class9s_don901L946" class="1543assl1531ass="sr15ve_cap().cf">NULLala>) {n152h/mds_client.id.1L943" kick.id tid nam4.llu a href="+cexpected, lenala>)> a href9"+cod90s_cap_lock" cl1514assl1531ass="sr15ve_cap().__do5tc#L952_target_sessiop__do5tc#L95215ref"srr.leanup_capmdest_c#qL863">"86ss="sr__g, " cstrncpy _14.5assode=drop"1569ass="sr15>list_headal9m4.1L921">9921d=sessceph)> a href9"+cod90 class="sref"ode=drop"1569ass="sr15>list_headal947.1L921">99L91111} else _cap_releas946" i90t"./*ode=drop"1569ass="sr15>list_headal948.1L921">99sref">lenala> spa3 class9"+cod901L946" class="1548ass="sr15.1L947">"94949 a hrest9; < 0)s_cap_releas9"comm90 clasvoide/mds_client.f iath c_submit5tc#L952_target_sessiopath c_submit5tc#L952" csettrequest_path_attr=seath 574/mds_target_sessiopath 574/mdsL868" mdest_c#qL863">"86ss="sr__gh954"r.c#L9f id.1L951" claspathlen9ref15csr>190h/mds_client._client.c#L946" i91s_cap_lock" cl15class="sr15s_______ttrequest_path_attr=seath 5tc#L952_target_sessiopath 5tc#L952class="srr.leanup_cap_ 9r3" c#L8689dcass="l )> a href9"+cod911_cap_client.id.1 id.1L951" clasrss="sr9r2" c#L8689="srseqf">s-is_cap_releas9s_don91s_cap_lock" cl1562ass="sr151cf">NULLala>) {n152h/mds_client.id.1L943" submit5tc#L952 oi>"line" a href="+cexpected, "86ssutexelock15ref_inode_infoalareadcsmdest_c#qL863">"86ss="sr__gpathlenala> eph_inodsutext_c#qL863">"86ssutexs_cl 158"/mds_client.c#L952" id.1L952" 9Ln" class=9 classpoe )> a href9"+cod91s_cap_lock" c="sr15ve_cap().__register5tc#L952_target_sessiop__register5tc#L95215ref"srr.leanup_capmdest_c#qL863">"86ss="sr__g, " cstrncpy _"86ss="sr__g, " cstrncpy _9 ciennotstring"cap_releas9s_don911L946" class=" cstrncpy sutexeunlockt_c#qL863">"86ssutexeunlock15ref_inode_infoalareadcsmdest_c#qL863">"86ss="sr__gpathlenala> eph_inodsutext_c#qL863">"86ssutexs_cl 158"/mds_client.c#L952" id.1L952" 9L7.1L921">9hie, butstring"cap_releas9s_don91t"./*ode=drop"1569ass="sr15>list_headal9L a hrest9less)apala>; spa3 class9"comm911L946" class="1548ass="sr15.1L947">"949L9 a hrest9essiopath )> a href9"+cod91t"./*7ala> spa1441ass="sr14870ala> } 157h/mds_cli9yode=ceph_9ap" ccesry > a href9"+cod92">"857ala> spa144lass="sr14>l Synchrously perform a> mds tc#L952. Take care of all of the0ala> } 157h/mds_cli9y3" c#L868920/mds_client._client.c#L946" i921_cap7ala> spa1441ass="sr14>lLsessioi>setup,cl14ward.id, );c#L detailsf15lea>1573/mds_client.c#L881" id.1L884 i9y2" c#L8689f15.1L>152h/mdsclient.c#L946" i92 clas7ala> spa144lass="sr14>list_headala>);1li>1574/mds_clie9+code=ci" 9lada hrefode=)> a href9"+cod921L946>158lass="sr15.1L87ath c_do5tc#L952_target_sessiopath c_do5tc#L952" csettrequest_path_attr=seath 574/mds_target_sessiopath 574/mdsL868" mdest_c#qL863">"86ss="sr__gh954"r.c#L9f id.1L951" claspathlen9an" class=9"sref">lenala> spa3 class9"comm92s_cap_lock" cl1514ass5s_______ttrequest_path_attr=sef="dat_c#qL863">"86si="daclass="srr.leanup_capdi15>li>157h/mdsc#di182/mh954"r.c#L9f id.1L951" claspathlen9a5" class=9class="string">cap_releas9s_don92 class="sref">14.5ass5s_______ttrequest_path_attr=seath 5tc#L952_target_sessiopath 5tc#L952class="srr.leanup_cap_ 9a4.1L921">9essiopath )> a href9"+cod92 clas_client.id.1 id.1L951" clasrss="sr9tht_target9sessiopath > a href9"+cod92s_cap_lock" cl158lass="sr15.1L87er15>li>157h/mdsc#er1L868158"/mds_client.c#L952" id.1L952" 9yld be har9152 >152h/mds_client.c#L946" i921L946" class="1548ass="sr15.1L947">"949yt_target_9f15ssi>152h/mdsgt; a href9"+cod92s_cap_lock" c3ass="sr14f">drcf">NULLala>) {n152h/mds_client.id.1L943" do5tc#L952 oi>"line" a href="+cexpected, msga9not_target9sessiopino rgt; a href9"+cod93s_cap_lock" c""sr15">old_capala>) {n1564ass="sr15.1L86_"86sref="das_cl put_cap 1477ass="sr14876ala> 9ncode=ci" 915 >153h/mds_cap_releas9s_don931L946" class="1543assst_path_attr=seath gethcap_);fs_target_sessiopath gethcap_);fs15ref"srr.leanup_capath f="dat_c#qL863">"86sath f="da15ref"srr.leanup_cap_"86sref="das_cl "+cexpected, "86sode" CAP_PINs_cl 158"/mds_client.c#L952" id.1L952" 9on" class=9sessiopath > a href9"+cod93s_cap_lock" cl1542ass="sr15last__153h/mdssionala>-&9t; a 93 class="sref">14.5assst_path_attr=seath gethcap_);fs_target_sessiopath gethcap_);fs15ref"srr.leanup_capath f="dat_c#qL863">"86sath f="da15ref"srr.leanup_cap_"86sode" CAP_PINs_cl 158"/mds_client.c#L952" id.1L952" 9o4.1L921">9H_NOSNAPf">s)s_cap_releas9s_don93s_cap_lock" c>1564ass="sr15.1L86_"86sath f="da15ref"srr.leanup_cap_"86sode" CAP_PINs_cl 158"/mds_client.c#L952" id.1L952" 9ot_target_9"sref">lenala> spa3 class9"comm93f="+c58"/mds_client.c#L952" id.1L952" 9s_client.c9L944" c#L945"a> in9 a h941L946" class=""sr15">old_capala>) {n);1li>1574/mds_clie9sot_target940/mds_client._client.c#L946" i94s_cap_lock" c3ass="sr14f">drmutexelockt_c#qL863">"86ssutexelock15ref_inode_infoalareadcsmdest_c#qL863">"86ss="sr__gpathlenala> eph_inodsutext_c#qL863">"86ssutexs_cl 158"/mds_client.c#L952" id.1L952" 9target_ses9iopino r 1)> a href9"+cod94s_cap_lock" cl1562ass="sr151__register5tc#L952_target_sessiop__register5tc#L95215ref"srr.leanup_capmdest_c#qL863">"86ss="sr__g, " cstrncpy _li>157h/mdsc#di182/m 158"/mds_client.c#L952" id.1L952" 9tcode=ci" 9essiopath ))client.c#L946" i94s_cap_lock" cl1563ass="sr15=__do5tc#L952_target_sessiop__do5tc#L95215ref"srr.leanup_capmdest_c#qL863">"86ss="sr__g, " cstrncpy _143h/mds_clpathlenala> eph_inodreer15>li>157h/mdsc#reer1L868 5_client.id.1 id.1L951" clasrss="sr9ht_target_9eepath ep1> in9 a h94 class="sref">1536asslps_cbala>(struer15>li>157h/mdsc#er1L86856h="sr15ve_cap()._ in9 a h94s_cap_lock" cl1487assl1563ass="sr15=__unregister5tc#L952_target_sessiop__unregister5tc#L95215ref"srr.leanup_capmdest_c#qL863">"86ss="sr__g, " cstrncpy _154h/mds_client.c#L946" i94s_cap_lock" cl1578ass="sr14>ceph_capcf">NULLala>) {n152h/mds_client.id.1L943" do5tc#L952 early er1148nam4.d a href="+cexpected, li>157h/mdsc#er1L868 158"/mds_client.c#L952" id.1L952" 9ht_target_9f15.1L>154h/mdsgt; a href9"+cod94 class="sref">1499assgoto+cexpected, asppatht_targetf">15re158"/mds_client.c#L952" id.1L952" 9f="+code=i9ode" class="srrgt; a href9"+cod95s_cap_lock" code=drop"1569ass="sr15>list_headal9not_target9sessiopino rgt; a href9"+cod95f="+code=drop"1581ass="sr15mment"./* /9narget_ses9opfreepath )client.c#L946" i95s_cap_lock" cl"sr15">old_capala>) {n);1li>1574/mds_clie9at_target_915ref>155h/mds_cap_releas9s_don95s_cap_lock" cl1563ass="sr15=mutexeunlockt_c#qL863">"86ssutexeunlock15ref_inode_infoalareadcsmdest_c#qL863">"86ss="sr__gpathlenala> eph_inodsutext_c#qL863">"86ssutexs_cl 158"/mds_client.c#L952" id.1L952" 9nn" class=9p" cdensry > in9 a h95s_cap_lock" c="sr15ve_cap().cf">NULLala>) {n152h/mds_client.id.1L943" do5tc#L952 wait.id a href=d158"/mds_client.c#L952" id.1L952" 9tht_target9sessiopath > a href9"+cod95 class="sref"l1542ass="sr15last__asppatht_targetretimef">_cap 5_client.id.1 id.1L951" clasrss="sr9tt_target_9f15\3&>155h/mdsclient.c#L946" i95 class="sref">1536asslps_cbala>(struer15>li>157h/mdsc#er1L86856h(long)lps_cbala>(struwait_for_aompletioihkillableetimef">asppatht_targetwait_for_aompletioihkillableetimef">15refclient.id.1 id.1L951" clasrss="sr9tht_target9H_NOSNAPf">s)s_cap_releas9s_don95s_cap_lock" cl1487assssssssss_inode_infoalareadcs_asppatht_targetretimef">_cap 158"/mds_client.c#L952" id.1L952" 9tld be har9de" class="sr)> a href9"+cod95s_cap_lock" cl1578assl1542ass="sr15last_er15>li>157h/mdsc#er1L868566h0)58"/mds_client.c#L952" id.1L952" 9tt_target_9athlenala> epa> in9 a h95 class="sref">1499ass>1536asslps_cbala>(struer15>li>157h/mdsc#er1L86856h-lass="sr15.1L87EIOt_c#qL863">"86sEIO15re158"/mds_client.c#L952" id.1L952" 9s_client.c9L944" c#L945"a> in9 a h96s_cap_lock" co else5_client.id.1 id.1L951" clasrss="sr9ref15men>1960/mds_client._client.c#L946" i96s_cap_lock" cl1531ass="sr15ve_cap().er15>li>157h/mdsc#er1L86856h="sr15ve_cap().wait_for_aompletioihkillableasppatht_targetwait_for_aompletioihkillable15ref_inode_infoalareadcs_list_headal9rt_target_9iopino r 1)> a href9"+cod96s_cap_lock" cl1563ass="sr15=cf">NULLala>) {n152h/mds_client.id.1L943" do5tc#L952 waited,sgot8nam4.d a href="+cexpected, li>157h/mdsc#er1L868 158"/mds_client.c#L952" id.1L952" 9rt_target_9" cdensry )> a href9"+cod96s_cap_lock" c="sr15ve_cap().mutexelockt_c#qL863">"86ssutexelock15ref_inode_infoalareadcsmdest_c#qL863">"86ss="sr__gpathlenala> eph_inodsutext_c#qL863">"86ssutexs_cl 158"/mds_client.c#L952" id.1L952" 9ht_target_9essiopath ))client.c#L946" i96 clas58"/mds_client.c#L952" id.1L952" 9rt_target_9essiopath )> a href9"+cod961L946" class=""sr15">old_capala>) {nlist_headala>);1li>1574/mds_clie9r154h/mds_9sessiopath > a href9"+cod96s_cap_lock" cl154e_infoalareadcs_li>157h/mdsc#le32_to_cpu15ref"srr.leanup_cap_ in9 a h96s_cap_lock" co else5l1542ass="sr15last_er15>li>157h/mdsc#er1L8685< 0 5_client.id.1 id.1L951" clasrss="sr9>);1li>156h/mds_client.c#L946" i97s_cap_lock" cl15classl1563ass="sr15=cf">NULLala>) {n152h/mds_client.id.1L943" aborted tc#L952>nam4.lld with nam4.d a href="+cexpected, li>157h/mdsc#er1L868 158"/mds_client.c#L952" id.1L952" 9a>);11571/mdsclient.c#L946" i97f="+code=drop"1581ass="sr15mment"./* /9nt.c#L881"9id.1L857" class="line" na94.1L897 class="sref">1492ass ala> spa1441ass="sr14870ala> } 157h/mds_cli9s *, a den9ry *, or" class="line" na94.1L897">"857ala> spa1573ass="sr15">1499ass>1536ass* ensure5we arennam9;t runn.id concurr"srlL>with0ala> } 157h/mds_cli9st_target_9la+path." class="line" na94.1L897 clas7ala> spa1572ass="sr15s>1499ass>1536ass* ath fill_trace or ath }addir_pre_opulate, which0ala> } 157h/mds_cli9st_target_9d.1L887ala>; spa3 class9"comm975L9467ala> spa144lass="sr14>>1499ass>1536ass* relL>on locks (dir sutex) held bL>ours885" rf15lea>1573/mds_client.c#L881" id.1L884 i9nt_target_9" crdensry rgt; a href9"+cod9=s_cap7ala> spa144lass="sr14>>1499ass>1536ass*ist_headala>);1li>1574/mds_clie9n154h/mds_9ve_sesrcla rgt; a href9"+cod97s_cap_lock" cl1487ass="sr15ve_cap().mutexelockt_c#qL863">"86ssutexelock15ref_inode_infoalareadcsr"86srefill_sutexL868 158"/mds_client.c#L952" id.1L952" 9ald be har9f">pathlenala>=gt; a href9"+cod97s_cap_lock" cl1578ass="sr14>ceph_cap_p9iofreepath )client.c#L946" i97 class="sref">1499ass="sr14>ceph_cap_} 157h/mds_cap_releas9s_don98s_cap_lock" cl15classl1563ass="sr15=mutexeunlockt_c#qL863">"86ssutexeunlock15ref_inode_infoalareadcsr"86srefill_sutexL868 158"/mds_client.c#L952" id.1L952" 9r=session"9classrala> epa> in9 a h98f="+code=drop"1581ass="sr15mment"./* /9pa3.1158h/mdsclient.c#L946" i98 class="sref">1492assl1542ass="sr15last__msga9a *, a den9esrclass="sr)s_cap_releas9s_don981L946" class="1543assssssf"srr.leanup_cap_"86sreop82/ms_inodhlass="sr15.1L87ode" MDS_OP_WRITEt_c#qL863">"86sode" MDS_OP_WRITEL868 )58"/mds_client.c#L952" id.1L952" 9rexplicitn9eadcsess )> a href9"+cod98s_cap_lock" cl1514ass5s______"srr.leanup_capath f=validuto_dir_tc#L952_target_sessiopath f=validuto_dir_tc#L95215ref"srr.leanup_cap_tis_cap_releas9s_don98 class="sref"o else5_client.id.1 id.1L951" clasrss="sr9ot_target_9ode" class="sr> a href9"+cod98 class="sref">1536asslps_cbala>(struer15>li>157h/mdsc#er1L86856h="sr15ve_cap()._rem9f14men>148h/mdsgt; a href9"+cod98s_cap_lock" code=drop"1569ass="sr15>list_headal9oh="+code=9921d=sessceph)> a href9"+cod981L946" class="1548ass="sr15.1L947">"949o="sref">p9clada hrefode=> a href9"+cod98t"./*7expected, asppatht_targetf">15re: put_cap 1477ass="sr14876ala> 96ss="srCEP9_SNAPDIRf">s)s_cap_releas9s_don991L946" class="1563ass="sr15=mutexeunlockt_c#qL863">"86ssutexeunlock15ref_inode_infoalareadcsmdest_c#qL863">"86ss="sr__gpathlenala> eph_inodsutext_c#qL863">"86ssutexs_cl 158"/mds_client.c#L952" id.1L952" 9ut SNAPDIR9class="string">cap_releas9s_don99s_cap_lock" c3ass="sr14f">drcf">NULLala>) {n152h/mds_client.id.1L943" do5tc#L952 "line" dona, resul2 nam4.d a href="+cexpected, li>157h/mdsc#er1L868 158"/mds_client.c#L952" id.1L952" 96a3.1drer15>li>157h/mdsc#er1L868158"/mds_client.c#L952" id.1L952" 96">remove_9="sr a a spa3 class9"comm993clasode=drop"1569ass="sr15>list_headal9uexplicitn9H_NOSNAPf">s)s_cap_releas9s_don99s_cap58"/mds_client.c#L952" id.1L952" 9un" classp9921d=sessceph)> a href9"+cod995L9467ala> spa144lass="sr14870ala> } 157h/mds_cli96t_target_9 887" 914break spa3 class9"comm99s_cap7ala> spa144lass="sr14>* I=validuto dir D_COMPLETE, detc#L>lease5 puto on a> aborted MDS0ala> } 157h/mds_cli96=ref">rem9#L91111} else _cap_releas9s_don997_cap7ala> spa1573ass="sr15>* p_realaco tc#L952f15lea>1573/mds_client.c#L881" id.1L884 i96class="sr9"sref">lenala> spa3 class9"comm99s_cap7ala> spa144lass="sr14l*ist_headala>);1li>1574/mds_clie9d="sref">p9e < 0)s_cap_releas9s_don99 clasvoide/mds_client.f iath f=validuto_dir_tc#L952_target_sessiopath f=validuto_dir_tc#L95215refttrequest_path_attr=seath 5tc#L952_target_sessiopath 5tc#L952class="srr.leanup_cap_ 20m4.1L921"20m4.1 < 0)s_cap_relea20m4.>20m4s_cl_cl/pre>put_cap 1477ass="sr14876ala> 20m1.1L921"20mlass="string">cap_relea20mla>20ms_cap_lock" cttrequest_path_attr=sef="dat_c#qL863">"86si="daclass="srr.leanup_capf="dat_c#qL863">"86si="daclass6h="sr15ve_cap()._20m2_cap_lock" cttrequest_path_attr=seath f="da_info_target_sessiopath f="da_infoclass="srr.leanup_capci_target_sessiopaiclass6h="sr15ve_cap().ath f="dat_c#qL863">"86sath f="da15ref"srr.leanup_capf="dat_c#qL863">"86si="daclas 158"/mds_client.c#L952" id.1L952"20m3.1L921"20m"sr a a spa3 clas20m"s>20m3_cap58"/mds_client.c#L952" id.1L952"20m4.1L921"20m_NOSNAPf">s)s_cap_relea20m_N>20ms_cap_lock" c="sr15ve_cap().cf">NULLala>) {n152h/mds_client.id.1L943" f=validuto_dir_tc#L952 "line" (D_COMPLETE, lease(s)) a href="+cexpected, "86si="daclas 158"/mds_client.c#L952" id.1L952"20m5.1L921"20m21d=sessceph)> a hre20m21>20m class="sref"="sr15ve_cap().spinelockt_c#qL863">"86sspinelock15ref_inode_infoalareadcsci_target_sessiopaiclaspathlenala> eph_inodi_ath lockt_c#qL863">"86si_ath lockclas 158"/mds_client.c#L952" id.1L952"20m6.1L921"20m887" 914break spa3 clas20m88>20m1L946" class=" cstrncpy ath dir_cleareaompletat_c#qL863">"86sath dir_cleareaompleta15ref"srr.leanup_capf="dat_c#qL863">"86si="daclas 158"/mds_client.c#L952" id.1L952"20m7.1L921"20mL91111} else _cap_relea20mL9>20m7L946" class=" cstrncpy ai_target_sessiopaiclaspathlenala> eph_inodi_releaseeaouds_target_sessiopi_releaseeaoudsclas++158"/mds_client.c#L952" id.1L952"20m8.1L921"20msref">lenala> spa3 clas20msr>20ms_cap_lock" ccexpected, "86sspineunlock15ref_inode_infoalareadcsci_target_sessiopaiclaspathlenala> eph_inodi_ath lockt_c#qL863">"86si_ath lockclas 158"/mds_client.c#L952" id.1L952"20m9.1L921"20m < 0)s_cap_relea20m >20mf="+c58"/mds_client.c#L952" id.1L952"2014.1L921"200h/mds_client._client.c#200h/>200h_cap_lock" cl154e_infoalareadcs_s-is_cap_relea20="s>200 class="sref">1564ass="sr15.1L86_2001L946" class="1543assst_path_attr=seath f=validuto_detc#L_lease_target_sessiopath f=validuto_detc#L_lease15ref"srr.leanup_cap_2004clasode=drop"1569ass="sr15>list_heada2005.1L921"20g with.astring"cap_relea20g w>200 clas58"/mds_client.c#L952" id.1L952"2006.1L921"20 ciennotstring"cap_relea20 ci>200s_cap7ala> spa144lass="sr14870ala> } 157h/mds_cl2007.1L921"20hie, butstring"cap_relea20hie>2007_cap7ala> spa1573ass="sr15>* Handle mds tcplyf15lea>1573/mds_client.c#L881" id.1L884 2008.1L921"20less)apala>; spa3 clas20les>200s_cap7ala> spa144lass="sr14l*15lea>1573/mds_client.c#L881" id.1L884 2009.1L921"20essiopath )> a hre20ess>200t"./*7ala> spa1441ass="sr14>lLWeatake theLsessioi>sutex and parse and process theLreplL>is="diutolyf15lea>1573/mds_client.c#L881" id.1L884 2024.1L921"20ap" ccesry > a hre20ap">20ap"./*7ala> spa1441ass="sr14>lLThis preserves theLlogical ordet.id of replies, capabilities, etc.,asent15lea>1573/mds_client.c#L881" id.1L884 2021.1L921"2020/mds_client._client.c#2020/>20a1_cap7ala> spa1441ass="sr14>lLby theLMDS as theysare applied to+ourslocal cachef15lea>1573/mds_client.c#L881" id.1L884 2022.1L921"20f15.1L>152h/mdsclient.c#20f15>20a clas7ala> spa144lass="sr14>list_headala>);1li>1574/mds_cli20a3.1L921"20lada hrefode=)> a hre20lad>20a1L946 put_cavoide/mds_client.f ihandle5replL_target_sessiophandle5replL15refttrequest_path_attr=seath 5sessioid.1L951" clasbaath 5sessioiclass="srr.leanup_capsessioid.1L951" clasbasessioiclas,">1431ass="sr14s held */ /spasgd.1L951" clasbaath sgclass="srr.leanup_capasgd.1L951" clasba sgclasd58"/mds_client.c#L952" id.1L952"2024.1L921"20"sref">lenala> spa3 clas20"sr>20a4s_cl_cl"/mds_client.c#L952" id.1L952"2025.1L921"20class="string">cap_relea20cla>20a class="sref"ttrequest_path_attr=seath 574/mds_target_sessiopath 574/mdsL868" mdest_c#qL863">"86ss="sr__gs6h="sr15ve_cap().sessioid.1L951" clasbasessioiclaspathlenala> eph_inodshmdest_c#qL863">"86sshmdes82/m158"/mds_client.c#L952" id.1L952"2026.1L921"20essiopath )> a hre20ess>20a6class="sref"ttrequest_path_attr=seath 5tc#L952_target_sessiopath 5tc#L952class="srr.leanup_cap_20a7class="sref"ttrequest_path_attr=seath 5tcplL_head_target_sessiopath 5tcplL_headclass="srr.leanup_caphead_target_sessiopheadL868s6h="sr15ve_cap().asgd.1L951" clasba sgclaspathlenala> eph_inodfrods_target_sessiopfrodsclas.enala> eph_inodiov_base_target_sessiopiov_bases_cl158"/mds_client.c#L952" id.1L952"2028.1L921"20152 >152h/mds_client.c#20152>20a8class="sref"ttrequest_path_attr=seath 5tcplL_info_parsed_target_sessiopath 5tcplL_info_parsedclass="srr.leanup_cap_info_target_sessioprinfoclas;s=""sr15">old_capala>) {ninfo>list_headala>);1li>1574/mds_cli20a9.1L921"20f15ssi>152h/mdsgt; a hre20f15>20as_cap_lock" c3ass="sr14f">dru" cdensry essiopu6s_cap_/mds_client.f itid_target_sessioptidef15158"/mds_client.c#L952" id.1L952"2034.1L921"20p" cdensry rgt; a hre20p" >20p"class="sref">158lass="sr15.1L87er15>li>157h/mdsc#er1L868"+cexpected, 20p1class="sref">158lass="sr15.1L87m1"t_c#qL863">"86ss="ino s6h="sr15ve_cap().sessioid.1L951" clasbasessioiclaspathlenala> eph_inodshmdet_c#qL863">"86sshmdes_cl158"/mds_client.c#L952" id.1L952"2032.1L921"20opfreepath )client.c#20opf>20p1L946de=drop"1569ass="sr15>list_heada20p3.1L921"2015 >153h/mds_cap_relea2015 >20p1L946" class=>1564ass="sr15.1L86asgd.1L951" clasba sgclaspathlenala> eph_inodfrods_target_sessiopfrodsclas.enala> eph_inodiov_leid.1L951" clasbaiov_lei82/ms_lt; sizeof(="srr.leanup_caphead_target_sessiopheadL868 5_client.id.1 id.1L951" clasrss="s20p4.1L921"20sessiopath > a hre20ses>20ps_cap_lock" cl1514ass"srr.leanup_cappreer15>li>157h/mdsc#preer1L868f>152h/mds_client.id.1L943" mdes_handle5replLsgot8corrupt (short)LreplL a href=d158"/mds_client.c#L952" id.1L952"20p5.1L921"20f15="s>153h/mdssionala>-20f15>20p class="sref">14.5assst_path_attr=seath sg_dumpt_c#qL863">"86sath sg_dump15ref"srr.leanup_capasgd.1L951" clasba sgclasd158"/mds_client.c#L952" id.1L952"20p6.1L921"20H_NOSNAPf">s)s_cap_relea20H_N>20p class="sref">1536ass="sr14158"/mds_client.c#L952" id.1L952"20p7.1L921"20lada hrefode=)> a hre20lad>20ps_cap_lock" code=drop"1569ass="sr15>list_heada20p8.1L921"20i" cla20p1L946" class="1548ass="sr15.1L947">"920p9.1L921"20"sref">lenala> spa3 clas20"sr>20ps_cap_lock" c3"sr15">old_capala>) {nlist_headala>);1li>1574/mds_cli2044.1L921"20L944" c#L945"a> i20L94>20L9_cap_lock" c3ass="sr14f">drtid_target_sessioptidef1556h="sr15ve_cap().le64_to_cpu5>li>157h/mdsc#le64_to_cpu15ref"srr.leanup_capasgd.1L951" clasba sgclaspathlenala> eph_inodhd15>li>157h/mdsc#hd1clas.enala> eph_inodtid_target_sessioptidef15d158"/mds_client.c#L952" id.1L952"2041.1L921"2040/mds_client._client.c#2040/>20Ls_cap_lock" c3ass="sr14f">drmutexelockt_c#qL863">"86ssutexelock15ref_inode_infoalareadcsmdest_c#qL863">"86ss="sr__gpathlenala> eph_inodsutext_c#qL863">"86ssutexs_cl 158"/mds_client.c#L952" id.1L952"20L2.1L921"20iopino r 1)> a hre20iop>20Ls_cap_lock" cl1562ass="sr151_"86ss="sr__g, " cstrncpy tid_target_sessioptidef15d158"/mds_client.c#L952" id.1L952"2043.1L921"20essiopath ))client.c#20ess>20L1L946" class=>156!"srr.leanup_cap_20Ls_cap_lock" cl1514ass"srr.leanup_capcf">NULLala>) {n152h/mds_client.id.1L943" handle5replLsoi>unknown tid nam4.llu a href="+cexpected, 20L class="sref">14.5assst_path_attr=semutexeunlockt_c#qL863">"86ssutexeunlock15ref_inode_infoalareadcsmdest_c#qL863">"86ss="sr__gpathlenala> eph_inodsutext_c#qL863">"86ssutexs_cl 158"/mds_client.c#L952" id.1L952"20L6.1L921"20eepath ep1> i20eep>20L class="sref">1536ass="sr14158"/mds_client.c#L952" id.1L952"2047.1L921"20lient.c#L945"a> i20lie>20Ls_cap_lock" code=drop"1569ass="sr15>list_heada2048.1L921"20151L9>154h/mds_client.c#20151>20Ls_cap_lock" ccexpected, NULLala>) {n152h/mds_client.id.1L943" handle5replLs"line" a href="+cexpected, 154h/mdsgt; a hre20f15>20Lf="+c58"/mds_client.c#L952" id.1L952"2054.1L921"20ode" class="srrgt; a hre20ode>20od_cap_lock" c3"sr15">old_capala>) {nlist_headala>);1li>1574/mds_cli2051.1L921"20sessiopino rgt; a hre20ses>20o1L946" class=>156"srr.leanup_cap_20o class="sref">1492ass srr.leanup_cappreer15>li>157h/mdsc#preer1L868f>152h/mds_client.id.1L943" mdes_handle5replLsgot8nam4.llu oi>sessioi>sr1nam4.d a href=client.id.1 id.1L951" clasrss="s2053.1L921"2015ref>155h/mds_cap_relea2015r>20o1L946" class="1543assl1531as>152h/mds_client.id.1L943" not sr1nam4.d a href="+cexpected, eph_inodshmdet_c#qL863">"86sshmdes_cl"58"/mds_client.c#L952" id.1L952"20o4.1L921"20p" cdensry > i20p" >20os_cap_lock" cl1514ass5s_____"srr.leanup_cap_143h/mds_clpathlenala> eph_inodresessioid.1L951" clasbar_sessioiclaspathlenala> eph_inodsh51"t_c#qL863">"86ss551"L8685: -1 158"/mds_client.c#L952" id.1L952"2055.1L921"20sessiopath > a hre20ses>20o class="sref">14.5assst_path_attr=semutexeunlockt_c#qL863">"86ssutexeunlock15ref_inode_infoalareadcsmdest_c#qL863">"86ss="sr__gpathlenala> eph_inodsutext_c#qL863">"86ssutexs_cl 158"/mds_client.c#L952" id.1L952"2056.1L921"20f15\3&>155h/mdsclient.c#20f15>20o class="sref">1536assgoto+cexpected, asppatht_targetf">15re158"/mds_client.c#L952" id.1L952"20o7.1L921"20H_NOSNAPf">s)s_cap_relea20H_N>20os_cap_lock" code=drop"1569ass="sr15>list_heada2058.1L921"20de" class="sr)> a hre20de">20o1L946" class="1548ass="sr15.1L947">"92059.1L921"20athlenala> epa> i20ath>20os_cap_lock" c3"sr15">old_capala>) {nlist_headala>);1li>1574/mds_cli2064.1L921"20L944" c#L945"a> i20L94>20L9L946" class=>15664ass="sr15.1L86_"86sregot_unsafa82/ms_inod_inod !"srr.leanup_caphead_target_sessiopheadL868pathlenala> eph_inodsafat_c#qL863">"86ssafa82/md ||ala>);1li>1574/mds_cli2061.1L921"2060/mds_client._client.c#2060/>20Ls_cap_lock" cl15364ass="sr15.1L86_"86sregot_safa82/ms_inod_inod "srr.leanup_caphead_target_sessiopheadL868pathlenala> eph_inodsafat_c#qL863">"86ssafa82/md 5_client.id.1 id.1L951" clasrss="s2062.1L921"20de" class="sr)> a hre20de">20L class="sref">1492ass srr.leanup_capprewarn.id5>li>157h/mdsc#prewarn.idL868f>152h/mds_client.id.1L943" got8aadup8nam4.s tcply oi>"linellu from sr1nam4.d a href="client.id.1 id.1L951" clasrss="s2063.1L921"20iopino r 1)> a hre20iop>20L1L946" class="1543assl1531assass srr.leanup_caphead_target_sessiopheadL868pathlenala> eph_inodsafat_c#qL863">"86ssafa82/ms?r4152h/mds_client.id.1L943" safa a href=5: 4152h/mds_client.id.1L943" unsafa a href="+cexpected, "86ss="ino 158"/mds_client.c#L952" id.1L952"2064.1L921"20" cdensry )> a hre20" c>20Ls_cap_lock" cl1514ass"srr.leanup_capmutexeunlockt_c#qL863">"86ssutexeunlock15ref_inode_infoalareadcsmdest_c#qL863">"86ss="sr__gpathlenala> eph_inodsutext_c#qL863">"86ssutexs_cl 158"/mds_client.c#L952" id.1L952"2065.1L921"20essiopath ))client.c#20ess>20L class="sref">14.5assgoto+cexpected, asppatht_targetf">15re158"/mds_client.c#L952" id.1L952"2066.1L921"20essiopath )> a hre20ess>20L class="sref"ode=drop"1569ass="sr15>list_heada20L7.1L921"20sessiopath > a hre20ses>20Ls_cap_lock" cl154e_infoalareadcs_"86sregot_safa82/ms_inod_inod !"srr.leanup_caphead_target_sessiopheadL868pathlenala> eph_inodsafat_c#qL863">"86ssafa82/md _client.id.1 id.1L951" clasrss="s2068.1L921"20eepath ep1> i20eep>20Ls_cap_lock" cl1578ass="sr14>ceph_capprewarn.id5>li>157h/mdsc#prewarn.idL868f>152h/mds_client.id.1L943" got8unsafa after safa oi>"linellu from sr1nam4.d a href="client.id.1 id.1L951" clasrss="s2069.1L921"20lient.c#L945"a> i20lie>20L class="sref">1499ass>1536assass="sr14>ceph_captid_target_sessioptidef15"+cexpected, "86ss="ino 158"/mds_client.c#L952" id.1L952"2074.1L921"2015>li>156h/mds_client.c#2015>>2015_cap_lock" cl1514ass"srr.leanup_capmutexeunlockt_c#qL863">"86ssutexeunlock15ref_inode_infoalareadcsmdest_c#qL863">"86ss="sr__gpathlenala> eph_inodsutext_c#qL863">"86ssutexs_cl 158"/mds_client.c#L952" id.1L952"2071.1L921"20f15"sr>1571/mdsclient.c#20f15>201s_cap_lock" cl1531assgoto+cexpected, asppatht_targetf">15re158"/mds_client.c#L952" id.1L952"2072.1L921"20id.1L857" class="line" n20id.>2012_cap_lock" code=drop"1569ass="sr15>list_heada2013.1L921"20ry *, or" class="line" n20ry >2013_cap58"/mds_client.c#L952" id.1L952"2074.1L921"20la+path." class="line" n20la+>201s_cap_lock" c="sr15ve_cap().rli>157h/mdsc#le32_to_cpu15ref"srr.leanup_caphead_target_sessiopheadL868pathlenala> eph_inodtcsul2_target_sessiopresul2s_cl 158"/mds_client.c#L952" id.1L952"2015.1L921"20d.1L887ala>; spa3 clas20d.1>201 clas58"/mds_client.c#L952" id.1L952"2076.1L921"20" crdensry rgt; a hre20" c>2011L946" class=""sr15">old_capala>) {n);1li>1574/mds_cli2077.1L921"20ve_sesrcla rgt; a hre20ve_>2017_cap7ala> spa1573ass="sr15>>>>>>>>>* Handle a> ESTALEst_headala>);1li>1574/mds_cli2078.1L921"20f">pathlenala>=gt; a hre20f">>201s_cap7ala> spa144lass="sr14l>>>>>>>>* l15wenam9;re not talk.id to+theLauthority,asend to+themst_headala>);1li>1574/mds_cli2079.1L921"20iofreepath )client.c#20iof>201t"./*7ala> spa1441ass="sr14>>>>>>>>>* l15theLauthority has changed while5we werennam9;t look.id,st_headala>);1li>1574/mds_cli2084.1L921"20151L8>157h/mds_cap_relea20151>2015"./*7ala> spa1441ass="sr14>>>>>>>>>* send to+newLauthorityst_headala>);1li>1574/mds_cli2081.1L921"20classrala> epa> i20cla>2011_cap7ala> spa1441ass="sr14>>>>>>>>>* Otherwise5we just have to+="sr14=a> ESTALEst_headala>);1li>1574/mds_cli2082.1L921"20f15mme>158h/mdsclient.c#20f15>201 clas7ala> spa144lass="sr14>>>>>>>>>*ist_headala>);1li>1574/mds_cli2083.1L921"20esrclass="sr)s_cap_relea20esr>2011L946" class=>1564ass="sr15.1L86r201s_cap_lock" cl1514ass"srr.leanup_capcf">NULLala>) {n152h/mds_client.id.1L943" got8ESTALE oi>tc#L952>nam4.llu a href="+cexpected, tis_cap_relea20e >201 class="sref">14.5ass>156!"srr.leanup_cap_"86sref="das_cl _client.id.1 id.1L951" clasrss="s2086.1L921"20ode" class="sr> a hre20ode>201 class="sref">1536ass" class=""sr15">old_capala>) {n< do noth.id not a> authority problem>*ist_headala>);1li>1574/mds_cli2087.1L921"20f14men>148h/mdsgt; a hre20f14>201s_cap_lock" cl1487asso else5l1542ass="sr15last__"86sredirect_m"daclass!6h="sr15ve_cap().USE_AUT" MDSt_c#qL863">"86sUSE_AUT" MDSs_cl _client.id.1 id.1L951" clasrss="s2088.1L921"20921d=sessceph)> a hre20921>201s_cap_lock" cl1578assssssssss"srr.leanup_capcf">NULLala>) {n152h/mds_client.id.1L943" not us.id auth,asett.idcl148that now a href=d158"/mds_client.c#L952" id.1L952"2089.1L921"20clada hrefode=> a hre20cla>201 class="sref">1499ass>1536asslps_cbala>(stru_"86sredirect_m"daclass6h="sr15ve_cap().USE_AUT" MDSt_c#qL863">"86sUSE_AUT" MDSs_cl158"/mds_client.c#L952" id.1L952"2094.1L921"20_SNAPDIRf">s)s_cap_relea20_SN>20_Sclass="sref">1499ass>1536asslps_cbala>(stru__do5tc#L952_target_sessiop__do5tc#L95215ref"srr.leanup_capmdest_c#qL863">"86ss="sr__g, " cstrncpy _cap_relea20cla>20_s_cap_lock" cl1531ass>1536asslps_cbala>(strumutexeunlockt_c#qL863">"86ssutexeunlock15ref_inode_infoalareadcsmdest_c#qL863">"86ss="sr__gpathlenala> eph_inodsutext_c#qL863">"86ssutexs_cl 158"/mds_client.c#L952" id.1L952"2092.1L921"20essiotemp );cap_relea20ess>20_ class="sref">1492assssssssssgoto+cexpected, asppatht_targetf">15re158"/mds_client.c#L952" id.1L952"2093.1L921"20="sr a a spa3 clas20="s>20_1L946" class="1543asso else5 _client.id.1 id.1L951" clasrss="s2094.1L921"20H_NOSNAPf">s)s_cap_relea20H_N>20_s_cap_lock" cl1514ass5s______ttrequest_path_attr=seath f="da_info_target_sessiopath f="da_infoclass="srr.leanup_capci_target_sessiopaiclass6h="sr15ve_cap().ath f="dat_c#qL863">"86sath f="da15ref"srr.leanup_cap_"86sref="das_cl 158"/mds_client.c#L952" id.1L952"2095.1L921"20921d=sessceph)> a hre20921>20_ class="sref">14.5ass5s______ttrequest_path_attr=seath capt_c#qL863">"86sath capclass="srr.leanup_capcapt_c#qL863">"86saapclass6h="sr15ve_cap().NULLt_c#qL863">"86sNULL15re158"/mds_client.c#L952" id.1L952"2096.1L921"20 887" 914break spa3 clas20 88>20_6clas58"/mds_client.c#L952" id.1L952"2097.1L921"20#L91111} else _cap_relea20#L9>20_s_cap_lock" cl1487assssssssss>156"srr.leanup_cap_lenala> spa3 clas20"sr>20_s_cap_lock" cl1578assssssssssssssssss"srr.leanup_capcapt_c#qL863">"86saapclass6h="sr15ve_cap().ath gethcap_for_m1"t_c#qL863">"86sath gethcap_for_m1"15ref"srr.leanup_capci_target_sessiopaiclas"client.id.1 id.1L951" clasrss="s2099.1L921"20e < 0)s_cap_relea20e >20_ class="sref">1499ass>1536assassl1578assssssssssssssssss"srr.leanup_cap_ eph_inodsh51"t_c#qL863">"86ss551"L868 158"/mds_client.c#L952" id.1L952"21m4.1L921"21m4.1 < 0)s_cap_relea21m4.>21m4s_cl58"/mds_client.c#L952" id.1L952"21m1.1L921"21mlass="string">cap_relea21mla>210s_cap_lock" cl1531ass>1536asslps_cbala>(strucf">NULLala>) {n152h/mds_client.id.1L943" al }ady us.id auth a href=d158"/mds_client.c#L952" id.1L952"21m2.1L921"21mssiotemp );cap_relea21mss>210 class="sref">1492assssssssss>1566!"srr.leanup_capcapt_c#qL863">"86saapclass||s"srr.leanup_capcapt_c#qL863">"86saapclass!6h="sr15ve_cap().ci_target_sessiopaiclaspathlenala> eph_inodi_auth capt_c#qL863">"86si_auth cap82/md ||ala>);1li>1574/mds_cli21m3.1L921"21m"sr a a spa3 clas21m"s>2101L946" class="1543assl1531assass56"srr.leanup_capcapt_c#qL863">"86saapclaspathlenala> eph_inodss143hresent_on_sss)s_cap_relea21m_N>210s_cap_lock" cl1514ass5s______>1536asslps_cbala>(strucf">NULLala>) {n152h/mds_client.id.1L943" but cap changed,aso+="send.id a href=d158"/mds_client.c#L952" id.1L952"21m5.1L921"21m21d=sessceph)> a hre21m21>210 class="sref">14.5ass5s______>1536asslps_cbala>(stru__do5tc#L952_target_sessiop__do5tc#L95215ref"srr.leanup_capmdest_c#qL863">"86ss="sr__g, " cstrncpy _210 class="sref">1536ass" class=>1536asslps_cbala>(strumutexeunlockt_c#qL863">"86ssutexeunlock15ref_inode_infoalareadcsmdest_c#qL863">"86ss="sr__gpathlenala> eph_inodsutext_c#qL863">"86ssutexs_cl 158"/mds_client.c#L952" id.1L952"21m7.1L921"21mL91111} else _cap_relea21mL9>210s_cap_lock" cl1487assssssssssssssssssgoto+cexpected, asppatht_targetf">15re158"/mds_client.c#L952" id.1L952"21m8.1L921"21msref">lenala> spa3 clas21msr>210s_cap_lock" cl1578assssssssssode=drop"1569ass="sr15>list_heada21m9.1L921"21m < 0)s_cap_relea21m >210 class="sref">1499assode=drop"1569ass="sr15>list_heada2114.1L921"210h/mds_client._client.c#210h/>211s_cap_lock" cl15classl1563ass="sr15=cf">NULLala>) {n152h/mds_client.id.1L943" have to+="sr14=ESTALE oi>tc#L952>nam4.llu a href="+cexpected, list_heada2112.1L921"21="srseqf">s-is_cap_relea21="s>2111L946de=drop"1569ass="sr15>list_heada2103.1L921"21e lass="string"cap_relea21e l>2113_cap58"/mds_client.c#L952" id.1L952"2114.1L921"21 classpoe )> a hre21 cl>211s_cap_lock" c>156"srr.leanup_caphead_target_sessiopheadL868pathlenala> eph_inodsafat_c#qL863">"86ssafa82/md _client.id.1 id.1L951" clasrss="s2105.1L921"21g with.astring"cap_relea21g w>211 class="sref">14.5assst_path_attr=se_"86sregot_safa82/ms6h/mds_client.f itrueasppatht_targettrueL868158"/mds_client.c#L952" id.1L952"2116.1L921"21 ciennotstring"cap_relea21 ci>211 class="sref">1536asslps_cbala>(stru_eunregister_tc#L952_target_sessiop_eunregister_tc#L95215ref"srr.leanup_capmdest_c#qL863">"86ss="sr__g, " cstrncpy _211s_cap_lock" cl1487ass="sr15ve_cap().aompleta_allt_c#qL863">"86saompleta_all15ref_inode_infoalareadcs_; spa3 clas21les>2111L946" class="1548ass="sr15.1L947">"92109.1L921"21essiopath )> a hre21ess>211 class="sref">1499assl154e_infoalareadcs_"86sregot_unsafa82/md _client.id.1 id.1L951" clasrss="s2124.1L921"21ap" ccesry > a hre21ap">212Sclass="sref">1499ass>1536assl"sr15">old_capala>) {n);1li>1574/mds_cli2121.1L921"2120/mds_client._client.c#2120/>21a1_cap7ala> spa1441ass="sr14>>>>>>>>>>>>>>>>>>>>>>>>>lLWeaal }ady handled5theLunsafa ="sponse, now do thest_headala>);1li>1574/mds_cli2122.1L921"21f15.1L>152h/mdsclient.c#21f15>21a clas7ala> spa144lass="sr14>>>>>>>>>>>>>>>>>>>>>>>>>lLcleanup. No+need to+exammds theLresponse; theLMDSst_headala>);1li>1574/mds_cli2123.1L921"21lada hrefode=)> a hre21lad>212">"857ala> spa1573ass="sr15">1499ass>1536ass>>>>>>>>lLdoesnnam9;t include a>y resul2 info>in theLsafa82_headala>);1li>1574/mds_cli2124.1L921"21"sref">lenala> spa3 clas21"sr>212 clas7ala> spa1572ass="sr15s>1499ass>1536ass>>>>>>>>lLresponse. And evensl15it did, there is noth.id82_headala>);1li>1574/mds_cli2125.1L921"21class="string">cap_relea21cla>2125L9467ala> spa144lass="sr14>>1499ass>1536ass>>>>>>>>lLuseful5we could do with a revisedLresr14=valuef15lea>1573/mds_client.c#L881" id.1L884 2126.1L921"21essiopath )> a hre21ess>212s_cap7ala> spa144lass="sr14>>1499ass>1536ass>>>>>>>>list_headala>);1li>1574/mds_cli2127.1L921"21sessiopath > a hre21ses>212s_cap_lock" cl1487assssssssss"srr.leanup_capcf">NULLala>) {n152h/mds_client.id.1L943" got8safa ="plLs"linellu, sr1nam4.d a href="+cexpected, "86ss="ino 158"/mds_client.c#L952" id.1L952"2128.1L921"21152 >152h/mds_client.c#21152>212s_cap_lock" cl1578assssssssss"srr.leanup_caplist_del_ini>NULLala>) {n15ref_inode_infoalareadcs_"86sreunsafa_itemino 158"/mds_client.c#L952" id.1L952"2129.1L921"21f15ssi>152h/mdsgt; a hre21f15>212f="+c58"/mds_client.c#L952" id.1L952"2134.1L921"21p" cdensry rgt; a hre21p" >213Sclass="sref">1499ass>1536assl"sr15">old_capala>) {n< >oltLunsafa ="#L952>dut.id umouds?>list_headala>);1li>1574/mds_cli2131.1L921"21sessiopino rgt; a hre21ses>213s_cap_lock" cl1531ass>1536ass>1564ass="sr15.1L86adest_c#qL863">"86ss="sr__gpathlenala> eph_inodstopp.id5>li>157h/mdsc#stopp.id_cap__inod_inod !"srr.leanup_cap_ gethold952__"86ss="sr__g )58"/mds_client.c#L952" id.1L952"2132.1L921"21opfreepath )client.c#21opf>213 class="sref">1492assssssssssssssssss"srr.leanup_capaompleta_allt_c#qL863">"86saompleta_all15ref_inode_infoalareadcsadest_c#qL863">"86ss="sr__gpathlenala> eph_inodsafa_umouds_waiter"t_c#qL863">"86ssafa_umouds_waiter"ino 158"/mds_client.c#L952" id.1L952"21p3.1L921"2115 >153h/mds_cap_relea2115 >2131L946" class="1543assl1531asslps_cbala>(strumutexeunlockt_c#qL863">"86ssutexeunlock15ref_inode_infoalareadcsmdest_c#qL863">"86ss="sr__gpathlenala> eph_inodsutext_c#qL863">"86ssutexs_cl 158"/mds_client.c#L952" id.1L952"21p4.1L921"21sessiopath > a hre21ses>21ps_cap_lock" cl1514assssssssssgoto+cexpected, asppatht_targetf">15re158"/mds_client.c#L952" id.1L952"21p5.1L921"21f15="s>153h/mdssionala>-21f15>21p class="sref">14.5assode=drop"1569ass="sr15>list_heada21p6.1L921"21H_NOSNAPf">s)s_cap_relea21H_N>21p class="sref"o else5_client.id.1 id.1L951" clasrss="s21p7.1L921"21lada hrefode=)> a hre21lad>213s_cap_lock" cl1487ass="sr15ve_cap()._"86sregot_unsafa82/ms6h/mds_client.f itrueasppatht_targettrueL868158"/mds_client.c#L952" id.1L952"21p8.1L921"21i" cla213s_cap_lock" cl1578ass="sr14>ceph_caplist_add_tailt_c#qL863">"86slist_add_tail15ref_inode_infoalareadcs_"86sreunsafa_itemino , _inode_infoalareadcs_ eph_inodshunsafat_c#qL863">"86ss_unsafa82/md158"/mds_client.c#L952" id.1L952"21p9.1L921"21"sref">lenala> spa3 clas21"sr>21ps_cap_lock" code=drop"1569ass="sr15>list_heada2144.1L921"21L944" c#L945"a> i21L94>2144s_cl58"/mds_client.c#L952" id.1L952"2141.1L921"2140/mds_client._client.c#2140/>21Ls_cap_lock" c3ass="sr14f">drcf">NULLala>) {n152h/mds_client.id.1L943" handle5replLstid nam4.lld resul2 nam4.d a href="+cexpected, 21Ls_cap_lock" cl1562ass="sr151_info_target_sessioprinfoclass6h_inode_infoalareadcs_21L1L946" class=enala> eph_inoder15>li>157h/mdsc#er1L86856h="sr15ve_cap().parseetcplL_infod.1L951" clasbaparseetcplL_info15ref"srr.leanup_capmsgd.1L951" clasba sgclas"+cexpected, eph_inodshcoid.1L951" clasbashcoiclas.enala> eph_inodpeer_feasr1e"t_c#qL863">"86speer_feasr1e"s_cl 158"/mds_client.c#L952" id.1L952"21L4.1L921"21essiopath )> a hre21ess>214s_cap_lock" c="sr15ve_cap().mutexeunlockt_c#qL863">"86ssutexeunlock15ref_inode_infoalareadcsmdest_c#qL863">"86ss="sr__gpathlenala> eph_inodsutext_c#qL863">"86ssutexs_cl 158"/mds_client.c#L952" id.1L952"2145.1L921"21sessiopath > a hre21ses>214 clas58"/mds_client.c#L952" id.1L952"21L6.1L921"21eepath ep1> i21eep>2141L946" class=" cstrncpy mutexelockt_c#qL863">"86ssutexelock15ref_inode_infoalareadcssessioid.1L951" clasbasessioiclaspathlenala> eph_inodshmutext_c#qL863">"86sshmutexs_cl 158"/mds_client.c#L952" id.1L952"2147.1L921"21lient.c#L945"a> i21lie>214s_cap_lock" cl154e_infoalareadcser15>li>157h/mdsc#er1L8685_lt; 0d _client.id.1 id.1L951" clasrss="s2148.1L921"21151L9>154h/mds_client.c#21151>214s_cap_lock" cl1578ass="sr14>ceph_cappreer15>li>157h/mdsc#preer1L868f>152h/mds_client.id.1L943" mdes_handle5replLsgot8corrupt replLssr1nam4.d(tid:nam4.lld) a href="+cexpected, "86ss="ino "+cexpected, 154h/mdsgt; a hre21f15>214 class="sref">1499ass"srr.leanup_capath sg_dumpt_c#qL863">"86sath sg_dump15ref"srr.leanup_capasgd.1L951" clasba sgclasd158"/mds_client.c#L952" id.1L952"2154.1L921"21ode" class="srrgt; a hre21ode>215Sclass="sref">1499assgoto+cexpected, eer15>li>157h/mdsc#f">eer1L868158"/mds_client.c#L952" id.1L952"2151.1L921"21sessiopino rgt; a hre21ses>215s_cap_lock" code=drop"1569ass="sr15>list_heada2152.1L921"21opfreepath )client.c#21opf>2151L946de=drop"1569ass="sr15>list_heada2153.1L921"2115ref>155h/mds_cap_relea2115r>21o1L946" class=l"sr15">old_capala>) {n< snap traco list_headala>);1li>1574/mds_cli21o4.1L921"21p" cdensry > i21p" >215s_cap_lock" c>156"srr.leanup_captinfo_target_sessioprinfoclaspathlenala> eph_inodsnapblob_leid.1L951" clasbasnapblob_lei82/md _client.id.1 id.1L951" clasrss="s2155.1L921"21sessiopath > a hre21ses>21o class="sref">14.5assst_path_attr=sedown_writat_c#qL863">"86sdown_writa15ref_inode_infoalareadcsadest_c#qL863">"86ss="sr__gpathlenala> eph_inodsnap_rwsemt_c#qL863">"86ssnap_rwsemclasd158"/mds_client.c#L952" id.1L952"2156.1L921"21f15\3&>155h/mdsclient.c#21f15>21o class="sref">1536ass"srr.leanup_capath upduto_snap_tracot_c#qL863">"86sath upduto_snap_traco15ref"srr.leanup_capmdest_c#qL863">"86ss="sr__g, " cstrncpy _info_target_sessioprinfoclaspathlenala> eph_inodsnapblobd.1L951" clasbasnapblobr__g,58"/mds_client.c#L952" id.1L952"2157.1L921"21H_NOSNAPf">s)s_cap_relea21H_N>215s_cap_lock" cl1487asssssssssssssssss" cstrncpy _info_target_sessioprinfoclaspathlenala> eph_inodsnapblobd.1L951" clasbasnapblobr__g +s" cstrncpy _info_target_sessioprinfoclaspathlenala> eph_inodsnapblob_leid.1L951" clasbasnapblob_lei82/m,58"/mds_client.c#L952" id.1L952"2158.1L921"21de" class="sr)> a hre21de">215s_cap_lock" cl1578asssssssssssssssss="sr14>ceph_caple32_to_cpu5>li>157h/mdsc#le32_to_cpu15ref"srr.leanup_caphead_target_sessiopheadL868pathlenala> eph_inodopt_c#qL863">"86sop82/md =6h="sr15ve_cap().CEP" MDS_OP_RMSNAPt_c#qL863">"86sCEP" MDS_OP_RMSNAPclasd158"/mds_client.c#L952" id.1L952"2159.1L921"21athlenala> epa> i21ath>215 class="sref">1499ass"srr.leanup_capdowngrade_writat_c#qL863">"86sdowngrade_writa15ref_inode_infoalareadcsadest_c#qL863">"86ss="sr__gpathlenala> eph_inodsnap_rwsemt_c#qL863">"86ssnap_rwsemclasd158"/mds_client.c#L952" id.1L952"2164.1L921"21L944" c#L945"a> i21L94>21L9L946" class=o else5_client.id.1 id.1L951" clasrss="s2161.1L921"2160/mds_client._client.c#2160/>21Ls_cap_lock" cl1535assst_path_attr=sedown_read_target_sessiopdown_read15ref_inode_infoalareadcsadest_c#qL863">"86ss="sr__gpathlenala> eph_inodsnap_rwsemt_c#qL863">"86ssnap_rwsemclasd158"/mds_client.c#L952" id.1L952"2162.1L921"21de" class="sr)> a hre21de">2162_cap_lock" code=drop"1569ass="sr15>list_heada2163.1L921"21iopino r 1)> a hre21iop>2163_cap58"/mds_client.c#L952" id.1L952"2164.1L921"21" cdensry )> a hre21" c>21Ls_cap_lock" cl"sr15">old_capala>) {n< insert traco into+ourscache list_headala>);1li>1574/mds_cli2165.1L921"21essiopath ))client.c#21ess>21L class="sref"" cstrncpy mutexelockt_c#qL863">"86ssutexelock15ref_inode_infoalareadcs_"86srefillhmutexclasd158"/mds_client.c#L952" id.1L952"2166.1L921"21essiopath )> a hre21ess>2161L946" class=" cstrncpy er15>li>157h/mdsc#er1L86856h="sr15ve_cap().ath fillhtracot_c#qL863">"86sath fillhtraco15ref"srr.leanup_capmdest_c#qL863">"86ss="sr__gpathlenala> eph_inodfest_c#qL863">"86sf"sr__gpathlenala> eph_inodsbd.1L951" clasbasbef15"+cexpected, 21Ls_cap_lock" cl154e_infoalareadcser15>li>157h/mdsc#er1L86856= 0d _client.id.1 id.1L951" clasrss="s2168.1L921"21eepath ep1> i21eep>21Ls_cap_lock" cl1578ass>1564ass="sr15.1L86r"86sreops_cl5!6h="sr15ve_cap().CEP" MDS_OP_GETFILELOCKt_c#qL863">"86sCEP" MDS_OP_GETFILELOCK_cap__inod_inodclient.id.1 id.1L951" clasrss="s2169.1L921"21lient.c#L945"a> i21lie>21L class="sref">1499ass>153" cstrncpy _info_target_sessioprinfoclaspathlenala> eph_inoddir_n15>li>157h/mdsc#dir_n1clasdclient.id.1 id.1L951" clasrss="s2174.1L921"2115>li>156h/mds_client.c#2115>>2115_cap_lock" cl1514ass9ass>153" cstrncpy ath readdir_prepopulatat_c#qL863">"86sath readdir_prepopulata15ref"srr.leanup_captca href14="s>143h/mds_cl"+cexpected, 1571/mdsclient.c#21f15>211s_cap_lock" cl1531ass"srr.leanup_capath unreserve cap"t_c#qL863">"86sath unreserve cap"15ref"srr.leanup_capmdest_c#qL863">"86ss="sr__g, _inode_infoalareadcs_2112_cap_lock" code=drop"1569ass="sr15>list_heada2113.1L921"21ry *, or" class="line" n21ry >2171L946" class=enala> eph_inodmutexeunlockt_c#qL863">"86ssutexeunlock15ref_inode_infoalareadcs_"86srefillhmutexclasd158"/mds_client.c#L952" id.1L952"2174.1L921"21la+path." class="line" n21la+>211s_cap58"/mds_client.c#L952" id.1L952"2175.1L921"21d.1L887ala>; spa3 clas21d.1>217 class="sref"" cstrncpy up5tcad_target_sessiopup5tcad15ref_inode_infoalareadcsadest_c#qL863">"86ss="sr__gpathlenala> eph_inodsnap_rwsemt_c#qL863">"86ssnap_rwsemclasd158"/mds_client.c#L952" id.1L952"2176.1L921"21" crdensry rgt; a hre21" c>2111L946cexpected, eer15>li>157h/mdsc#f">eer1L868:58"/mds_client.c#L952" id.1L952"2177.1L921"21ve_sesrcla rgt; a hre21ve_>2177L946" class=enala> eph_inodmutexelockt_c#qL863">"86ssutexelock15ref_inode_infoalareadcsmdest_c#qL863">"86ss="sr__gpathlenala> eph_inodsutext_c#qL863">"86ssutexs_cl 158"/mds_client.c#L952" id.1L952"2178.1L921"21f">pathlenala>=gt; a hre21f">>217s_cap_lock" c>156!"srr.leanup_cap_217 class="sref">1499assl154e_infoalareadcser15>li>157h/mdsc#er1L868d _client.id.1 id.1L951" clasrss="s2184.1L921"21151L8>157h/mds_cap_relea21151>2185_cap_lock" cl1514ass9ass>153" cstrncpy _li>157h/mdsc#er1L868158"/mds_client.c#L952" id.1L952"2181.1L921"21classrala> epa> i21cla>218s_cap_lock" cl1531asso else5_client.id.1 id.1L951" clasrss="s2182.1L921"21f15mme>158h/mdsclient.c#21f15>218 class="sref">1492asssssssssse_infoalareadcs_211s_cap_lock" cl1514asssssssssse_infoalareadcs_tis_cap_relea21e >211 class="sref">14.5assode=drop"1569ass="sr15>list_heada2186.1L921"21ode" class="sr> a hre21ode>218 class="sref"o else5_client.id.1 id.1L951" clasrss="s2187.1L921"21f14men>148h/mdsgt; a hre21f14>211s_cap_lock" cl1487assst_path_attr=sedo">NULLala>) {n152h/mds_client.id.1L943" replLsarrived after tc#L952>nam4.lld was aborted a href="+cexpected, 211s_cap_lock" code=drop"1569ass="sr15>list_heada2189.1L921"21clada hrefode=> a hre21cla>211 class="sref"enala> eph_inodmutexeunlockt_c#qL863">"86ssutexeunlock15ref_inode_infoalareadcsmdest_c#qL863">"86ss="sr__gpathlenala> eph_inodsutext_c#qL863">"86ssutexs_cl 158"/mds_client.c#L952" id.1L952"2194.1L921"21_SNAPDIRf">s)s_cap_relea21_SN>2194s_cl58"/mds_client.c#L952" id.1L952"21_1.1L921"21class="string">cap_relea21cla>219s_cap_lock" c3ass="sr14f">drath add_cap_release"t_c#qL863">"86sath add_cap_release"15ref"srr.leanup_capmdest_c#qL863">"86ss="sr__g, " cstrncpy _219s_cap_lock" cl1562ass="sr151mutexeunlockt_c#qL863">"86ssutexeunlock15ref_inode_infoalareadcssessioid.1L951" clasbasessioiclaspathlenala> eph_inodshmutext_c#qL863">"86sshmutexs_cl 158"/mds_client.c#L952" id.1L952"2193.1L921"21="sr a a spa3 clas21="s>2193_cap58"/mds_client.c#L952" id.1L952"2194.1L921"21H_NOSNAPf">s)s_cap_relea21H_N>219s_cap_lock" cl"sr15">old_capala>) {n< kick call.id process list_headala>);1li>1574/mds_cli2195.1L921"21921d=sessceph)> a hre21921>219 class="sref"" cstrncpy aompleta_tc#L952_target_sessiopaompleta_tc#L95215ref"srr.leanup_capmdest_c#qL863">"86ss="sr__g, " cstrncpy _2191L946cexpected, 5>li>157h/mdsc#f">L868:58"/mds_client.c#L952" id.1L952"2197.1L921"21#L91111} else _cap_relea21#L9>2197L946" class=enala> eph_inodath des_put_tc#L952_target_sessiopath des_put_tc#L95215ref"srr.leanup_captca href14="s>143h/mds_cl 158"/mds_client.c#L952" id.1L952"2198.1L921"21"sref">lenala> spa3 clas21"sr>21_s_cap_lock" c="sr14158"/mds_client.c#L952" id.1L952"2199.1L921"21e < 0)s_cap_relea21e >21_ clasode=drop"1569ass="sr15>list_heada22m4.1L921"22m4.1 < 0)s_cap_relea22m4.>22m4s_cl58"/mds_client.c#L952" id.1L952"22m1.1L921"22mlass="string">cap_relea22mla>220s_cap58"/mds_client.c#L952" id.1L952"22m2.1L921"22mssiotemp );cap_relea22mss>2201L946de=drop"1569ass="sr15>list_heada22m3.1L921"22m"sr a a spa3 clas22m"s>220">"857ala> spa1573ass="sr15n);1li>1574/mds_cli22m4.1L921"22m_NOSNAPf">s)s_cap_relea22m_N>220 clas7ala> spa1572ass="sr15s* handlessr1 notificatioi8that ourstc#L952>has beencl14wardedf15lea>1573/mds_client.c#L881" id.1L884 22m5.1L921"22m21d=sessceph)> a hre22m21>2205L9467ala> spa144lass="sr14>list_headala>);1li>1574/mds_cli22m6.1L921"22m887" 914break spa3 clas22m88>220 classtatic voids srr.leanup_caphandle5l14ward_target_sessiophandle5l14ward15refttrequest_path_attr=seath i>1574/mds_target_sessiopath de574/mds_cap_="srr.leanup_capmdest_c#qL863">"86ss="sr__g,ala>);1li>1574/mds_cli22m7.1L921"22mL91111} else _cap_relea22mL9>220s_cap_lock" cl1487asssssssssssssttrequest_path_attr=seath i>15sessioid.1L951" clasbaath i>15sessioi_cap_="srr.leanup_capsessioid.1L951" clasbasessioiclas,ala>);1li>1574/mds_cli22m8.1L921"22msref">lenala> spa3 clas22msr>220s_cap_lock" cl1578asssssssssssssttrequest_path_attr=seath isgd.1L951" clasbaath isg_cap_="srr.leanup_capmsgd.1L951" clasba sgclasdala>);1li>1574/mds_cli22m9.1L921"22m < 0)s_cap_relea22m >220 clas_client.id.1 id.1L951" clasrss="s2214.1L921"220h/mds_client._client.c#220h/>221s_cap_lock" cttrequest_path_attr=seath i>15tc#L952_target_sessiopath de_tc#L95215re_="srr.leanup_captca href14="s>143h/mds_cl158"/mds_client.c#L952" id.1L952"2201.1L921"22dcass="l )> a hre22dca>221s_cap_lock" c3ass="sr14f">dru" cdensry essiopuLs_cap_cexpected, eph_inodhd15>li>157h/mdsc#hd1clas.enala> eph_inodtid_target_sessioptidef15d158"/mds_client.c#L952" id.1L952"2212.1L921"22="srseqf">s-is_cap_relea22s-is_21hlenala> eph_inodshmutext_c#uL952"2198.1Cels="s2094.1L921"20H_NOSNAPf">s)s_cap_relea20H_N094.1L921"20H_Nnextds_client.c#L952" inextds_c2"2201.1L921"22dcass="l )> a hre22m"s>220">cap58"/mds_client.c#L952"2id.1L21nlockt_c#qL863">"86ssutexeunOSNAPf">s)s_cap_relea20H_N094.1L921"20H_Nfwd_md 5_client.id.1 ifwd_md 2"2201.1L921"22dcass="l )> a hre22m_N>220 ccap_lock" c>156"srr.leanu2_caph2ad_target_sessinarget_sessiopath e_cap().ath fillhtracot_c#qopESTALEst/md _clINVAient.c#L952" id.lINVAi2"2201.1L921"22dcass="l )> a hre22m21>2205Llass="sref">14.5assst_pat2_attr2se_"86s> eph_inodhd15>li>157h/mdsc#hd1clas.enala> epfrop_="srr.leanup_cafrop_ioptidef15d158"/mds_iov_basient.c#L952" id.iov_basi2"2201.1L921"22dcass="l )> a hre22m88>220 class="sref">1536asslps_cb2la>(s2ru_eunregistertargemds_cl158"/mds_cenient.c#L952" id.enifor_m1"t_c#qL863">"86se_cap().CEP" MDS_for_moprinfoclaspathle> eph_inodhd15>li>157h/mdsc#hd1clas.enala> epfrop_="srr.leanup_cafrop_ioptidef15d158"/mds_iov_58"/mds_client.c#Liov_58"2"2201.1L921"22dcass="l )> a hre22mL9>220s_cap_lock" cl1487ass="sr152e_cap2).aomp1.1L921"22dcass="l )> a hre22msr>220s_946" class="1548ass="sr1521L947218lockt_c#qL863">"86ssutexeunaptcadeexeu_DSst_="srr.leanup_captcadeexeu_DSstL951" clasbasessioiclaspae_cap().CEP" MDS_for_/mds_cl 158"/mds_enient.c#L952" id.enifor_, 2*sizeofsgclaspathlenalaOSNAPf">s)s_cap_relea20H_)/mds_cl 158"/mds_b_infoalareadcsadeba952"2212.1L921"22="srseqf">s-is_cap_relea22m >220 class="sref">1499assl154e_2nfoal21nlockt_c#qL863">"86ssutexeunnextds_client.c#L952" inextds_c2"22c#qL863">"86sath fillhdeexeu_SNAPf">s)s_cap_refillhdeexeu_SNL951" clasbasessioiclaspae_cap().CEP" MDS_for_212.1L921"22="srseqf">s-is_cap_relea21ap">212S2lass="sref">1499ass>1536a2sl"sr25">old_capala>094.1L921"20H_Nfwd_md 5_client.id.1 ifwd_md 2"22c#qL863">"86sath fillhdeexeu_SNAPf">s)s_cap_refillhdeexeu_SNL951" clasbasessioiclaspae_cap().CEP" MDS_for_212.1L921"22="srseqf">s-is_cap_relea22dca>221s_cap7ala> spa1441ass="sr142>>>>>222"22m2.1L921"22mssiotemp );cap_relea21f15>21a 2las7ala> spa144lass="sr142>>>>>22nlockt_c#qL863">"86ssutexeunlock15inode_infoalareadcsmdest_c#qL863">"86ss="sr__gpathlenala> eph_inodsutext_c#qL863">"86ssutexs_cl 158"/mds_client.c#L952" id.1L952"2178.1L921"21f">pathlenala>=gt; a hr221lad>212"2"857ala> spa1573ass="sr152>149922nlockt_c#qL863">"86ssutexeunlient.c#L952" id.1L952"22c#qL863">"86sath __1574st_c##L95215ref"srr.leanup_1574st_c##L952"86ss="sr__g, " cstrncpy _s-is_cap_relea21"sr>212 2las7ala> spa1572ass="sr152>149922fo_target_sessiopmds_clpathlenala> eph_inodreaborted_targe2184.1L921"21151L8>157h/mds_cap_rele221cla>212529467ala> spa144lass="sr142>149922edown_writat_c#qL863">"86sdown_writa15_client.id.1L943" replLsarrived after tc#L952>nam4.llth i>1a href="+cexu_heaef="+cexp -573/ dne_target_sessioptidef15"+cexpected, s-is_cap_relea22m88>220 ccap7ala> spa144lass="sr142>149922path upduto_snap_tragetf">15re158"/mds_client.c#L952" id.1L952"21pid not a> authority problemup a h/mds_cli2131.1L921"21sessiopino rgt; a hr221ses>212s2cap_lock" cl1487assssssss2s"srr2leanup_capcf">m4.1L921"22m4.1 < 0)s_cap_relea21152>212s2cap_lock" cl1578assssssss2s"srr22"92109.1L921"21essiopath )> a hr221f15>212f2"+c58"/mds_client.c#L952"2id.1L229o_target_sessiopds_clpathlenala> eph_inodresessioid.1L951" clasbar_sessioiclasd _client.id.1 id.1L951" clasrss="s2179.1L921"21iofreepath )client.c221p" >213S2lass="sref">1499ass>1536a2sl"sr25">old_capala>) {n< >o>"86sdown_writa15_client.id.1L943" replLsarrived after tc#L952>nam4.llth i>1a href="+cexu_ clasrs, capmdest_c952_target_sessioptidef15d158"/mds_client.c#L952" id.1L952"2188.1L921"21921d=sessceph)> a hr221ses>213s2cap_lock" cl1531ass>1536a2s>1562ass="sr15.1L86adest_c#L863">"86sath __unregister_tc#L95215ref"srr.leanup_capmdest_c#qL863">"86ss="sr__g, " cstrncpy _213 2lass="sref">1492assssssss2sssss2sss"srr.leanup4="s>143h/mds_clpathlenalafwd_md 5_client.id.1 ifwd_md 2"22crss=/mds_clpathlenala> eph_inodresent_on_ss212"2946" class="1543assl1531a2slps_2bala>(strumutexeunlock>"86sdown_writa15_client.id.1L943" replLsarrived after tc#L952>nam4.llth i>1a href="+cexu_heaef="+cexp -5old md 212 2cap_lock" cl1514assssssss2sgoto2cexpected, asppatht_def15"+cexpected, eph_inodresessioid.1L951" clasbar_sessioiclasnum_fwdnt.id.1 id.1L951"num_fwds="s/mds_clpathlenalafwd_md 5_client.id.1 ifwd_md 2"22107.1L921"21hie, butstring"cap_rele221cla>21252lass="sref">14.5assode=dr2p"1562ass="sr15>listss="s2187.1L921"21f14men>148h/mdsgt; a hr221H_N>21p 2lass="sref"o else5_client2id.1 23path upduto_snap_trac not a> authority probleent.c#.L881" id 1213s2cap_lock" cl1487ass="sr152e_cap2)._nam4.llth i>1a href="+cexu_heaef="+cexp (weeent.c#"t_c#qL863">"86ss="ino "+cexpected, s-is_cap_relea21i" >213s2cap_lock" cl1578ass="sr142ceph_2aplist_add_tailt_c#qL863">"86slist_adBUG_ONlient.c#L952" iBUG_ON43h/mds_cl 158"/mds_client.c#L952" id.1L952"2mdsc#reer1L86856h="sr15ve_cap().er15>li>157h/mdsc212.1L921"22="srseqf">s-is_cap_relea21f15>212f2cap_lock" code=drop"1569a2s="sr23pdowngrade_writat_c#qL863">"86sdowngBUG_ONlient.c#L952" iBUG_ON43h/mds_cl 158"/mds_client.c#L952" id.1L952"2mdsc#reer1L86856h="sr1l2L86856h="sr15ve_cap().trueasppatht_targ212.1L921"22="srseqf">s-is_cap_relea21L94>21442_cl58"/mds_client.c#L952"2id.1L24">old_capala>) {n< >o>"86sdown_writa> eph_inodresessioid.1L951" clasbar_sessioiclasnum_fwdnt.id.1 id.1L951"num_fwds="sc#qL863">"86sath fwd_md 5_client.id.1 ifwd_md 2"2201.1L921"22dcass="l )> a hre2140/>21Ls2cap_lock" c3ass="sr14f">d2cf">N24ss="sr15.1L86adest_c#L863">"86sath > eph_inodretcplLd.1L951" clasbar_tcplLL86856h="st.c#ds_client.c#L952" ih="st.c#ds_cs="sc#qL863">"86sath nextds_client.c#L952" inextds_c2"2201.1L921"22dcass="l )> a hre21iop>21Ls2cap_lock" cl1562ass="sr152_info24alareadcs_1sioi_cap_="srr.leanup_ceref14="s>1sioi_cap43h/mds_cl 158"/mds_client.c#L952" id.1L952"2212.1L921"22="srseqf">s-is_cap_relea21lad>212"2946" class=enala> eph_ino2er15>24ala>(strumutexeunlock>"86sdown_writaL95215ref"srr.leanup_capmdest_c#qL863">"86ss="sr__g, " cstrncpy _214s2cap_lock" c="sr15ve_cap()2mutex2unlockt_c#qL86m4.1L921"22m4.1 < 0)s_cap_relea21ses>214 2las58"/mds_client.c#L952"2id.1L24a_tc#L952_target_sessiopaomplath des_put_tc#L95215ref"srr.leanup_captca href14="s>143h/mds_cl 158"/mds_client.c#L952" id.1L952"2198.1L921"21"sref">lenala> spa3 cla221eep>21412946" class=" cstrncpy 2mutex24sc#f">L868:58"/mds_client.c#L952" id.1L952"2197.1L921"21#L91111} else _cap_rele221lie>214s2cap_lock" cl154e_infoalar2adcse24ockt_c#qL863">"86ssutexelock15ref_ref_inode_infoalareadcsmdest_c#qL863">"86ss="sr__gpathlenala> eph_inodsutext_c#qL863">"86ssutexs_cl 158"/mds_client.c#L952" id.1L952"2194.1L921"21_SNAPDIRf">s)s_cap_rele221151>214s2cap_lock" cl1578ass="sr142ceph_24c#L952" id.1L952"2199.1L921"21e < 0)s_cap_rele221f15>214 2lass="sref">1499ass"srr.l2anup_242"2134.1L921"21p" cdensry rgt; a hr221ode>215S2lass="sref">1499assgoto+c2xpect2d, 215s2cap_lock" code=drop"1569a2s="sr25sry essiopuLs_cap_cexpected2h/mds_client.id.1L943" mdes_handle5replLsgot8corrupt replLssr1nam4.d(tth i>1adeexeu mdeor mde=a htid_target_sessioptidef15"+cexpecteid.1 id.1L951" clasrss="s299.1L921"21e < 0)s_cap_rele221opf>21512946de=drop"1569ass="sr15>2ist_h2ada215m4.1L921"22m4.1 < 0)s_cap_relea2115r>21o12946" class=l"sr15">old_ca2ala>)252"2194.1L921"21H_NOSNAPf">s)s_cap_rele221p" >215s2cap_lock" c>156"srr.leanu2_capt25essr1 notificatioi8that ourds_cli22m4.1L921"22m_NOSNAPf">s)s_cap_relea21ses>21o 2lass="sref">14.5assst_pat2_attr25adala>);1li>1574/mdc#L952>hahas bioi_cap control moi_ags_cli2124.1L921"21"sref">lenala> spa3 cla221f15>21o 2lass="sref">1536ass"srr.l2anup_25s>1536ass>>>>>>>>list_headalds_cli2131.1L921"21sessiopino rgt; a hr221H_N>215s2cap_lock" cl1487assssssss2sssss2ss" cs14ward_target_sessiophandle5l14warioi_cap_="srr.leanup_c5l14warioi_caps_hanioid.1L951" clasbaath i>15sessioi_cap_="srr.leanup_capsessioid.1L951" clasbasessioiclas,ala>);1li>1574/mds_cli22m8.1L921"22msref">lenala> spa3 clas21de">215s2cap_lock" cl1578assssssss2sssss2ss="sr14>ceph_caple32_to_cpu5>li>51" clasbaath isg_cap_="srr.leanup_capmsgd.1L951" clasba sgclasdala>);1li>1574/mds_cli22m9.1L921"22m < 0)s_cap_relea21ath>215 2lass="sref">1499ass"srr.l2anup_25="s2214.1L921"220h/mds_client._client.c#21L94>21L92946" class=o else5_client2id.1 26ath i>15tc#L952_target_sessiopath de_tc#Ls_cap_="srr.leanup_capmdest_c#qL863">"86ss="sr__g,ala>);1li>1574/mds_cli22c#qL863">"86sath thlenala> eph_inodshmutext_c#qL863">"86sshmutexs_cl 158"a href15>li>1574/m58"a h2"2201.1L921"22dcass="l )> a hre2160/>21Ls2cap_lock" cl1535assst_pat2_attr26sry essiopuLs_cap_cexpected,SNAPf">s)s_cap_relea20H_N094.1L921"20H_Ne_cap().CEP" MDS_OP_RMS01.1L921"22dcass="l )> a hre21opf>21512cap_lock" code=drop"1569a2s="sr26198.1Cels="s2094.1L921"20H_NO (strumuteinarget_sessiopath s_client.c#L952" is_cs="sc#qL863">"86sath thlenala> eph_inodshmutext_c#qL863">"86sshmutexs_cl 158"a ref15>li>1574/m58"a 2"2201.1L921"22dcass="l )> a hre21p" >215s2cap_lock" cl"sr15">old_ca2ala>)2{n< insert traioid.1L951" clasbaath i>15sessioi_cap_la> eph_inodopt_c#q i>15sessioi_cap_la> >"86ss="sr__g,ala>);1h_="srr.leanup_c5s="sc#qL863">"86sath > eph_inodhd15>li>157h/mdsc#hd1clas.enala> epfrop_="srr.leanup_cafrop_ioptidef15d158"/mds_iov_basient.c#L952" id.iov_basi2"2201.1L921"22dcass="l )> a hre21ess>21L 2lass="sref"" cstrncpy 2mutex2lockt_c#qL863"inarget_sessiopath wakient.c#L952" id.wakis="sc#q001.1L921"22dcass="l )> a hre21f15>21o 2946" class=" cstrncpy 2er15>2i>157h1.1L921"22dcass="l )> a hre21H_N>215s2cap_lock" cl154e_infoalar2adcse215>li>157h/mds not a> authority problemeexeu ds_cli2131.1L921"21sessiopino rgt; a hr221eep>21Ls2cap_lock" cl1578ass>1564a2s="sr26a href14="s>143h/L863">"86sath > eph_inodhd15>li>157h/mdsc#hd1clas.enala> epfrop_="srr.leanup_cafrop_ioptidef15d158"/mds_iov_58"/mds_client.c#Liov_58"2"22ILELsizeofss="sr__g,ala>);1h_="srr.leanup_c5s="s132.1L921"21opfreepath )client.c221lie>21L 2lass="sref">1499ass>153" 2strnc2y _info_target_sesgetf">15re158"/mds_cb_infoalareadcsadeba952"201.1L921"22dcass="l )> a hre2115>>21152cap_lock" cl1514ass9ass>123" cs27">old_capala>094.1L921"20H_Ne_cap().CEP" MDS_OP_RMS57h/mdsc#le64_to_cpu15ref"srr.leanup_caphead_target_sessiopheadL868pathlenal_="srr.leanup_c5s="s6sop82/md =6h="sr15ve_cap().CEP" MDS_OP_RMSN01.1L921"22dcass="l )> a hre2160/>21Ls2cap_lock" cl1531ass"srr.l2anup_27sry essiopuLs_cap_cexpectedmd 5_client.id.1 imd 2"2257h/mdsc#le64_to_cpu15ref"srr.leanup_capasgd.1L951" clasba sgclaspathlenalal_="srr.leanup_c5s="s6sop82/md =6h="sr15vmd 5_client.id.1 imd 2"22N01.1L921"22dcass="l )> a hre21opf>21512cap_lock" code=drop"1569a2s="sr27da22m3.1L921"22m"sr a a spa3 clas21ry >21712946" class=enala> eph_ino2mutex2unlockt_c#qL863">"86ssutexeunlock15inode_infoalareadcsmdest_c#qL863">"86ss="sr__gpathlenala> eph_inodsutext_c#qL863">"86ssutexs_cl 158"/mds_client.c#L952" id.1L952"2178.1L921"21f">pathlenala>=gt; a hr221la+>211s2cap58"/mds_client.c#L952"2id.1L27fo_target_sessioprinfoclaspathlee_cap().CEP" MDS_OP_RMS57ELOCKt_c#qL863">"86sCESESSION_CLOSEcap().CEP" MDS_86sCESESSION_CLOSEli22m9.1L921"22m < 0)s_cap_relea21d.1>217 2lass="sref"" cstrncpy 2up5tc27edown_writat_c#qL863">"86sdown_writap_capmdest_c#thlenala> eph_inodshmup_capmdest_c#thlenal"86ss="sr__g, " cstrncpy _ eph_inodshmutext_c#qL86178.1L921"21f">pathlenala>=gt; a hr221f15>21o 2946cexpected, eer12>li>1276>li>157h/mds not a> authority probleFIXME: this ttl hrec="s>cap is generou/mds_cli2195.1L921"21921d=sessceph)> a hr221ve_>21772946" class=enala> eph_ino2mutex2lockt_c#qL863">"86ssutexelockthlenala> eph_inodshmutext_c#qL863">"86sshmutexs_cl 158ttlref15>li>1574/m58ttl2"2257h/mdsc#le64_to_cjiffise"15ref"srr.leanjiffise2"225oprinfoclaspathleHZ"15ref"srr.leanHZ2"22s="sr__g,ala>);1li>1574/mds_cli22>"86ssutexs_cl 158"/mdsma_cap().CEP" MDS_mdsma_li22>"86ssutexs_cl 158"/msioi_cap_autoclosient.c#L952" id.msioi_cap_autoclosi52"201.1L921"22dcass="l )> a hre21eep>21Ls2cap_lock" c>156!"srr.lean2p_cap278lockt_c#qL863">"86ssutexeun15ref_ref_inode_infoalareadcsmdest_c#qL863">"86ss="sr__gpathlenala> eph_inodsutext_c#qL863">"86ssutexs_cl 158"/mds_client.c#L952" id.1L952"2194.1L921"21_SNAPDIRf">s)s_cap_rele221iof>217 2lass="sref">1499assl154e_2nfoal272"2134.1L921"21p" cdensry rgt; a hr221151>21852cap_lock" cl1514ass9ass>123" cs28">old_capala>094.1L921"20H_N15ref_inode_infoalareadcssessioid.1L951" clasbasessioiclaspathlenala> eph_inodshmutext_c#qL863">"86sshmutexs_cl 158"/mds_client.c#L952" id.1L952"2147.1L921"21lient.c#L945"a> 221cla>218s2cap_lock" cl1531asso else2_clie282"22m2.1L921"22mssiotemp );cap_relea21f15>218 2lass="sref">1492assssssss2se_in28198.1Cels="s2094.1L921"20H_Nds_client.id.1L943" handle5replLstid nam4.lld resul2 nam4.d ioi_cap ef="+cexp "+cexs "+cexp 14wae "+cexs md 21812946" class="1543assl1531a2slps_2bala>(struath sg_get_sessiopath s_client.c#L952" is_cs="s/mds_cl 158"/mds_ i>15ioi_cap_op_ssl1eph_inodopt_c#q i>15ioi_cap_op_ssl1"86ss="sr__g, " cstre_cap().CEP" MDS_OP_RMSN/mds_cl 158"/mds_thlenala> eph_inodshmutext_c#qL86t9.1L921"21iofreepath )client.c221la+>211s2cap_lock" cl1514assssssss2se_in2oalareadcs_ eph_inodshmutext_c#qL863">"86sshmutexs_cl 15814wae_client.c#L952" i14wae_RMSN/mds_cl 158"/mds_th 5_client.id.1 imd 2"22N01.1L921"22dcass="l )> a hre21e >211 2lass="sref">14.5assode=dr2p"156282"21L6.1L921"21eepath ep1> 221ode>218 2lass="sref"o else5_client2id.1 2d.1L951" clasrsioprinfoclaspathlethlenala> eph_inodshmutext_c#qL863">"86sshmutexs_cl 15814wae_client.c#L952" i14wae_RMSAPt_c#qL863">"86sCEP" MDS_OPSESSION_HUNGcap().CEP" MDS_86sCES_OPSESSION_HUNG2"22N187.1L921"21f14men>148h/mdsgt; a hr221f14>211s2cap_lock" cl1487assst_pat2_attr2sedo">NULLala>) {n152h/mthlenala> eph_inodshmutext_c#qL863">"86sshmutexs_cl 15814wae_client.c#L952" i14wae_RMSAP_c#qL863">"86sCEP" MDS_OPSESSION_OPENlient.c#L952" iP" MDS_OPSESSION_OPEN52"201.1L921"22dcass="l )> a hre21921>211s2cap_lock" code=drop"1569a2s="sr28ppreer15>li>157h/mdsc#preer1L868f>152h/15ref"srr.leanup_capr" clasba sgle5replLsgot8corrupt replLssr"+cexp cp"1 back_target_sessioptidef15"+cexpectethlenala> eph_inodshmutext_c#qL863">"86sshmutexs_cl 158"a ref15>li>1574/m58"a 2"22N01.1L921"22dcass="l )> a hre21iof>217 2lass="sref"enala> eph_ino2mutex28>list_heada2144.1L921"21L944" c#L945"a> 221_SN>21942_cl58"/mds_client.c#L952"2id.1L252"21_1.1L921"21class="string">cap_rele221cla>219s2cap_lock" c3ass="sr14f">d2ath 2dd_cap_releaseswitchoprinfoclaspathlee_cap().CEP" MDS_OP_RMSN187.1L921"21f14men>148h/mdsgt; a hr221ess>219s2cap_lock" cl1562ass="sr152mutex2unlockt_c#qL86caseLOCKt_c#qL863">"86sCESESSION_OPENlient.c#L952" iP" MDSESSION_OPEN52"297.1L921"21#L91111} else _cap_rele221="s>21932cap58"/mds_client.c#L952"2id.1L29ala>(strumutexeunlocksioprinfoclaspathlethlenala> eph_inodshmutext_c#qL863">"86sshmutexs_cl 15814wae_client.c#L952" i14wae_RMSAPt_c#qL863">"86sCEP" MDS_OPSESSION_RECONNECTINGcap().CEP" MDS_86sCES_OPSESSION_RECONNECTINGli22m9.1L921"22m < 0)s_cap_relea21H_N>219s2cap_lock" cl"sr15">old_ca2ala>)29expected, asppatht_dsc#preer1L868f>152h/15ref"srr.leanup_capr" clasba sgle5replLsgot8corrupt replLssr"+cexp reconnect suc574/_target_sessioptidef15"+cexpectethlenala> eph_inodshmutext_c#qL863">"86sshmutexs_cl 158"a ref15>li>1574/m58"a 2"22N01.1L921"22dcass="l )> a hre21921>219 2lass="sref"" cstrncpy 2aompl29edown_writat_c#qL863">"86sdown_writathlenala> eph_inodshmutext_c#qL863">"86sshmutexs_cl 15814wae_client.c#L952" i14wae_RMSAP_c#qL863">"86sCEP" MDS_OPSESSION_OPENlient.c#L952" iP" MDS_OPSESSION_OPEN52"201.1L921"22dcass="l )> a hre21 88>21912946cexpected, 5>li2157h/29path upduto_snap_tracot_c#qL863">"8renewedcap"15ref"srr.leanuprenewedcap"1"86ss="sr__g, " cstrncpy _ eph_inodshmutext_c#qL86, 0N01.1L921"22dcass="l )> a hre21f14>211s2946" class=enala> eph_ino2ath 29edo">NULLala>) {n152h/mwakient.c#L952" id.wakis="sc#q101.1L921"22dcass="l )> a hre21921>211s2cap_lock" c="sr14158"/mds2clien29.1L86r eph_inodsutext_c#qL863">"86ssutexs_cl 158"/stopprrup> eph_inodshmuttopprruli22m9.1L921"22m < 0)s_cap_relea21iof>217 2lasode=drop"1569ass="sr152list_29 _info_target_sessiop152h/m__closi#thlenala> eph_inodshmup_closi#thlenal"86ss="sr__g, " cstrncpy _ eph_inodshmutext_c#qL86178.1L921"21f">pathlenala>=gt; a hr322m4.>22m43_cl58"/mds_client.c#L952"3id.1L30">old_capala>) {n< >obreak78.1L921"21f">pathlenala>=gt; a hr321m4.>22m43_ap_lock" c3ass="sr14f">d3id.1L352"22m2.1L921"22mssiotemp );cap_rele322mss>22013946de=drop"1569ass="sr15>3ist_h30nlockt_c#qL86caseLOCKt_c#qL863">"86sCESESSION_RENEWCAPSlient.c#L952" iP" MDSESSION_RENEWCAPS52"297.1L921"21#L91111} else _cap_rele322m"s>220"3"857ala> spa1573ass="sr153(strumutexeunlocksioprinfoclaspathlethlenala> eph_inodshmutext_c#qL863">"86sshmutexs_cl 158renew_md 5_client.id.1 i58renew_md _RMSAPt_c#qL863">"86sCEth 5_client.id.1 imd 2"22N7.1L921"21#L91111} else _cap_rele324m"s>220"3"ap_lock" cl"sr15">old_ca3* han30alareadcs_ eph_inodshmutext_c#qL86, 1178.1L921"21f">pathlenala>=gt; a hr325m"s>220"3"ass="sref"" cstrncpy 3list_30edown_writat_c#qL863"break78.1L921"21f">pathlenala>=gt; a hr326m"s>220"3"46cexpected, 5>li3_caph30>157h1.1L921"22dcass="l )> a hr322mL9>220s3cap_lock" cl1487assssssss3sssst3request_path_acaseLOCKt_c#qL863">"86sCESESSION_CLOSEcap().CEP" MDS_86sCESESSION_CLOSEli2297.1L921"21#L91111} else _cap_rele328mL9>220s3cap_lock" c="sr14158"/mds3sssst3request_path_attr=seatsioprinfoclaspathlethlenala> eph_inodshmutext_c#qL863">"86sshmutexs_cl 15814wae_client.c#L952" i14wae_RMSAPt_c#qL863">"86sCEP" MDS_OPSESSION_RECONNECTINGcap().CEP" MDS_86sCES_OPSESSION_RECONNECTINGli22m9.1L921"22m < 0)s_cap_rele322m >220 3las_client.id.1 id.1L951"3clasr30 _info_target_sessiop152h/m2h/15ref"srr.leanup_capr" clasba sgle5replLsgot8corrupt replLssr"+cexp reconnect deniid_target_sessioptidef15d158"/mds_thlenala> eph_inodshmutext_c#qL863">"86sshmutexs_cl 158"a ref15>li>1574/m58"a 2"22N01.1L921"22dcass="l )> a hr3220h/>221s3cap_lock" cttrequest_path3attr=31">old_capala>) {n< >o>"86sdown_writa> movi#thlenalcap"15ref"srr.leanupremovi#thlenalcap"1"86ss="sr__g, " cstrthlenala> eph_inodshmutext_c#qL86N01.1L921"22dcass="l )> a hr321m4.>22m43cap_lock" c3ass="sr14f">d3u" cd31ss="sr15.1L86adest_c#L863">"86sath wakient.c#L952" id.wakis="sc#q10s not a> authority problefor good measuru ds_cli2131.1L921"21sessiopino rgt; a hr322s-is_21h3enala> eph_inodshmutext_c3uL95231alareadcs_"86ss="sr__gpathlenala> eph_inodsutext_c#qL863">"86ssutexs_cl 158"/thlenalcalosi#w 5_client.id.1 imdlenalcalosi#w qL86N01.1L921"22dcass="l )> a hr322m"s>220"3cap58"/mds_client.c#L952"3id.1L31ala>(strumutexeunlock>"86sdown_writa;1115ref"srr.leanup;111"86ss="sr__g, " cstrncpy _220"3cap_lock" c>156"srr.leanu3_caph31alareadcs_pathlenala>=gt; a hr322m21>22053lass="sref">14.5assst_pat3_attr312"21L6.1L921"21eepath ep1> 322m88>220 3lass="sref">1536asslps_cb3la>(s3ru_eunregistercaseLOCKt_c#qL863">"86sCESESSION_STALEcap().CEP" MDS_86sCESESSION_STALEli2297.1L921"21#L91111} else _cap_rele322mL9>220s3cap_lock" cl1487ass="sr153e_cap31edo">NULLala>) {n152h/m2h/15ref"srr.leanup_capr" clasba sgle5replLsgot8corrupt replLssr"+cexp cpps wcap 14wle, renew952_target_sessiopt7.1L921"21#L91111} else _cap_rele328mL9>220s3946" class="1548ass="sr1531L94731s="sr14>ceph_caple32_to_cpu5>def15d158"/mds_thlenala> eph_inodshmutext_c#qL863">"86sshmutexs_cl 158"a ref15>li>1574/m58"a 2"22N01.1L921"22dcass="l )> a hr322m >220 3lass="sref">1499assl154e_3nfoal31pdowngrade_writat_c#qL863">"86sdowngsprr_inode_infoalareadcssprr_inodL951" clasbasessioiclaspathlenala> eph_inodshmutext_c#qL863">"86sshmutexs_cl 158gen8ttl_inode_infoalareadcss8gen8ttl_inod2"22N01.1L921"22dcass="l )> a hr321ap">212S3lass="sref">1499ass>1536a3sl"sr32">old_capala>) {n< >o>"86sdown_writathlenala> eph_inodshmutext_c#qL863">"86sshmutexs_cl 158st_cg8"/mds_client.c#L58st_cg8"qL86++01.1L921"22dcass="l )> a hr321m4.>22m43cap7ala> spa1441ass="sr143>>>>>32ss="sr15.1L86adest_c#L863">"86sath thlenala> eph_inodshmutext_c#qL863">"86sshmutexs_cl 158st_cttlref15>li>1574/m58st_cttl2"2257h/mdsc#le64_to_cjiffise"15ref"srr.leanjiffise2"225-q101.1L921"22dcass="l )> a hr321f15>21a 3las7ala> spa144lass="sr143>>>>>32alareadcs_ eph_inodshmutext_c#qL863">"86sshmutexs_cl 158gen8ttl_inode_infoalareadcss8gen8ttl_inod2"22N01.1L921"22dcass="l )> a hr322m"s>220"3"857ala> spa1573ass="sr153>149932ala>(strumutexeunlock>"86sdown_writat.c#drenew_ap"15ref"srr.leanupt.c#drenew_ap"1"86ss="sr__g, " cstrncpy _ eph_inodshmutext_c#qL86178.1L921"21f">pathlenala>=gt; a hr321"sr>212 3las7ala> spa1572ass="sr153>149932alareadcs_pathlenala>=gt; a hr321cla>212539467ala> spa144lass="sr143>1499322"21L6.1L921"21eepath ep1> 322m88>220 3cap7ala> spa144lass="sr143>149932u_eunregistercaseLOCKt_c#qL863">"86sCESESSION_RECALL_STATEcap().CEP" MDS_86sCESESSION_RECALL_STATEli2297.1L921"21#L91111} else _cap_rele321ses>212s3cap_lock" cl1487assssssss3s"srr32edo">NULLala>) {n152h/mcorm_ap"15ref"srr.leanupcorm_ap"1"86ss="sr__g, " cstrncpy _ eph_inodshmutext_c#qL86, ds_cl 158"/mds_pu15ref"srr.leanup_caphead_target_sessiopheadL868pathlenal_="srr.leanup_c5s="s6sop82/md =6h="sr15vmax_ap"15ref"srr.leanupmax_ap"1qL861178.1L921"21f">pathlenala>=gt; a hr328mL9>220s3cap_lock" cl1578assssssss3s"srr32s="sr14>ceph_caple32_break78.1L921"21f">pathlenala>=gt; a hr322m >220 3"+c58"/mds_client.c#L952"3id.1L322"2134.1L921"21p" cdensry rgt; a hr321p" >213S3lass="sref">1499ass>1536a3sl"sr35">old_capala>default97.1L921"21#L91111} else _cap_rele321ses>213s3cap_lock" cl1531ass>1536a3s>1563ass="sr15.1L86adest_c#L863">"86sath 2h/mds_client.id.1L943" mdes_handle5replLsgot8corrupt replLssr1nam4.d(tioi_cap bad op1492assssssss3sssss33alareadcs_pathlenala>=gt; a hr321lad>212"3946" class="1543assl1531a3slps_3bala>(strumute44.1L921"21L944" c#L945"a> 321"sr>212 3cap_lock" cl1514assssssss3sgoto332"2175.1L921"21d.1L887ala>; spa3 cla321cla>21253lass="sref">14.5assode=dr3p"1563ass="sr15>listds_cl 158"/mds_sock15ref_inode_infoalareadcssessioid.1L951" clasbasessioiclaspathlenala> eph_inodshmutext_c#qL863">"86sshmutexs_cl 158"/mds_client.c#L952" id.1L952"2193.1L921"21="sr a a spa3 cla321H_N>21p 3lass="sref"o else5_client3id.1 33.1L951" clasrsioprinfoclaspathlewakient.c#L952" id.wakis="sN187.1L921"21f14men>148h/mdsgt; a hr321lad>213s3cap_lock" cl1487ass="sr153e_cap3)._"86ss="sr__gpathlenala> eph_inodsutext_c#qL863">"86ssutexs_cl 158"/mds_client.c#L952" id.1L952"2178.1L921"21f">pathlenala>=gt; a hr321i" >213s3cap_lock" cl1578ass="sr143ceph_3aplist_add_tailt_c#qL863">"86slist_ad__waki_14="s>115ref"srr.leanup__waki_14="s>11"86ss="sr__g, " cstrncpy _"86sshmutexs_cl 158waitrrup> eph_inodshmut8waitrru52"2178.1L921"21f">pathlenala>=gt; a hr322m >220 3cap_lock" code=drop"1569a3s="sr33pdowngrade_writat_c#qL863">"86sdowng15ref_ref_inode_infoalareadcsmdest_c#qL863">"86ss="sr__gpathlenala> eph_inodsutext_c#qL863">"86ssutexs_cl 158"/mds_client.c#L952" id.1L952"2194.1L921"21_SNAPDIRf">s)s_cap_rele321L94>21443_cl58"/mds_client.c#L952"3id.1L34">old_capala>44.1L921"21L944" c#L945"a> 32140/>21Ls3cap_lock" c3ass="sr14f">d3cf">N34ss="sr15.1L86952"2199.1L921"21e < 0)s_cap_rele321iop>21Ls3cap_lock" cl1562ass="sr153_info34da22m3.1L921"22m"sr a a spa3 cla321lad>212"3946" class=enala> eph_ino3er15>34ala>(sutexs_cl 158"/b_infoalareadcsadeba952"297.1L921"21#L91111} else _cap_rele321ess>214s3cap_lock" c="sr15ve_cap()3mutex3unlockt_c#qL86L863">"86sath 2h/mds_client.id.1L943" mdes_handle5replLsgot8corrupt replLssr1nam4.d(tioi_cap corrupt moi_ags ef="+cexp lenma htid_target_sessiopt_get_sessiopath s_client.c#L952" is_cs="s/7.1L921"21#L91111} else _cap_rele321cla>21253las58"/mds_client.c#L952"3id.1L34edown_writat_c#qL863(int)get_sessiopath s eph_inodhd15>li>157h/mdsc#hd1clas.enala> epfrop_="srr.leanup_cafrop_ioptidef15d158"/mds_iov_58"/mds_client.c#Liov_58"2"22194.1L921"21_SNAPDIRf">s)s_cap_rele321H_N>21p 3946" class=" cstrncpy 3mutex346lockt_c#qL86L863">"86sath L951" cl_dum_cap().CEP" MDS_L951" cl_dum_"86ss="sr__g, " cstrnlient.c#L952" id.1L952"2184.1L921"21eadcsess )> a hr321lie>214s3cap_lock" cl154e_infoalar3adcse34ockt_c#qL863"952"2199.1L921"21e < 0)s_cap_rele321i" >213s3cap_lock" cl1578ass="sr143ceph_34c#L9544.1L921"21L944" c#L945"a> 322m >220 3lass="sref">1499ass"srr.l3anup_342"2134.1L921"21p" cdensry rgt; a hr321ode>215S3lass="sref">1499assgoto+c3xpect352"21_1.1L921"21class="string">cap_rele321ses>215s3cap_lock" code=drop"1569a3s="sr35sry notificatioi8that ourds_cli22m4.1L921"22m_NOSNAPf">s)s_cap_rele321opf>21513946de=drop"1569ass="sr15>3ist_h3ada215>);1li>1574/mdchrefed underbioi_capsc#hdd.1L9L884 22m5.1L921"22m21d=sessceph)> a hr32115r>21o13946" class=l"sr15">old_ca3ala>)35dala>);1li>1574/m ds_cli2131.1L921"21sessiopino rgt; a hr321p" >215s3cap_lock" c>156"srr.leanu3_capt35essr114ward_target_sessiophandle a ayst_safi_14="s>115ref"srr.leanup a ayst_safi_14="s>11"86ssds_target_sessiopath de574/mds_cap_="srr.leanup_capmdest_c#qL863">"86ss="sr__g,ala>);1li>1574/mds_cli22m7.1L921"22mL91111} else _cap_rele321ses>21o 3lass="sref">14.5assst_pat3_attr35edown_writat_c#qL863""""""""""""""""""""ioid.1L951" clasbaath i>15sessioi_cap_="srr.leanup_capsessioid.1L951" clasbasessioiclas,ala>);1li>1574/mds_cli22m9.1L921"22m < 0)s_cap_rele321f15>21o 3lass="sref">1536ass"srr.l3anup_35s>15387.1L921"21f14men>148h/mdsgt; a hr321H_N>215s3cap_lock" cl1487assssssss3sssss35ockt_c#qL863"952_target_sessiopath de_tc#L95215re_="srr.leanup_captca href14="s>143h/mds_cl158"/mds_client.c#L952" id.1L952"22,/mds_cl158"/mds_cnlient.c#L952" id.1nL952"2201.1L921"22dcass="l )> a hr321de">215s3cap_lock" cl1578assssssss3sssss3ss="sr14>ceph_inarget_sessiopath e_cap().ath fillhtracot_01.1L921"22dcass="l )> a hr322m >220 3lass="sref">1499ass"srr.l3anup_352"2134.1L921"21p" cdensry rgt; a hr321L94>21L93946" class=o else5_client3id.1 36">old_capala>094.1L921"20H_Nds_client.id.1L943" handle5replLstid nam4.lld resul2 na a ayst_safi_14="s>11cssr"+cexp_target_sessioptidef15d158"/mds_thlenala> eph_inodshmutext_c#qL863">"86sshmutexs_cl 158"a ref15>li>1574/m58"a 2"22N01.1L921"22dcass="l )> a hr32160/>21Ls3cap_lock" cl1535assst_pat3_attr362"22m2.1L921"22mssiotemp );cap_rele321opf>21513cap_lock" code=drop"1569a3s="sr36198.1Cels="s2094.1L921"20H_Nlock15inode_infoalareadcsmdest_c#qL863">"86ss="sr__gpathlenala> eph_inodsutext_c#qL863">"86ssutexs_cl 158"/mds_client.c#L952" id.1L952"2178.1L921"21f">pathlenala>=gt; a hr321iop>21633cap58"/mds_client.c#L952"3id.1L36ala>(strumuteds_cl 158"/mds_pisttth _each_gt;ry_safi.leanup_caphead_isttth _each_gt;ry_safi"86ss="sr__g, " cstrlient.c#L952" id.1L952"22,/ds_cl158"/mds_cnlient.c#L952" id.1nL952"22/m clasbasessioiclaspathlenala> eph_inodshmutext_c#qL863">"86sshmutexs_cl 158t_safiref15>li>1574/m58t_safi2"22,/ds_cl158"/mds_crst_safi_itemnt.c#L952" id.1Lst_safi_items="sN187.1L921"21f14men>148h/mdsgt; a hr321p" >215s3cap_lock" cl"sr15">old_ca3ala>)36alareadcs_"86sath __p aar(tioc#dreef"srr.leanup_capmdestp aar(tioc#dreef"sr"86ss="sr__g, " cstrncpy _ eph_inodshmutext_c#qL863">"86sshmutexs_cl 158"a ref15>li>1574/m58"a 2"22N01.1L921"22dcass="l )> a hr321ses>21o 3lass="sref"" cstrncpy 3mutex36edown_writat_c#qL863"siopmds_clpathlenalaid.1 id.1L951" clasrss="s2187.1L921"21f14men>148h/mdsgt; a hr321f15>21o 3946" class=" cstrncpy 3er15>36path upduto_snap_trat_c#qL86L863">"86sath L951" cl_gee_="srr.leanup_captca cl_gee"86ss="sr__g, " cstrlient.c#L952" id.1L952"22 clasbar_tcplLL86856h="sef"srr.leanup_capmdec#qL863">"86sN01.1L921"22dcass="l )> a hr321H_N>215s3cap_lock" cl154e_infoalar3adcse36equest_path_attr=seath i>15sL863">"86sath L951"cal_1enient.c#L952" id.L951"cal_1eniL951" clasbasessioiclaspathlenala> eph_inodshmutext_c#qL863">"86sshmutexs_cl 158cala> eph_inodshmut8cal143h/mds_cl 158"/mds_lient.c#L952" id.1L952"22 clasbar_tcplLL86856h="sef"srr.leanup_capmdec#qL863">"86sN01.1L921"22dcass="l )> a hr321de">215s3cap_lock" cl1578ass>1564a3s="sr36plist_add_tailt_c#qL844.1L921"21L944" c#L945"a> 321lie>21L 3lass="sref">1499ass>153" 3strnc36>list_heada2144.1L921"21L944" c#L945"a> 32115>>21153cap_lock" cl1514ass9ass>133" cs37">old_capala>094.1L921"20H_N15ref_ref_inode_infoalareadcsmdest_c#qL863">"86ss="sr__gpathlenala> eph_inodsutext_c#qL863">"86ssutexs_cl 158"/mds_client.c#L952" id.1L952"2194.1L921"21_SNAPDIRf">s)s_cap_rele32160/>21Ls3cap_lock" cl1531ass"srr.l3anup_37sry 44.1L921"21L944" c#L945"a> 321opf>21513cap_lock" code=drop"1569a3s="sr37da22m3.1L921"22m"sr a a spa3 cla321ry >21713946" class=enala> eph_ino3mutex37dala>);1li>1574/mds_cli22m4.1L921"22m_NOSNAPf">s)s_cap_rele321la+>211s3cap58"/mds_client.c#L952"3id.1L37essr1 notificatioi8that our * En158" clarms>cap abhan a cppefor a reconnect with the MDSL884 22m5.1L921"22m21d=sessceph)> a hr321d.1>217 3lass="sref"" cstrncpy 3up5tc37adala>);1li>1574/mds_cli2131.1L921"21sessiopino rgt; a hr321f15>21o 3946cexpected, eer13>li>1376>li>14ward_inarget_sessiopath en158"_ap"1_cb1 id.1L951" clasn158"_ap"1_cb"86ssds_target_sessiopath inth /mds_client.c#Linth 143h/mds_cl158"/mds_cinth /mds_client.c#Linth 143h,"952_target_sessiopath de_ca_cap().CEP" MDS_ de_ca_143h/mds_cl158"/mds_cca_cap().CEP" MDS_ a_143hm7.1L921"22mL91111} else _cap_rele321ve_>21773946" class=enala> eph_ino3mutex37equest_path_attr=seath i>15sertargemds_cl158"/mds_carient.c#L952" id.arili22m9.1L921"22m < 0)s_cap_rele321eep>21Ls3cap_lock" c>156!"srr.lean3p_cap378lock87.1L921"21f14men>148h/mdsgt; a hr321iof>217 3lass="sref">1499assl154e_3nfoal37>list_heada21uncap 87.1L921"21f14men>148h/mdsgt; a hr321151>21853cap_lock" cl1514ass9ass>133" cs38">old_capala>) {n< >ods_target_sessiopath de574/mdsat_c#connect="srr.leanup_capmdest_c#qat_c#connect>old_et_sessiopath vNAPf">s)s_cap_rev2cot_01.1L921"22dcass="l )> a hr321cla>218s3cap_lock" cl1531asso else3_clie38ss="sr15.1L86adest_c#ds_target_sessiopath de574/mdsat_c#connect_v1="srr.leanup_capmdest_c#qat_c#connect_v1>old_et_sessiopath v1="srr.leanup_cav1>old01.1L921"22dcass="l )> a hr321opf>21513lass="sref">1492assssssss3se_in38ss"srr.leanup4=ds_cl 158"/mds_li eph_inodsutext_li >old01.1L921"22dcass="l )> a hr321ry >21713946" class="1543assl1531a3slps_38ala>(strumuteds_cl 158"/mds_size_t="srr.leanup_casize_t>old_et_sessiopath li 58"/mds_client.c#Lli 58">old01.1L921"22dcass="l )> a hr321la+>211s3cap_lock" cl1514assssssss3se_in38n< insert traioid.1L951" clasbaath i>15inth /15ref"srr.leanup_ca i>15inth /15re143h/mds_cl158"/mds_ccif"srr.leanup_ca i>old01.1L921"22dcass="l )> a hr321d.1>217 3lass="sref">14.5assode=dr3p"156385< insert traioid.1L951" clasbaath i>15c#connect_14wae_client.c#L952" i>15c#connect_14wae143h/mds_cl158"/mds_clical_14wae/mds_client.c#Lli al_14waecot_c#qL863">"86sath arient.c#L952" id.arili2201.1L921"22dcass="l )> a hr321f15>21o 3lass="sref"o else5_client3id.1 3d.1L951" clasrioid.1L951" clasbaath i>15page_ist_client.c#L952" i>15page_ist143h/mds_cl158"/mds_cpage_ist_client.c#L952"page_ist143h//mds_clpathlenala> cal_14wae/mds_client.c#Lli al_14waecot_>"86ssutexs_cl 158"/page_ist_client.c#L952"page_ist143h01.1L921"22dcass="l )> a hr321ve_>21773cap_lock" cl1487assst_pat3_attr3sedo">NULLala>char/mds_cl158"/mds_cpatl_="srr.leanup_cpatl143h01.1L921"22dcass="l )> a hr321eep>21Ls3cap_lock" code=drop"1569a3s="sr38s="sr14>ceph_inarget_sessiopath patl58"/mds_client.c#Lpatl58"143h/mds_cl 158"/mds_e_cap().ath fillhtracot_01.1L921"22dcass="l )> a hr321iof>217 3lass="sref"enala> eph_ino3mutex38>list_heada21ds_cl 158"/mds_O 15tc#L952_target_sessiopath dgt;rylient.id.1L943" gt;ry143h/mds_cl158"/mds_cdgt;rylient.id.1L943" gt;ry143h01.1L921"22dcass="l )> a hr321cla>218s3cap_lock" c3ass="sr14f">d3ath 392"22m2.1L921"22mssiotemp );cap_rele321ess>219s3cap_lock" cl1562ass="sr153mutex39198.1Cels="s2094.1L921"20H_Ncif"srr.leanup_ca i>old//mds_clpathlenalaca_cap().CEP" MDS_ a_143h>"86ssutexs_cl 158"/cif"srr.leanup_ca i>old01.1L921"22dcass="l )> a hr321="s>21933cap58"/mds_client.c#L952"3id.1L392"2194.1L921"21H_NOSNAPf">s)s_cap_rele321H_N>219s3cap_lock" cl"sr15">old_ca3ala>)39nlockt_c#qL86L863">"86sath ds_client.id.1L943" handle5replLstid nam4.lld resul2 na addd r "+cexp int219 3lass="sref"" cstrncpy 3aompl39edown_writat_c#qL8ds_cl158"/mds_cinth /mds_client.c#Linth 143h,"951" clasbaath i>15vint_cap().CEP" MDS_ de_vint_"86ss="sr__g, " cstrinth /mds_client.c#Linth 143hN/mds_cl 158"/mds_ca_cap().CEP" MDS_ a_143hmmds_clpathlenalaca_cap().CEP" MDS_ a_143h>"86ssutexs_cl 158"/cat_, 21913946cexpected, 5>li3157h/39path upduto_snap_get_sessiopath de_ca__.lld reap().CEP" MDS_ de_ca__.lld r"86ss="sr__g, " cstrca_cap().CEP" MDS_ a_143h>"86ssutexs_cl 158"/issue s)s_cap_rele321f14>211s3946" class=enala> eph_ino3ath 39ockt_c#qL863">"86ssutexelocke_cap().ath fillhtracot_c#qL863">"86sath i>15page_ist_sn158"_ 15page_ist_sn158"_ <"86ss="sr__g, " cstrpage_ist_client.c#L952"page_ist143h,"951" clasbaath i>15intf"srr.leanup_ca i>15int"86ss="sr__g, " cstrinth /mds_client.c#Linth 143hN194.1L921"21_SNAPDIRf">s)s_cap_rele321eep>21Ls3cap_lock" c="sr14158"/mds3clien39a href14="s>143h/L863">"86sath id.1 id.1L951" clasrss="s24.1L921"21_SNAPDIRf">s)s_cap_rele321iof>217 3lasode=drop"1569ass="sr153list_39 _info_target_ses952"21mds_cl 158"/mds_e_cap().ath fillhtracot_01.1L921"22dcass="l )> a hr422m4.>22m44_cl58"/mds_client.c#L952"4id.1L402"21_1.1L921"21class="string">cap_rele421m4.>22m44_ap_lock" c3ass="sr14f">d4id.1L40sry essiopuLs_cap_cexpecteddgt;rylient.id.1L943" gt;ry143h/#qL863">"86sath d_find_alia ref15>li>1574/md_find_alia "86ss="sr__g, " cstrinth /mds_client.c#Linth 143hN01.1L921"22dcass="l )> a hr422m4.>22m44_ap_lock" cl1562ass="sr154ist_h40nlockt_c#qL8643h/L863">"86sath dgt;rylient.id.1L943" gt;ry143h2187.1L921"21f14men>148h/mdsgt; a hr422m"s>220"4"857ala> spa1573ass="sr154(strumutexeunlockds_cl158"/mds_cpatl_="srr.leanup_cpatl143hc#qL863">"86sath i>15ssr1nbuild_patl_="srr.leanup_c i>15ssr1nbuild_patl"86ss="sr__g, " cstrdgt;rylient.id.1L943" gt;ry143h/m clasbasessioiclaspapatl58"/mds_client.c#Lpatl58"143h/m clasbasessioiclaspapatlbasient.c#L952" id.patlbasicot_, 0N01.1L921"22dcass="l )> a hr424m"s>220"4"ap_lock" cl"sr15">old_ca4* han40alareadcs_"86sath IS_ERRent.c#L952" id.IS_ERR"86ss="sr__g, " cstrpatl_="srr.leanup_cpatl143h)2187.1L921"21f14men>148h/mdsgt; a hr425m"s>220"4"ass="sref"" cstrncpy 4list_40edown_writat_c#qL863"c#qL863">"86ssutexelocke_cap().ath fillhtracot_c#qL863">"86sath PTR_ERRent.c#L952" id.PTR_ERR"86ss="sr__g, " cstrpatl_="srr.leanup_cpatl143h)01.1L921"22dcass="l )> a hr426m"s>220"4"46cexpected, 5>li4_caph40path upduto_snap_trat_c#qL86getf">15re158"/mds_chan_dpient.c#L952" id.1L95_dpiecot_01.1L921"22dcass="l )> a hr427m"s>220"4"46" class=enala> eph_ino4sssst40equest_path_attr=seat44.1L921"21L944" c#L945"a> 428mL9>220s4cap_lock" c="sr14158"/mds4sssst4request_path_a} else187.1L921"21f14men>148h/mdsgt; a hr429mL9>220s4casode=drop"1569ass="sr154clasr40 _info_target_sesds_cl158"/mds_cpatl_="srr.leanup_cpatl143hc#qL863">"86sath NULL_="srr.leanup_cNULLcot_01.1L921"22dcass="l )> a hr4220h/>221s4cap_lock" cttrequest_path4attr=41">old_capala>) {n< >o>"86sdown_writapatl58"/mds_client.c#Lpatl58"143hc#q001.1L921"22dcass="l )> a hr421m4.>22m44cap_lock" c3ass="sr14f">d4u" cd41ss="sr15.1L8644.1L921"21L944" c#L945"a> 422s-is_21h4enala> eph_inodshmutext_c4uL95241198.1Cels="s2094.1L921"20H_Ne_cap().ath fillhtracot_c#qL863">"86sath i>15page_ist_sn158"_.lld reap().CEP" MDS_ de_page_ist_sn158"_.lld r"86ss="sr__g, " cstrpage_ist_client.c#L952"page_ist143h,"951" clasbaath patl_="srr.leanup_cpatl143h,"951" clasbaath patl58"/mds_client.c#Lpatl58"143h)01.1L921"22dcass="l )> a hr422m"s>220"4cap58"/mds_client.c#L952"4id.1L41ala>(strumute43h/L863">"86sath id.1 id.1L951" clasrss="s24.1L921"21_SNAPDIRf">s)s_cap_rele424m"s>220"4cap_lock" c>156"srr.leanu4_caph41alareadcs_15re158"/mds_chan_freient.c#L952" id.han_freicot_01.1L921"22dcass="l )> a hr425m"s>220"4lass="sref">14.5assst_pat4_attr412"21L6.1L921"21eepath ep1> 422m88>220 4lass="sref">1536asslps_cb4la>(s416lockt_c#qL86L863">"86sath sprr_inode_infoalareadcssprr_inodL951" clasbasessioiclaspacif"srr.leanup_ca i>old>"86ssutexs_cl 158"/i_ de_inode_infoalareadcsi_ de_inod143h)01.1L921"22dcass="l )> a hr427m"s>220"4cap_lock" cl1487ass="sr154e_cap41ockt_c#qL863">"86ssutexelockca_cap().CEP" MDS_ a_143h>"86ssutexs_cl 158"/md 5_client.id.1 imd 2"2257h0;c#qL863"> not a> authority problereset cppemd 220s4946" class="1548ass="sr1541L947418lockt_c#qL863">"86ssutexeunca_cap().CEP" MDS_ a_143h>"86ssutexs_cl 158"/issue_md 5_client.id.1 iissue_md 2"2257h0;c#> not a> authority probleand issue_md 220s4lass="sref">1499assl154e_4nfoal412"2134.1L921"21p" cdensry rgt; a hr421ap">212S4lass="sref">1499ass>1536a4sl"sr42">old_capala>43h/L863">"86sath > cal_14wae/mds_client.c#Lli al_14waecot_>"86ssutexs_cl 158"/finode_infoalareadcsfinod143h)187.1L921"21f14men>148h/mdsgt; a hr421m4.>22m44cap7ala> spa1441ass="sr144>>>>>42ss="sr15.1L86adest_c#L863">"86sath li eph_inodsutext_li >oldidef15d158"/mds_vNAPf">s)s_cap_rev2cot_idef15d158"/mds_cat_, "86sath puget_.1L9"86ssutexs_cl 158"/cat_, >>>>42alareadcs_s)s_cap_rev2cot_idef15d158"/mds_wante "86sath puget_.1SNAPf">s)s_cap_re puget_.1SN"86ss="sr__g, " cstr__ de_ca_t8wante oldN194.1L921"21_SNAPDIRf">s)s_cap_rele422m"s>220"4"857ala> spa1573ass="sr154>149942ala>(strumutexeunlock>"86sdown_writali eph_inodsutext_li >oldidef15d158"/mds_vNAPf">s)s_cap_rev2cot_idef15d158"/mds_issue "86sath puget_.1SNAPf">s)s_cap_re puget_.1SN"86ss="sr__g, " cstrca_cap().CEP" MDS_ a_143h>"86ssutexs_cl 158"/issue s)s_cap_rele424m"s>220"4las7ala> spa1572ass="sr154>149942alareadcs_oldidef15d158"/mds_vNAPf">s)s_cap_rev2cot_idef15d158"/mds_snaprealmnt.c#L952" id.1snaprealm143hc#qL863">"86sath puget_.1L9old>"86ssutexs_cl 158"/i_snap_realmnt.c#L952" id.1i_snap_realm>old>"86ssutexs_cl 158"/intf"srr.leanup_caint"86sN94.1L921"21_SNAPDIRf">s)s_cap_rele425m"s>220"49467ala> spa144lass="sr144>149942edown_writat_c#qL863">"86sdown_writali eph_inodsutext_li >oldidef15d158"/mds_vNAPf">s)s_cap_rev2cot_idef15d158"/mds_patlbasient.c#L952" id.patlbasicot_c#qL863">"86sath puget_.1L9s)s_cap_rele422m88>220 4cap7ala> spa144lass="sr144>149942path upduto_snap_tracot_c#qL863">"8re eph_inodsutext_li >oldidef15d158"/mds_vNAPf">s)s_cap_rev2cot_idef15d158"/mds_finod_58"/mds_client.c#Lfinod_58"143hc#q001.1L921"22dcass="l )> a hr421ses>212s4cap_lock" cl1487assssssss4s"srr42edo">NULLala>) {n152h/mli 58"/mds_client.c#Lli 58">old ELsizeofscot_c#qL863">"8re eph_inodsutext_li >oldidef15d158"/mds_vNAPf">s)s_cap_rev2cot_N94.1L921"21_SNAPDIRf">s)s_cap_rele428mL9>220s4cap_lock" cl1578assssssss4s"srr42equest_path_a} else187.1L921"21f14men>148h/mdsgt; a hr422m >220 4"+c58"/mds_client.c#L952"4id.1L42 _info_target_sesds_cl158"/mds_cre eph_inodsutext_li >oldidef15d158"/mds_v1="srr.leanup_cav1>oldidef15d158"/mds_cat_, "86sath puget_.1L9"86ssutexs_cl 158"/cat_, 213S4lass="sref">1499ass>1536a4sl"sr43">old_capala>) {n< >o>"86sdown_writa> eph_inodsutext_li >oldidef15d158"/mds_v1="srr.leanup_cav1>oldidef15d158"/mds_wante "86sath puget_.1SNAPf">s)s_cap_re puget_.1SN"86ss="sr__g, " cstr__ de_ca_t8wante oldN194.1L921"21_SNAPDIRf">s)s_cap_rele421ses>213s4cap_lock" cl1531ass>1536a4s>1564ass="sr15.1L86adest_c#L863">"86sath > eph_inodsutext_li >oldidef15d158"/mds_v1="srr.leanup_cav1>oldidef15d158"/mds_issue "86sath puget_.1SNAPf">s)s_cap_re puget_.1SN"86ss="sr__g, " cstrca_cap().CEP" MDS_ a_143h>"86ssutexs_cl 158"/issue s)s_cap_rele421opf>213 4lass="sref">1492assssssss4sssss43alareadcs_"86sath puget_.1L9"86ssutexs_cl 158"/i_sizent.c#L952" id.1i_size143hN94.1L921"21_SNAPDIRf">s)s_cap_rele422m"s>220"4946" class="1543assl1531a4slps_43ala>(strumutexeunlock>"86sdown_writa de_sn158"_timesp eph_inodsutext_ de_sn158"_timesp L951" clasbasessioiclaspa> eph_inodsutext_li >oldidef15d158"/mds_v1="srr.leanup_cav1>oldidef15d158"/mds_mtime="srr.leanup_camtime143h/m clasbasessioiclaspainth /mds_client.c#Linth 143h>"86ssutexs_cl 158"/i_mtime="srr.leanup_cai_mtime143hN94.1L921"21_SNAPDIRf">s)s_cap_rele424m"s>220"4cap_lock" cl1514assssssss4sgoto43alareadcs_ eph_inodsutext_li >oldidef15d158"/mds_v1="srr.leanup_cav1>oldidef15d158"/mds_atime="srr.leanup_caatime143h/m clasbasessioiclaspainth /mds_client.c#Linth 143h>"86ssutexs_cl 158"/i_atime="srr.leanup_cai_atime143hN94.1L921"21_SNAPDIRf">s)s_cap_rele425m"s>220"4lass="sref">14.5assode=dr4p"15643edown_writat_c#qL863">"86sdown_writali eph_inodsutext_li >oldidef15d158"/mds_v1="srr.leanup_cav1>oldidef15d158"/mds_snaprealmnt.c#L952" id.1snaprealm143hc#qL863">"86sath puget_.1L9old>"86ssutexs_cl 158"/i_snap_realmnt.c#L952" id.1i_snap_realm>old>"86ssutexs_cl 158"/intf"srr.leanup_caint"86sN94.1L921"21_SNAPDIRf">s)s_cap_rele422m88>220 4lass="sref"o else5_client4id.1 43path upduto_snap_tracot_c#qL863">"8re eph_inodsutext_li >oldidef15d158"/mds_v1="srr.leanup_cav1>oldidef15d158"/mds_patlbasient.c#L952" id.patlbasicot_c#qL863">"86sath puget_.1L9s)s_cap_rele421lad>213s4cap_lock" cl1487ass="sr154e_cap4)._old ELsizeofscot_c#qL863">"8re eph_inodsutext_li >oldidef15d158"/mds_v1="srr.leanup_cav1>oldN94.1L921"21_SNAPDIRf">s)s_cap_rele428mL9>220s4cap_lock" cl1578ass="sr144ceph_4aplist_add_tai44.1L921"21L944" c#L945"a> 422m >220 4cap_lock" code=drop"1569a4s="sr43>list_heada21ds_cl 158"/mds_sprr_ref_inode_infoalareadsprr_ref_inL951" clasbasessioiclaspacif"srr.leanup_ca i>old>"86ssutexs_cl 158"/i_ de_inode_infoalareadcsi_ de_inod143h)01.1L921"22dcass="l )> a hr421L94>21444_cl58"/mds_client.c#L952"4id.1L442"21_1.1L921"21class="string">cap_rele42140/>21Ls4cap_lock" c3ass="sr14f">d4cf">N44ss="sr15.1L8643h/L863">"86sath > cal_14wae/mds_client.c#Lli al_14waecot_>"86ssutexs_cl 158"/finode_infoalareadcsfinod143h)187.1L921"21f14men>148h/mdsgt; a hr421iop>21Ls4cap_lock" cl1562ass="sr154_info44alareadcs_220"4946" class=enala> eph_ino4er15>44ala>(strumutexeunlockioid.1L951" clasbaath i>15page_ist_curso.1 id.1L951" cla i>15page_ist_curso.la>(s951" clasbaath oidnc_poip_="srr.leanup_caoidnc_poip_143h01.1L921"22dcass="l )> a hr424m"s>220"4cap_lock" c="sr15ve_cap()4mutex442"2175.1L921"21d.1L887ala>; spa3 cla421cla>21254las58"/mds_client.c#L952"4id.1L44edown_writat_c#qL863L951" clasbaath i>15page_ist_set_curso.1 id.1L951" cla i>15page_ist_set_curso."86ss="sr__g, " cstrpage_ist_client.c#L952"page_ist143h," clasbasessioiclaspaoidnc_poip_="srr.leanup_caoidnc_poip_143h)01.1L921"22dcass="l )> a hr422m88>220 4946" class=" cstrncpy 4mutex44path upduto_snap_trado187.1L921"21f14men>148h/mdsgt; a hr421lad>213s4cap_lock" cl154e_infoalar4adcse44equest_path_attr=seath i>15sL863">"86sath inod_f5nod ref15>li>1574/minod_f5nod "86ss)01.1L921"22dcass="l )> a hr428mL9>220s4cap_lock" cl1578ass="sr144ceph_44s="sr14>ceph_caple32_to_cpu5>def15d158"/mds_L951"caunt_5nod ref15>li>1574/mL951"caunt_5nod "86ss="sr__g, " cstrinth /mds_client.c#Linth 143h," clasbasessioiclaspanum_fcntl_inod ref15>li>1574/mnum_fcntl_inod 143h/1.1L921"22dcass="l )> a hr422m >220 4lass="sref">1499ass"srr.l4anup_44 _info_target_sessiopli>1574/mnum_finod_5nod 143h)01.1L921"22dcass="l )> a hr421ode>215S4lass="sref">1499assgoto+c4xpect45">old_capala>) {n< >oto_cpu5>def15d158"/mds_re eph_inodsutext_li >oldidef15d158"/mds_vNAPf">s)s_cap_rev2cot_idef15d158"/mds_finod_58"/mds_client.c#Lfinod_58"143hc#q(2*sizeofscot_c#qL863">"8uSNAPf">s)s_cap_reu3alare) +1.1L921"22dcass="l )> a hr42140/>21Ls4cap_lock" code=drop"1569a4s="sr45ss="sr15.1L86adest_c#############################scot_c#qL863">"8num_fcntl_inod ref15>li>1574/mnum_fcntl_inod 143h+basessioiclaspanum_finod_5nod ref15>li>1574/mnum_finod_5nod 143h) *1.1L921"22dcass="l )> a hr421iop>21Ls4946de=drop"1569ass="sr15>4ist_h45alareadcs_15fileinode_infoalareadcs i>15fileinod>oldN194.1L921"21_SNAPDIRf">s)s_cap_rele42115r>21o14946" class=l"sr15">old_ca4ala>)45ala>(strumutexeunlockto_cpu5>def15d158"/mds_ref_in_f5nod ref15>li>1574/mref_in_f5nod "86ss)01.1L921"22dcass="l )> a hr421p" >215s4cap_lock" c>156"srr.leanu4_capt452"2175.1L921"21d.1L887ala>; spa3 cla421ses>21o 4lass="sref">14.5assst_pat4_attr45edown_writat_c#qL863"""""""""> not a> authority problepre-al5no page_ist21o 4lass="sref">1536ass"srr.l4anup_45path upduto_snap_trat_c#qL86L863">"86sath L951"page_ist_oidncwae_client.c#L952" i>15page_ist_oidncwae"86ss="sr__g, " cstrpage_ist_client.c#L952"page_ist143h," clasbasessioiclaspaoidnc_poip_="srr.leanup_caoidnc_poip_143h)01.1L921"22dcass="l )> a hr421H_N>215s4cap_lock" cl1487assssssss4sssss45equest_path_attr=seath i>15sL863">"86sath e_cap().ath fillhtracot_c#qL863">"86sath i>15page_ist_appenient.c#L952" id.L951"page_ist_appeni"86ss="sr__g, " cstrpage_ist_client.c#L952"page_ist143h," clasbasessioiclaspare eph_inodsutext_li >old/mds_cl 158"/mds_li 58"/mds_client.c#Lli 58">old)01.1L921"22dcass="l )> a hr428mL9>220s4cap_lock" cl1578assssssss4sssss45s="sr14>ceph_caple32_to_cpu5>siopmds_clpathlenalaid.1 id.1L951" clasrss="s21.1L921"22dcass="l )> a hr422m >220 4lass="sref">1499ass"srr.l4anup_45 _info_target_sessiop"86sath e_cap().ath fillhtracot_c#qL863">"86sath i>15page_ist_reserve_client.c#L952" i>15page_ist_reserve"86ss="sr__g, " cstrpage_ist_client.c#L952"page_ist143h,1.1L921"22dcass="l )> a hr421L94>21L94946" class=o else5_client4id.1 46">old_capala>) {n< >oto_cpu5>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>def15d158"/mds_re eph_inodsutext_li >oldidef15d158"/mds_vNAPf">s)s_cap_rev2cot_idef15d158"/mds_finod_58"/mds_client.c#Lfinod_58"143h)01.1L921"22dcass="l )> a hr42160/>21Ls4cap_lock" cl1535assst_pat4_attr462"22m2.1L921"22mssiotemp );cap_rele421opf>21514cap_lock" code=drop"1569a4s="sr46alareadcs_ not a> authority problesn158" 5nod 21634cap58"/mds_client.c#L952"4id.1L46ala>(strumutexeunlockto_cpu5>siopmds_clpathlenalaid.1 id.1L951" clasrss="s2187.1L921"21f14men>148h/mdsgt; a hr421p" >215s4cap_lock" cl"sr15">old_ca4ala>)46alareadcs_li>1574/minod_f5nod "86ss)01.1L921"22dcass="l )> a hr421ses>21o 4lass="sref"" cstrncpy 4mutex46edown_writat_c#qL863">>>>>>>>>>>>>>>>def15d158"/mds_e_cap().ath fillhtracot_c#qL863">"86sath i>15sn158"_5nod ref15>li>1574/mL951"sn158"_5nod "86ss="sr__g, " cstrinth /mds_client.c#Linth 143h,1.1L921"22dcass="l )> a hr421f15>21o 4946" class=" cstrncpy 4er15>46path upduto_snap_trat_c#qL86_writat_c#qL863">>>>>>>>>>>>>>>>def15d158"/mds_page_ist_client.c#L952"page_ist143h,1.1L921"22dcass="l )> a hr421H_N>215s4cap_lock" cl154e_infoalar4adcse46equest_path_attr=seath i>15s_writat_c#qL863">>>>>>>>>>>>>>>>def15d158"/mds_num_fcntl_inod ref15>li>1574/mnum_fcntl_inod 143h/1.1L921"22dcass="l )> a hr421de">215s4cap_lock" cl1578ass>1564a4s="sr46plist_add_tailt_c#qL8h i>15s_writat_c#qL863">>>>>>>>>>>>>>>>def15d158"/mds_num_finod_5nod ref15>li>1574/mnum_finod_5nod 143h)01.1L921"22dcass="l )> a hr421lie>21L 4lass="sref">1499ass>153" 4strnc46 _info_target_sessiop"86sath ref_in_f5nod ref15>li>1574/mref_in_f5nod "86ss)01.1L921"22dcass="l )> a hr42115>>21154cap_lock" cl1514ass9ass>143" cs47">old_capala>) {n< >oto_cpu5>44.1L921"21L944" c#L945"a> 42160/>21Ls4cap_lock" cl1531ass"srr.l4anup_47ss="sr15.1L86adest_c#} whileh/L863">"86sath id.1 id.1L951" clasrss="s == -L863">"86sath ENOSPC1 id.1L951" claENOSPC143h)01.1L921"22dcass="l )> a hr421opf>21514cap_lock" code=drop"1569a4s="sr47ss"srr.leanup4=else187.1L921"21f14men>148h/mdsgt; a hr421ry >21714946" class=enala> eph_ino4mutex47ala>(strumutexeunlock>"86sdown_writae_cap().ath fillhtracot_c#qL863">"86sath i>15page_ist_appenient.c#L952" id.L951"page_ist_appeni"86ss="sr__g, " cstrpage_ist_client.c#L952"page_ist143h," clasbasessioiclaspare eph_inodsutext_li >old/mds_cl 158"/mds_li 58"/mds_client.c#Lli 58">old)01.1L921"21f14men>148h/mdsgt; a hr421p" >215s4cap58"/mds_client.c#L952"4id.1L47alareadcs_ 421ses>21o 4lass="sref"" cstrncpy 4up5tc472"21L6.1L921"21eepath ep1> 421f15>21o 4946cexpected, eer14>li>1476>li>ds_cl 158"/mds_han_freient.c#L952" id.han_freicot_97.1L921"21#L91111} else _cap_rele421ve_>21774946" class=enala> eph_ino4mutex47ockt_c#qL863">"86ssutexelockkfreient.c#L952" id.kfreicot_s="sr__g, " cstrpatl_="srr.leanup_cpatl143h)01.1L921"22dcass="l )> a hr421eep>21Ls4cap_lock" c>156!"srr.lean4p_cap478lockds_cl 158"/mds_han_dpient.c#L952" id.1L95_dpiecot_97.1L921"21#L91111} else _cap_rele421lie>21L 4lass="sref">1499assl154e_4nfoal47>list_heada21ds_cl 158"/mds_dpient.c#L952" id.1dpiecot_/L863">"86sath dgt;rylient.id.1L943" gt;ry143h201.1L921"22dcass="l )> a hr421151>21854cap_lock" cl1514ass9ass>143" cs48">old_capala>952"21mds_cl 158"/mds_e_cap().ath fillhtracot_01.1L921"22dcass="l )> a hr421cla>218s4cap_lock" cl1531asso else4_clie48sry 44.1L921"21L944" c#L945"a> 421opf>21514lass="sref">1492assssssss4se_in48da22m3.1L921"22m"sr a a spa3 cla421ry >21714946" class="1543assl1531a4slps_482"2194.1L921"21H_NOSNAPf">s)s_cap_rele421la+>211s4cap_lock" cl1514assssssss4se_in48essr1 notificatioi8that ourds_cli22m4.1L921"22m_NOSNAPf">s)s_cap_rele421d.1>217 4lass="sref">14.5assode=dr4p"15648adala>);1li>1574/md If 1s)s_cap_rele421f15>21o 4lass="sref"o else5_client4id.1 4d.1L95>);1li>1574/md reistab_ish shared 14wae. This includeseall cpps issued through_cli22m4.1L921"22m_NOSNAPf">s)s_cap_rele421ve_>21774cap_lock" cl1487assst_pat4_attr4sedo">>);1li>1574/md this ioi_cap _and_ the snap_realm hierarchy. Because1it's not_cli22m4.1L921"22m_NOSNAPf">s)s_cap_rele421eep>21Ls4cap_lock" code=drop"1569a4s="sr48s="sr>);1li>1574/mdchlear which snap realms the f"> cpreseabhan, we seni everything we_cli22m4.1L921"22m_NOSNAPf">s)s_cap_rele421lie>21L 4lass="sref"enala> eph_ino4mutex48>list>);1li>1574/mdcknoweabhan.. that ensuresewe'll then geteany new cla the_cli22m4.1L921"22m_NOSNAPf">s)s_cap_rele421_SN>21944_cl58"/mds_client.c#L952"4id.1L49ath >);1li>1574/md re avering MDS might haveL884 22m5.1L921"22m21d=sessceph)> a hr421cla>218s4cap_lock" c3ass="sr14f">d4ath 49sry notificatioi8that our s_cli22m4.1L921"22m_NOSNAPf">s)s_cap_rele421ess>219s4cap_lock" cl1562ass="sr154mutex49da215>);1li>1574/mdcThis is a relatively heavyweight opera>cap, but1it's rareL884 22m5.1L921"22m21d=sessceph)> a hr421ry >21714cap58"/mds_client.c#L952"4id.1L49dala>);1li>1574/m d884 22m5.1L921"22m21d=sessceph)> a hr421la+>211s4cap_lock" cl"sr15">old_ca4ala>)49essr1 notificatioi8that our * hrefed with ssr1sc#hdd.1L9 heldL884 22m5.1L921"22m21d=sessceph)> a hr421d.1>217 4lass="sref"" cstrncpy 4aompl49adala>);1li>1574/mds_cli2131.1L921"21sessiopino rgt; a hr421 88>21914946cexpected, 5>li4157h/496>li>14ward_target_sessiophandleioc#dno c#connect="srr.leanup_caioc#dno c#connectcot_/ds_target_sessiopath de574/mds_cap_="srr.leanup_capmdest_c#qL863">"86ss="sr__g,ala>);1li>1574/mds_cli22m7.1L921"22mL91111} else _cap_rele421f14>211s4946" class=enala> eph_ino4ath 49equest_path_attr=seath i>15s_writatioid.1L951" clasbaath i>15sessioi_cap_="srr.leanup_capsessioid.1L951" clasbasessioiclas,ala>);1li>1574/mds_cli22m9.1L921"22m < 0)s_cap_rele421eep>21Ls4cap_lock" c="sr14158"/mds4clien498lock87.1L921"21f14men>148h/mdsgt; a hr421iof>217 4lasode=drop"1569ass="sr154list_49 _info_taioid.1L951" clasbaath i>15slient.c#L952" id. i>15sli" clasbasessioiclas,a a ylient.id.1L943" a ycot_01.1L921"22dcass="l )> a hr522m4.>22m45_cl58"/mds_client.c#L952"5id.1L50ath i>15tc#L952_target_sessiopath rb_nth /mds_client.c#Lrb_nth " clasbasessioiclas,a_cap().CEP" MDS_pcot_01.1L921"22dcass="l )> a hr521m4.>22m45_ap_lock" c3ass="sr14f">d5id.1L50sry essiopuLinarget_sessiopath m_client.c#L952" is_cs="sc#qL863">"86sath thlenala> eph_inodshmutext_c#qL863">"86sshmutexs_cl 158"a ref15>li>1574/m58"a 2"2201.1L921"22dcass="l )> a hr522m4.>22m45_ap_lock" cl1562ass="sr155ist_h50nlockt_c#qL864narget_sessiopath e_cap().ath fillhtracot_ = -L863">"86sath ENOMEM1 id.1L951" claENOMEM2"2201.1L921"22dcass="l )> a hr523m4.>22m45_ap58"/mds_client.c#L952"5(strumuteioid.1L951" clasbaath i>15page_ist_client.c#L952" i>15page_ist143h/mds_cl158"/mds_cpage_ist_client.c#L952"page_ist143h01.1L921"22dcass="l )> a hr524m4.>22m45_ap_lock" cl"sr15">old_ca5* han50alareadcs_15c#connect_14wae_client.c#L952" i>15c#connect_14wae143h/ds_cl 158"/mds_li al_14wae/mds_client.c#Lli al_14waecot_01.1L921"22dcass="l )> a hr525m4.>22m45_ass="sref"" cstrncpy 5list_502"21L6.1L921"21eepath ep1> 526m"s>220"5"46cexpected, 5>li5_caph506lockt_c#qL86L863">"86sath pr/15ref"srr.leanup_capr/15recot_/LplLstid nam4.lld resul2 namf="+cexp reconnect 14wrt_target_sessiopt_get_sessiopath s_client.c#L952" is_cs="s201.1L921"22dcass="l )> a hr527m"s>220"5"46" class=enala> eph_ino5sssst50eques1.1L921"22dcass="l )> a hr528m"s>220"5"ap_lock" c="sr14158"/mds5sssst508lockt_c#qL863">"86ssutexeunpage_ist_client.c#L952"page_ist143h//mds_clpathlenalakmal5noent.c#L952" id.kmal5nocot_/dizeofsmds_cl158"/mds_cpage_ist_client.c#L952"page_ist143hN/mds_cl 158"/mds_GFP_NOFS_client.c#L952"GFP_NOFSs="s201.1L921"22dcass="l )> a hr529m"s>220"5"asode=drop"1569ass="sr155clasr50 _info_tasiopmds_clpathlenalapage_ist_client.c#L952"page_ist143hN1.1L921"22dcass="l )> a hr5220h/>221s5cap_lock" cttrequest_path5attr=51">old_capala>) {n< >ogetf">15re158"/mds_cfail_ntpage_ist_client.c#L952"fail_ntpage_istcot_01.1L921"22dcass="l )> a hr521m4.>22m45cap_lock" c3ass="sr14f">d5u" cd51sry essiopuLs_cap_cexpectedL951"page_ist_init_client.c#L952" i>15page_ist_init"86ss="sr__g, " cstrpage_ist_client.c#L952"page_ist143h201.1L921"22dcass="l )> a hr522s-is_21h5enala> eph_inodshmutext_c5uL95251da22m3.1L921"22m"sr a a spa3 cla522m"s>220"5cap58"/mds_client.c#L952"5id.1L51ala>(strumutebasessioiclas,a a ylient.id.1L943" a ycot_c#qL863">"86sath i>15ssg_newent.c#L952" id. i>15sli_new"86ss="sr__g, " cstrCEPH_MSG_CLIENT_RECONNECTent.c#L952" id.CEPH_MSG_CLIENT_RECONNECT>old/m0/mds_cl 158"/mds_GFP_NOFS_client.c#L952"GFP_NOFSs="s/mds_cl 158"/mds_falsient.c#L952" id.falsi143h201.1L921"22dcass="l )> a hr524m4.>22m45cap_lock" c>156"srr.leanu5_caph51alareadcs_14.5assst_pat5_attr51edown_writat_c#qL863"getf">15re158"/mds_cfail_ntslient.c#L952" id.fail_ntslicot_01.1L921"22dcass="l )> a hr526m"s>220"5lass="sref">1536asslps_cb5la>(s516lock1.1L921"22dcass="l )> a hr527m"s>220"5cap_lock" cl1487ass="sr155e_cap51ockt_c#qL863">"86ssutexelocklock15inode_infoalareadcsmdest_c#qL863">"86ss="sr__gpathlenathlenala> eph_inodshmutext_c#qL863">"86sshmutexs_cl 158"ds_client.c#L952" i58"ds_c143h201.1L921"22dcass="l )> a hr528m"s>220"5946" class="1548ass="sr1551L947518lockt_c#qL863">"86ssutexeunthlenala> eph_inodshmutext_c#qL863">"86sshmutexs_cl 15814wae/mds_client.c#Ls_14waecot_c#qL863">"86sath CEPH_MDS_SESSION_RECONNECTINGent.c#L952" id.CEPH_MDS_SESSION_RECONNECTINGcot_01.1L921"22dcass="l )> a hr529m"s>220"5lass="sref">1499assl154e_5nfoal51>list_heada21ds_cl 158"/mds_shlenala> eph_inodshmutext_c#qL863">"86sshmutexs_cl 1581d 5_client.id.1 im_md 2"2257h0;1.1L921"22dcass="l )> a hr521ap">212S5lass="sref">1499ass>1536a5sl"sr522"21_1.1L921"21class="string">cap_rele521m4.>22m45cap7ala> spa1441ass="sr145>>>>>52sry essiopuLs_cap_cexpectedL951" al_closient.c#L952" id.L951" al_closi863">"86ss="sr__gpathlenathlenala> eph_inodshmutext_c#qL863">"86sshmutexs_cl 158cala> eph_inodshmut8cal143h201.1L921"22dcass="l )> a hr521f15>21a 5las7ala> spa144lass="sr145>>>>>52alareadcs_"86ss="sr__gpathlenathlenala> eph_inodshmutext_c#qL863">"86sshmutexs_cl 158cala> eph_inodshmut8cal143hm7.1L921"22mL91111} else _cap_rele522m"s>220"5"857ala> spa1573ass="sr155>149952ala>(strumutexeunlockcs_22m45las7ala> spa1572ass="sr155>149952alareadcs_15 elmap_gee_add."86ss="sr__g, " cstrli>1574/mds_cli22>"86ssutexs_cl 158"/melmapref15>li>1574/mds_ma_143hmmds_clpathlenalas_client.c#L952" is_cs="s2201.1L921"22dcass="l )> a hr525m4.>22m459467ala> spa144lass="sr145>1499522"21L6.1L921"21eepath ep1> 522m88>220 5cap7ala> spa144lass="sr145>149952path upduto_> not a> authority problereplay unsafe qL863"> 212s5cap_lock" cl1487assssssss5s"srr52ockt_c#qL863">"86ssutexelockreplay_unsafe#qL863">client.c#L952" ireplay_unsafe#qL863">c"86ss="sr__g, " cstrli>1574/mds_cli22mmds_clpathlenalala>);1li>1574/mds_cli22m01.1L921"22dcass="l )> a hr528m"s>220"5cap_lock" cl1578assssssss5s"srr52eques1.1L921"22dcass="l )> a hr529m"s>220"5"+c58"/mds_client.c#L952"5id.1L52>list_heada21ds_cl 158"/mds_down_reaient.c#L952" id.down_reai863">"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/snap_rwsemnt.c#L952" id.1snap_rwsemli22m01.1L921"22dcass="l )> a hr521p" >213S5lass="sref">1499ass>1536a5sl"sr532"21_1.1L921"21class="string">cap_rele521ses>213s5cap_lock" cl1531ass>1536a5s>15653sry essiopuLs_cap_cexpectedds_client.id.1L943" handle5replLstid nam4.lld resul2 naioi_cap "+cexp 14wae "+cexs_target_sessioptmds_clpathlenalala>);1li>1574/mds_cli22m7.1L921"22mL91111} else _cap_rele521opf>213 5lass="sref">1492assssssss5sssss53alareadcs_);1<_14wae_ssssa href15>li>1574/mds_c_14wae_ssss"86ss="sr__g, " cstrthlenala> eph_inodshmutext_c#qL863">"86sshmutexs_cl 15814wae/mds_client.c#Ls_14waecot_2201.1L921"22dcass="l )> a hr522m"s>220"5946" class="1543assl1531a5slps_532"2194.1L921"21H_NOSNAPf">s)s_cap_rele524m"s>220"5cap_lock" cl1514assssssss5sgoto53alareadcs_ not a> authority probledrop old cppeexpires;ewe're abhan to reistab_ish that 14wae ds_cli2131.1L921"21sessiopino rgt; a hr525m"s>220"5lass="sref">14.5assode=dr5p"15653edown_writat_s_cap_cexpecteddiscard#qat_c#leatexlient.id.1L943" iscard#qat_c#leatex"86ss="sr__g, " cstrli>1574/mds_cli22mmds_clpathlenalala>);1li>1574/mds_cli22m01.1L921"22dcass="l )> a hr522m88>220 5lass="sref"o else5_client5id.1 536lock1.1L921"22dcass="l )> a hr521lad>213s5cap_lock" cl1487ass="sr155e_cap5)._220"5cap_lock" cl1578ass="sr145ceph_538lockt_c#qL863">"86ssutexeune_cap().ath fillhtracot_c#qL863">"86sath i>15page_ist_sn158"_SNAPf">s)s_cap_re i>15page_ist_sn158"_SN"86ss="sr__g, " cstrpage_ist_client.c#L952"page_ist143hmmds_clpathlenalala>);1li>1574/mds_cli223">"86sshmutexs_cl 158nr_ca_t/mds_client.c#Ls_nr_ca_tli22m01.1L921"22dcass="l )> a hr529m"s>220"5cap_lock" code=drop"1569a5s="sr53 _info_tasiop3">"86ssutexeune_cap().ath fillhtracot_N1.1L921"22dcass="l )> a hr521L94>21445_cl58"/mds_client.c#L952"5id.1L54">old_capala>) {n< >ogetf">15re158"/mds_cfailent.c#L952" id.failcot_01.1L921"22dcass="l )> a hr52140/>21Ls5cap_lock" c3ass="sr14f">d5cf">N542"22m2.1L921"22mssiotemp );cap_rele521iop>21Ls5cap_lock" cl1562ass="sr155_info54alareadcs_220"5946" class=enala> eph_ino5er15>54ala>(strumutebasessioiclas,a al_14wae/mds_client.c#Lli al_14waecot_idef15d158"/mds_finode_infoalareadcsfinod143hc#qL863">"86sath thlenala> eph_inodshmutext_c#qL863">"86sshmutexs_cl 158cala> eph_inodshmut8cal143hidef15d158"/mds_peer_features_client.c#L952"peer_features143hc"86ss s_cap_cexpectedCEPH_FEATURE_FLOCKent.c#L952" id.CEPH_FEATURE_FLOCK143h01.1L921"22dcass="l )> a hr524m"s>220"5cap_lock" c="sr15ve_cap()5mutex54nlockt_c#qL86L863">"86sath e_cap().ath fillhtracot_c#qL863">"86sath itera>eid.1L951_ca_t/mds_client.c#Litera>eid.1L951_ca_t"86ss="sr__g, " cstrthlenala> eph_inodshmutext_c#qL86/mds_cl 158"/mds_en158"_ca_t8cbap().ath fillhtn158"_ca_t8cbqL86/m clasbasessioiclaspare al_14wae/mds_client.c#Lli al_14waecot_m01.1L921"22dcass="l )> a hr521cla>21255las58"/mds_client.c#L952"5id.1L54edown_writat_siop3">"86ssutexeune_cap().ath fillhtracot_ < 0N1.1L921"22dcass="l )> a hr522m88>220 5946" class=" cstrncpy 5mutex54path upduto_snap_tragetf">15re158"/mds_cfailent.c#L952" id.failcot_01.1L921"22dcass="l )> a hr521lad>213s5cap_lock" cl154e_infoalar5adcse54eques1.1L921"22dcass="l )> a hr528mL9>220s5cap_lock" cl1578ass="sr145ceph_54s="sr14>ceph_ notificatioi8that ourds_cli22m4.1L921"22m_NOSNAPf">s)s_cap_rele522m >220 5lass="sref">1499ass"srr.l5anup_54>list>);1li>1574/mmmmmmmmm* snaprealms. we provide f"> with the ino,emd <(vers_c#),eand_cli22m4.1L921"22m_NOSNAPf">s)s_cap_rele521ode>215S5lass="sref">1499assgoto+c5xpect55ath >);1li>1574/mmmmmmmmm* par157 foreall of our realms. If the f"> haseany newer cla,_cli22m4.1L921"22m_NOSNAPf">s)s_cap_rele52140/>21Ls5cap_lock" code=drop"1569a5s="sr55sry notificatioi8that our mmmmmmmm* it will tell usL884 22m5.1L921"22m21d=sessceph)> a hr521iop>21Ls5946de=drop"1569ass="sr15>5ist_h55da215>);1li>1574/mmmmmmmmm*s_cli2131.1L921"21sessiopino rgt; a hr52115r>21o15946" class=l"sr15">old_ca5ala>)55ala>(strumutefores="sr__g, " cstrp_client.c#L952"pcot_c#qL863">"86sath rb_first_client.c#L952"rb_first863">"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/snap_realmsnt.c#L952" id.1snap_realmscot_m0mds_clpathlenalap_client.c#L952"pcot_0mds_clpathlenalap_client.c#L952"pcot_c#qL863">"86sath rb_next_client.c#L952"rb_next"86ss="sr__g, " cstrp_client.c#L952"pcot_)2187.1L921"21f14men>148h/mdsgt; a hr521p" >215s5cap_lock" c>156"srr.leanu5_capt55alareadcs_15snap_realmnt.c#L952" id.1 i>15snap_realmlareasbasessioiclas,a almnt.c#L952" id.1realm143hc#7.1L921"21f14men>148h/mdsgt; a hr521cla>21255lass="sref">14.5assst_pat5_attr55edown_writat_c#qL863""""""""">863">"86sath rb_gt;rylient.id.1L943"rb_gt;ry"86ss="sr__g, " cstrp_client.c#L952"pcot_,"ioid.1L951" clasbaath i>15snap_realmnt.c#L952" id.1 i>15snap_realmlare/mget_sessiopath nth /mds_client.c#Lnth 143hN01.1L921"22dcass="l )> a hr521f15>21o 5lass="sref">1536ass"srr.l5anup_55path upduto_snap_traioid.1L951" clasbaath i>15sessinaprealm c#connect="srr.leanup_ca i>15sessinaprealm c#connectath sutexs_cl 158"/sr_re eph_inodsutext_sr_re cot_01.1L921"22dcass="l )> a hr521H_N>215s5cap_lock" cl1487assssssss5sssss55eques1.1L921"22dcass="l )> a hr528mL9>220s5cap_lock" cl1578assssssss5sssss55s="sr14>ceph_caple32_s_cap_cexpectedds_client.id.1L943" handle5replLstid nam4.lld resul2 na adding snap realm "+cexllxemd <"+cexlld par157 "+cexllx_target_sessiopt1.1L921"22dcass="l )> a hr522m >220 5lass="sref">1499ass"srr.l5anup_55 _info_target_sessiop"86ssutexs_cl 158"/intf"srr.leanup_caint"86s/mds_cl 158"/mds_lialmnt.c#L952" id.1realm143h>"86ssutexs_cl 158"/md 5_client.id.1 imd 2"22/mds_cl 158"/mds_lialmnt.c#L952" id.1realm143h>"86ssutexs_cl 158"/par157_intf"srr.leanup_capar157_int143hN01.1L921"22dcass="l )> a hr521L94>21L95946" class=o else5_client5id.1 56">old_capala>) {n< >osutexs_cl 158"/sr_re eph_inodsutext_sr_re cot_idef15d158"/mds_intf"srr.leanup_caint"86sc#qL863">"86sath puget_.1L9"86ssutexs_cl 158"/intf"srr.leanup_caint"86sN01.1L921"22dcass="l )> a hr52140/>21Ls5cap_lock" cl1535assst_pat5_attr56ss="sr15.1L86adest_c#L863">"86sath sr_re eph_inodsutext_sr_re cot_idef15d158"/mds_md 5_client.id.1 imd 2"2257hL863">"86sath puget_.1L9"86ssutexs_cl 158"/md 5_client.id.1 imd 2"22N01.1L921"22dcass="l )> a hr521iop>21Ls5cap_lock" code=drop"1569a5s="sr56alareadcs_"86sath sr_re eph_inodsutext_sr_re cot_idef15d158"/mds_par157f"srr.leanup_capar1572"2257hL863">"86sath puget_.1L9"86ssutexs_cl 158"/par157_intf"srr.leanup_capar157_int143hN01.1L921"22dcass="l )> a hr52115r>21o15cap58"/mds_client.c#L952"5id.1L56ala>(strumutexeunlock3">"86ssutexeune_cap().ath fillhtracot_c#qL863">"86sath i>15page_ist_appenient.c#L952" id.L951"page_ist_appeni"86ss="sr__g, " cstrpage_ist_client.c#L952"page_ist143h," clasbasessioiclaspasr_re eph_inodsutext_sr_re cot_,Lsizeofscot_c#qL863">"8sr_re eph_inodsutext_sr_re cot_2201.1L921"22dcass="l )> a hr521p" >215s5cap_lock" cl"sr15">old_ca5ala>)56alareadcs_"86ssutexeune_cap().ath fillhtracot_N1.1L921"22dcass="l )> a hr521ses>21o 5lass="sref"" cstrncpy 5mutex56edown_writat_c#qL863">>>>>>>>getf">15re158"/mds_cfailent.c#L952" id.failcot_01.1L921"22dcass="l )> a hr521f15>21o 5946" class=" cstrncpy 5er15>56path upduto_44.1L921"21L944" c#L945"a> 521H_N>215s5cap_lock" cl154e_infoalar5adcse56eques1.1L921"22dcass="l )> a hr521de">215s5cap_lock" cl1578ass>1564a5s="sr568lockt_c#qL863">"86ssutexeun a ylient.id.1L943" a ycot_>"86ssutexs_cl 158"/page_ist_client.c#L952"page_ist143h//mds_clpathlenalapage_ist_client.c#L952"page_ist143h01.1L921"22dcass="l )> a hr521lie>21L 5lass="sref">1499ass>153" 5strnc56 _info_tasiop3">"86ssutexeun al_14wae/mds_client.c#Lli al_14waecot_idef15d158"/mds_finode_infoalareadcsfinod143hN1.1L921"22dcass="l )> a hr52115>>21155cap_lock" cl1514ass9ass>153" cs57">old_capala>) {n< >o3">"86ssutexeun a ylient.id.1L943" a ycot_>"86ssutexs_cl 158"/hd.1 id.1L951" clahd."86sidef15d158"/mds_vers_c#1 id.1L951" clavers_c#2"2257hL863">"86sath puget_.1lass="sref"2_targcpuget_.116lock(2201.1L921"22dcass="l )> a hr52160/>21Ls5cap_lock" cl1531ass"srr.l5anup_57sry essiopuLs_cap_cexpected a ylient.id.1L943" a ycot_>"86ssutexs_cl 158"/hd.1 id.1L951" clahd."86sidef15d158"/mds_data_58"/mds_client.c#Ldata_58"2"2257hL863">"86sath puget_.1SNAPf">s)s_cap_re puget_.1SN"86ss="sr__g, " cstrpage_ist_client.c#L952"page_ist143h>"86ssutexs_cl 158"/58"gtl_="srr.leanup_c58"gtl143hN01.1L921"22dcass="l )> a hr521opf>21515cap_lock" code=drop"1569a5s="sr57alareadcs_"86ssutexs_cl 158"/nr"page ref15>li>1574/mnr"page 2"2257hL863">"86sath alc"page _fo.1 id.1L951" cla alc"page _fo."86ss0/mds_cl 158"/mds_page_ist_client.c#L952"page_ist143h>"86ssutexs_cl 158"/58"gtl_="srr.leanup_c58"gtl143hN01.1L921"22dcass="l )> a hr52115r>21o15946" class=enala> eph_ino5mutex57ala>(strumutebasessioiclas,aL951" al_senient.c#L952" id.L951" al_seni863">"86ss="sr__gpathlenathlenala> eph_inodshmutext_c#qL863">"86sshmutexs_cl 158cala> eph_inodshmut8cal143hm s_cap_cexpectedlia ylient.id.1L943" a ycot_N01.1L921"22dcass="l )> a hr521p" >215s5cap58"/mds_client.c#L952"5id.1L572"2175.1L921"21d.1L887ala>; spa3 cla521ses>21o 5lass="sref"" cstrncpy 5up5tc57edown_writat_s_cap_cexpectedmdest_ref_inode_infoalareadmdest_ref_in863">"86ss="sr__gpathlenathlenala> eph_inodshmutext_c#qL863">"86sshmutexs_cl 158"ds_client.c#L952" i58"ds_c143h201.1L921"22dcass="l )> a hr521f15>21o 5946cexpected, eer15>li>1576lock1.1L921"22dcass="l )> a hr521ve_>21775946" class=enala> eph_ino5mutex57ockt_c#qL863">"86ssutexelocklock15inode_infoalareadcsmdest_c#qL863">"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/mds_client.c#L952" i"ds_c143h201.1L921"22dcass="l )> a hr521de">215s5cap_lock" c>156!"srr.lean5p_cap578lockt_c#qL863">"86ssutexeun__wake#qL863">client.c#L952" i__wake#qL863">c"86ss="sr__g, " cstrli>1574/mds_cli22mm"86ss="sr__gpathlenathlenala> eph_inodshmutext_c#qL863">"86sshmutexs_cl 158waitd reient.c#L952" i58waitd r143h201.1L921"22dcass="l )> a hr521lie>21L 5lass="sref">1499assl154e_5nfoal57>list_heada21ds_cl 158"/mds_mdest_ref_inode_infoalareadmdest_ref_in863">"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/mds_client.c#L952" i"ds_c143h201.1L921"22dcass="l )> a hr521151>21855cap_lock" cl1514ass9ass>153" cs582"21_1.1L921"21class="string">cap_rele521cla>218s5cap_lock" cl1531asso else5_clie58sry essiopuLs_cap_cexpectedup_reaient.c#L952" id.up_reai863">"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/snap_rwsemnt.c#L952" id.1snap_rwsemli22m01.1L921"22dcass="l )> a hr521opf>21515lass="sref">1492assssssss5se_in58alareadcs_s)s_cap_rele521la+>211s5cap_lock" cl1514assssssss5se_in58essr1 15re158"/mds_cfailent.c#L952" id.failcot_97.1L921"21#L91111} else _cap_rele521d.1>217 5lass="sref">14.5assode=dr5p"15658edown_writat_s_cap_cexpected i>15sli_pient.c#L952" id.1 i>15sli_pie"86ss="sr__g, " cstr a ylient.id.1L943" a ycot_N01.1L921"22dcass="l )> a hr521f15>21o 5lass="sref"o else5_client5id.1 586lockt_c#qL86L863">"86sath up_reaient.c#L952" id.up_reai863">"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/snap_rwsemnt.c#L952" id.1snap_rwsemli22m01.1L921"22dcass="l )> a hr521ve_>21775cap_lock" cl1487assst_pat5_attr58ockt_c#qL863">"86ssutexelocklock15ref_inode_infoalareadmdest_ref_in863">"86ss="sr__gpathlenathlenala> eph_inodshmutext_c#qL863">"86sshmutexs_cl 158"ds_client.c#L952" i58"ds_c143h201.1L921"22dcass="l )> a hr521eep>21Ls5cap_lock" code=drop"1569a5s="sr588lockds_cl 158"/mds_fail_ntslient.c#L952" id.fail_ntslicot_97.1L921"21#L91111} else _cap_rele521lie>21L 5lass="sref"enala> eph_ino5mutex58>list_heada21ds_cl 158"/mds_L951"page_ist_c#leateent.c#L952" id.L951"page_ist_c#leate"86ss="sr__g, " cstrpage_ist_client.c#L952"page_ist143h201.1L921"22dcass="l )> a hr521_SN>21945_cl58"/mds_client.c#L952"5id.1L590list_heada21ds_cl 158"/mds_kfreient.c#L952" id.kfreicot_s="sr__g, " cstrpage_ist_client.c#L952"page_ist143h201.1L921"22dcass="l )> a hr521cla>218s5cap_lock" c3ass="sr14f">d5ath 59sry s_cl 158"/mds_fail_ntpage_ist_client.c#L952"fail_ntpage_istcot_97.1L921"21#L91111} else _cap_rele521ess>219s5cap_lock" cl1562ass="sr155mutex59alareadcs_old_ca5ala>)59essr144.1L921"21L944" c#L945"a> 521d.1>217 5lass="sref"" cstrncpy 5aompl592"21L6.1L921"21eepath ep1> 521 88>21915946cexpected, 5>li5157h/596lock1.1L921"22dcass="l )> a hr521f14>211s5946" class=enala> eph_ino5ath 59edo">>);1li>1574/ds_cli22m4.1L921"22m_NOSNAPf">s)s_cap_rele521eep>21Ls5cap_lock" c="sr14158"/mds5clien59s="sr>);1li>1574/mdchompar1 old and new ds_ma_s, kicking re863">c"8li22m4.1L921"22m_NOSNAPf">s)s_cap_rele521lie>21L 5lasode=drop"1569ass="sr155list_59>list>);1li>1574/mdcand closing han old connect_c#s as necextary"8li22m4.1L921"22m_NOSNAPf">s)s_cap_rele622m4.>22m46_cl58"/mds_client.c#L952"6id.1L60ath >);1li>1574/md"8li22m4.1L921"22m_NOSNAPf">s)s_cap_rele621m4.>22m46_ap_lock" c3ass="sr14f">d6id.1L60sry notificatioi8that our s hrefed underbmsr1sc#hdd.1L9L884 22m5.1L921"22m21d=sessceph)> a hr622m4.>22m46_ap_lock" cl1562ass="sr156ist_h60da215>);1li>1574/mds_cli2131.1L921"21sessiopino rgt; a hr623m4.>22m46_ap58"/mds_client.c#L952"6(14ward_target_sessiophandlecheck_new_mapref15>li>1574/mcheck_new_mapdle5rds_target_sessiopath de574/mds_cap_="srr.leanup_capmdest_c#qL863">"86ss="sr__g,ala>);1li>1574/mds_cli22m7.1L921"22mL91111} else _cap_rele624m4.>22m46_ap_lock" cl"sr15">old_ca6* han60alareadcs_li>1574/mcde574/mmap>"86ss="sr__g,ala>);1newmapref15>li>1574/mnewmapli22m7.1L921"22mL91111} else _cap_rele625m4.>22m46_ass="sref"" cstrncpy 6list_60edown_writat_c#qL863">>>>>>>>>>ds_target_sessiopath de574/mmapref15>li>1574/mcde574/mmap>"86ss="sr__g,ala>);1oldmapref15>li>1574/moldmap143hN1.1L921"22dcass="l )> a hr626m"s>220"6"46cexpected, 5>li6_caph606lock87.1L921"21f14men>148h/mdsgt; a hr627m"s>220"6"46" class=enala> eph_ino6sssst60ockt_c#qL863"4narget_sessiopath if"srr.leanup_cai143h01.1L921"22dcass="l )> a hr628m"s>220"6"ap_lock" c="sr14158"/mds6sssst608lockt_c#qL864narget_sessiopath old14wae/mds_client.c#Lold14waecot_t_get_sessiopath new14wae/mds_client.c#Lnew14wae143h01.1L921"22dcass="l )> a hr629m"s>220"6"asode=drop"1569ass="sr156clasr60 _info_taioid.1L951" clasbaath i>15sessioi_cap_="srr.leanup_capsessioid.1L951" clasbasessioiclas,allient.c#L952" i5143h01.1L921"22dcass="l )> a hr6220h/>221s6cap_lock" cttrequest_path6attr=612"21_1.1L921"21class="string">cap_rele621m4.>22m46cap_lock" c3ass="sr14f">d6u" cd61sry essiopuLs_cap_cexpectedds_client.id.1L943" handle5replLstid nam4.lld resul2 nacheck_new_map new "+cexu old "+cexu_target_sessiopt1.1L921"22dcass="l )> a hr622s-is_21h6enala> eph_inodshmutext_c6uL95261alareadcs_li>1574/mnewmapli22>"86ssutexs_cl 158"/m_epocl_="srr.leanup_cm_epoclcot_t_get_sessiopath oldmapref15>li>1574/moldmap143h>"86ssutexs_cl 158"/m_epocl_="srr.leanup_cm_epoclcot_201.1L921"22dcass="l )> a hr622m"s>220"6cap58"/mds_client.c#L952"6id.1L612"2194.1L921"21H_NOSNAPf">s)s_cap_rele624m4.>22m46cap_lock" c>156"srr.leanu6_caph61alareadcs_li>1574/moldmap143h>"86ssutexs_cl 158"/m_max8"a ref15>li>1574/mm_max8"a 143h &86ss"86ss s_cap_cexpectedif"srr.leanup_cai143h < get_sessiopath li>1574/mds_cli22>"86ssutexs_cl 158"/max8d.1L951 ref15>li>1574/mmax8d.1L951 143h0 s_cap_cexpectedif"srr.leanup_cai143h++2187.1L921"21f14men>148h/mdsgt; a hr625m4.>22m46lass="sref">14.5assst_pat6_attr61edown_writat_c#qL863"siop3">"86ssutexeunli>1574/mds_cli22>"86ssutexs_cl 158"/s.1L951 ref15>li>1574/md.1L951 143h[s_cap_cexpectedif"srr.leanup_cai143h] == s_cap_cexpectedNULLf"srr.leanup_caNULL143hN1.1L921"22dcass="l )> a hr626m"s>220"6lass="sref">1536asslps_cb6la>(s61path upduto_snap_trat_c#qL86continue01.1L921"22dcass="l )> a hr627m"s>220"6cap_lock" cl1487ass="sr156e_cap61equest_path_attr=seatbasessioiclas,allient.c#L952" i5143h57hL863">"86sath li>1574/mds_cli22>"86ssutexs_cl 158"/s.1L951 ref15>li>1574/md.1L951 143h[s_cap_cexpectedif"srr.leanup_cai143h]01.1L921"22dcass="l )> a hr628m"s>220"6946" class="1548ass="sr1561L94761s="sr14>ceph_caple32_s_cap_cexpectedold14wae/mds_client.c#Lold14waecot_c#qL863">"86sath i>15selmap_gee_14wae_client.c#L952" i>15selmap_gee_14waecot_s="sr__g, " cstroldmapref15>li>1574/moldmap143ht_get_sessiopath if"srr.leanup_cai143h201.1L921"22dcass="l )> a hr629m"s>220"6lass="sref">1499assl154e_6nfoal61 _info_target_sesget_sessiopath new14wae/mds_client.c#Lnew14wae143hc#qL863">"86sath i>15selmap_gee_14wae_client.c#L952" i>15selmap_gee_14waecot_s="sr__g, " cstrnewmapref15>li>1574/mnewmapli22m_get_sessiopath if"srr.leanup_cai143h201.1L921"22dcass="l )> a hr621ap">212S6lass="sref">1499ass>1536a6sl"sr622"21_1.1L921"21class="string">cap_rele621m4.>22m46cap7ala> spa1441ass="sr146>>>>>62ss="sr15.1L86adest_c#L863">"86sath ds_client.id.1L943" handle5replLstid nam4.lld resul2 nacheck_new_map mf="+cexp 14wae "+cexs"+cexs >"86s "+cexs"+cexs (ioi_cap "+cexs)_target_sessiopt1.1L921"22dcass="l )> a hr621f15>21a 6las7ala> spa144lass="sr146>>>>>62alareadcs_"86sath if"srr.leanup_cai143hm_get_sessiopath apsessioid4wae_ssssa href15>li>157apsessioid4wae_sssscot_s="sr__g, " cstrold14wae/mds_client.c#Lold14waecot_)t1.1L921"22dcass="l )> a hr622m"s>220"6"857ala> spa1573ass="sr156>149962ala>(strumutexeunlockcs_"86sath i>15selmap_is_laggylient.id.1L943" i>15selmap_is_laggycot_s="sr__g, " cstroldmapref15>li>1574/moldmap143ht_get_sessiopath if"srr.leanup_cai143h2 ? eplLstid nam4.lld resul2 na (laggy)arget_sessiop : eplLstid nam4.lld resul2 naarget_sessiopt1.1L921"22dcass="l )> a hr624m4.>22m46las7ala> spa1572ass="sr156>149962alareadcs_149962edown_writat_c#qL863">>>>>L863">"86sath i>15selmap_is_laggylient.id.1L943" i>15selmap_is_laggycot_s="sr__g, " cstrnewmapref15>li>1574/mnewmapli22m_get_sessiopath if"srr.leanup_cai143h2 ? eplLstid nam4.lld resul2 na (laggy)arget_sessiop : eplLstid nam4.lld resul2 naarget_sessiopt1.1L921"22dcass="l )> a hr626m"s>220"6cap7ala> spa144lass="sr146>149962path upduto_snap_trat_c#qsutexs_cl 158"/s.1L951_14wae_ssssa href15>li>1574/mds_c_14wae_ssss"86ss="sr__g, " cstrtlient.c#L952" i5143h3">"86sshmutexs_cl 15814wae/mds_client.c#Ls_14waecot_2201.1L921"22dcass="l )> a hr621ses>212s6cap_lock" cl1487assssssss6s"srr62eques1.1L921"22dcass="l )> a hr628m"s>220"6cap_lock" cl1578assssssss6s"srr62s="sr14>ceph_caple32_siop3">"86ssutexeunif"srr.leanup_cai143h &>"8#qL863">"86sath newmapref15>li>1574/mnewmapli22>"86ssutexs_cl 158"/m_max8"a ref15>li>1574/mm_max8"a 143h ||1.1L921"22dcass="l )> a hr629m"s>220"6"+c58"/mds_client.c#L952"6id.1L62 _info_target_sessiopsutexs_cl 158"/memcmpref15>li>1574/mdemcmp"86ss="sr__g, " cstr i>15selmap_gee_add.1 id.1L951" cla i>15 elmap_gee_add."86ss="sr__g, " cstroldmapref15>li>1574/moldmap143ht_get_sessiopath if"srr.leanup_cai143h2t1.1L921"22dcass="l )> a hr621p" >213S6lass="sref">1499ass>1536a6sl"sr63">old_capala>) {n< >oto_cpu5>>>>L863">"86sath i>15selmap_gee_add.1 id.1L951" cla i>15 elmap_gee_add."86ss="sr__g, " cstrnewmapref15>li>1574/mnewmapli22m_get_sessiopath if"srr.leanup_cai143h2t1.1L921"22dcass="l )> a hr621m4.>22m46cap_lock" cl1531ass>1536a6s>15663ss="sr15.1L86adest_c############sizeofsioid.1L951" clasbaath i>15gt;ity_add.1 id.1L951" cla i>15gt;ity_add.cot_222187.1L921"21f14men>148h/mdsgt; a hr621opf>213 6lass="sref">1492assssssss6sssss63alareadcs_"86ssutexeuntlient.c#L952" i5143h3">"86sshmutexs_cl 15814wae/mds_client.c#Ls_14waecot_ == s_cap_cexpectedCEPH_MDS_SESSION_OPENINGent.c#L952" id.CEPH_MDS_SESSION_OPENING143h2 87.1L921"21f14men>148h/mdsgt; a hr622m"s>220"6946" class="1543assl1531a6slps_63ala>(strumutexeunlockcs_>>>L not a> authority problethe soi_cap never opened, just close1it_cli2131.1L921"21sessiopino rgt; a hr624m"s>220"6cap_lock" cl1514assssssss6sgoto63essr1 notificatioi8that our * han noweds_cli2131.1L921"21sessiopino rgt; a hr625m"s>220"6lass="sref">14.5assode=dr6p"15663edown_writat_c#qL863">>>>>>>>>>u5>>>>L_cap_cexpected__wake#qL863">client.c#L952" i__wake#qL863">c"86ss="sr__g, " cstrli>1574/mds_cli22mm"86ss="sr__gpathlenatlient.c#L952" i5143h3">"86sshmutexs_cl 158waitd reient.c#L952" i58waitd r143h201.1L921"22dcass="l )> a hr622m88>220 6lass="sref"o else5_client6id.1 63path upduto_snap_trat_c#qL86>>u5>>>>L_cap_cexpected__unregistersioi_cap_="srr.leanup_c__unregistersioi_cap"86ss="sr__g, " cstrli>1574/mds_cli22mm="sr__gpathlenatlient.c#L952" i5143h201.1L921"22dcass="l )> a hr621ses>212s6cap_lock" cl1487ass="sr156e_cap63equest_path_attr=seath i>15s} else187.1L921"21f14men>148h/mdsgt; a hr628m"s>220"6cap_lock" cl1578ass="sr146ceph_63s="sr14>ceph_caple32_t_c#qL86>>u5>>>>L not a> authority problejust close1iteds_cli2131.1L921"21sessiopino rgt; a hr629m"s>220"6cap_lock" code=drop"1569a6s="sr63 _info_target_sessiop>u5>>>>L_cap_cexpectedmdest_ref_inode_infoalareadmdest_ref_in863">"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/mds_client.c#L952" i"ds_c143h201.1L921"22dcass="l )> a hr621L94>21446_cl58"/mds_client.c#L952"6id.1L64">old_capala>) {n< >osiop>u5>>>>L_cap_cexpectedmdest_inode_infoalareadcsmdest_c#qL863">"86ss="sr__gpathlenatlient.c#L952" i5143h3">"86sshmutexs_cl 158"ds_client.c#L952" i58"ds_c143h201.1L921"22dcass="l )> a hr62140/>21Ls6cap_lock" c3ass="sr14f">d6cf">N64ss="sr15.1L86adest_c############5>>>>L_cap_cexpectedmdest_inode_infoalareadcsmdest_c#qL863">"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/mds_client.c#L952" i"ds_c143h201.1L921"22dcass="l )> a hr621opf>213 6cap_lock" cl1562ass="sr156_info64alareadcs_>>>L_cap_cexpectedL951" al_closient.c#L952" id.L951" al_closi863">"86ss="sr__gpathlenatlient.c#L952" i5143h3">"86sshmutexs_cl 158cala> eph_inodshmut8cal143h201.1L921"22dcass="l )> a hr622m"s>220"6946" class=enala> eph_ino6er15>64ala>(strumutexeunlockcs_>>>L_cap_cexpectedmdest_ref_inode_infoalareadmdest_ref_in863">"86ss="sr__gpathlenatlient.c#L952" i5143h3">"86sshmutexs_cl 158"ds_client.c#L952" i58"ds_c143h201.1L921"22dcass="l )> a hr624m"s>220"6cap_lock" c="sr15ve_cap()6mutex64alareadcs_>>>L_cap_cexpectedtlient.c#L952" i5143h3">"86sshmutexs_cl 15814wae/mds_client.c#Ls_14waecot_ =qL863">"86sath CEPH_MDS_SESSION_RESTARTINGent.c#L952" id.CEPH_MDS_SESSION_RESTARTING143h01.1L921"22dcass="l )> a hr621cla>21256las58"/mds_client.c#L952"6id.1L64edown_writat_c#qL863">>>>>>>>44.1L921"21L944" c#L945"a> 622m88>220 6946" class=" cstrncpy 6mutex646lock1.1L921"22dcass="l )> a hr621lad>213s6cap_lock" cl154e_infoalar6adcse64equest_path_attr=seath i>15sL not a> authority problekickeany qL863"> 220s6cap_lock" cl1578ass="sr146ceph_64s="sr14>ceph_caple32_t_c#qL86L863">"86sath kick#qL863">client.c#L952" ikick#qL863">c"86ss="sr__g, " cstrli>1574/mds_cli22mm="sr__gpathlenaif"srr.leanup_cai143h201.1L921"22dcass="l )> a hr622m >220 6lass="sref">1499ass"srr.l6anup_64 _info_target_ses} else1siop3">"86ssutexeunold14wae/mds_client.c#Lold14waecot_c##qL863">"86sath new14wae/mds_client.c#Lnew14wae143h)187.1L921"21f14men>148h/mdsgt; a hr621ode>215S6lass="sref">1499assgoto+c6xpect65">old_capala>) {n< >osiop authority problenothing new with this eds_cli2131.1L921"21sessiopino rgt; a hr62140/>21Ls6cap_lock" code=drop"1569a6s="sr65ss="sr15.1L86adest_c#44.1L921"21L944" c#L945"a> 621iop>21Ls6946de=drop"1569ass="sr15>6ist_h65da22m3.1L921"22m"sr a a spa3 cla62115r>21o16946" class=l"sr15">old_ca6ala>)65ala>(strumutexeunlock>);1li>1574/ds_cli22m4.1L921"22m_NOSNAPf">s)s_cap_rele621p" >215s6cap_lock" c>156"srr.leanu6_capt65essr1 notificatioi8that our * seni reconnect?_cli22m4.1L921"22m_NOSNAPf">s)s_cap_rele621cla>21256lass="sref">14.5assst_pat6_attr65edown notificatioi8that our *s_cli2131.1L921"21sessiopino rgt; a hr622m88>220 6lass="sref">1536ass"srr.l6anup_65path upduto_snap_trasiop3">"86ssutexeuntlient.c#L952" i5143h3">"86sshmutexs_cl 15814wae/mds_client.c#Ls_14waecot_ == s_cap_cexpectedCEPH_MDS_SESSION_RESTARTINGent.c#L952" id.CEPH_MDS_SESSION_RESTARTING143h &86ss"86ss1.1L921"21sessiopino rgt; a hr621lad>213s6cap_lock" cl1487assssssss6sssss65equest_path_attr=seath iget_sessiopath new14wae/mds_client.c#Lnew14wae143hc&>"8#qL863">"86sath CEPH_MDS_STATE_RECONNECTent.c#L952" id.CEPH_MDS_STATE_RECONNECT143h)187.1L921"21f14men>148h/mdsgt; a hr628mL9>220s6cap_lock" cl1578assssssss6sssss65s="sr14>ceph_caple32_seath iget_sessiopath mdest_ref_inode_infoalareadmdest_ref_in863">"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/mds_client.c#L952" i"ds_c143h201.1L921"22dcass="l )> a hr622m >220 6lass="sref">1499ass"srr.l6anup_65 _info_target_sessiop< iget_sessiopath senissioic#connect="srr.leanup_casenissioic#connect"86ss="sr__g, " cstrli>1574/mds_cli22mm="sr__gpathlenatlient.c#L952" i5143h201.1L921"22dcass="l )> a hr621L94>21L96946" class=o else5_client6id.1 66">old_capala>) {n< >oseath iget_sessiopath mdest_inode_infoalareadcsmdest_c#qL863">"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/mds_client.c#L952" i"ds_c143h201.1L921"22dcass="l )> a hr62140/>21Ls6cap_lock" cl1535assst_pat6_attr66ss="sr15.1L86adest_c#44.1L921"21L944" c#L945"a> 621iop>21Ls6cap_lock" code=drop"1569a6s="sr66da22m3.1L921"22m"sr a a spa3 cla62115r>21o16cap58"/mds_client.c#L952"6id.1L66ala>(strumutexeunlock3);1li>1574/ds_cli22m4.1L921"22m_NOSNAPf">s)s_cap_rele621p" >215s6cap_lock" cl"sr15">old_ca6ala>)66essr1 notificatioi8that our * kickeqL863"> ap any ethat hasegone activeL884 22m5.1L921"22m21d=sessceph)> a hr621ses>21o 6lass="sref"" cstrncpy 6mutex66edown notificatioi8that our *s_cli2131.1L921"21sessiopino rgt; a hr621f15>21o 6946" class=" cstrncpy 6er15>66path upduto_snap_trasiop3">"86ssutexeunold14wae/mds_client.c#Lold14waecot_c< get_sessiopath CEPH_MDS_STATE_ACTIVEent.c#L952" id.CEPH_MDS_STATE_ACTIVE143h &86ss"86ss1.1L921"21sessiopino rgt; a hr621H_N>215s6cap_lock" cl154e_infoalar6adcse66equest_path_attr=seath iget_sessiopath new14wae/mds_client.c#Lnew14wae143hc&>"8#qL863">"86sath CEPH_MDS_STATE_ACTIVEent.c#L952" id.CEPH_MDS_STATE_ACTIVE143h)187.1L921"21f14men>148h/mdsgt; a hr621de">215s6cap_lock" cl1578ass>1564a6s="sr66s="sr14>ceph_caple32_seath isiop3">"86ssutexeunold14wae/mds_client.c#Lold14waecot_c!#qL863">"86sath CEPH_MDS_STATE_CREATINGent.c#L952" id.CEPH_MDS_STATE_CREATING143h &86ss"86ss1.1L921"21sessiopino rgt; a hr622m >220 6lass="sref">1499ass>153" 6strnc66 _info_target_sessiop>u53">"86ssutexeunold14wae/mds_client.c#Lold14waecot_c!#qL863">"86sath CEPH_MDS_STATE_STARTINGent.c#L952" id.CEPH_MDS_STATE_STARTING143h)1.1L921"21sessiopino rgt; a hr62115>>21156cap_lock" cl1514ass9ass>163" cs67">old_capala>) {n< >o_sessiop>u53">"86ssutexeunpr_ claent.c#L952" id.pr_ cla"86ss=plLstid nam4.lld resul2 namf="+cexp re averychompletep_target_sessioptmds_clpathlenalatlient.c#L952" i5143h3">"86sshmutexs_cl 158"a ref15>li>1574/ms8"a 143h201.1L921"22dcass="l )> a hr62160/>21Ls6cap_lock" cl1531ass"srr.l6anup_67ss="sr15.1L86adest_c#########L863">"86sath kick#qL863">client.c#L952" ikick#qL863">c"86ss="sr__g, " cstrli>1574/mds_cli22mm="sr__gpathlenaif"srr.leanup_cai143h201.1L921"22dcass="l )> a hr621opf>21516cap_lock" code=drop"1569a6s="sr67alareadcs_li>1574/mds_cli22mm="sr__gpathlenatlient.c#L952" i5143h201.1L921"22dcass="l )> a hr62115r>21o16946" class=enala> eph_ino6mutex67ala>(strumutexeunlockcs_215s6cap58"/mds_client.c#L952"6id.1L67alareadcs_ 621ses>21o 6lass="sref"" cstrncpy 6up5tc67edown_writat_44.1L921"21L944" c#L945"a> 621f15>21o 6946cexpected, eer16>li>1676lock1.1L921"22dcass="l )> a hr621ve_>21776946" class=enala> eph_ino6mutex67ockt_c#qL863"fores="sr__g, " cstrif"srr.leanup_cai143h57h0;rget_sessiopath if"srr.leanup_cai143h < get_sessiopath newmapref15>li>1574/mnewmapli22>"86ssutexs_cl 158"/m_max8"a ref15>li>1574/mm_max8"a 143h &86ss"86ss s_cap_cexpectedif"srr.leanup_cai143h < get_sessiopath li>1574/mds_cli22>"86ssutexs_cl 158"/max8d.1L951 ref15>li>1574/mmax8d.1L951 143h0 s_cap_cexpectedif"srr.leanup_cai143h++2187.1L921"21f14men>148h/mdsgt; a hr621de">215s6cap_lock" c>156!"srr.lean6p_cap67s="sr14>ceph_caple32_s_cap_cexpectedllient.c#L952" i5143h57hL863">"86sath li>1574/mds_cli22>"86ssutexs_cl 158"/s.1L951 ref15>li>1574/md.1L951 143h[s_cap_cexpectedif"srr.leanup_cai143h]01.1L921"22dcass="l )> a hr621lie>21L 6lass="sref">1499assl154e_6nfoal67 _info_target_sessiop!="sr__gpathlenatlient.c#L952" i5143h21.1L921"22dcass="l )> a hr621151>21856cap_lock" cl1514ass9ass>163" cs68">old_capala>) {n< >osiop21Ls6cap_lock" cl1531asso else6_clie68ss="sr15.1L86adest_c#siop!="sr__gpathlena i>15selmap_is_laggylient.id.1L943" i>15selmap_is_laggycot_s="sr__g, " cstrnewmapref15>li>1574/mnewmapli22m_get_sessiopath if"srr.leanup_cai143h221.1L921"22dcass="l )> a hr621opf>21516lass="sref">1492assssssss6se_in68alareadcs_"86ssutexeuntlient.c#L952" i5143h3">"86sshmutexs_cl 15814wae/mds_client.c#Ls_14waecot_ == s_cap_cexpectedCEPH_MDS_SESSION_OPENent.c#L952" id.CEPH_MDS_SESSION_OPENcot_ ||1.1L921"22dcass="l )> a hr621la+>211s6cap_lock" cl1514assssssss6se_in68alareadcs_"86ssutexeuntlient.c#L952" i5143h3">"86sshmutexs_cl 15814wae/mds_client.c#Ls_14waecot_ == s_cap_cexpectedCEPH_MDS_SESSION_HUNGent.c#L952" id.CEPH_MDS_SESSION_HUNGcot_ ||1.1L921"22dcass="l )> a hr621ses>21o 6lass="sref">14.5assode=dr6p"15668edown_writat_c#qL863">>>>3">"86ssutexeuntlient.c#L952" i5143h3">"86sshmutexs_cl 15814wae/mds_client.c#Ls_14waecot_ == s_cap_cexpectedCEPH_MDS_SESSION_CLOSINGent.c#L952" id.CEPH_MDS_SESSION_CLOSING143h)187.1L921"21f14men>148h/mdsgt; a hr621f15>21o 6lass="sref"o else5_client6id.1 68path upduto_snap_trat_c#qL86s_cap_cexpectedds_client.id.1L943" handle5replLstid nam4.lld resul2 na connect_ng to export targets of laggyemf="+cexp_target_sessiopt7.1L921"21f14men>148h/mdsgt; a hr621ve_>21776cap_lock" cl1487assst_pat6_attr68equest_path_attr=seath i>15s#qL86s_cap_cexpectedif"srr.leanup_cai143h201.1L921"22dcass="l )> a hr621eep>21Ls6cap_lock" code=drop"1569a6s="sr68s="sr14>ceph_caple32_seath iget_sessiopath __open_export_target8d.1L951 ref15>li>1574/m__open_export_target8d.1L951 "86ss="sr__g, " cstrli>1574/mds_cli22mm="sr__gpathlenatlient.c#L952" i5143h201.1L921"22dcass="l )> a hr621lie>21L 6lass="sref"enala> eph_ino6mutex68 _info_target_ses}1.1L921"22dcass="l )> a hr621_SN>21946_cl58"/mds_client.c#L952"6id.1L690list_heada21}1.1L921"22dcass="l )> a hr62160/>21Ls6cap_lock" c3ass="sr14f">d6ath 69sry }1.1L921"22dcass="l )> a hr621opf>21516cap_lock" cl1562ass="sr156mutex69da22m3.1L921"22m"sr a a spa3 cla621ry >21716cap58"/mds_client.c#L952"6id.1L692"2194.1L921"21H_NOSNAPf">s)s_cap_rele621la+>211s6cap_lock" cl"sr15">old_ca6ala>)692"2175.1L921"21d.1L887ala>; spa3 cla621d.1>217 6lass="sref"" cstrncpy 6aompl69edown notificatioi8that ourds_cli22m4.1L921"22m_NOSNAPf">s)s_cap_rele621 88>21916946cexpected, 5>li6157h/696lock notificatioi8that our s leatec"8li22m4.1L921"22m_NOSNAPf">s)s_cap_rele621f14>211s6946" class=enala> eph_ino6ath 69edo">>);1li>1574/ *s_cli2131.1L921"21sessiopino rgt; a hr621eep>21Ls6cap_lock" c="sr14158"/mds6clien69s="sr1.1L921"21sessiopino rgt; a hr621lie>21L 6lasode=drop"1569ass="sr156list_69>list>);1li>1574/ds_cli22m4.1L921"22m_NOSNAPf">s)s_cap_rele722m4.>22m47_cl58"/mds_client.c#L952"7id.1L70ath >);1li>1574/md hrefer must hold soi_cap 58"ds_c, det;ry3">"8d_c#qL86li22m4.1L921"22m_NOSNAPf">s)s_cap_rele721m4.>22m47_ap_lock" c3ass="sr14f">d7id.1L70sry notificatioi8that our ss_cli2131.1L921"21sessiopino rgt; a hr722m4.>22m47_ap_lock" cl1562ass="sr157ist_h70da215target_sessiophandle__ i>15selc_drop_det;ry_leateent.c#L952" id.__ i>15selc_drop_det;ry_leate"86ssioid.1L951" clasbaath det;rylient.id.1L943" et;ry"86sasbasessioiclas,adet;rylient.id.1L943" et;ry"86s21.1L921"22dcass="l )> a hr723m4.>22m47_ap58"/mds_client.c#L952"7(87.1L921"21f14men>148h/mdsgt; a hr724m4.>22m47_ap_lock" cl"sr15">old_ca7* han70alareadcs_15det;ry_ claent.c#L952" id. i>15det;ry_ cla"86sasbasessioiclas,adif"srr.leanup_cadi143h57h951" clasbaath i>15det;ryent.c#L952" id. i>15det;ry"86ss="sr__g, " cstrdet;rylient.id.1L943" et;ry"86s201.1L921"22dcass="l )> a hr725m4.>22m47_ass="sref"" cstrncpy 7list_702"21L6.1L921"21eepath ep1> 726m"s>220"7"46cexpected, 5>li7_caph706lockt_c#qL86L863">"86sath i>15putssioid.1L951ent.c#L952" id. i>15putssioid.1L951"86ss="sr__g, " cstrdif"srr.leanup_cadi143h>"86ssutexs_cl 158"/58ateid.1L951ent.c#L952" id.58ateid.1L951"86s201.1L921"22dcass="l )> a hr727m"s>220"7"46" class=enala> eph_ino7sssst70ockt_c#qL863">"86ssutexelockdif"srr.leanup_cadi143h>"86ssutexs_cl 158"/58ateid.1L951ent.c#L952" id.58ateid.1L951"86s57h951" clasbaath NULLf"srr.leanup_caNULL143h01.1L921"22dcass="l )> a hr728m"s>220"7"ap_lock" c="sr14158"/mds7sssst708lock}1.1L921"22dcass="l )> a hr729m"s>220"7"asode=drop"1569ass="sr157clasr70 1.1L921"22dcass="l )> a hr7220h/>221s7cap_lock" cttrequest_path7attr=712"21_14ward_target_sessiophandlehandle_leateent.c#L952" id.handle_leate"86ssioid.1L951" clasbaath apsessiois_cap_="srr.leanup_capmdest_c#qL863">"86ss="sr__g,ala>);1li>1574/mds_cli22m7.1L921"22mL91111} else _cap_rele721m4.>22m47cap_lock" c3ass="sr14f">d7u" cd71ss="sr15.1L86adest_c##########ioid.1L951" clasbaath i>15sessioi_cap_="srr.leanup_capsessioid.1L951" clasbasessioiclas,alhlenala> eph_inodshmutext_c#qL86m7.1L921"22mL91111} else _cap_rele722m4.>22m47enala> eph_inodshmutext_c7uL95271alareadcs_15slient.c#L952" id. i>15sli>"86ss="sr__g,ala>);1"8621.1L921"22dcass="l )> a hr722m"s>220"7cap58"/mds_client.c#L952"7id.1L71ala>(87.1L921"21f14men>148h/mdsgt; a hr724m4.>22m47cap_lock" c>156"srr.leanu7_caph71alareadcs_"86sath li>1574/mds_cli22>"86ssutexs_cl 158"/f href15>li>1574/mf_cli22>"86ssutexs_cl 158"/sbe_infoalareadcssb143h01.1L921"22dcass="l )> a hr725m4.>22m47lass="sref">14.5assst_pat7_attr71edown_writat_ioid.1L951" clasbaath inth /mds_client.c#Linth 143hasbasessioiclas,ainth /mds_client.c#Linth 143h01.1L921"22dcass="l )> a hr726m"s>220"7lass="sref">1536asslps_cb7la>(s71path upduto_ioid.1L951" clasbaath det;rylient.id.1L943" et;ry"86sasbasessioiclas,apar157f"srr.leanup_capar1572"22,asbasessioiclas,adet;rylient.id.1L943" et;ry"86s01.1L921"22dcass="l )> a hr727m"s>220"7cap_lock" cl1487ass="sr157e_cap71equest_path_aioid.1L951" clasbaath i>15det;ry_ claent.c#L952" id. i>15det;ry_ cla"86sasbasessioiclas,adif"srr.leanup_cadi143h01.1L921"22dcass="l )> a hr728m"s>220"7946" class="1548ass="sr1571L947718lockt_c#qL864narget_sessiopath "a ref15>li>1574/mmd5143h57hL863">"86sath thlenala> eph_inodshmutext_c#qL863">"86sshmutexs_cl 158"a ref15>li>1574/ms8"a 143h01.1L921"22dcass="l )> a hr729m"s>220"7lass="sref">1499assl154e_7nfoal71 _info_taioid.1L951" clasbaath i>15sessleateent.c#L952" id.L951"sessleate"86sasbasessioiclas,al_="srr.leanup_ch143h57hL863">"86sath "86>"86ssutexs_cl 158"/fro57f"srr.leanup_cafro57>"86idef15d158"/mds_iov_bateent.c#L952" id.iov_bate143h01.1L921"22dcass="l )> a hr721ap">212S7lass="sref">1499ass>1536a7sl"sr720list_heada21ds_cl 158"/mds_uSNAPf">s)s_cap_reu3alareaL863">"86sath th 5_client.id.1 imd 2"2201.1L921"22dcass="l )> a hr721m4.>22m47cap7ala> spa1441ass="sr147>>>>>72ss="sr15.1L86ioid.1L951" clasbaath i>15vintf"srr.leanup_ca i>15vintlareaL863">"86sath vintf"srr.leanup_cavintlare01.1L921"22dcass="l )> a hr722m4.>22m47las7ala> spa144lass="sr147>>>>>72alareadcs_"86sath dssssa href15>li>157dssss"86s01.1L921"22dcass="l )> a hr722m"s>220"7"857ala> spa1573ass="sr157>149972ala>(strumute4narget_sessiopath c#leateent.c#L952" id.c#leate"86s57h0;1.1L921"22dcass="l )> a hr724m4.>22m47las7ala> spa1572ass="sr157>1499722"2175.1L921"21d.1L887ala>; spa3 cla725m4.>22m479467ala> spa144lass="sr147>149972edown_writat_s_cap_cexpectedds_client.id.1L943" handle5replLstid nam4.lld resul2 nahandle_leate fromemf="+cexp_target_sessioptmds_clpathlenala"a ref15>li>1574/mmd5143h201.1L921"22dcass="l )> a hr726m"s>220"7cap7ala> spa144lass="sr147>1499726lock1.1L921"22dcass="l )> a hr721ses>212s7cap_lock" cl1487assssssss7s"srr72ockt_c#qL863"> not a> authority probledeenal ss_cli2131.1L921"21sessiopino rgt; a hr728m"s>220"7cap_lock" cl1578assssssss7s"srr72s="sr14>ceph_siop3">"86ssutexeun"86>"86ssutexs_cl 158"/fro57f"srr.leanup_cafro57>"86idef15d158"/mds_iov_58"/mds_client.c#Liov_58"143h < sizeofssbasessioiclas,al_="srr.leanup_ch143h) +Lsizeofscot_c#qL863">"8uSNAPf">s)s_cap_reu3alare221.1L921"22dcass="l )> a hr729m"s>220"7"+c58"/mds_client.c#L952"7id.1L72 _info_target_sesgetf">15re158"/mds_cbaient.c#L952" id.bai863"01.1L921"22dcass="l )> a hr721p" >213S7lass="sref">1499ass>1536a7sl"sr730list_heada21ds_cl 158"/mds_vintf"srr.leanup_cavintlareidef15d158"/mds_intf"srr.leanup_caintlarea7hL863">"86sath le64get_cpuent.c#L952" id.5864get_cpu"86ss="sr__g, " cstrl_="srr.leanup_ch143h>"86ssutexs_cl 158"/intf"srr.leanup_caintlare201.1L921"22dcass="l )> a hr721m4.>22m47cap_lock" cl1531ass>1536a7s>15673sry essiopuLs_cap_cexpectedvintf"srr.leanup_cavintlareidef15d158"/mds_snap5_client.id.1 imnap>"86s= s_cap_cexpectedCEPH_NOSNAPent.c#L952" id.CEPH_NOSNAP863"01.1L921"22dcass="l )> a hr722m4.>22m47lass="sref">1492assssssss7sssss73alareadcs_"86sath le32get_cpuent.c#L952" id.5832get_cpu"86ss="sr__g, " cstrl_="srr.leanup_ch143h>"86ssutexs_cl 158"/th 5_client.id.1 imd 2"22201.1L921"22dcass="l )> a hr722m"s>220"7946" class="1543assl1531a7slps_73ala>(strumuteL863">"86sath dssssa href15>li>157dssss"86sidef15d158"/mds_ssssa href15>li>157ssss"86sa7h(targe*)basessioiclas,al_="srr.leanup_ch143h5+ sizeofssbasessioiclas,al_="srr.leanup_ch143h) +Lsizeofscot_c#qL863">"8uSNAPf">s)s_cap_reu3alare201.1L921"22dcass="l )> a hr724m4.>22m47cap_lock" cl1514assssssss7sgoto734la>(strumuteL863">"86sath dssssa href15>li>157dssss"86sidef15d158"/mds_58"/mds_client.c#L58"2"2257hL863">"86sath "86>"86ssutexs_cl 158"/fro57f"srr.leanup_cafro57>"86idef15d158"/mds_iov_58"/mds_client.c#Liov_58"143h - sizeofssbasessioiclas,al_="srr.leanup_ch143h) -Lsizeofscot_c#qL863">"8uSNAPf">s)s_cap_reu3alare201.1L921"22dcass="l )> a hr725m4.>22m47lass="sref">14.5assode=dr7p"15673edown_writat_siop3">"86ssutexeundssssa href15>li>157dssss"86sidef15d158"/mds_58"/mds_client.c#L58"2"225!#qL863">"86sath get8unaligned_5832/mds_client.c#Lget8unaligned_5832"86ss="sr__g, " cstrl_="srr.leanup_ch143h+1221.1L921"22dcass="l )> a hr722m88>220 7lass="sref"o else5_client7id.1 73path upduto_snap_tragetf">15re158"/mds_cbaient.c#L952" id.bai863"01.1L921"22dcass="l )> a hr721ses>212s7cap_lock" cl1487ass="sr157e_cap73eques1.1L921"22dcass="l )> a hr728m"s>220"7cap_lock" cl1578ass="sr147ceph_73s="sr14>ceph_L863">"86sath "86ss="sr__gpathlenathlenala> eph_inodshmutext_c#qL863">"86sshmutexs_cl 158"ds_client.c#L952" i58"ds_c143h201.1L921"22dcass="l )> a hr729m"s>220"7cap_lock" code=drop"1569a7s="sr73 _info_ta="sr__gpathlenathlenala> eph_inodshmutext_c#qL863">"86sshmutexs_cl 158th 5_client.id.1 im_md 2"22++01.1L921"22dcass="l )> a hr721L94>21447_cl58"/mds_client.c#L952"7id.1L742"21_1.1L921"21class="string">cap_rele72140/>21Ls7cap_lock" c3ass="sr14f">d7cf">N74ss="sr15.1L86> not a> authority problelookup inth ss_cli2131.1L921"21sessiopino rgt; a hr721opf>213 7cap_lock" cl1562ass="sr157_info74alareadcs_15find_inth /mds_client.c#L i>15find_inth "86ss="sr__g, " cstrsbe_infoalareadcssb143htmds_clpathlenalavintf"srr.leanup_cavintlare201.1L921"22dcass="l )> a hr722m"s>220"7946" class=enala> eph_ino7er15>74ala>(strumuteL863">"86sath ds_client.id.1L943" handle5replLstid nam4.lld resul2 nahandle_leate "+cexs, int "+cexllx "+cexp "+cex.*s_target_sessiopt7.1L921"21f14men>148h/mdsgt; a hr724m"s>220"7cap_lock" c="sr15ve_cap()7mutex74alareadcs_1558ateiop_ssssa href15>li>157apses58ateiop_ssss"86ss="sr__g, " cstrl_="srr.leanup_ch143h>"86ssutexs_cl 158"/act_c#_="srr.leanup_cact_c#lare2tmds_clpathlenalavintf"srr.leanup_cavintlareidef15d158"/mds_intf"srr.leanup_caintlarem_get_sessiopath inth /mds_client.c#Linth 143ht7.1L921"21f14men>148h/mdsgt; a hr725m4.>22m47las58"/mds_client.c#L952"7id.1L74edown_writat_c#qL83">"86ssutexeundssssa href15>li>157dssss"86sidef15d158"/mds_58"/mds_client.c#L58"2"22m_get_sessiopath dssssa href15>li>157dssss"86sidef15d158"/mds_ssssa href15>li>157ssss"86s201.1L921"22dcass="l )> a hr722m88>220 7946" class=" cstrncpy 7mutex74path upduto_siop3">"86ssutexeuninth /mds_client.c#Linth 143ha7= s_cap_cexpectedNULLf"srr.leanup_caNULL143hN187.1L921"21f14men>148h/mdsgt; a hr721lad>213s7cap_lock" cl154e_infoalar7adcse74equest_path_attr=seatL863">"86sath ds_client.id.1L943" handle5replLstid nam4.lld resul2 nahandle_leate nt inth "+cexllx_target_sessioptmds_clpathlenalavintf"srr.leanup_cavintlareidef15d158"/mds_intf"srr.leanup_caintlare201.1L921"22dcass="l )> a hr728m"s>220"7cap_lock" cl1578ass="sr147ceph_74s="sr14>ceph_caple32_getf">15re158"/mds_cc#leateent.c#L952" id.c#leate"86s01.1L921"22dcass="l )> a hr729m"s>220"7lass="sref">1499ass"srr.l7anup_74 _info_ta}1.1L921"22dcass="l )> a hr721ode>215S7lass="sref">1499assgoto+c7xpect752"21_1.1L921"21class="string">cap_rele72140/>21Ls7cap_lock" code=drop"1569a7s="sr75ss="sr15.1L86> not a> authority probledet;ry ss_cli2131.1L921"21sessiopino rgt; a hr721iop>21Ls7946de=drop"1569ass="sr15>7ist_h75alareadcs_li>1574/md5find_alia "86ss="sr__g, " cstrinth /mds_client.c#Linth 143h201.1L921"22dcass="l )> a hr72115r>21o17946" class=l"sr15">old_ca7ala>)75ala>(strumutesiop!="sr__gpathlenapar157f"srr.leanup_capar1572"22N187.1L921"21f14men>148h/mdsgt; a hr721p" >215s7cap_lock" c>156"srr.leanu7_capt75alareadcs_"86sath ds_client.id.1L943" handle5replLstid nam4.lld resul2 nant par157edet;ry on inth "+cexp_target_sessioptmds_clpathlenalainth /mds_client.c#Linth 143h201.1L921"22dcass="l )> a hr725m4.>22m47lass="sref">14.5assst_pat7_attr75edown_writat_c#qL863"ds_clpathlenalaWARN_ONent.c#L952" id.WARN_ONdle5r1201.1L921"22dcass="l )> a hr722m88>220 7lass="sref">1536ass"srr.l7anup_75path upduto_snap_tragetf">15re158"/mds_cc#leateent.c#L952" id.c#leate"86s086> not a> authority problehrm... ss_cli2131.1L921"21sessiopino rgt; a hr721lad>213s7cap_lock" cl1487assssssss7sssss75equest_path_a}1.1L921"22dcass="l )> a hr728m"s>220"7cap_lock" cl1578assssssss7sssss75s="sr14>ceph_L863">"86sath dssssa href15>li>157dssss"86sidef15d158"/mds_hasl_="srr.leanup_chasl2"22a7h951" clasbaath full_ssss_hasl_="srr.leanup_cfull_ssss_hasl"86ss="sr__g, " cstrdssssa href15>li>157dssss"86sidef15d158"/mds_ssssa href15>li>157ssss"86sm_get_sessiopath dssssa href15>li>157dssss"86sidef15d158"/mds_58"/mds_client.c#L58"2"22201.1L921"22dcass="l )> a hr729m"s>220"7lass="sref">1499ass"srr.l7anup_75 _info_ta="sr__gpathlenadet;rylient.id.1L943" et;ry"86sa7h951" clasbaath d5lookupref15>li>1574/md5lookup"86ss="sr__g, " cstrpar157f"srr.leanup_capar1572"22,a"86ss="sr__gpathlenadssssa href15>li>157dssss"86s201.1L921"22dcass="l )> a hr721L94>21L97946" class=o else5_client7id.1 760list_heada21ds_cl 158"/mds_dp_client.id.1L943" put"86ss="sr__g, " cstrpar157f"srr.leanup_capar1572"22N01.1L921"22dcass="l )> a hr72140/>21Ls7cap_lock" cl1535assst_pat7_attr76ss="sr15.1L86siop!="sr__gpathlenadet;rylient.id.1L943" et;ry"86s21.1L921"22dcass="l )> a hr721iop>21Ls7cap_lock" code=drop"1569a7s="sr76alareadcs_15re158"/mds_cc#leateent.c#L952" id.c#leate"86s01.1L921"22dcass="l )> a hr72115r>21o17cap58"/mds_client.c#L952"7id.1L762"2194.1L921"21H_NOSNAPf">s)s_cap_rele721p" >215s7cap_lock" cl"sr15">old_ca7ala>)764la>(strumuteL863">"86sath spin_inode_infoalareadcsspin_inod863">"86ss="sr__gpathlenadet;rylient.id.1L943" et;ry"86s>"86ssutexs_cl 158"/d_inode_infoalareadcsd_inod863"N01.1L921"22dcass="l )> a hr725m4.>22m47lass="sref"" cstrncpy 7mutex76edown_writat_s_cap_cexpecteddif"srr.leanup_cadi143h57h951" clasbaath i>15det;ryent.c#L952" id. i>15det;ry"86ss="sr__g, " cstrdet;rylient.id.1L943" et;ry"86s201.1L921"22dcass="l )> a hr721f15>21o 7946" class=" cstrncpy 7er15>76path upduto_switchop3">"86ssutexeunl_="srr.leanup_ch143h>"86ssutexs_cl 158"/act_c#_="srr.leanup_cact_c#lare2187.1L921"21f14men>148h/mdsgt; a hr721H_N>215s7cap_lock" cl154e_infoalar7adcse76equest_path_acate s_cap_cexpectedCEPH_MDS_LEASE_REVOKEent.c#L952" id.CEPH_MDS_LEASE_REVOKEques:7.1L921"21f14men>148h/mdsgt; a hr728m"s>220"7cap_lock" cl1578ass>1564a7s="sr76s="sr14>ceph_caple32_siop3">"86ssutexeundif"srr.leanup_cadi143h>"86ssutexs_cl 158"/58ateid.1L951ent.c#L952" id.58ateid.1L951"86s577hL863">"86sath thlenala> eph_inodshmutext_c#qL862187.1L921"21f14men>148h/mdsgt; a hr729m"s>220"7lass="sref">1499ass>153" 7strnc76 _info_target_sessiop"86ssutexeun i>15seq_cmpref15>li>1574/m i>15seq_cmp"86ss="sr__g, " cstrdif"srr.leanup_cadi143h>"86ssutexs_cl 158"/58ateid. 5_client.id.1 i58ateid. "86sm_get_sessiopath th 5_client.id.1 imd 2"222c&>"8 021.1L921"22dcass="l )> a hr72115>>21157cap_lock" cl1514ass9ass>173" cs77">old_capala>) {n< >o_sessiop>u53">"86ssutexeunl_="srr.leanup_ch143h>"86ssutexs_cl 158"/th 5_client.id.1 imd 2"2257h951" clasbaath puget_5832/mds_client.c#L puget_5832"86ss="sr__g, " cstrdif"srr.leanup_cadi143h>"86ssutexs_cl 158"/58ateid. 5_client.id.1 i58ateid. "86s201.1L921"22dcass="l )> a hr72160/>21Ls7cap_lock" cl1531ass"srr.l7anup_77ss="sr15.1L86adest_c#########L863">"86sath __ i>15selc_drop_det;ry_leateent.c#L952" id.__ i>15selc_drop_det;ry_leate"86ss="sr__g, " cstrdet;rylient.id.1L943" et;ry"86s201.1L921"22dcass="l )> a hr721opf>21517cap_lock" code=drop"1569a7s="sr77alareadcs_ eph_ino7mutex77ala>(strumutexeunlock>15re158"/mds_cc#leateent.c#L952" id.c#leate"86s57h101.1L921"22dcass="l )> a hr721p" >215s7cap58"/mds_client.c#L952"7id.1L77alareadcs_ 721f15>21o 7946cexpected, eer17>li>1776quest_path_acate s_cap_cexpectedCEPH_MDS_LEASE_RENEWent.c#L952" id.CEPH_MDS_LEASE_RENEWques:7.1L921"21f14men>148h/mdsgt; a hr721ve_>21777946" class=enala> eph_ino7mutex77equest_path_attr=seatsiop3">"86ssutexeundif"srr.leanup_cadi143h>"86ssutexs_cl 158"/58ateid.1L951ent.c#L952" id.58ateid.1L951"86s577hL863">"86sath thlenala> eph_inodshmutext_c#qL86 &86ss"86ss1.1L921"21sessiopino rgt; a hr721de">215s7cap_lock" c>156!"srr.lean7p_cap77s="sr14>ceph_caple32_lock>15re158"/mds_cdif"srr.leanup_cadi143h>"86ssutexs_cl 158"/58ateig8"/mds_client.c#L58ateig8""86s577hL863">"86sath thlenala> eph_inodshmutext_c#qL863">"86sshmutexs_cl 158cap_gela> eph_inodshmut8cap_gelqL86 &86ss"86ss1.1L921"21sessiopino rgt; a hr729m"s>220"7lass="sref">1499assl154e_7nfoal77 _info_target_seslock>15re158"/mds_cdif"srr.leanup_cadi143h>"86ssutexs_cl 158"/58ateir15ew_from/mds_client.c#L58ateir15ew_fromqL86 &86ss"86ss1.1L921"21sessiopino rgt; a hr721151>21857cap_lock" cl1514ass9ass>173" cs78">old_capala>) {n< >osiop>15re158"/mds_cdif"srr.leanup_cadi143h>"86ssutexs_cl 158"/58ateir15ew_afteif"srr.leanup_ca58ateir15ew_aftei"86s577h02187.1L921"21f14men>148h/mdsgt; a hr72160/>21Ls7cap_lock" cl1531asso else7_clie78ss="sr15.1L86adest_c#########unsigned longp>15re158"/mds_cdurat_c#_="srr.leanup_cdurat_c#"86s577.1L921"21f14men>148h/mdsgt; a hr721opf>21517lass="sref">1492assssssss7se_in78alareadcs_osiop>15re158"/mds_cle32get_cpuent.c#L952" id.5832get_cpu"86ss="sr__g, " cstrl_="srr.leanup_ch143h>"86ssutexs_cl 158"/durat_c#_m ref15>li>1574/mdurat_c#_m 2"222c*p>15re158"/mds_cHZref15>li>1574/mHZlarea/ 1000;1.1L921"22dcass="l )> a hr72115r>21o17946" class="1543assl1531a7slps_782"2194.1L921"21H_NOSNAPf">s)s_cap_rele721la+>211s7cap_lock" cl1514assssssss7se_in78alareadcs_15re158"/mds_cdif"srr.leanup_cadi143h>"86ssutexs_cl 158"/58ateid. 5_client.id.1 i58ateid. "86s57hL863">"86sath th 5_client.id.1 imd 2"2201.1L921"22dcass="l )> a hr721ses>21o 7lass="sref">14.5assode=dr7p"15678edown_writat_c#qL863">>>>siop>15re158"/mds_cdet;rylient.id.1L943" et;ry"86s>"86ssutexs_cl 158"/d_tissa href15>li>157d_tiss"86sa7h951" clasbaath dif"srr.leanup_cadi143h>"86ssutexs_cl 158"/58ateir15ew_from/mds_client.c#L58ateir15ew_fromqL86 +p>15re158"/mds_cdurat_c#_="srr.leanup_cdurat_c#"86s01.1L921"22dcass="l )> a hr721f15>21o 7lass="sref"o else5_client7id.1 78path upduto_snap_trat_c#qL86s_cap_cexpecteddif"srr.leanup_cadi143h>"86ssutexs_cl 158"/58ateir15ew_afteif"srr.leanup_ca58ateir15ew_aftei"86s57h951" clasbaath dif"srr.leanup_cadi143h>"86ssutexs_cl 158"/58ateir15ew_from/mds_client.c#L58ateir15ew_fromqL86 +1.1L921"22dcass="l )> a hr721ve_>21777cap_lock" cl1487assst_pat7_attr78equest_path_attr=seath i>15s#qL86666p3">"86ssutexeundurat_c#_="srr.leanup_cdurat_c#"86s5"86s&>"8 1201.1L921"22dcass="l )> a hr721eep>21Ls7cap_lock" code=drop"1569a7s="sr78s="sr14>ceph_caple32_seath iget_sessiopath dif"srr.leanup_cadi143h>"86ssutexs_cl 158"/58ateir15ew_from/mds_client.c#L58ateir15ew_fromqL86 7h0;1.1L921"22dcass="l )> a hr721lie>21L 7lass="sref"enala> eph_ino7mutex78 _info_target_ses}1.1L921"22dcass="l )> a hr721_SN>21947_cl58"/mds_client.c#L952"7id.1L79">old_capala>) {n< >obreak01.1L921"22dcass="l )> a hr72160/>21Ls7cap_lock" c3ass="sr14f">d7ath 79ss="sr15.1L86}1.1L921"22dcass="l )> a hr721opf>21517cap_lock" cl1562ass="sr157mutex79alareadcs_"86ss="sr__gpathlenadet;rylient.id.1L943" et;ry"86s>"86ssutexs_cl 158"/d_inode_infoalareadcsd_inod863"N01.1L921"22dcass="l )> a hr721ry >21717cap58"/mds_client.c#L952"7id.1L79ala>(strumuteL863">"86sath dp_client.id.1L943" put"86ss="sr__g, " cstrdet;rylient.id.1L943" et;ry"86s201.1L921"22dcass="l )> a hr721la+>211s7cap_lock" cl"sr15">old_ca7ala>)792"2175.1L921"21d.1L887ala>; spa3 cla721d.1>217 7lass="sref"" cstrncpy 7aompl79edown_writat_siop!="sr__gpathlenac#leateent.c#L952" id.c#leate"86s21.1L921"22dcass="l )> a hr721 88>21917946cexpected, 5>li7157h/79path upduto_snap_tragetf">15re158"/mds_cs_client.id.1L943"handle501.1L921"22dcass="l )> a hr721ve_>21777946" class=enala> eph_ino7ath 79eques1.1L921"22dcass="l )> a hr721eep>21Ls7cap_lock" c="sr14158"/mds7clien79s="sr="sr__gpathlenac#leateent.c#L952" id.c#leate"86s:7.1L921"21f14men>148h/mdsgt; a hr721lie>21L 7lasode=drop"1569ass="sr157list_79 _info_ta= not a> authority problelet'sejust reuse the ss=" mextag ss_cli2131.1L921"21sessiopino rgt; a hr822m4.>22m48_cl58"/mds_client.c#L952"8id.1L800list_heada21ds_cl 158"/mds_l_="srr.leanup_ch143h>"86ssutexs_cl 158"/act_c#_="srr.leanup_cact_c#lare =qL863">"86sath CEPH_MDS_LEASE_REVOKE_ACKent.c#L952" id.CEPH_MDS_LEASE_REVOKE_ACKdle501.1L921"22dcass="l )> a hr821m4.>22m48_ap_lock" c3ass="sr14f">d8id.1L80sry essiopuLs_cap_cexpected i>15sli_ge_="srr.leanup_capmdestli_ge_"86ss="sr__g, " cstr"86201.1L921"22dcass="l )> a hr822m4.>22m48_ap_lock" cl1562ass="sr158ist_h80alareadcs_"86ss="sr__gpathlenathlenala> eph_inodshmutext_c#qL863">"86sshmutexs_cl 158cala> eph_inodshmut8cal143htmds_clpathlenala"lient.c#L952" id.sli>"86201.1L921"22dcass="l )> a hr823m4.>22m48_ap58"/mds_client.c#L952"8s)s_cap_rele824m4.>22m48_ap_lock" cl"sr15">old_ca8* han80alare>15re158"/mds_cs_client.id.1L943"handle5:7.1L921"21f14men>148h/mdsgt; a hr825m4.>22m48_ass="sref"" cstrncpy 8list_80edown_writat_s_cap_cexpectedip_client.id.1L943"iput"86ss="sr__g, " cstrinth /mds_client.c#Linth 143h201.1L921"22dcass="l )> a hr826m"s>220"8"46cexpected, 5>li8_caph806lockt_c#qL86L863">"86sath mdest_ref_inode_infoalareadmdest_ref_in863">"86ss="sr__gpathlenathlenala> eph_inodshmutext_c#qL863">"86sshmutexs_cl 158"ds_client.c#L952" i58"ds_c143h201.1L921"22dcass="l )> a hr827m"s>220"8"46" class=enala> eph_ino8sssst80ockt_c#qL863"return01.1L921"22dcass="l )> a hr828m"s>220"8"ap_lock" c="sr14158"/mds8sssst80s="sr1.1L921"21sessiopino rgt; a hr829m"s>220"8"asode=drop"1569ass="sr158clasr80 6sshmutexs_cl 1baient.c#L952" id.bai863":7.1L921"21f14men>148h/mdsgt; a hr8220h/>221s8cap_lock" cttrequest_path8attr=810list_heada21ds_cl 158"/mds_pr_erif"srr.leanup_capr_eri"86ss=plLstid nam4.lld resul2 nacorrupt leate mextag _target_sessiop201.1L921"22dcass="l )> a hr821m4.>22m48cap_lock" c3ass="sr14f">d8u" cd81sry essiopuLs_cap_cexpected i>15sli_dumpref15>li>1574/m i>15sli_dump"86ss="sr__g, " cstr"86201.1L921"22dcass="l )> a hr822m4.>22m48enala> eph_inodshmutext_c8uL95281alare}1.1L921"22dcass="l )> a hr822m"s>220"8cap58"/mds_client.c#L952"8id.1L812"2194.1L921"21H_NOSNAPf">s)s_cap_rele824m4.>22m48cap_lock" c>156"srr.leanu8_caph81alaretarget_sessiophandle i>15selc_58ateid.nisslient.c#L952" id. i>15selc_58ateid.nissli"86ssioid.1L951" clasbaath i>15sessioi_cap_="srr.leanup_capsessioid.1L951" clasbasessioiclas,alhlenala> eph_inodshmutext_c#qL86m7.1L921"22mL91111} else _cap_rele825m4.>22m48lass="sref">14.5assst_pat8_attr81edown_writat_c#qL863">>>>siopppppppioid.1L951" clasbaath inth /mds_client.c#Linth 143hasbasessioiclas,ainth /mds_client.c#Linth 143hm7.1L921"22mL91111} else _cap_rele826m"s>220"8lass="sref">1536asslps_cb8la>(s81path upduto_snap_trat_c#qL86ppppppioid.1L951" clasbaath det;rylient.id.1L943" et;ry"86sasbasessioiclas,adet;rylient.id.1L943" et;ry"86s, charL951" clasbaath act_c#_="srr.leanup_cact_c#larem7.1L921"22mL91111} else _cap_rele827m"s>220"8cap_lock" cl1487ass="sr158e_cap81equest_path_attr=seath i>15s#qL866951" clasbaath uSNAPf">s)s_cap_reu3alareaL863">"86sath th 5_client.id.1 imd 2"2221.1L921"22dcass="l )> a hr828m"s>220"8946" class="1548ass="sr1581L947818lock87.1L921"21f14men>148h/mdsgt; a hr829m"s>220"8lass="sref">1499assl154e_8nfoal81 _info_taioid.1L951" clasbaath i>15slient.c#L952" id. i>15sli>"86ss="sr__g,ala>);1"8601.1L921"22dcass="l )> a hr821ap">212S8lass="sref">1499ass>1536a8sl"sr820list_heada21ioid.1L951" clasbaath i>15sessleateent.c#L952" id.L951"sessleate"86sasbasessioiclas,aleateent.c#L952" id.leate"86s01.1L921"22dcass="l )> a hr821m4.>22m48cap7ala> spa1441ass="sr148>>>>>82ss="sr15.1L864narget_sessiopath 58"/mds_client.c#L58"2"2257hsizeofssbasessioiclas,aleateent.c#L952" id.leate"86s) +Lsizeofscot_c#qL863">"8uSNAPf">s)s_cap_reu3alare201.1L921"22dcass="l )> a hr822m4.>22m48las7ala> spa144lass="sr148>>>>>82alareadcs_220"8"857ala> spa1573ass="sr158>1499822"2194.1L921"21H_NOSNAPf">s)s_cap_rele824m4.>22m48las7ala> spa1572ass="sr158>1499824la>(strumuteL863">"86sath ds_client.id.1L943" handle5replLstid nam4.lld resul2 na58ateid.nissli inth "+cexpedet;ry "+cexp "+cexs to mf="+cexp_target_sessiopt4.1L921"21H_NOSNAPf">s)s_cap_rele825m4.>22m489467ala> spa144lass="sr148>149982edown_writat_c#qL8basessioiclas,ainth /mds_client.c#Linth 143hmL951" clasbaath det;rylient.id.1L943" et;ry"86smL951" clasbaath i>1558ateiop_ssssa href15>li>157apses58ateiop_ssss"86ss="sr__g, " cstract_c#_="srr.leanup_cact_c#lare2tmds_clpathlenalathlenala> eph_inodshmutext_c#qL863">"86sshmutexs_cl 158"a ref15>li>1574/ms8"a 143h201.1L921"22dcass="l )> a hr826m"s>220"8cap7ala> spa144lass="sr148>1499826lockt_c#qL86L863">"86sath dssss58"/mds_client.c#Ldssss58"qL86 7h="sr__gpathlenadet;rylient.id.1L943" et;ry"86s>"86ssutexs_cl 158"/d_ssssa href15>li>157d_ssss"86sidef15d158"/mds_58"/mds_client.c#L58"2"2201.1L921"22dcass="l )> a hr827m"s>220"8cap_lock" cl1487assssssss8s"srr82ockt_c#qL863">"86ssutexelock58"/mds_client.c#L58"2"225+7h="sr__gpathlenadssss58"/mds_client.c#Ldssss58"qL8601.1L921"22dcass="l )> a hr828m"s>220"8cap_lock" cl1578assssssss8s"srr82s="sr1.1L921"21sessiopino rgt; a hr829m"s>220"8"+c58"/mds_client.c#L952"8id.1L82 _info_ta="sr__g,ala>);1"8657h951" clasbaath i>15sli_newref15>li>1574/m i>15sli_new"86ss="sr__g, " cstrCEPH_MSG_CLIENT_LEASEent.c#L952" id.CEPH_MSG_CLIENT_LEASE"86smL951" clasbaath 58"/mds_client.c#L58"2"22m_get_sessiopath GFP_NOFS/mds_client.c#LGFP_NOFS2"22m_get_sessiopath falteent.c#L952" id.falte143h201.1L921"22dcass="l )> a hr821p" >213S8lass="sref">1499ass>1536a8sl"sr830list_heada21siop!="sr__gpathlena"8621.1L921"22dcass="l )> a hr821m4.>22m48cap_lock" cl1531ass>1536a8s>15683ss="sr15.1L86adest_c#return01.1L921"22dcass="l )> a hr822m4.>22m48lass="sref">1492assssssss8sssss83alareadcs_"86sath "86>"86ssutexs_cl 158"/fro57f"srr.leanup_cafro57>"86idef15d158"/mds_iov_bateent.c#L952" id.iov_bate143h01.1L921"22dcass="l )> a hr822m"s>220"8946" class="1543assl1531a8slps_83ala>(strumuteL863">"86sath leateent.c#L952" id.leate"86s>"86ssutexs_cl 158"/act_c#_="srr.leanup_cact_c#lare =qL863">"86sath act_c#_="srr.leanup_cact_c#lare01.1L921"22dcass="l )> a hr824m4.>22m48cap_lock" cl1514assssssss8sgoto834la>(strumuteL863">"86sath leateent.c#L952" id.leate"86s>"86ssutexs_cl 158"/intf"srr.leanup_caintlarea7hL863">"86sath puget_58cap_lock" cnt.c#L puget_5864la>(p3">"86ssutexeun i>15vintf"srr.leanup_ca i>15vintlares="sr__g, " cstrinth /mds_client.c#Linth 143h2idef15d158"/mds_intf"srr.leanup_caintlare201.1L921"22dcass="l )> a hr825m4.>22m48lass="sref">14.5assode=dr8p"15683edown_writat_s_cap_cexpectedleateent.c#L952" id.leate"86s>"86ssutexs_cl 158"/firs7f"srr.leanup_cafirs7larea7hL863">"86sath leateent.c#L952" id.leate"86s>"86ssutexs_cl 158"/.c#7f"srr.leanup_ca.c#7larea7hL863">"86sath puget_58cap_lock" cnt.c#L puget_5864la>(p3">"86ssutexeun i>15vintf"srr.leanup_ca i>15vintlares="sr__g, " cstrinth /mds_client.c#Linth 143h2idef15d158"/mds_snap5_client.id.1 imnap>"86201.1L921"22dcass="l )> a hr826m"s>220"8lass="sref"o else5_client8id.1 836lockt_c#qL86L863">"86sath leateent.c#L952" id.leate"86s>"86ssutexs_cl 158"/th 5_client.id.1 imd 2"2257h951" clasbaath puget_5832/mds_client.c#L puget_5832"86ss="sr__g, " cstrth 5_client.id.1 imd 2"22201.1L921"22dcass="l )> a hr821ses>212s8cap_lock" cl1487ass="sr158e_cap83ockt_c#qL863">"86ssutexelockputsunaligned_5832/mds_client.c#Lputsunaligned_5832"86ss="sr__g, " cstrdssss58"/mds_client.c#Ldssss58"qL86mL951" clasbaath 58ateent.c#L952" id.leate"86s5+ 1201.1L921"22dcass="l )> a hr828m"s>220"8cap_lock" cl1578ass="sr148ceph_83s="sr14>ceph_L863">"86sath "86ssutexs_cl 158"/d_ssssa href15>li>157d_ssss"86sidef15d158"/mds_ssssa href15>li>157ssss"86sm_get_sessiopath dssss58"/mds_client.c#Ldssss58"qL86201.1L921"22dcass="l )> a hr829m"s>220"8cap_lock" code=drop"1569a8s="sr83 1.1L921"22dcass="l )> a hr821L94>21448_cl58"/mds_client.c#L952"8id.1L840list_heada21d);1li>1574/ds_cli22m4.1L921"22m_NOSNAPf">s)s_cap_rele82140/>21Ls8cap_lock" c3ass="sr14f">d8cf">N84sry notificatioi8that our *1siothis is a preemptive leate RELEASE, nt need to_cli22m4.1L921"22m_NOSNAPf">s)s_cap_rele822m4.>22m48cap_lock" cl1562ass="sr158_info84alare notificatioi8that our *1flush#request1ioieam, since the actual#request1will_cli22m4.1L921"22m_NOSNAPf">s)s_cap_rele822m"s>220"8946" class=enala> eph_ino8er15>84ala>( notificatioi8that our *1soon follow._cli22m4.1L921"22m_NOSNAPf">s)s_cap_rele824m4.>22m48cap_lock" c="sr15ve_cap()8mutex84alare notificatioi8that our *s_cli2131.1L921"21sessiopino rgt; a hr825m4.>22m48las58"/mds_client.c#L952"8id.1L84edown_writat_s_cap_cexpected"86>"86ssutexs_cl 158"/moreget_followent.c#L952" id.soreget_follow2"2257hs="sr__g, " cstract_c#_="srr.leanup_cact_c#lare == s_cap_cexpectedCEPH_MDS_LEASE_RELEASEent.c#L952" id.CEPH_MDS_LEASE_RELEASEqL86201.1L921"22dcass="l )> a hr822m88>220 8946" class=" cstrncpy 8mutex846lock1.1L921"22dcass="l )> a hr821lad>213s8cap_lock" cl154e_infoalar8adcse84ockt_c#qL863">"86ssutexelockpmdes al_seni="srr.leanup_capmdes al_seni863">"86ss="sr__gpathlenathlenala> eph_inodshmutext_c#qL863">"86sshmutexs_cl 158cala> eph_inodshmut8cal143htmds_clpathlenala"lient.c#L952" id.sli>"86201.1L921"22dcass="l )> a hr828m"s>220"8cap_lock" cl1578ass="sr148ceph_848lock}1.1L921"22dcass="l )> a hr829m"s>220"8lass="sref">1499ass"srr.l8anup_84 1.1L921"22dcass="l )> a hr821ode>215S8lass="sref">1499assgoto+c8xpect85ath >);1li>1574/ds_cli22m4.1L921"22m_NOSNAPf">s)s_cap_rele82140/>21Ls8cap_lock" code=drop"1569a8s="sr85sry notificatioi8that our s Preemptively c#leate a leate we expect to invalidate anyway._cli22m4.1L921"22m_NOSNAPf">s)s_cap_rele821iop>21Ls8946de=drop"1569ass="sr15>8ist_h85alare notificatioi8that our s Pati @inth always, @det;ry is opt_c#al._cli22m4.1L921"22m_NOSNAPf">s)s_cap_rele822m"s>220"8946" class=l"sr15">old_ca8ala>)85ala>( notificatioi8that our *s_cli2131.1L921"21sessiopino rgt; a hr821p" >215s8cap_lock" c>156"srr.leanu8_capt85alaretarget_sessiophandle i>15selc_58ateic#leateent.c#L952" id. i>15selc_58ateic#leate"86ssioid.1L951" clasbaath i>15sess rgt;ent.c#L952" id.L951"sess rgt;>"86ss="sr__g,ala>);1li>1574/mds_cli22mmioid.1L951" clasbaath inth /mds_client.c#Linth 143hasbasessioiclas,ainth /mds_client.c#Linth 143hm7.1L921"22mL91111} else _cap_rele825m4.>22m48lass="sref">14.5assst_pat8_attr85edown_writat_c#qL863""""""""""""""ioid.1L951" clasbaath det;rylient.id.1L943" et;ry"86sasbasessioiclas,adet;rylient.id.1L943" et;ry"86s21.1L921"22dcass="l )> a hr822m88>220 8lass="sref">1536ass"srr.l8anup_85path 87.1L921"21f14men>148h/mdsgt; a hr821lad>213s8cap_lock" cl1487assssssss8sssss85equest_path_aioid.1L951" clasbaath i>15det;ry_ claent.c#L952" id. i>15det;ry_ cla"86sasbasessioiclas,adif"srr.leanup_cadi143h01.1L921"22dcass="l )> a hr828m"s>220"8cap_lock" cl1578assssssss8sssss85s="sr14>ceph_ioid.1L951" clasbaath i>15sessioi_cap_="srr.leanup_capsessioid.1L951" clasbasessioiclas,alhlenala> eph_inodshmutext_c#qL8601.1L921"22dcass="l )> a hr829m"s>220"8lass="sref">1499ass"srr.l8anup_85 _info_ta="sr__gpathlenauSNAPf">s)s_cap_reu3alareaL863">"86sath th 5_client.id.1 imd 2"2201.1L921"22dcass="l )> a hr821L94>21L98946" class=o else5_client8id.1 862"21_1.1L921"21class="string">cap_rele82140/>21Ls8cap_lock" cl1535assst_pat8_attr86sry essiopuLs_cap_cexpectedBUG_ONent.c#L952" id.BUG_ONlares="sr__g, " cstrinth /mds_client.c#Linth 143ha7= s_cap_cexpectedNULLf"srr.leanup_caNULL143hN01.1L921"22dcass="l )> a hr821iop>21Ls8cap_lock" code=drop"1569a8s="sr86alareadcs_220"8cap58"/mds_client.c#L952"8id.1L862"2194.1L921"21H_NOSNAPf">s)s_cap_rele821p" >215s8cap_lock" cl"sr15">old_ca8ala>)864la>(strumuteL not a> authority probleis det;ry leate valid? *s_cli2131.1L921"21sessiopino rgt; a hr825m4.>22m48lass="sref"" cstrncpy 8mutex86edown_writat_s_cap_cexpectedspin_inode_infoalareadcsspin_inod863">"86ss="sr__gpathlenadet;rylient.id.1L943" et;ry"86s>"86ssutexs_cl 158"/d_inode_infoalareadcsd_inod863"N01.1L921"22dcass="l )> a hr821f15>21o 8946" class=" cstrncpy 8er15>866lockt_c#qL86L863">"86sath dif"srr.leanup_cadi143h57h951" clasbaath i>15det;ryent.c#L952" id. i>15det;ry"86ss="sr__g, " cstrdet;rylient.id.1L943" et;ry"86s201.1L921"22dcass="l )> a hr821H_N>215s8cap_lock" cl154e_infoalar8adcse86equest_path_asiop!="sr__gpathlenadif"srr.leanup_cadi143h5|| !="sr__gpathlenadif"srr.leanup_cadi143h>"86ssutexs_cl 158"/58ateid.1L951ent.c#L952" id.58ateid.1L951"86s5||1.1L921"22dcass="l )> a hr828m"s>220"8cap_lock" cl1578ass>1564a8s="sr86s="sr14>ceph_capl="sr__gpathlenadif"srr.leanup_cadi143h>"86ssutexs_cl 158"/58ateid.1L951ent.c#L952" id.58ateid.1L951"86s3">"86sshmutexs_cl 158"a ref15>li>1574/ms8"a 143h < 05||1.1L921"22dcass="l )> a hr829m"s>220"8lass="sref">1499ass>153" 8strnc86 _info_target="sr__gpathlenadif"srr.leanup_cadi143h>"86ssutexs_cl 158"/58ateig8"/mds_client.c#L58ateig8""86s5!#qL863">"86sath dif"srr.leanup_cadi143h>"86ssutexs_cl 158"/58ateid.1L951ent.c#L952" id.58ateid.1L951"86s3">"86sshmutexs_cl 158cap_gela> eph_inodshmut8cap_gelqL86 ||1.1L921"22dcass="l )> a hr82115>>21158cap_lock" cl1514ass9ass>183" cs87">old_capala>) {n!="sr__gpathlenatiss_befor /mds_client.c#Ltiss_befor "86ss="sr__g, " cstrjiffie ref15>li>1574/mjiffie "86sm_get_sessiopath det;rylient.id.1L943" et;ry"86s>"86ssutexs_cl 158"/d_tissa href15>li>157d_tiss"86s)2187.1L921"21f14men>148h/mdsgt; a hr82160/>21Ls8cap_lock" cl1531ass"srr.l8anup_87ss="sr15.1L86adest_c#sutexs_cl 158"/ds_client.id.1L943" handle5replLstid nam4.lld resul2 na58ateic#leate inth "+cexpedet;ry "+cexp -- arget_sessiop7.1L921"21f14men>148h/mdsgt; a hr821iop>21Ls8cap_lock" code=drop"1569a8s="sr87alareadcs_ auth.lld resul2 nant leate_target_sessiopt4.1L921"21H_NOSNAPf">s)s_cap_rele82115r>21o18946" class=enala> eph_ino8mutex87ala>(strumutexeunlockst_c#sutexs_cl 158"/inth /mds_client.c#Linth 143hmL951" clasbaath det;rylient.id.1L943" et;ry"86s201.1L921"22dcass="l )> a hr821p" >215s8cap58"/mds_client.c#L952"8id.1L87alareadcs_"86ss="sr__gpathlenadet;rylient.id.1L943" et;ry"86s>"86ssutexs_cl 158"/d_inode_infoalareadcsd_inod863"N01.1L921"22dcass="l )> a hr825m4.>22m48lass="sref"" cstrncpy 8up5tc87edown_writat_c#qL863"return01.1L921"22dcass="l )> a hr821f15>21o 8946cexpected, eer18>li>1876quest_path_a}1.1L921"22dcass="l )> a hr821ve_>21778946" class=enala> eph_ino8mutex87eques1.1L921"22dcass="l )> a hr821de">215s8cap_lock" c>156!"srr.lean8p_cap87s="sr14>ceph_L not a> authority problewe do have a leate onothis et;ry; note mf= and md *s_cli2131.1L921"21sessiopino rgt; a hr829m"s>220"8lass="sref">1499assl154e_8nfoal87 _info_ta="sr__gpathlenathlenala> eph_inodshmutext_c#qL86 7h951" clasbaath i>15get8sessioi_cap_="srr.leanup_capsesget8sessioi_cap"86ss="sr__g, " cstrdif"srr.leanup_cadi143h>"86ssutexs_cl 158"/58ateid.1L951ent.c#L952" id.58ateid.1L951"86sN01.1L921"22dcass="l )> a hr821151>21858cap_lock" cl1514ass9ass>183" cs880list_heada21ds_cl 158"/mds_th 5_client.id.1 imd 2"2257h951" clasbaath dif"srr.leanup_cadi143h>"86ssutexs_cl 158"/58ateid. 5_client.id.1 i58ateid. "86s01.1L921"22dcass="l )> a hr82160/>21Ls8cap_lock" cl1531asso else8_clie88sry essiopuLs_cap_cexpected__ i>15selc_drop_det;ry_leateent.c#L952" id.__ i>15selc_drop_det;ry_leate"86ss="sr__g, " cstrdet;rylient.id.1L943" et;ry"86s201.1L921"22dcass="l )> a hr821opf>21518lass="sref">1492assssssss8se_in88alareadcs_"86ss="sr__gpathlenadet;rylient.id.1L943" et;ry"86s>"86ssutexs_cl 158"/d_inode_infoalareadcsd_inod863"N01.1L921"22dcass="l )> a hr82115r>21o18946" class="1543assl1531a8slps_882"2194.1L921"21H_NOSNAPf">s)s_cap_rele821la+>211s8cap_lock" cl1514assssssss8se_in884la>(strumuteL863">"86sath ds_client.id.1L943" handle5replLstid nam4.lld resul2 na58ateic#leate inth "+cexpedet;ry "+cexp to mf="+cexp_target_sessiopt4.1L921"21H_NOSNAPf">s)s_cap_rele821ses>21o 8lass="sref">14.5assode=dr8p"15688edown_writat_c#qL8sutexs_cl 158"/inth /mds_client.c#Linth 143hmL951" clasbaath det;rylient.id.1L943" et;ry"86stmds_clpathlenalathlenala> eph_inodshmutext_c#qL863">"86sshmutexs_cl 158"a ref15>li>1574/ms8"a 143h201.1L921"22dcass="l )> a hr821f15>21o 8lass="sref"o else5_client8id.1 886lockt_c#qL86L863">"86sath i>15selc_58ateid.nisslient.c#L952" id. i>15selc_58ateid.nissli"86ssds_clpathlenalathlenala> eph_inodshmutext_c#qL86m_get_sessiopath inth /mds_client.c#Linth 143htL951" clasbaath det;rylient.id.1L943" et;ry"86st1.1L921"22dcass="l )> a hr821ve_>21778cap_lock" cl1487assst_pat8_attr88equest_path_attr=seath i>15s#qL86666 s_cap_cexpectedCEPH_MDS_LEASE_RELEASEent.c#L952" id.CEPH_MDS_LEASE_RELEASEqL86m_get_sessiopath th 5_client.id.1 imd 2"22201.1L921"22dcass="l )> a hr821de">215s8cap_lock" code=drop"1569a8s="sr88s="sr14>ceph_L863">"86sath i>15putssessioi_cap_="srr.leanup_capsesputssessioi_cap"86ssds_clpathlenalathlenala> eph_inodshmutext_c#qL86201.1L921"22dcass="l )> a hr829m"s>220"8lass="sref"enala> eph_ino8mutex88 }1.1L921"22dcass="l )> a hr821_SN>21948_cl58"/mds_client.c#L952"8id.1L892"21_1.1L921"21class="string">cap_rele82160/>21Ls8cap_lock" c3ass="sr14f">d8ath 89sry notificatioi8that ourds_cli22m4.1L921"22m_NOSNAPf">s)s_cap_rele821opf>21518cap_lock" cl1562ass="sr158mutex89alare notificatioi8that our s drop all leates (and det;ry 21"s) in preparat_c# for umout;>"li22m4.1L921"22m_NOSNAPf">s)s_cap_rele82115r>21o18cap58"/mds_client.c#L952"8id.1L89ala>( notificatioi8that our *s_cli2131.1L921"21sessiopino rgt; a hr821la+>211s8cap_lock" cl"sr15">old_ca8ala>)892"217stat_c target_sessiophandledrop_leateslient.id.1L943" rop_leates"86ssioid.1L951" clasbaath i>15sess rgt;ent.c#L952" id.L951"sess rgt;>"86ss="sr__g,ala>);1li>1574/mds_cli2221.1L921"22dcass="l )> a hr821d.1>217 8lass="sref"" cstrncpy 8aompl89edown87.1L921"21f14men>148h/mdsgt; a hr821 88>21918946cexpected, 5>li8157h/89path upduto_4narget_sessiopath if"srr.leanup_cai143h01.1L921"22dcass="l )> a hr821ve_>21778946" class=enala> eph_ino8ath 89eques1.1L921"22dcass="l )> a hr821eep>21Ls8cap_lock" c="sr14158"/mds8clien89s="sr14>ceph_L863">"86sath ds_client.id.1L943" handle5replLstid nam4.lld resul2 na rop_leates_target_sessiop201.1L921"22dcass="l )> a hr821lie>21L 8lasode=drop"1569ass="sr158list_89 _info_ta="sr__g,ala>);1"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/mds_client.c#L952" i"ds_c143h201.1L921"22dcass="l )> a hr922m4.>22m49_cl58"/mds_client.c#L952"9id.1L900list_heada21for s="sr__g, " cstrif"srr.leanup_cai143h 7h0;rget_sessiopath if"srr.leanup_cai143h < ="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/maxsioi_capslient.id.1L943"maxsioi_caps143h0rget_sessiopath if"srr.leanup_cai143h++2187.1L921"21f14men>148h/mdsgt; a hr921m4.>22m49_ap_lock" c3ass="sr14f">d9id.1L90ss="sr15.1L86adest_c#ioid.1L951" clasbaath i>15sessioi_cap_="srr.leanup_capsessioid.1L951" clasbasessioiclas,ala> eph_inodshmut2"2257h951" clasbaath __ i>15lookup5sessioi_cap_="srr.leanup_c__ i>15lookup5sessioi_cap"86ssds_clpathlenalali>1574/mds_cli22mmget_sessiopath if"srr.leanup_cai143h201.1L921"22dcass="l )> a hr922m4.>22m49_ap_lock" cl1562ass="sr159ist_h90alareadcs_(strumutexeunlockst_c####continue01.1L921"22dcass="l )> a hr924m4.>22m49_ap_lock" cl"sr15">old_ca9* han90alareadcs_"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/mds_client.c#L952" i"ds_c143h201.1L921"22dcass="l )> a hr925m4.>22m49_ass="sref"" cstrncpy 9list_90edown_writat_c#qL863"="sr__g,ala>);1"86ss="sr__gpathlenala> eph_inodshmut2"223">"86sshmutexs_cl 158"ds_client.c#L952" i58"ds_c143h201.1L921"22dcass="l )> a hr926m"s>220"9"46cexpected, 5>li9_caph90path upduto_snap_tras_cap_cexpectedmdest_ref_inode_infoalareadmdest_ref_in863">"86ss="sr__gpathlenala> eph_inodshmut2"223">"86sshmutexs_cl 158"ds_client.c#L952" i58"ds_c143h201.1L921"22dcass="l )> a hr927m"s>220"9"46" class=enala> eph_ino9sssst90equest_path_attr=seatL863">"86sath i>15putssessioi_cap_="srr.leanup_capsesputssessioi_cap"86ssds_clpathlenalata> eph_inodshmut2"22201.1L921"22dcass="l )> a hr928m"s>220"9"ap_lock" c="sr14158"/mds9sssst90s="sr14>ceph_caple32_="sr__g,ala>);1"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/mds_client.c#L952" i"ds_c143h201.1L921"22dcass="l )> a hr929m"s>220"9"asode=drop"1569ass="sr159clasr90 _info_ta}1.1L921"22dcass="l )> a hr9220h/>221s9cap_lock" cttrequest_path9attr=910list_heada21ds_cl 158"/mds_mdest_ref_inode_infoalareadmdest_ref_in863">"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/mds_client.c#L952" i"ds_c143h201.1L921"22dcass="l )> a hr921m4.>22m49cap_lock" c3ass="sr14f">d9u" cd91sry }1.1L921"22dcass="l )> a hr922m4.>22m49enala> eph_inodshmutext_c9uL95291alare1.1L921"22dcass="l )> a hr923m4.>22m49cap58"/mds_client.c#L952"9id.1L912"2194.1L921"21H_NOSNAPf">s)s_cap_rele924m4.>22m49cap_lock" c>156"srr.leanu9_caph912"2175.1L921"21d.1L887ala>; spa3 cla925m4.>22m49lass="sref">14.5assst_pat9_attr91edown notificatioi8that ourds_cli22m4.1L921"22m_NOSNAPf">s)s_cap_rele926m"s>220"9lass="sref">1536asslps_cb9la>(s91path notificatioi8that our s delayed work -- periodically lldm expired leates, r15ew caps with "a 14li22m4.1L921"22m_NOSNAPf">s)s_cap_rele927m"s>220"9cap_lock" cl1487ass="sr159e_cap91eques notificatioi8that our *s_cli2131.1L921"21sessiopino rgt; a hr928m"s>220"9946" class="1548ass="sr1591L947918lockstat_c target_sessiophandleschedule_delayeda> eph_inodshmutchedule_delayed"86ssioid.1L951" clasbaath i>15sess rgt;ent.c#L952" id.L951"sess rgt;>"86ss="sr__g,ala>);1li>1574/mds_cli2221.1L921"22dcass="l )> a hr929m"s>220"9lass="sref">1499assl154e_9nfoal91 87.1L921"21f14men>148h/mdsgt; a hr921ap">212S9lass="sref">1499ass>1536a9sl"sr920list_heada214narget_sessiopath delaylient.id.1L943" elay2"2257h501.1L921"22dcass="l )> a hr921m4.>22m49cap7ala> spa1441ass="sr149>>>>>92ss="sr15.1L86unsigned get_sessiopath hzlient.id.1L943"hz2"2257h951" clasbaath round_jiffie ic#lativelient.id.1L943"round_jiffie ic#lative"86ssds_clpathlenalaHZref15>li>1574/mHZlarea*p>15re158"/mds_cdelaylient.id.1L943" elay2"22201.1L921"22dcass="l )> a hr922m4.>22m49las7ala> spa144lass="sr149>>>>>92alareadcs_ eph_inodshmutchedule_delayed_work863">"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/delayed_worka> eph_inodshmudelayed_work863"mmget_sessiopath hzlient.id.1L943"hz2"22201.1L921"22dcass="l )> a hr923m4.>22m49"857ala> spa1573ass="sr159>1499922"219}1.1L921"22dcass="l )> a hr924m4.>22m49las7ala> spa1572ass="sr159>1499922"2175.1L921"21d.1L887ala>; spa3 cla925m4.>22m499467ala> spa144lass="sr149>149992edownstat_c target_sessiophandledelayed_worka> eph_inodshmudelayed_work863"sioid.1L951" clasbaath work_ioid.1a> eph_inodshmuwork_ioid.1>"86ss="sr__g,ala>);1worka> eph_inodshmuwork863"21.1L921"22dcass="l )> a hr926m"s>220"9cap7ala> spa144lass="sr149>149992path 87.1L921"21f14men>148h/mdsgt; a hr927m"s>220"9cap_lock" cl1487assssssss9s"srr92ockt_c#qL863"4narget_sessiopath if"srr.leanup_cai143h01.1L921"22dcass="l )> a hr928m"s>220"9cap_lock" cl1578assssssss9s"srr92s="sr14>ceph_ioid.1L951" clasbaath i>15sess rgt;ent.c#L952" id.L951"sess rgt;>"86ss="sr__g,ala>);1li>1574/mds_cli22577.1L921"21f14men>148h/mdsgt; a hr929m"s>220"9"+c58"/mds_client.c#L952"9id.1L92 _info_targetseatL863">"86sath ontalier_ofent.c#L952" id.Lontalier_of"86ssds_clpathlenalaworka> eph_inodshmuwork863"mmioid.1L951" clasbaath i>15sess rgt;ent.c#L952" id.L951"sess rgt;>"86tL951" clasbaath delayed_worka> eph_inodshmudelayed_work863"idef15d158"/mds_worka> eph_inodshmuwork863"201.1L921"22dcass="l )> a hr921p" >213S9lass="sref">1499ass>1536a9sl"sr930list_heada214narget_sessiopath r15ew_4naervallient.id.1L943"r15ew_4naerval143h01.1L921"22dcass="l )> a hr921m4.>22m49cap_lock" cl1531ass>1536a9s>15693ss="sr15.1L864narget_sessiopath r15ew_capslient.id.1L943"r15ew_caps143h01.1L921"22dcass="l )> a hr922m4.>22m49lass="sref">1492assssssss9sssss93alare1.1L921"22dcass="l )> a hr922m"s>220"9946" class="1543assl1531a9slps_93ala>(strumuteL863">"86sath ds_client.id.1L943" handle5replLstid nam4.lld resul2 nads_c delayed_work_target_sessiop201.1L921"22dcass="l )> a hr924m4.>22m49cap_lock" cl1514assssssss9sgoto934la>(strumuteL863">"86sath pmdes heck_delayed_capslient.id.1L943"pmdes heck_delayed_caps"86ssds_clpathlenalali>1574/mds_cli22201.1L921"22dcass="l )> a hr925m4.>22m49lass="sref">14.5assode=dr9p"156932"21L6.1L921"21eepath ep1> 926m"s>220"9lass="sref"o else5_client9id.1 936lockt_c#qL86L863">"86sath "86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/mds_client.c#L952" i"ds_c143h201.1L921"22dcass="l )> a hr921ses>212s9cap_lock" cl1487ass="sr159e_cap93ockt_c#qL863">"86ssutexelockr15ew_4naervallient.id.1L943"r15ew_4naerval143h57hL863">"86sath li>1574/mds_cli22>"86ssutexs_cl 158"/mdsmap5_client.id.1 imdsmapli22>"86ssutexs_cl 158"/msioi_cap_tisss_client.id.1L943"msioi_cap_tisss_c143h &86s&>"8 201.1L921"22dcass="l )> a hr928m"s>220"9cap_lock" cl1578ass="sr149ceph_93s="sr14>ceph_L863">"86sath r15ew_capslient.id.1L943"r15ew_caps143h57hL863">"86sath tiss_aftei_h 5_client.id.1 itiss_aftei_h "86ssds_clpathlenalajiffie ref15>li>1574/mjiffie "86sm_get_sessiopath HZref15>li>1574/mHZlares="sr__g,ala>);1r15ew_4naervallient.id.1L943"r15ew_4naerval143h5+1.1L921"22dcass="l )> a hr929m"s>220"9cap_lock" code=drop"1569a9s="sr93 _info_target_seslockinfo_targetseatL863">"86sath li>1574/mds_cli22>"86ssutexs_cl 158"/15>t_r15ew_capslient.id.1L943"15>t_r15ew_caps143h201.1L921"22dcass="l )> a hr921L94>21449_cl58"/mds_client.c#L952"9id.1L940list_heada21siopL863">"86sath r15ew_capslient.id.1L943"r15ew_caps143h21.1L921"22dcass="l )> a hr92140/>21Ls9cap_lock" c3ass="sr14f">d9cf">N94ss="sr15.1L86adest_c#sutexs_cl 158"/li>1574/mds_cli22>"86ssutexs_cl 158"/15>t_r15ew_capslient.id.1L943"15>t_r15ew_caps143h57hL863">"86sath jiffie ref15>li>1574/mjiffie "86s01.1L921"22dcass="l )> a hr922m4.>22m49cap_lock" cl1562ass="sr159_info94alare1.1L921"22dcass="l )> a hr922m"s>220"9946" class=enala> eph_ino9er15>94ala>(strumutefor s="sr__g, " cstrif"srr.leanup_cai143h 7h0;rget_sessiopath if"srr.leanup_cai143h < ="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/maxsioi_capslient.id.1L943"maxsioi_caps143h0rget_sessiopath if"srr.leanup_cai143h++2187.1L921"21f14men>148h )> a hr924m4.>22m49cap_lock" c="sr15ve_cap()9mutex94alareadcs_15sessioi_cap_="srr.leanup_capsessioid.1L951" clasbasessioiclas,ala> eph_inodshmut2"2257h951" clasbaath __ i>15lookup5sessioi_cap_="srr.leanup_c__ i>15lookup5sessioi_cap"86ssds_clpathlenalali>1574/mds_cli22mmget_sessiopath if"srr.leanup_cai143h201.1L921"22dcass="l )> a hr925m4.>22m49las58"/mds_client.c#L952"9id.1L94edown_writat_c#qL863"siopL863">"86sath la> eph_inodshmut2"2257= s_cap_cexpectedNULLf"srr.leanup_caNULL143hN1.1L921"22dcass="l )> a hr926m"s>220"9946" class=" cstrncpy 9mutex94path upduto_snap_trat_c#qL86continue01.1L921"22dcass="l )> a hr921lad>213s9cap_lock" cl154e_infoalar9adcse94equest_path_attr=seatsiopL863">"86sath la> eph_inodshmut2"223">"86sshmutexs_cl 158statelient.id.1L943"58state2"2257= s_cap_cexpectedCEPH_MDS_SESSION_CLOSINGlient.id.1L943"CEPH_MDS_SESSION_CLOSING143hN187.1L921"21f14men>148h )> a hr928m"s>220"9cap_lock" cl1578ass="sr149ceph_94s="sr14>ceph_caple32_seath iget_sessiopath ds_client.id.1L943" handle5replLstid nam4.lld resul2 nared.nid r ioi_captidose#request1for mf="+cexp_target_sessiopt4.1L921"21H_NOSNAPf">s)s_cap_rele929m"s>220"9lass="sref">1499ass"srr.l9anup_94 _info_target_seslockinfo_targ="sr__gpathlenala> eph_inodshmut2"223">"86sshmutexs_cl 158"a ref15>li>1574/ms8"a 143h201.1L921"22dcass="l )> a hr921ode>215S9lass="sref">1499assgoto+c9xpect95">old_capala>) {n< >onfo_targ="sr__gpathlenarequest_idosesioi_cap_="srr.leanup_crequest_idosesioi_cap"86ssds_clpathlenalali>1574/mds_cli22mmget_sessiopath ta> eph_inodshmut2"22201.1L921"22dcass="l )> a hr92140/>21Ls9cap_lock" code=drop"1569a9s="sr95ss="sr15.1L86adest_c#nfo_targ="sr__gpathlena i>15putssessioi_cap_="srr.leanup_capsesputssessioi_cap"86ssds_clpathlenalata> eph_inodshmut2"22201.1L921"22dcass="l )> a hr921iop>21Ls9946de=drop"1569ass="sr15>9ist_h95alareadcs_220"9946" class=l"sr15">old_ca9ala>)95ala>(strumutexeunlock}1.1L921"22dcass="l )> a hr921p" >215s9cap_lock" c>156"srr.leanu9_capt95alareadcs_"86sath la> eph_inodshmut2"223">"86sshmutexs_cl 158ttllient.id.1L943"58ttl143h &86ss&86sshL863">"86sath tiss_aftei5_client.id.1 itiss_aftei"86ssds_clpathlenalajiffie ref15>li>1574/mjiffie "86sm_get_sessiopath la> eph_inodshmut2"223">"86sshmutexs_cl 158ttllient.id.1L943"58ttl143h)2187.1L921"21f14men>148h/mdsgt; a hr925m4.>22m49lass="sref">14.5assst_pat9_attr95edown_writat_c#qL863"""""""""siopL863">"86sath la> eph_inodshmut2"223">"86sshmutexs_cl 158statelient.id.1L943"58state2"2257= s_cap_cexpectedCEPH_MDS_SESSION_OPENent.c#L952" id.CEPH_MDS_SESSION_OPEN143hN187.1L921"21f14men>148h )> a hr922m88>220 9lass="sref">1536ass"srr.l9anup_95path upduto_snap_trat_c#qL86pppppprg="sr__gpathlenala> eph_inodshmut2"223">"86sshmutexs_cl 158statelient.id.1L943"58state2"2257 s_cap_cexpectedCEPH_MDS_SESSION_HUNGlient.id.1L943"CEPH_MDS_SESSION_HUNG"86s01.1L921"22dcass="l )> a hr921lad>213s9cap_lock" cl1487assssssss9sssss95equest_path_attr=seath i>15s#qL86666s_cap_cexpectedpr_ claent.c#L952" id.pr_ cladle5replLstid nam4.lld resul2 nads_"+cexp hung_target_sessioptg="sr__gpathlenala> eph_inodshmut2"223">"86sshmutexs_cl 158"a ref15>li>1574/ms8"a 143h201.1L921"22dcass="l )> a hr928m"s>220"9cap_lock" cl1578assssssss9sssss95s="sr14>ceph_caple32_seath i}1.1L921"22dcass="l )> a hr929m"s>220"9lass="sref">1499ass"srr.l9anup_95 _info_target_ses}1.1L921"22dcass="l )> a hr921L94>21L99946" class=o else5_client9id.1 96">old_capala>) {n< >osiopL863">"86sath la> eph_inodshmut2"223">"86sshmutexs_cl 158statelient.id.1L943"58state2"225< ="sr__gpathlenaCEPH_MDS_SESSION_OPENent.c#L952" id.CEPH_MDS_SESSION_OPEN143hN187.1L921"21f14men>148h )> a hr92140/>21Ls9cap_lock" cl1535assst_pat9_attr96ss="sr15.1L86adest_c#nfo_targ= not a> authority problethis 48heis failed or recoveld r,ejust wait *s_cli2131.1L921"21sessiopino rgt; a hr921iop>21Ls9cap_lock" code=drop"1569a9s="sr96alareadcs_ eph_inodshmut2"22201.1L921"22dcass="l )> a hr922m"s>220"9cap58"/mds_client.c#L952"9id.1L96ala>(strumutexeunlockst_c####continue01.1L921"22dcass="l )> a hr921p" >215s9cap_lock" cl"sr15">old_ca9ala>)96alareadcs_"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/mds_client.c#L952" i"ds_c143h201.1L921"22dcass="l )> a hr921f15>21o 9946" class=" cstrncpy 9er15>966lock1.1L921"22dcass="l )> a hr921H_N>215s9cap_lock" cl154e_infoalar9adcse96equest_path_attr=seatL863">"86sath "86ss="sr__gpathlenala> eph_inodshmut2"223">"86sshmutexs_cl 158"ds_client.c#L952" i58"ds_c143h201.1L921"22dcass="l )> a hr928m"s>220"9cap_lock" cl1578ass>1564a9s="sr96s="sr14>ceph_capl< >osiopL863">"86sath r15ew_capslient.id.1L943"r15ew_caps143h21.1L921"22dcass="l )> a hr929m"s>220"9lass="sref">1499ass>153" 9strnc96 _info_targetth_attr=seatL863">"86sath d.nisr15ew_capslient.id.1L943"d.nisr15ew_caps"86ssds_clpathlenalali>1574/mds_cli22mmget_sessiopath ta> eph_inodshmut2"22201.1L921"22dcass="l )> a hr92115>>21159cap_lock" cl1514ass9ass>193" cs97">old_capala>) {nnnnnelse1.1L921"22dcass="l )> a hr92140/>21Ls9cap_lock" cl1531ass"srr.l9anup_97ss="sr15.1L86adest_c#ttr=seatL863">"86sath pmdes on_keepalivelient.id.1L943"pmdes on_keepalive863">"86ss="sr__gpathlenala> eph_inodshmut2"223">"86sshmutexs_cl 158cala> eph_inodshmut8cal143h201.1L921"22dcass="l )> a hr921iop>21Ls9cap_lock" code=drop"1569a9s="sr97alareadcs_"86sath pmdesadd_capic#leateslient.id.1L943"pmdesadd_capic#leates"86ssds_clpathlenalali>1574/mds_cli22mmget_sessiopath ta> eph_inodshmut2"22201.1L921"22dcass="l )> a hr922m"s>220"9946" class=enala> eph_ino9mutex97ala>(strumutexeunlocksiopL863">"86sath la> eph_inodshmut2"223">"86sshmutexs_cl 158statelient.id.1L943"58state2"2257= s_cap_cexpectedCEPH_MDS_SESSION_OPENent.c#L952" id.CEPH_MDS_SESSION_OPEN143h ||1.1L921"22dcass="l )> a hr921p" >215s9cap58"/mds_client.c#L952"9id.1L97alareadcs_"86sath da> eph_inodshmut2"223">"86sshmutexs_cl 158statelient.id.1L943"58state2"2257= s_cap_cexpectedCEPH_MDS_SESSION_HUNGlient.id.1L943"CEPH_MDS_SESSION_HUNG"86s21.1L921"22dcass="l )> a hr925m4.>22m49lass="sref"" cstrncpy 9up5tc97edown_writat_c#qL863"href1ph_L863">"86sath pmdesd.niscapic#leateslient.id.1L943"pmdesd.niscapic#leates"86ssds_clpathlenalali>1574/mds_cli22mmget_sessiopath ta> eph_inodshmut2"22201.1L921"22dcass="l )> a hr921f15>21o 9946cexpected, eer19>li>197path upduto_snap_tras_cap_cexpectedmdest_ref_inode_infoalareadmdest_ref_in863">"86ss="sr__gpathlenala> eph_inodshmut2"223">"86sshmutexs_cl 158"ds_client.c#L952" i58"ds_c143h201.1L921"22dcass="l )> a hr921ve_>21779946" class=enala> eph_ino9mutex97equest_path_attr=seatL863">"86sath i>15putssessioi_cap_="srr.leanup_capsesputssessioi_cap"86ssds_clpathlenalata> eph_inodshmut2"22201.1L921"22dcass="l )> a hr921de">215s9cap_lock" c>156!"srr.lean9p_cap97s="sr1.1L921"21sessiopino rgt; a hr929m"s>220"9lass="sref">1499assl154e_9nfoal97 _info_targetseatL863">"86sath "86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/mds_client.c#L952" i"ds_c143h201.1L921"22dcass="l )> a hr921151>21859cap_lock" cl1514ass9ass>193" cs980list_heada21}1.1L921"22dcass="l )> a hr92160/>21Ls9cap_lock" cl1531asso else9_clie98sry essiopuLs_cap_cexpected"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/mds_client.c#L952" i"ds_c143h201.1L921"22dcass="l )> a hr921opf>21519lass="sref">1492assssssss9se_in98alare1.1L921"22dcass="l )> a hr92115r>21o19946" class="1543assl1531a9slps_98ala>(strumuteL863">"86sath schedule_delayeda> eph_inodshmutchedule_delayed"86ss="sr__gpathlenali>1574/mds_cli22201.1L921"22dcass="l )> a hr921p" >215s9cap_lock" cl1514assssssss9se_in984la>(}1.1L921"22dcass="l )> a hr925m4.>22m49lass="sref">14.5assode=dr9p"156982"21L6.1L921"21eepath ep1> 921f15>21o 9lass="sref"o else5_client9id.1 986lock4narget_sessiopath apsessioc_ini;ent.c#L952" id.L951"sesc_ini;"86ssioid.1L951" clasbaath i>15fss rgt;ent.c#L952" id.L951"fss rgt;" clasbasessioiclas,af href15>li>1574/mf_cli2221.1L921"22dcass="l )> a hr921ve_>21779cap_lock" cl1487assst_pat9_attr98eques1.1L921"22dcass="l )> a hr921de">215s9cap_lock" code=drop"1569a9s="sr98s="sr87.1L921"21f14men>148h )> a hr929m"s>220"9lass="sref"enala> eph_ino9mutex98 _info_taioid.1L951" clasbaath i>15sess rgt;ent.c#L952" id.L951"sess rgt;>"86ss="sr__g,ala>);1li>1574/mds_cli2201.1L921"22dcass="l )> a hr921_SN>21949_cl58"/mds_client.c#L952"9id.1L992"21_1.1L921"21class="string">cap_rele92160/>21Ls9cap_lock" c3ass="sr14f">d9ath 99sry essiopuLs_cap_cexpectedli>1574/mds_cli2257Ls_cap_cexpectedkzalf_iref15>li>1574/mkzalf_i"86ssiizeofsioid.1L951" clasbaath i>15sess rgt;ent.c#L952" id.L951"sess rgt;>"86)m_get_sessiopath GFP_NOFS/mds_client.c#LGFP_NOFS2"22201.1L921"22dcass="l )> a hr921opf>21519cap_lock" cl1562ass="sr159mutex99alareadcs_(strumutexeunlockreturn -="sr__gpathlenaENOMEMref15>li>1574/mENOMEMli2201.1L921"22dcass="l )> a hr921p" >215s9cap_lock" cl"sr15">old_ca9ala>)994la>(strumuteL863">"86sath li>1574/mds_cli22>"86ssutexs_cl 158"/f href15>li>1574/mf_cli2257Ls_cap_cexpectedf href15>li>1574/mf_cli2201.1L921"22dcass="l )> a hr925m4.>22m49lass="sref"" cstrncpy 9aompl99edown_writat_s_cap_cexpectedf href15>li>1574/mf_cli22>"86ssutexs_cl 158"/mdshref15>li>1574/mds_cli2257Ls_cap_cexpectedli>1574/mds_cli2201.1L921"22dcass="l )> a hr921f15>21o 9946cexpected, 5>li9157h/996lockt_c#qL86L863">"86sath "86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/mds_client.c#L952" i"ds_c143h201.1L921"22dcass="l )> a hr921ve_>21779946" class=enala> eph_ino9ath 99ockt_c#qL863">"86ssutexelockli>1574/mds_cli22>"86ssutexs_cl 158"/mdsmap5_client.id.1 imdsmapli2257Ls_cap_cexpectedkzalf_iref15>li>1574/mkzalf_i"86ssiizeofss="sr__g,ala>);1li>1574/mds_cli22>"86ssutexs_cl 158"/mdsmap5_client.id.1 imdsmapli22)m_get_sessiopath GFP_NOFS/mds_client.c#LGFP_NOFS2"22201.1L921"22dcass="l )> a hr921de">215s9cap_lock" c="sr14158"/mds9clien99s="sr14>ceph_siopL863">"86sath li>1574/mds_cli22>"86ssutexs_cl 158"/mdsmap5_client.id.1 imdsmapli2257= s_cap_cexpectedNULLf"srr.leanup_caNULL143hN1.1L921"22dcass="l )> a hr921lie>21L 9lasode=drop"1569ass="sr159list_99 _info_targetseatreturn -="sr__gpathlenaENOMEMref15>li>1574/mENOMEMli2201.1L921"22dcass="l )> a h3022m4.>22m3022m4de=drop"1569ass="sr13022m>3022"21_1./pre>229f/77/0096831027b5a09b76a60dc19e27be3443aa_3/3022m>.1L921"22dcass="l )> a h3021m4.>22m302ap_lock" c3ass="sr14f">302ap>302sry essiopuLs_cap_cexpectedini;_complet_c#_="srr.leanup_cini;_complet_c#863">"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/safe_umout;_waiterta> eph_inodshmutafe_umout;_waitert2"22201.1L921"22dcass="l )> a h3022m4.>22m302ap_lock" cl1562ass="sr1302ap>302alareadcs_ eph_inodshmuini;_waitqueue_head863">"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/soi_cap_idosesw 5_client.id.1 imdi_cap_idosesw 2"22201.1L921"22dcass="l )> a h3023m4.>22m302ap58"/mds_client.c#L952302ap>302ala>(strumuteL863">"86sath INIT_LIST_HEAD5_client.id.1 iINIT_LIST_HEAD863">"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/waiting_for_map5_client.id.1 iwaiting_for_map2"22201.1L921"22dcass="l )> a h3024m4.>22m302ap_lock" cl"sr15">old_c302ap>3024la>(strumuteL863">"86sath li>1574/mds_cli22>"86ssutexs_cl 158"/ioi_capslient.id.1L943"ioi_caps143h57Ls_cap_cexpectedNULLf"srr.leanup_caNULL143h01.1L921"22dcass="l )> a h3025m4.>22m302ass="sref"" cstrncpy 302as>302edown_writat_s_cap_cexpectedli>1574/mds_cli22>"86ssutexs_cl 158"/maxsioi_capslient.id.1L943"maxsioi_caps143h 7h0;1.1L921"22dcass="l )> a h3026m4.>22m30246cexpected, 5>l30246>3026lockt_c#qL86L863">"86sath li>1574/mds_cli22>"86ssutexs_cl 158"/itoppd reient.id.1L943"itoppd r143h 7h0;1.1L921"22dcass="l )> a h3027m4.>22m30246" class=enala> eph_in30246>302ockt_c#qL863">"86ssutexelockini;_rwsema> eph_inodshmuini;_rwsem863">"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/snapicwsema> eph_inodshmusnapicwsem2"22201.1L921"22dcass="l )> a h3028m4.>22m302ap_lock" c="sr14158"/md302ap>302s="sr14>ceph_L863">"86sath li>1574/mds_cli22>"86ssutexs_cl 158"/snapicealmslient.id.1L943"inapicealms143h57Ls_cap_cexpectedRB_ROOTlient.id.1L943"RB_ROOT143h01.1L921"22dcass="l )> a h3029m4.>22m302asode=drop"1569ass="sr1302as>302 _info_ta="sr__g,ala>);1INIT_LIST_HEAD5_client.id.1 iINIT_LIST_HEAD863">"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/inapiemptylient.id.1L943"inapiempty2"22201.1L921"22dcass="l )> a h3012m4.>22m30cap_lock" cttrequest_pat30cap>30cala>(strumuteL863">"86sath spin_inod_ini;ent.c#L952" id.spin_inod_ini;863">"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/inapiempty_inode_infoalareadcssnapiempty_inod2"22201.1L921"22dcass="l )> a h3011m4.>22m30cap_lock" c3ass="sr14f">30cap>30csry essiopuLs_cap_cexpectedli>1574/mds_cli22>"86ssutexs_cl 158"/15>t_tida> eph_inodshmu15>t_tid143h 7h0;1.1L921"22dcass="l )> a h3012m4.>22m30enala> eph_inodshmutext_30ena>30calareadcs_li>1574/mds_cli22>"86ssutexs_cl 158"/request_treelient.id.1L943"request_tree143h57Ls_cap_cexpectedRB_ROOTlient.id.1L943"RB_ROOT143h01.1L921"22dcass="l )> a h3013m4.>22m30cap58"/mds_client.c#L95230cap>30cala>(strumuteL863">"86sath INIT_DELAYED_WORK5_client.id.1 iINIT_DELAYED_WORK863">"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/delayed_worka> eph_inodshmudelayed_work863"mmget_sessiopath delayed_worka> eph_inodshmudelayed_work863"201.1L921"22dcass="l )> a h3014m4.>22m30cap_lock" c>156"srr.lean30cap>30c4la>(strumuteL863">"86sath li>1574/mds_cli22>"86ssutexs_cl 158"/l5>t_r15ew_capslient.id.1L943"15>t_r15ew_caps143h57hL863">"86sath jiffie ref15>li>1574/mjiffie "86s01.1L921"22dcass="l )> a h30c5m4.>22m30lass="sref">14.5assst_pa30las>30cedown_writat_s_cap_cexpectedINIT_LIST_HEAD5_client.id.1 iINIT_LIST_HEAD863">"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/capidelay_lis;ent.c#L952" id.Lapidelay_lis;863"201.1L921"22dcass="l )> a h3016m4.>22m30lass="sref">1536asslps_c30las>30c6lockt_c#qL86L863">"86sath spin_inod_ini;ent.c#L952" id.spin_inod_ini;863">"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/Lapidelay_lnode_infoalareadcsLapidelay_lnod863"201.1L921"22dcass="l )> a h3017m4.>22m30cap_lock" cl1487ass="sr130cap>30cockt_c#qL863">"86ssutexelockINIT_LIST_HEAD5_client.id.1 iINIT_LIST_HEAD863">"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/inapiflush_lis;ent.c#L952" id.inapiflush_lis;863"201.1L921"22dcass="l )> a h3018m4.>22m30946" class="1548ass="sr130946>30cs="sr14>ceph_L863">"86sath spin_inod_ini;ent.c#L952" id.spin_inod_ini;863">"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/inapiflush_lnode_infoalareadcssnapiflush_lnod863"201.1L921"22dcass="l )> a h3019m4.>22m30lass="sref">1499assl154e30las>30c _info_ta="sr__g,ala>);1li>1574/mds_cli22>"86ssutexs_cl 158"/Lapiflush_th 5_client.id.1 iLapiflush_th 143h 7h0;1.1L921"22dcass="l )> a h3022m4.>22m30lass="sref">1499ass>153630las>30lackt_c#qL863">"86ssutexelockINIT_LIST_HEAD5_client.id.1 iINIT_LIST_HEAD863">"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/Lapidirtylient.id.1L943"Lapidirty863"201.1L921"22dcass="l )> a h3021m4.>22m30cap7ala> spa1441ass="sr130cap>30lsry essiopuLs_cap_cexpectedINIT_LIST_HEAD5_client.id.1 iINIT_LIST_HEAD863">"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/Lapidirty_migrat_ reient.id.1L943"Lapidirty_migrat_ r863"201.1L921"22dcass="l )> a h3022m4.>22m30las7ala> spa144lass="sr130las>30lalareadcs_li>1574/mds_cli22>"86ssutexs_cl 158"/num_Lapiflush_ reient.id.1L943"num_Lapiflush_ r143h 7h0;1.1L921"22dcass="l )> a h3023m4.>22m30"857ala> spa1573ass="sr130"85>30lala>(strumuteL863">"86sath spin_inod_ini;ent.c#L952" id.spin_inod_ini;863">"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/Lapidirty_lnode_infoalareadcsLapidirty_lnod863"201.1L921"22dcass="l )> a h3024m4.>22m30las7ala> spa1572ass="sr130las>30l4la>(strumuteL863">"86sath ini;_waitqueue_heada> eph_inodshmuini;_waitqueue_head863">"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/Lapiflush_ rsw 5_client.id.1 iLapiflush_ rsw 863"201.1L921"22dcass="l )> a h3025m4.>22m309467ala> spa144lass="sr130946>30ledown_writat_s_cap_cexpectedspin_inod_ini;ent.c#L952" id.spin_inod_ini;863">"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/det;ry_lru_inode_infoalareadcsdet;ry_lru_inod863"201.1L921"22dcass="l )> a h3026m4.>22m30cap7ala> spa144lass="sr130cap>30l6lockt_c#qL86L863">"86sath INIT_LIST_HEAD5_client.id.1 iINIT_LIST_HEAD863">"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/det;ry_lrue_infoalareadcsdet;ry_lru863"201.1L921"22dcass="l )> a h3027m4.>22m30cap_lock" cl1487asssssss30cap>30leques1.1L921"22dcass="l )> a h30l8m4.>22m30cap_lock" cl1578asssssss30cap>30ls="sr14>ceph_L863">"86sath i>15caps_ini;ent.c#L952" id.L951"caps_ini;863">="sr__gpathlenali>1574/mds_cli22201.1L921"22dcass="l )> a h3029m4.>22m30"+c58"/mds_client.c#L95230"+c>30l _info_ta="sr__g,ala>);1pmdesadjust_min_capslient.id.1L943"pmdesadjust_min_caps863">="sr__gpathlenali>1574/mds_cli22mmget_sessiopath f href15>li>1574/mf_cli22>"86ssutexs_cl 158"/min_capslient.id.1L943"min_caps863"201.1L921"22dcass="l )> a h3032m4.>22m30lass="sref">1499ass>153630las>30laques1.1L921"22dcass="l )> a h3031m4.>22m30cap_lock" cl1531ass>153630cap>30lsry essiopuLreturn 0;1.1L921"22dcass="l )> a h3032m4.>22m30lass="sref">1492asssssss30las>30lalare}1.1L921"22dcass="l )> a h30l3m4.>22m30946" class="1543assl153130946>30l2"2194.1L921"21H_NOSNAPf">s)s_cap_rel30l4m4.>22m30cap_lock" cl1514asssssss30cap>30l4la>( notificatioi8that ourds_cli22m4.1L921"22m_NOSNAPf">s)s_cap_rel30l5m4.>22m30lass="sref">14.5assode=d30las>30ledown notificatioi8that our * Wait for tafeLreps_cs onoopen 48herequests. Ifewe tiss out, drop_cli22m4.1L921"22m_NOSNAPf">s)s_cap_rel30l6m4.>22m30lass="sref"o else5_clien30las>30lpath notificatioi8that our s all requests from the tree to atargedangld r det;ry 21"s._cli22m4.1L921"22m_NOSNAPf">s)s_cap_rel30l7m4.>22m30cap_lock" cl1487ass="sr130cap>30leques notificatioi8that our *s_cli2131.1L921"21sessiopino rgt; a h30l8m4.>22m30cap_lock" cl1578ass="sr130cap>30l8lockstat_c target_sessiophandlewait_requests5_client.id.1 iwait_requests863">ioid.1L951" clasbaath i>15sess rgt;ent.c#L952" id.L951"sess rgt;>"86ss="sr__g,ala>);1li>1574/mds_cli2221.1L921"22dcass="l )> a h30l9m4.>22m30cap_lock" code=drop"156930cap>30l 87.1L921"21f14men>148h/mdsgt; a h3042m4.>22m30_cl58"/mds_client.c#L95230_cl>30_cry essiopuLioid.1L951" clasbaath i>15sessrequestent.c#L952" id.L951"sessrequest>"86ss="sr__g,ala>);1rh 5_client.id.1 ir. "86s01.1L921"22dcass="l )> a h30_1m4.>22m30cap_lock" c3ass="sr14f">30cap>30_1ry essiopuLioid.1L951" clasbaath i>15fss rgt;ent.c#L952" id.L951"fss rgt;" clasbasessioiclas,af href15>li>1574/mf_cli2257hL863">"86sath li>1574/mds_cli22>"86ssutexs_cl 158"/f href15>li>1574/mf_cli2201.1L921"22dcass="l )> a h30_2m4.>22m30cap_lock" cl1562ass="sr130cap>30_alare1.1L921"22dcass="l )> a h30_3m4.>22m30946" class=enala> eph_in30946>30_ala>(strumuteL863">"86sath "86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/mds_client.c#L952" i"ds_c143h201.1L921"22dcass="l )> a h30_4m4.>22m30cap_lock" c="sr15ve_cap(30cap>30_4la>(strumutesiopL863">"86sath __get_olde>t_r1 5_client.id.1 i__get_olde>t_r1 863">="sr__gpathlenali>1574/mds_cli222N187.1L921"21f14men>148h )> a h30_5m4.>22m30las58"/mds_client.c#L95230las>30_edown_writat_c#qL863"="sr__g,ala>);1"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/mds_client.c#L952" i"ds_c143h201.1L921"22dcass="l )> a h30_6m4.>22m30946" class=" cstrncpy 30946>30_6lock1.1L921"22dcass="l )> a h30_7m4.>22m30cap_lock" cl154e_infoala30cap>30_equest_path_attr=seatL863">"86sath ds_client.id.1L943" handle5replLstid nam4.lld resul2 nawait_requests waiting for requests_target_sessiop201.1L921"22dcass="l )> a h30_8m4.>22m30cap_lock" cl1578ass="sr130cap>30_s="sr14>ceph_caple32_="sr__g,ala>);1wait_for_complet_c#_tisss_client.id.1L943"wait_for_complet_c#_tisss_c863">"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/iafe_umout;_waiterta> eph_inodshmutafe_umout;_waitert2"22t4.1L921"21H_NOSNAPf">s)s_cap_rel30_9m4.>22m30lass="sref">1499ass"srr.30las>30_ _info_target_seslockinfo_targetseatmget_sessiopath f href15>li>1574/mf_cli22>"86ssutexs_cl 158"/ rgt;ent.c#L952" id.L rgt;" cl>"86ssutexs_cl 158"/optcapslient.id.1L943"optcapsli22>"86ssutexs_cl 158"/mout;_tisss_client.id.1L943"mout;_tisss_c" clas_get_sessiopath HZref15>li>1574/mHZlare201.1L921"22dcass="l )> a h3052m4.>22m30lass="sref">1499assgoto+30las>30lalock1.1L921"22dcass="l )> a h3051m4.>22m30cap_lock" code=drop"156930cap>30lss="sr15.1L86adest_c#s not a> authority probletear down remaining requests *s_cli2131.1L921"21sessiopino rgt; a h3052m4.>22m30946de=drop"1569ass="sr1530946>30lalareadcs_"86sath "86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/mds_client.c#L952" i"ds_c143h201.1L921"22dcass="l )> a h3053m4.>22m30946" class=l"sr15">old_c30946>30lala>(strumutexeunlockwhile (pL863">"86sath r1 5_client.id.1 ir. "86s57h951" clasbaath __get_olde>t_r1 5_client.id.1 i__get_olde>t_r1 863">="sr__gpathlenali>1574/mds_cli222NN187.1L921"21f14men>148h )> a h3054m4.>22m30cap_lock" c>156"srr.lean30cap>30lalareadcs_"86sath ds_client.id.1L943" handle5replLstid nam4.lld resul2 nawait_requests tissd out onotrge"+cexllu_target_sessiopt4.1L921"21H_NOSNAPf">s)s_cap_rel30l5m4.>22m30lass="sref">14.5assst_pa30las>30ledown_writat_c#qL863"href1ph_tseatL863">"86sath r1 5_client.id.1 ir. "86s>"86ssutexs_cl 158"/r_tida> eph_inodshmur_tid143h201.1L921"22dcass="l )> a h3056m4.>22m30lass="sref">1536ass"srr.30las>30lpath upduto_snap_trat_c#qL86951" clasbaath __unregistei_requestent.c#L952" id.__unregistei_request863">="sr__gpathlenali>1574/mds_cli22mmget_sessiopath r1 5_client.id.1 ir. "86s201.1L921"22dcass="l )> a h3057m4.>22m30cap_lock" cl1487asssssss30cap>30lequest_path_attr=seat}1.1L921"22dcass="l )> a h3058m4.>22m30cap_lock" cl1578asssssss30cap>30ls="sr14>ceph_}1.1L921"22dcass="l )> a h3059m4.>22m30lass="sref">1499ass"srr.30las>30l _info_ta="sr__g,ala>);1"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/mds_client.c#L952" i"ds_c143h201.1L921"22dcass="l )> a h3062m4.>22m30946" class=o else5_clien30946>3094 _info_ta="sr__g,ala>);1ds_client.id.1L943" handle5replLstid nam4.lld resul2 nawait_requests do56_target_sessiop201.1L921"22dcass="l )> a h3061m4.>22m30cap_lock" cl1535assst_pa30cap>309sry }1.1L921"22dcass="l )> a h3092m4.>22m30cap_lock" code=drop"156930cap>309alare1.1L921"22dcass="l )> a h3063m4.>22m30cap58"/mds_client.c#L95230cap>3093la>( notificatioi8that ourds_cli22m4.1L921"22m_NOSNAPf">s)s_cap_rel3064m4.>22m30cap_lock" cl"sr15">old_c30cap>3094la>( notificatioi8that ouras_callsd before mout;eis ro, and before det;r_cs are torn down._cli22m4.1L921"22m_NOSNAPf">s)s_cap_rel3065m4.>22m30lass="sref"" cstrncpy 30las>309edown notificatioi8that our * (hmm, docs this still race with 5ew lookups?)_cli22m4.1L921"22m_NOSNAPf">s)s_cap_rel3066m4.>22m30946" class=" cstrncpy 30946>309path notificatioi8that our ss_cli2131.1L921"21sessiopino rgt; a h3067m4.>22m30cap_lock" cl154e_infoala30cap>309equestarget_sessiophandleL951"sesc_pre_umout;ent.c#L952" id.L951"sesc_pre_umout;863">ioid.1L951" clasbaath i>15sess rgt;ent.c#L952" id.L951"sess rgt;>"86ss="sr__g,ala>);1li>1574/mds_cli2221.1L921"22dcass="l )> a h3068m4.>22m30cap_lock" cl1578ass>156430cap>309s="sr87.1L921"21f14men>148h )> a h3099m4.>22m30lass="sref">1499ass>153"30las>309 _info_ta="sr__g,ala>);1ds_client.id.1L943" handle5replLstid nam4.lld resul2 napre_umout;_target_sessiop201.1L921"22dcass="l )> a h3072m4.>22m30cap_lock" cl1514ass9ass>30cap>30calareadcs_li>1574/mds_cli22>"86ssutexs_cl 158"/itoppd reient.id.1L943"itoppd r143h 7h101.1L921"22dcass="l )> a h3071m4.>22m30cap_lock" cl1531ass"srr.30cap>30c1lare1.1L921"22dcass="l )> a h3072m4.>22m30cap_lock" code=drop"156930cap>30calareadcs_="sr__gpathlenali>1574/mds_cli22201.1L921"22dcass="l )> a h3073m4.>22m30946" class=enala> eph_in30946>30cala>(strumuteL863">"86sath L951"flush_dirty_capslient.id.1L943"pmdesflush_dirty_caps863">="sr__gpathlenali>1574/mds_cli22201.1L921"22dcass="l )> a h3074m4.>22m30cap58"/mds_client.c#L95230cap>30c4la>(strumuteL863">"86sath wait_requests5_client.id.1 iwait_requests863">="sr__gpathlenali>1574/mds_cli22201.1L921"22dcass="l )> a h3075m4.>22m30lass="sref"" cstrncpy 30las>30c2"21L6.1L921"21eepath ep1> 30c6m4.>22m30946cexpected, eer30946>30c6lockt_c#qL86Lnotificatioi8that ourds_cli22m4.1L921"22m_NOSNAPf">s)s_cap_rel3077m4.>22m30946" class=enala> eph_in30946>30ceques notificatioi8that our * wait for reply handlers to drop their request 21"s and_cli22m4.1L921"22m_NOSNAPf">s)s_cap_rel3078m4.>22m30cap_lock" c>156!"srr.lea30cap>30c8ques notificatioi8that our * their inlen/dcache 21"s_cli22m4.1L921"22m_NOSNAPf">s)s_cap_rel3079m4.>22m30lass="sref">1499assl154e30las>30c9ques notificatioi8that our *s_cli2131.1L921"21sessiopino rgt; a h3082m4.>22m30cap_lock" cl1514ass9ass>30cap>30cala>(strumuteL863">"86sath L951"msgrsflushent.c#L952" id.L951"ssgrsflush863">201.1L921"22dcass="l )> a h3081m4.>22m30cap_lock" cl1531asso els30cap>30csry }1.1L921"22dcass="l )> a h3082m4.>22m30lass="sref">1492asssssss30las>30calare1.1L921"22dcass="l )> a h3083m4.>22m30946" class="1543assl153130946>30c3la>( notificatioi8that ourds_cli22m4.1L921"22m_NOSNAPf">s)s_cap_rel3084m4.>22m30cap_lock" cl1514asssssss30cap>30c4la>( notificatioi8that ouras_wait for all write 48herequests to flush._cli22m4.1L921"22m_NOSNAPf">s)s_cap_rel3085m4.>22m30lass="sref">14.5assode=d30las>30cedown notificatioi8that our *s_cli2131.1L921"21sessiopino rgt; a h3086m4.>22m30lass="sref"o else5_clien30las>30c6lockstat_c target_sessiophandlewait_untafe_requests5_client.id.1 iwait_untafe_requests863">ioid.1L951" clasbaath i>15sess rgt;ent.c#L952" id.L951"sess rgt;>"86ss="sr__g,ala>);1li>1574/mds_cli22mmget_sessiopath ucap_lock" c1574/mu6alareat_sessiophandlewant_tida> eph_inodshmuwant_tidli2221.1L921"22dcass="l )> a h3087m4.>22m30cap_lock" cl1487assst_pa30cap>30c7="sr87.1L921"21f14men>148h )> a h3088m4.>22m30cap_lock" code=drop"156930cap>30cs="sr14>ceph_ioid.1L951" clasbaath i>15sessrequestent.c#L952" id.L951"sessrequest>"86ss="sr__g,ala>);1rh 5_client.id.1 ir. "86s57Ls_cap_cexpectedNULLf"srr.leanup_caNULL143h,ss="sr__g,ala>);1nextrh 5_client.id.1 inextrh li2201.1L921"22dcass="l )> a h3089m4.>22m30lass="sref"enala> eph_in30las>30c _info_taioid.1L951" clasbaath rb_nlen5_client.id.1 irb_nlen>"86ss="sr__g,ala>);1#_="srr.leanup_cnli2201.1L921"22dcass="l )> a h3092m4.>22m30_cl58"/mds_client.c#L95230_cl>30_clare1.1L921"22dcass="l )> a h3091m4.>22m30cap_lock" c3ass="sr14f">30cap>30_sry essiopuLs_cap_cexpected"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/mds_client.c#L952" i"ds_c143h201.1L921"22dcass="l )> a h3092m4.>22m30cap_lock" cl1562ass="sr130cap>30_alareadcs_ eph_inodshmuwant_tidli22201.1L921"22dcass="l )> a h3093m4.>22m30cap58"/mds_client.c#L95230cap>30_3la>( "sr__g,ala>);1rhstarclient.id.1L943"rhstarcla>(:1.1L921"22dcass="l )> a h3094m4.>22m30cap_lock" cl"sr15">old_c30cap>30_4la>(strumuteL863">"86sath r1 5_client.id.1 ir. "86s57h951" clasbaath __get_olde>t_r1 5_client.id.1 i__get_olde>t_r1 863">="sr__gpathlenali>1574/mds_cli22201.1L921"22dcass="l )> a h3095m4.>22m30lass="sref"" cstrncpy 30las>30_edown_writat_while (L863">"86sath r1 5_client.id.1 ir. "86s5&86ss&86sshL863">"86sath r1 5_client.id.1 ir. "86s>"86ssutexs_cl 158"/r_tida> eph_inodshmur_tid143h5<7h951" clasbaath want_tida> eph_inodshmuwant_tidli222187.1L921"21f14men>148h )> a h3096m4.>22m30946cexpected, 5>l30946>30_path upduto_snap_tras not a> authority problefind next request *s_cli2131.1L921"21sessiopino rgt; a h3097m4.>22m30946" class=enala> eph_in30946>30_equest_path_attr=seatL863">"86sath #_="srr.leanup_cnli2257h951" clasbaath rb_next5_client.id.1 irb_next863">"86ss="sr__gpathlenar1 5_client.id.1 ir. "86s>"86ssutexs_cl 158"/r_nlen5_client.id.1 ir_nlen>"86201.1L921"22dcass="l )> a h3098m4.>22m30cap_lock" c="sr14158"/md30cap>30_s="sr14>ceph_capl< >osiopL863">"86sath #_="srr.leanup_cnli2221.1L921"22dcass="l )> a h3099m4.>22m30lasode=drop"1569ass="sr130las>30_ _info_targetth_attr=seatL863">"86sath nextrh 5_client.id.1 inextrh li2257h951" clasbaath rb_et;ry5_client.id.1 irb_et;ry863">="sr__gpathlena#_="srr.leanup_cnli22,_ioid.1L951" clasbaath i>15sessrequestent.c#L952" id.L951"sessrequest>"86mmget_sessiopath r_nlen5_client.id.1 ir_nlen>"86201.1L921"22dcass="l )> a h3122m4.>22m3122m4de=drop"1569ass="sr13122m>310">old_capala>) {nnnnnelse1.1L921"22dcass="l )> a h3101m4.>22m312ap_lock" c3ass="sr14f">312ap>310ss="sr15.1L86adest_c#ttr=seatL863">"86sath nextrh 5_client.id.1 inextrh li2257h951" clasbaath NULLf"srr.leanup_caNULL143h01.1L921"22dcass="l )> a h3122m4.>22m312ap_lock" cl1562ass="sr1312ap>310alareadcs_"86sath r1 5_client.id.1 ir. "86s>"86ssutexs_cl 158"/r_op5_client.id.1 ir_op"86s5&86ss s_cap_cexpectedCEPH_MDS_OP_WRITE5_client.id.1 iCEPH_MDS_OP_WRITEli222N187.1L921"21f14men>148h )> a h3123m4.>22m312ap58"/mds_client.c#L952312ap>310ala>(strumutexeunlocksnap_tras not a> authority problewrite op *s_cli2131.1L921"21sessiopino rgt; a h3124m4.>22m312ap_lock" cl"sr15">old_c312ap>310alareadcs_"86sath L951"sesc_get_requestent.c#L952" id.L951"sesc_get_request863">="sr__gpathlenar1 5_client.id.1 ir. "86s201.1L921"22dcass="l )> a h3125m4.>22m312ass="sref"" cstrncpy 312as>310edown_writat_c#qL863"""""""""siopL863">"86sath nextrh 5_client.id.1 inextrh li2221.1L921"22dcass="l )> a h3126m4.>22m31246cexpected, 5>l31246>310path upduto_snap_trat_c#qL86pppppprg="sr__gpathlenaL951"sesc_get_requestent.c#L952" id.L951"sesc_get_request863">="sr__gpathlenanextrh 5_client.id.1 inextrh li22201.1L921"22dcass="l )> a h3127m4.>22m31246" class=enala> eph_in31246>310equest_path_attr=seath i>15s="sr__g,ala>);1"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/mds_client.c#L952" i"ds_c143h201.1L921"22dcass="l )> a h3128m4.>22m312ap_lock" c="sr14158"/md312ap>310s="sr14>ceph_caple32_seath iget_sessiopath ds_client.id.1L943" handle5replLstid nam4.lld resul2 nawait_untafe_requests _wait one"+cexllu (wante"+cexllu)_target_sessiopt4.1L921"21H_NOSNAPf">s)s_cap_rel3129m4.>22m312asode=drop"1569ass="sr1312as>310 _info_target_seslockinfo_targ="sr__gpathlenar1 5_client.id.1 ir. "86s>"86ssutexs_cl 158"/r_tida> eph_inodshmur_tid143htat_sessiophandlewant_tida> eph_inodshmuwant_tidli22201.1L921"22dcass="l )> a h3112m4.>22m31cap_lock" cttrequest_pat31cap>311">old_capala>) {n< >onfo_targ="sr__gpathlenawait_for_complet_c#5_client.id.1 iwait_for_complet_c#863">"86ss="sr__gpathlenar1 5_client.id.1 ir. "86s>"86ssutexs_cl 158"/r_tafe_complet_c#5_client.id.1 ir_tafe_complet_c#li22201.1L921"22dcass="l )> a h3111m4.>22m31cap_lock" c3ass="sr14f">31cap>311ss="sr15.1L86adest_c#ttr=seatL863">"86sath "86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/mds_client.c#L952" i"ds_c143h201.1L921"22dcass="l )> a h3112m4.>22m31enala> eph_inodshmutext_31ena>311alareadcs_="sr__gpathlenar1 5_client.id.1 ir. "86s201.1L921"22dcass="l )> a h3113m4.>22m31cap58"/mds_client.c#L95231cap>311ala>(strumutexeunlocksnap_trasiop!="sr__gpathlenanextrh 5_client.id.1 inextrh li2221.1L921"22dcass="l )> a h3114m4.>22m31cap_lock" c>156"srr.lean31cap>311alareadcs_22m31lass="sref">14.5assst_pa31las>311edown_writat_c#qL863"""""""""siopL863">"86sath RB_EMPTY_NODE5_client.id.1 iRB_EMPTY_NODE863">"86ss="sr__gpathlenanextrh 5_client.id.1 inextrh li22>"86ssutexs_cl 158"/r_nlen5_client.id.1 ir_nlen>"862N187.1L921"21f14men>148h )> a h3116m4.>22m31lass="sref">1536asslps_c31las>311path upduto_snap_trat_c#qL86pppppprg= not a> authority problenext request waheremoved from tree *s_cli2131.1L921"21sessiopino rgt; a h31c7m4.>22m31cap_lock" cl1487ass="sr131cap>311equest_path_attr=seath i>15s#qL86666s_cap_cexpected i>15sesc_put_requestent.c#L952" id.L951"sesc_put_request863">="sr__gpathlenanextrh 5_client.id.1 inextrh li22201.1L921"22dcass="l )> a h3118m4.>22m31946" class="1548ass="sr131946>311s="sr14>ceph_caple32_seath iiiiiiiiigotog="sr__gpathlenar1starclient.id.1L943"rhstarcla>(01.1L921"22dcass="l )> a h3119m4.>22m31lass="sref">1499assl154e31las>311 _info_target_seslockinfo}1.1L921"22dcass="l )> a h3122m4.>22m31lass="sref">1499ass>153631las>312">old_capala>) {n< >onfo_targ="sr__gpathlena i>15sesc_put_requestent.c#L952" id.L951"sesc_put_request863">="sr__gpathlenanextrh 5_client.id.1 inextrh li2220ras not a> authority problewon"+c9;tigo away *s_cli2131.1L921"21sessiopino rgt; a h3121m4.>22m31cap7ala> spa1441ass="sr131cap>312ss="sr15.1L86adest_c#}1.1L921"22dcass="l )> a h3122m4.>22m31las7ala> spa144lass="sr131las>312alareadcs_"86sath r1 5_client.id.1 ir. "86s57h951" clasbaath nextrh 5_client.id.1 inextrh li2201.1L921"22dcass="l )> a h3123m4.>22m31"857ala> spa1573ass="sr131"85>31lala>(strumute}1.1L921"22dcass="l )> a h3124m4.>22m31las7ala> spa1572ass="sr131las>31l4la>(strumuteL863">"86sath "86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/mds_client.c#L952" i"ds_c143h201.1L921"22dcass="l )> a h3125m4.>22m319467ala> spa144lass="sr131946>31ledown_writat_s_cap_cexpectedds_client.id.1L943" handle5replLstid nam4.lld resul2 nawait_untafe_requests do56_target_sessiop201.1L921"22dcass="l )> a h3126m4.>22m31cap7ala> spa144lass="sr131cap>31l6lock}1.1L921"22dcass="l )> a h3127m4.>22m31cap_lock" cl1487asssssss31cap>31leques1.1L921"22dcass="l )> a h31l8m4.>22m31cap_lock" cl1578asssssss31cap>31ls="srtarget_sessiophandleL951"sesc_synhref15>li>1574/mL951"sesc_synh863">ioid.1L951" clasbaath i>15sess rgt;ent.c#L952" id.L951"sess rgt;>"86ss="sr__g,ala>);1li>1574/mds_cli2221.1L921"22dcass="l )> a h3129m4.>22m31"+c58"/mds_client.c#L95231"+c>312 87.1L921"21f14men>148h/mdsgt; a h3132m4.>22m31lass="sref">1499ass>153631las>313ala>(strumuteL863">"86sath ucap_lock" c1574/mu6alareat_sessiophandlewant_tida> eph_inodshmuwant_tidli22tat_sessiophandlewant_flushent.c#L952" id.want_flushli2201.1L921"22dcass="l )> a h3131m4.>22m31cap_lock" cl1531ass>153631cap>3131lare1.1L921"22dcass="l )> a h3132m4.>22m31lass="sref">1492asssssss31las>313alareadcs_li>1574/mf_cli22>"86ssutexs_cl 158"/mout;_statelient.id.1L943"mout;_state"86s57= s_cap_cexpectedCEPH_MOUNT_SHUTDOWNent.c#L952" id.CEPH_MOUNT_SHUTDOWNli2221.1L921"22dcass="l )> a h31l3m4.>22m31946" class="1543assl153131946>313ala>(strumutexeunlockreturn01.1L921"22dcass="l )> a h3134m4.>22m31cap_lock" cl1514asssssss31cap>31l4la>(1.1L921"22dcass="l )> a h3135m4.>22m31lass="sref">14.5assode=d31las>313edown_writat_s_cap_cexpectedds_client.id.1L943" handle5replLstid nam4.lld resul2 nasynh_target_sessiop201.1L921"22dcass="l )> a h31l6m4.>22m31lass="sref"o else5_clien31las>3136lockt_c#qL86L863">"86sath "86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/mds_client.c#L952" i"ds_c143h201.1L921"22dcass="l )> a h31l7m4.>22m31cap_lock" cl1487ass="sr131cap>313ockt_c#qL863">"86ssutexelockwant_tida> eph_inodshmuwant_tidli2257hL863">"86sath li>1574/mds_cli22>"86ssutexs_cl 158"/l5>t_tida> eph_inodshmu15>t_tid143h01.1L921"22dcass="l )> a h31l8m4.>22m31cap_lock" cl1578ass="sr131cap>313s="sr14>ceph_L863">"86sath want_flushent.c#L952" id.want_flushli2257hL863">"86sath li>1574/mds_cli22>"86ssutexs_cl 158"/Lapiflush_th 5_client.id.1 iLapiflush_th 143h01.1L921"22dcass="l )> a h31l9m4.>22m31cap_lock" code=drop"156931cap>313 _info_ta="sr__g,ala>);1"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/mds_client.c#L952" i"ds_c143h201.1L921"22dcass="l )> a h3142m4.>22m31_cl58"/mds_client.c#L95231_cl>3144 _info_ta="sr__g,ala>);1ds_client.id.1L943" handle5replLstid nam4.lld resul2 nasynh wantetrge"+cexlld flush_th e"+cexllp_target_sessioptat_sessiophandlewant_tida> eph_inodshmuwant_tidli22tat_sessiophandlewant_flushent.c#L952" id.want_flushli22201.1L921"22dcass="l )> a h3141m4.>22m31cap_lock" c3ass="sr14f">31cap>3141lare1.1L921"22dcass="l )> a h31_2m4.>22m31cap_lock" cl1562ass="sr131cap>314alareadcs_="sr__gpathlenali>1574/mds_cli22201.1L921"22dcass="l )> a h31_3m4.>22m31946" class=enala> eph_in31946>3142"2194.1L921"21H_NOSNAPf">s)s_cap_rel31_4m4.>22m31cap_lock" c="sr15ve_cap(31cap>3144la>(strumuteL863">"86sath wait_untafe_requests5_client.id.1 iwait_untafe_requests863">="sr__gpathlenali>1574/mds_cli22tat_sessiophandlewant_tida> eph_inodshmuwant_tidli22201.1L921"22dcass="l )> a h31_5m4.>22m31las58"/mds_client.c#L95231las>314edown_writat_s_cap_cexpectedwait_evgt;ent.c#L952" id.wait_evgt;863">="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/Lapiflush_ rsw 5_client.id.1 iLapiflush_ rsw 863"tat_sessiophandlecheck_Lapiflush5_client.id.1 iLheck_Lapiflush863">="sr__gpathlenali>1574/mds_cli22tat_sessiophandlewant_flushent.c#L952" id.want_flushli222201.1L921"22dcass="l )> a h31_6m4.>22m31946" class=" cstrncpy 31946>3146lock}1.1L921"22dcass="l )> a h31_7m4.>22m31cap_lock" cl154e_infoala31cap>314eques1.1L921"22dcass="l )> a h31_8m4.>22m31cap_lock" cl1578ass="sr131cap>3148ques notificatioi8that ourds_cli22m4.1L921"22m_NOSNAPf">s)s_cap_rel31_9m4.>22m31lass="sref">1499ass"srr.31las>3149ques notificatioi8that our * oide sioall ioi_caps are idosed, orewe force unmout;86li22m4.1L921"22m_NOSNAPf">s)s_cap_rel3152m4.>22m31lass="sref">1499assgoto+31las>31lalock notificatioi8that our *s_cli2131.1L921"21sessiopino rgt; a h3151m4.>22m31cap_lock" code=drop"156931cap>31lss="sstat_c t_sessiophandleboolent.c#L952" id.boollareat_sessiophandledo56_idos_ rsioi_capslient.id.1L943"do56_idos_ rsioi_caps863">ioid.1L951" clasbaath i>15sess rgt;ent.c#L952" id.L951"sess rgt;>"86ss="sr__g,ala>);1li>1574/mds_cli2221.1L921"22dcass="l )> a h3152m4.>22m31946de=drop"1569ass="sr1531946>31lalare87.1L921"21f14men>148h/mdsgt; a h3153m4.>22m31946" class=l"sr15">old_c31946>31lala>(strumutein1L951" clasbaath iref15>li>1574/mili22tat_sessiophandle#_="srr.leanup_cnli2257h0;1.1L921"22dcass="l )> a h3154m4.>22m31cap_lock" c>156"srr.lean31cap>3154la>(1.1L921"22dcass="l )> a h31l5m4.>22m31lass="sref">14.5assst_pa31las>31ledown_writat_siop="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/f href15>li>1574/mf_cli22>"86ssutexs_cl 158"/mout;_statelient.id.1L943"mout;_state"86s57= s_cap_cexpectedCEPH_MOUNT_SHUTDOWNent.c#L952" id.CEPH_MOUNT_SHUTDOWNli2221.1L921"22dcass="l )> a h31l6m4.>22m31lass="sref">1536ass"srr.31las>31lpath upduto_snap_trareturn s_cap_cexpectedoideent.c#L952" id.oide143h01.1L921"22dcass="l )> a h3157m4.>22m31cap_lock" cl1487asssssss31cap>315eques1.1L921"22dcass="l )> a h3158m4.>22m31cap_lock" cl1578asssssss31cap>315s="sr14>ceph_L863">"86sath "86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/mds_client.c#L952" i"ds_c143h201.1L921"22dcass="l )> a h3159m4.>22m31lass="sref">1499ass"srr.31las>31l _info_tafor p="sr__gpathlenairef15>li>1574/mili2257h0;L951" clasbaath iref15>li>1574/mili225<_s_cap_cexpectedli>1574/mds_cli22>"86ssutexs_cl 158"/maxsioi_capslient.id.1L943"maxsioi_caps143h;L951" clasbaath iref15>li>1574/mili22++21.1L921"22dcass="l )> a h3162m4.>22m31946" class=o else5_clien31946>316">old_capala>) {n< >osiop="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/ioi_capslient.id.1L943"ioi_caps143h[951" clasbaath iref15>li>1574/mili22]21.1L921"22dcass="l )> a h3161m4.>22m31cap_lock" cl1535assst_pa31cap>316ss="sr15.1L86adest_c#ttr=seatL863">"86sath n_="srr.leanup_cnli22++01.1L921"22dcass="l )> a h3192m4.>22m31cap_lock" code=drop"156931cap>316alareadcs_"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/mds_client.c#L952" i"ds_c143h201.1L921"22dcass="l )> a h3163m4.>22m31cap58"/mds_client.c#L95231cap>316ala>(strumutereturn s_cap_cexpected#_="srr.leanup_cnli22577h0;1.1L921"22dcass="l )> a h3164m4.>22m31cap_lock" cl"sr15">old_c31cap>316alare}1.1L921"22dcass="l )> a h3165m4.>22m31lass="sref"" cstrncpy 31las>3162"21L6.1L921"21eepath ep1> 3166m4.>22m31946" class=" cstrncpy 31946>319path notificatioi8that ourds_cli22m4.1L921"22m_NOSNAPf">s)s_cap_rel3167m4.>22m31cap_lock" cl154e_infoala31cap>316eques notificatioi8that our *_callsd after sbeis ro._cli22m4.1L921"22m_NOSNAPf">s)s_cap_rel3168m4.>22m31cap_lock" cl1578ass>156431cap>3168ques notificatioi8that our *s_cli2131.1L921"21sessiopino rgt; a h3199m4.>22m31lass="sref">1499ass>153"31las>319 target_sessiophandleL951"sesc_idosesioi_capslient.id.1L943"L951"sesc_idosesioi_caps863">ioid.1L951" clasbaath i>15sess rgt;ent.c#L952" id.L951"sess rgt;>"86ss="sr__g,ala>);1li>1574/mds_cli2221.1L921"22dcass="l )> a h3172m4.>22m31cap_lock" cl1514ass9ass>31cap>31calare87.1L921"21f14men>148h/mdsgt; a h3171m4.>22m31cap_lock" cl1531ass"srr.31cap>3171ry essiopuLioid.1L951" clasbaath i>1548h/ioi_capent.c#L952" id.L951"sessioi_cap>"86ss="sr__g,ala>);1ioi_capent.c#L952" id.ioi_cap>"86;1.1L921"22dcass="l )> a h3172m4.>22m31cap_lock" code=drop"156931cap>31calareadcs_li>1574/mili22;1.1L921"22dcass="l )> a h3173m4.>22m31946" class=enala> eph_in31946>31cala>(strumuteioid.1L951" clasbaath i>15fss rgt;ent.c#L952" id.L951"fss rgt;" clasbasessioiclas,af href15>li>1574/mf_cli2257hL863">"86sath li>1574/mds_cli22>"86ssutexs_cl 158"/f href15>li>1574/mf_cli2201.1L921"22dcass="l )> a h3174m4.>22m31cap58"/mds_client.c#L95231cap>31c4la>(strumuteunsignsd long s_cap_cexpectedoisss_client.id.1L943"tisss_c" cla7hL863">"86sath f href15>li>1574/mf_cli22>"86ssutexs_cl 158"/ rgt;ent.c#L952" id.L rgt;" cl>"86ssutexs_cl 158"/optcapslient.id.1L943"optcapsli22>"86ssutexs_cl 158"/mout;_tisss_client.id.1L943"mout;_tisss_c" clas_get_sessiopath HZref15>li>1574/mHZlare01.1L921"22dcass="l )> a h3175m4.>22m31lass="sref"" cstrncpy 31las>31c2"21L6.1L921"21eepath ep1> 31c6m4.>22m31946cexpected, eer31946>3176lockt_c#qL86L863">"86sath ds_client.id.1L943" handle5replLstid nam4.lld resul2 naidosesioi_caps_target_sessiop201.1L921"22dcass="l )> a h3177m4.>22m31946" class=enala> eph_in31946>317eques1.1L921"22dcass="l )> a h3178m4.>22m31cap_lock" c>156!"srr.lea31cap>317s="sr14>ceph_L not a> authority probleidose ioi_caps *s_cli2131.1L921"21sessiopino rgt; a h3179m4.>22m31lass="sref">1499assl154e31las>317 _info_ta="sr__g,ala>);1"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/mds_client.c#L952" i"ds_c143h201.1L921"22dcass="l )> a h3182m4.>22m31cap_lock" cl1514ass9ass>31cap>31cala>(strumutefor p="sr__gpathlenairef15>li>1574/mili2257h0;L951" clasbaath iref15>li>1574/mili225<_s_cap_cexpectedli>1574/mds_cli22>"86ssutexs_cl 158"/maxsioi_capslient.id.1L943"maxsioi_caps143h;L951" clasbaath iref15>li>1574/mili22++2187.1L921"21f14men>148h )> a h3181m4.>22m31cap_lock" cl1531asso els31cap>318ss="sr15.1L86adest_c#s"sr__g,ala>);1ioi_capent.c#L952" id.ioi_cap>"8657h951" clasbaath __L951"lookup548h/ioi_capent.c#L952" id.__L951"lookup548h/ioi_cap863">="sr__gpathlenali>1574/mds_cli22tat_sessiophandleiref15>li>1574/mili22201.1L921"22dcass="l )> a h3182m4.>22m31lass="sref">1492asssssss31las>318alareadcs_"8621.1L921"22dcass="l )> a h3183m4.>22m31946" class="1543assl153131946>318ala>(strumutexeunlocksnap_tracontinue01.1L921"22dcass="l )> a h3184m4.>22m31cap_lock" cl1514asssssss31cap>318alareadcs_"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/mds_client.c#L952" i"ds_c143h201.1L921"22dcass="l )> a h3185m4.>22m31lass="sref">14.5assode=d31las>318edown_writat_c#qL863"="sr__g,ala>);1"86ss="sr__gpathlenaioi_capent.c#L952" id.ioi_cap>"86>"86ssutexs_cl 158"/i_mds_client.c#L952" ii_mds_c143h201.1L921"22dcass="l )> a h3186m4.>22m31lass="sref"o else5_clien31las>318path upduto_snap_tras51" clasbaath __Ldosesioi_capent.c#L952" id.__Ldosesioi_cap863">="sr__gpathlenali>1574/mds_cli22tat_sessiophandleioi_capent.c#L952" id.ioi_cap>"86201.1L921"22dcass="l )> a h3187m4.>22m31cap_lock" cl1487assst_pa31cap>318equest_path_attr=seatL863">"86sath "86ss="sr__gpathlenaioi_capent.c#L952" id.ioi_cap>"86>"86ssutexs_cl 158"/i_mds_client.c#L952" ii_mds_c143h201.1L921"22dcass="l )> a h3188m4.>22m31cap_lock" code=drop"156931cap>318s="sr14>ceph_caple32_951" clasbaath i>15put_48h/ioi_capent.c#L952" id.L951"put_48h/ioi_cap863">="sr__gpathlenaioi_capent.c#L952" id.ioi_cap>"86201.1L921"22dcass="l )> a h3189m4.>22m31lass="sref"enala> eph_in31las>318 _info_target_ses="sr__g,ala>);1"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/mds_client.c#L952" i"ds_c143h201.1L921"22dcass="l )> a h3192m4.>22m31_cl58"/mds_client.c#L95231_cl>319ala>(strumute}1.1L921"22dcass="l )> a h3191m4.>22m31cap_lock" c3ass="sr14f">31cap>31_sry essiopuLs_cap_cexpected"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/mds_client.c#L952" i"ds_c143h201.1L921"22dcass="l )> a h3192m4.>22m31cap_lock" cl1562ass="sr131cap>319alare1.1L921"22dcass="l )> a h3193m4.>22m31cap58"/mds_client.c#L95231cap>319ala>(strumuteL863">"86sath ds_client.id.1L943" handle5replLstid nam4.lld resul2 nawaiting for ioi_caps toeidose_target_sessiop201.1L921"22dcass="l )> a h3194m4.>22m31cap_lock" cl"sr15">old_c31cap>31_4la>(strumuteL863">"86sath wait_evgt;_tisss_client.id.1L943"wait_evgt;_tisss_c863">="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/ioi_cap_Ldosesw 5_client.id.1 iioi_cap_Ldosesw li22tat_sessiophandledo56_idos_ rsioi_capslient.id.1L943"do56_idos_ rsioi_caps863">="sr__g,ala>);1li>1574/mds_cli222t4.1L921"21H_NOSNAPf">s)s_cap_rel3195m4.>22m31lass="sref"" cstrncpy 31las>319edown_writat_c#qL863"href1ph_tses_cap_cexpectedoisss_client.id.1L943"tisss_c" cl201.1L921"22dcass="l )> a h3196m4.>22m31946cexpected, 5>l31946>3196lock1.1L921"22dcass="l )> a h3197m4.>22m31946" class=enala> eph_in31946>31_equest_path_as not a> authority probletear down remaining ioi_caps *s_cli2131.1L921"21sessiopino rgt; a h3198m4.>22m31cap_lock" c="sr14158"/md31cap>319s="sr14>ceph_L863">"86sath "86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/mds_client.c#L952" i"ds_c143h201.1L921"22dcass="l )> a h3199m4.>22m31lasode=drop"1569ass="sr131las>319 _info_tafor p="sr__gpathlenairef15>li>1574/mili2257h0;L951" clasbaath iref15>li>1574/mili225<_s_cap_cexpectedli>1574/mds_cli22>"86ssutexs_cl 158"/maxsioi_capslient.id.1L943"maxsioi_caps143h;L951" clasbaath iref15>li>1574/mili22++2187.1L921"21f14men>148h )> a h3222m4.>22m3222m4de=drop"1569ass="sr13222m>320">old_capala>) {nnnnnsiop="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/ioi_capslient.id.1L943"ioi_caps143h[951" clasbaath iref15>li>1574/mili22]2187.1L921"21f14men>148h )> a h3221m4.>22m322ap_lock" c3ass="sr14f">322ap>320ss="sr15.1L86adest_c#ttr=seatL863">"86sath ioi_capent.c#L952" id.ioi_cap>"8657h951" clasbaath get_ioi_capent.c#L952" id.get_ioi_cap863">="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/ioi_capslient.id.1L943"ioi_caps143h[951" clasbaath iref15>li>1574/mili22]201.1L921"22dcass="l )> a h3222m4.>22m322ap_lock" cl1562ass="sr1322ap>320alareadcs_"86sath __unregistei_ioi_capent.c#L952" id.__unregistei_ioi_cap863">="sr__gpathlenali>1574/mds_cli22tat_sessiophandleioi_capent.c#L952" id.ioi_cap>"86201.1L921"22dcass="l )> a h3223m4.>22m322ap58"/mds_client.c#L952322ap>320ala>(strumutexeunlocksnap_tras_cap_cexpected"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/mds_client.c#L952" i"ds_c143h201.1L921"22dcass="l )> a h3224m4.>22m322ap_lock" cl"sr15">old_c322ap>320alareadcs_"86sath "86ss="sr__gpathlenaioi_capent.c#L952" id.ioi_cap>"86>"86ssutexs_cl 158"/i_mds_client.c#L952" ii_mds_c143h201.1L921"22dcass="l )> a h3225m4.>22m322ass="sref"" cstrncpy 322as>320edown_writat_c#qL863"""""""""sutexs_cl 158"/remove_ioi_cap_Lapslient.id.1L943"remove_ioi_cap_Laps863">="sr__gpathlenaioi_capent.c#L952" id.ioi_cap>"86201.1L921"22dcass="l )> a h3226m4.>22m32246cexpected, 5>l32246>320path upduto_snap_trat_c#qL86L863">"86sath "86ss="sr__gpathlenaioi_capent.c#L952" id.ioi_cap>"86>"86ssutexs_cl 158"/i_mds_client.c#L952" ii_mds_c143h201.1L921"22dcass="l )> a h3227m4.>22m32246" class=enala> eph_in32246>320equest_path_attr=seath i>15s="sr__g,ala>);1 i>15put_48h/ioi_capent.c#L952" id.L951"put_48h/ioi_cap863">="sr__gpathlenaioi_capent.c#L952" id.ioi_cap>"86201.1L921"22dcass="l )> a h3228m4.>22m322ap_lock" c="sr14158"/md322ap>320s="sr14>ceph_caple32_seath iget_sessiopath "86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/mds_client.c#L952" i"ds_c143h201.1L921"22dcass="l )> a h3229m4.>22m322asode=drop"1569ass="sr1322as>320 _info_target_ses}1.1L921"22dcass="l )> a h3212m4.>22m32cap_lock" cttrequest_pat32cap>321ala>(strumute}1.1L921"22dcass="l )> a h3211m4.>22m32cap_lock" c3ass="sr14f">32cap>321sry essiopuLs_cap_cexpectedWARN_ONent.c#L952" id.WARN_ON863">!="sr__gpathlenalist_empty5_client.id.1 ilist_empty863">"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/Lapidelay_listent.c#L952" id.Lapidelay_list143h2201.1L921"22dcass="l )> a h3212m4.>22m32enala> eph_inodshmutext_32ena>321alareadcs_"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/mds_client.c#L952" i"ds_c143h201.1L921"22dcass="l )> a h3213m4.>22m32cap58"/mds_client.c#L95232cap>3212"2194.1L921"21H_NOSNAPf">s)s_cap_rel3214m4.>22m32cap_lock" c>156"srr.lean32cap>3214la>(strumuteL863">"86sath L951"cleanup_empty_realmslient.id.1L943"L951"cleanup_empty_realms863">="sr__g,ala>);1li>1574/mds_cli22201.1L921"22dcass="l )> a h3215m4.>22m32lass="sref">14.5assst_pa32las>3212"21L6.1L921"21eepath ep1> 3216m4.>22m32lass="sref">1536asslps_c32las>3216lockt_c#qL86L863">"86sath cancelidelayed_work_synhref15>li>1574/mLancelidelayed_work_synh863">"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/delayed_worklient.id.1L943"delayed_workli2220_L not a> authority probleiancel tissr *s_cli2131.1L921"21sessiopino rgt; a h32c7m4.>22m32cap_lock" cl1487ass="sr132cap>321eques1.1L921"22dcass="l )> a h3218m4.>22m32946" class="1548ass="sr132946>321s="sr14>ceph_L863">"86sath ds_client.id.1L943" handle5replLstid nam4.lld resul2 nastoppep_target_sessiop201.1L921"22dcass="l )> a h3219m4.>22m32lass="sref">1499assl154e32las>321 }1.1L921"22dcass="l )> a h3222m4.>22m32lass="sref">1499ass>153632las>322clare1.1L921"22dcass="l )> a h3221m4.>22m32cap7ala> spa1441ass="sr132cap>322ss="sstat_c target_sessiophandleL951"sesc_stop5_client.id.1 iL951"sesc_stopdle5rioid.1L951" clasbaath i>15sess rgt;ent.c#L952" id.L951"sess rgt;>"86ss="sr__g,ala>);1li>1574/mds_cli2221.1L921"22dcass="l )> a h3222m4.>22m32las7ala> spa144lass="sr132las>322alare87.1L921"21f14men>148h/mdsgt; a h3223m4.>22m32"857ala> spa1573ass="sr132"85>322ala>(strumuteL863">"86sath ds_client.id.1L943" handle5replLstid nam4.lld resul2 nastop_target_sessiop201.1L921"22dcass="l )> a h3224m4.>22m32las7ala> spa1572ass="sr132las>32l4la>(strumuteL863">"86sath cancelidelayed_work_synhref15>li>1574/mLancelidelayed_work_synh863">"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/delayed_worklient.id.1L943"delayed_workli2220_L not a> authority probleiancel tissr *s_cli2131.1L921"21sessiopino rgt; a h3225m4.>22m329467ala> spa144lass="sr132946>322edown_writat_siop="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/ds_map5_client.id.1 ids_mapli2221.1L921"22dcass="l )> a h3226m4.>22m32cap7ala> spa144lass="sr132cap>322path upduto_snap_tras51" clasbaath L951"sesmapide.lloy5_client.id.1 iL951"sesmapide.lloy863">="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/ds_map5_client.id.1 ids_mapli22201.1L921"22dcass="l )> a h3227m4.>22m32cap_lock" cl1487asssssss32cap>322ockt_c#qL863">"86ssutexelockkfreeent.c#L952" id.kfree863">="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/ioi_capslient.id.1L943"ioi_caps143h201.1L921"22dcass="l )> a h3228m4.>22m32cap_lock" cl1578asssssss32cap>322s="sr14>ceph_L863">"86sath L951"caps_finalizeent.c#L952" id.L951"caps_finalize863">="sr__g,ala>);1li>1574/mds_cli22201.1L921"22dcass="l )> a h3229m4.>22m32"+c58"/mds_client.c#L95232"+c>322 }1.1L921"22dcass="l )> a h3232m4.>22m32lass="sref">1499ass>153632las>323clare1.1L921"22dcass="l )> a h3231m4.>22m32cap_lock" cl1531ass>153632cap>3231laretarget_sessiophandleL951"sesc_de.lloy5_client.id.1 iL951"sescide.lloy863">ioid.1L951" clasbaath i>15fss rgt;ent.c#L952" id.L951"fss rgt;" clasbasessioiclas,af href15>li>1574/mf_cli2221.1L921"22dcass="l )> a h3232m4.>22m32lass="sref">1492asssssss32las>323alare87.1L921"21f14men>148h/mdsgt; a h32l3m4.>22m32946" class="1543assl153132946>323ala>(strumuteioid.1L951" clasbaath i>15sess rgt;ent.c#L952" id.L951"sess rgt;>"86ss="sr__g,ala>);1li>1574/mds_cli22a7hL863">"86sath f href15>li>1574/mf_cli22>"86ssutexs_cl 158"/li>1574/mds_cli2201.1L921"22dcass="l )> a h3234m4.>22m32cap_lock" cl1514asssssss32cap>32l4la>(1.1L921"22dcass="l )> a h3235m4.>22m32lass="sref">14.5assode=d32las>323edown_writat_s_cap_cexpectedds_client.id.1L943" handle5replLstid nam4.lld resul2 nasescide.lloye"+cexp_target_sessioptat_sessiophandleli>1574/mds_cli22201.1L921"22dcass="l )> a h32l6m4.>22m32lass="sref"o else5_clien32las>3236lockt_c#qL86L863">"86sath L951"sesc_stop5_client.id.1 iL951"sesc_stopdle5rt_sessiophandleli>1574/mds_cli22201.1L921"22dcass="l )> a h32l7m4.>22m32cap_lock" cl1487ass="sr132cap>323eques1.1L921"22dcass="l )> a h32l8m4.>22m32cap_lock" cl1578ass="sr132cap>323s="sr14>ceph_L not a> authority probleflush han anyaconnectcap work with 21"erences toeus *s_cli2131.1L921"21sessiopino rgt; a h32l9m4.>22m32cap_lock" code=drop"156932cap>323 _info_ta="sr__g,ala>);1L951"ssgrsflushent.c#L952" id.L951"ssgrsflush863">201.1L921"22dcass="l )> a h3242m4.>22m32_cl58"/mds_client.c#L95232_cl>324clare1.1L921"22dcass="l )> a h3241m4.>22m32cap_lock" c3ass="sr14f">32cap>324sry essiopuLs_cap_cexpectedf href15>li>1574/mf_cli22>"86ssutexs_cl 158"/li>1574/mds_cli2257h951" clasbaath NULLf"srr.leanup_caNULL143h01.1L921"22dcass="l )> a h32_2m4.>22m32cap_lock" cl1562ass="sr132cap>324alareadcs_="sr__gpathlenali>1574/mds_cli22201.1L921"22dcass="l )> a h3243m4.>22m32946" class=enala> eph_in32946>324ala>(strumuteL863">"86sath ds_client.id.1L943" handle5replLstid nam4.lld resul2 nasescide.lloye"+cexp do56_target_sessioptat_sessiophandleli>1574/mds_cli22201.1L921"22dcass="l )> a h32_4m4.>22m32cap_lock" c="sr15ve_cap(32cap>324alare}1.1L921"22dcass="l )> a h32_5m4.>22m32las58"/mds_client.c#L95232las>3242"21L6.1L921"21eepath ep1> 32_6m4.>22m32946" class=" cstrncpy 32946>3246lock1.1L921"22dcass="l )> a h32_7m4.>22m32cap_lock" cl154e_infoala32cap>324eques notificatioi8that ourds_cli22m4.1L921"22m_NOSNAPf">s)s_cap_rel32_8m4.>22m32cap_lock" cl1578ass="sr132cap>3248ques notificatioi8that our * handle 48hemap update._cli22m4.1L921"22m_NOSNAPf">s)s_cap_rel32_9m4.>22m32lass="sref">1499ass"srr.32las>3249ques notificatioi8that our *s_cli2131.1L921"21sessiopino rgt; a h3252m4.>22m32lass="sref">1499assgoto+32las>32lalocktarget_sessiophandleL951"sesc_handle_map5_client.id.1 iL951"sesc_handle_mapdle5rioid.1L951" clasbaath i>15sess rgt;ent.c#L952" id.L951"sess rgt;>"86ss="sr__g,ala>);1li>1574/mds_cli22,_ioid.1L951" clasbaath i>15ssgent.c#L952" id.L951"ssg>"86ss="sr__g,ala>);1"8621.1L921"22dcass="l )> a h3251m4.>22m32cap_lock" code=drop"156932cap>32lss="s87.1L921"21f14men>148h/mdsgt; a h3252m4.>22m32946de=drop"1569ass="sr1532946>325alareadcs_old_c32946>325ala>(strumuteL863">"86sath ulass="sref"2" id.u3alareas_cap_cexpectedmaplepent.c#L952" id.maplep143h01.1L921"22dcass="l )> a h3254m4.>22m32cap_lock" c>156"srr.lean32cap>3254la>(strumutetarges="sr__g,ala>);1p5_client.id.1 ipli2257h951" clasbaath "86>"86ssutexs_cl 158"/frot;ent.c#L952" id.frot;>"86.sutexs_cl 158"/iov_baseent.c#L952" id.iov_base143h01.1L921"22dcass="l )> a h3255m4.>22m32lass="sref">14.5assst_pa32las>32ledown_writat_targes="sr__g,ala>);1enda> eph_inodshmuendli2257h951" clasbaath p5_client.id.1 ipli225+h951" clasbaath "86>"86ssutexs_cl 158"/frot;ent.c#L952" id.frot;>"86.sutexs_cl 158"/iov_lepent.c#L952" id.iov_lep143h01.1L921"22dcass="l )> a h3256m4.>22m32lass="sref">1536ass"srr.32las>32lpath upduto_ioid.1L951" clasbaath i>15sesmap5_client.id.1 iL951"sesmapdle5es="sr__g,ala>);1newmap5_client.id.1 inewmapli22,_s="sr__g,ala>);1oldmap5_client.id.1 ioldmap143h01.1L921"22dcass="l )> a h3257m4.>22m32cap_lock" cl1487asssssss32cap>3257ath upduto_ioid.1L951" clasbaath i>15fsida> eph_inodshmu i>15fsidlareas_cap_cexpectedfsida> eph_inodshmufsidlare01.1L921"22dcass="l )> a h3258m4.>22m32cap_lock" cl1578asssssss32cap>325s="sr14>ceph_in1L951" clasbaath erra> eph_inodshmuerrli2257h-951" clasbaath EINVALf"srr.leanup_caEINVALlare01.1L921"22dcass="l )> a h3259m4.>22m32lass="sref">1499ass"srr.32las>32l 1.1L921"22dcass="l )> a h3262m4.>22m32946" class=o else5_clien32946>3264 _info_ta="sr__g,ala>);1 i>15dea>);_needa> eph_inodshmu i>15dea>);_need863">"86ss="sr__gpathlenap5_client.id.1 ipli22tat_sessiophandleenda> eph_inodshmuendli22,_iizeof>="sr__gpathlenafsida> eph_inodshmufsidlare)+2*iizeof>="sr__gpathlenaulass="sref"2" id.u3alare)tat_sessiophandlebada> eph_inodshmubadli22201.1L921"22dcass="l )> a h3261m4.>22m32cap_lock" cl1535assst_pa32cap>326sry essiopuLs_cap_cexpected i>15dea>);_copy5_client.id.1 iL951"dea>);_copy863">"86ss="sr__gpathlenap5_client.id.1 ipli22ta"86ss="sr__gpathlenafsida> eph_inodshmufsidlare,_iizeof>="sr__gpathlenafsida> eph_inodshmufsidlare)201.1L921"22dcass="l )> a h3262m4.>22m32cap_lock" code=drop"156932cap>326alareadcs_ eph_inodshmu i>15check_fsid863">="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/f href15>li>1574/mf_cli22>"86ssutexs_cl 158"/ rgt;ent.c#L952" id.L rgt;" clta"86ss="sr__gpathlenafsida> eph_inodshmufsidlare)5<_021.1L921"22dcass="l )> a h3263m4.>22m32cap58"/mds_client.c#L95232cap>326ala>(strumuteeeeeeeeereturn01.1L921"22dcass="l )> a h3264m4.>22m32cap_lock" cl"sr15">old_c32cap>3264la>(strumuteL863">"86sath epochent.c#L952" id.epoch143h57h951" clasbaath L951"dea>);_lass="sref"2" id.L951"dea>);_la863">"86ss="sr__gpathlenap5_client.id.1 ipli22201.1L921"22dcass="l )> a h3265m4.>22m32lass="sref"" cstrncpy 32las>326edown_writat_s_cap_cexpectedmaplepent.c#L952" id.maplep143h57h951" clasbaath L951"dea>);_lass="sref"2" id.L951"dea>);_la863">"86ss="sr__gpathlenap5_client.id.1 ipli22201.1L921"22dcass="l )> a h3266m4.>22m32946" class=" cstrncpy 32946>3266lockt_c#qL86L863">"86sath ds_client.id.1L943" handle5replLstid nam4.lld resul2 nahandle_map epoche"+cexu lepe"+cexp_target_sessioptat_sessiophandleepochent.c#L952" id.epoch143h, (in1)s_cap_cexpectedmaplepent.c#L952" id.maplep143h201.1L921"22dcass="l )> a h3267m4.>22m32cap_lock" cl154e_infoala32cap>326eques1.1L921"22dcass="l )> a h3268m4.>22m32cap_lock" cl1578ass>156432cap>326s="sr14>ceph_L not a> authority probledo we need it? *s_cli2131.1L921"21sessiopino rgt; a h3299m4.>22m32lass="sref">1499ass>153"32las>326 _info_ta="sr__g,ala>);1L951"sonc_got5sesmap5_client.id.1 iL951"sonc_got5sesmap863">"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/f href15>li>1574/mf_cli22>"86ssutexs_cl 158"/ rgt;ent.c#L952" id.L rgt;" cl>"86ssutexs_cl 158"/soncref15>li>1574/mdoncli22tat_sessiophandleepochent.c#L952" id.epoch143h201.1L921"22dcass="l )> a h3272m4.>22m32cap_lock" cl1514ass9ass>32cap>3274 _info_ta="sr__g,ala>);1"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/mds_client.c#L952" i"ds_c143h201.1L921"22dcass="l )> a h3271m4.>22m32cap_lock" cl1531ass"srr.32cap>3271ry essiopuLsiop="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/ds_map5_client.id.1 ids_mapli22a"86ss"86sseL863">"86sath epochent.c#L952" id.epoch143h5<7hL863">"86sath li>1574/mds_cli22>"86ssutexs_cl 158"/ds_map5_client.id.1 ids_mapli22>"86ssutexs_cl 158"/d_epochent.c#L952" id.d_epochlare)587.1L921"21f14men>148h/mdsgt; a h3272m4.>22m32cap_lock" code=drop"156932cap>327alareadcs_"86sath ds_client.id.1L943" handle5replLstid nam4.lld resul2 nahandle_map epoche"+cexu <7houre"+cexu_target_sessiopt4.1L921"21H_NOSNAPf">s)s_cap_rel3273m4.>22m32946" class=enala> eph_in32946>327ala>(strumuteeeeeeeeeumuteL863">"86sath epochent.c#L952" id.epoch143htat_sessiophandleli>1574/mds_cli22>"86ssutexs_cl 158"/ds_map5_client.id.1 ids_mapli22>"86ssutexs_cl 158"/d_epochent.c#L952" id.d_epochlare)01.1L921"22dcass="l )> a h3274m4.>22m32cap58"/mds_client.c#L95232cap>32c4la>(strumute_info_ta="sr__g,ala>);1"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/mds_client.c#L952" i"ds_c143h201.1L921"22dcass="l )> a h3275m4.>22m32lass="sref"" cstrncpy 32las>327edown_writat_c#qL863"return01.1L921"22dcass="l )> a h32c6m4.>22m32946cexpected, eer32946>3276lockt_c#qL86}1.1L921"22dcass="l )> a h3277m4.>22m32946" class=enala> eph_in32946>327eques1.1L921"22dcass="l )> a h3278m4.>22m32cap_lock" c>156!"srr.lea32cap>327s="sr14>ceph_L863">"86sath newmap5_client.id.1 inewmapli2257h951" clasbaath L951"sesmapideaath5_client.id.1 iL951"sesmapideaath863">"86ss="sr__gpathlenap5_client.id.1 ipli22tat_sessiophandleenda> eph_inodshmuendli22201.1L921"22dcass="l )> a h3279m4.>22m32lass="sref">1499assl154e32las>327 _info_tasiop="sr__gpathlenaIS_ERRa> eph_inodshmuIS_ERR863">="sr__gpathlenanewmap5_client.id.1 inewmapli222N187.1L921"21f14men>148h )> a h3282m4.>22m32cap_lock" cl1514ass9ass>32cap>328">old_capala>) {nnnnn951" clasbaath erra> eph_inodshmuerrli2257h951" clasbaath PTR_ERRa> eph_inodshmuPTR_ERR863">="sr__gpathlenanewmap5_client.id.1 inewmapli22201.1L921"22dcass="l )> a h3281m4.>22m32cap_lock" cl1531asso els32cap>328ss="sr15.1L86adest_c#gotog="sr__gpathlenabad_ref_inode_infoalareadbad_ref_inlare01.1L921"22dcass="l )> a h3282m4.>22m32lass="sref">1492asssssss32las>328alareadcs_s)s_cap_rel3284m4.>22m32cap_lock" cl1514asssssss32cap>328alareadcs_ authority probleswap in1o place *s_cli2131.1L921"21sessiopino rgt; a h3285m4.>22m32lass="sref">14.5assode=d32las>328edown_writat_siop="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/ds_map5_client.id.1 ids_mapli222187.1L921"21f14men>148h )> a h3286m4.>22m32lass="sref"o else5_clien32las>328path upduto_snap_tras51" clasbaath oldmap5_client.id.1 ioldmap143h57hL863">"86sath li>1574/mds_cli22>"86ssutexs_cl 158"/ds_map5_client.id.1 ids_mapli2201.1L921"22dcass="l )> a h3287m4.>22m32cap_lock" cl1487assst_pa32cap>328equest_path_attr=seatL863">"86sath li>1574/mds_cli22>"86ssutexs_cl 158"/ds_map5_client.id.1 ids_mapli22a7h951" clasbaath newmap5_client.id.1 inewmapli2201.1L921"22dcass="l )> a h3288m4.>22m32cap_lock" code=drop"156932cap>328s="sr14>ceph_caple32_951" clasbaath heck_new_map5_client.id.1 iLheck_new_map863">="sr__gpathlenali>1574/mds_cli22tat_sessiophandle#ewmap5_client.id.1 inewmapli22,_s51" clasbaath oldmap5_client.id.1 ioldmap143h201.1L921"22dcass="l )> a h3289m4.>22m32lass="sref"enala> eph_in32las>328 _info_target_ses="sr__g,ala>);1L951"sesmapide.lloy5_client.id.1 iL951"sesmapide.lloy863">="sr__gpathlenaoldmap5_client.id.1 ioldmap143h201.1L921"22dcass="l )> a h3292m4.>22m32_cl58"/mds_client.c#L95232_cl>329ala>(strumute} else187.1L921"21f14men>148h )> a h3291m4.>22m32cap_lock" c3ass="sr14f">32cap>329ss="sr15.1L86adest_c#s"sr__g,ala>);1li>1574/mds_cli22>"86ssutexs_cl 158"/ds_map5_client.id.1 ids_mapli22a7h951" clasbaath newmap5_client.id.1 inewmapli220h_L not a> authority problefirst 48hemap *s_cli2131.1L921"21sessiopino rgt; a h3292m4.>22m32cap_lock" cl1562ass="sr132cap>329alareadcs_329ala>(strumuteL863">"86sath li>1574/mds_cli22>"86ssutexs_cl 158"/f href15>li>1574/mf_cli22>"86ssutexs_cl 158"/sbref15>li>1574/msbli22>"86ssutexs_cl 158"/s_maxbyteslient.id.1L943"i_maxbytes143h57hL863">"86sath li>1574/mds_cli22>"86ssutexs_cl 158"/ds_map5_client.id.1 ids_mapli22>"86ssutexs_cl 158"/d_maxsfile_sizeent.c#L952" id.d_maxsfile_sizeli2201.1L921"22dcass="l )> a h3294m4.>22m32cap_lock" cl"sr15">old_c32cap>3294la>(1.1L921"22dcass="l )> a h3295m4.>22m32lass="sref"" cstrncpy 32las>329edown_writat_s_cap_cexpected__wake_requests5_client.id.1 i__wake_requests863">="sr__gpathlenali>1574/mds_cli22ta"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/waiting_for_map5_client.id.1 iwaiting_for_map143h201.1L921"22dcass="l )> a h3296m4.>22m32946cexpected, 5>l32946>3296lock1.1L921"22dcass="l )> a h3297m4.>22m32946" class=enala> eph_in32946>329ockt_c#qL863">"86ssutexelock"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/mds_client.c#L952" i"ds_c143h201.1L921"22dcass="l )> a h3298m4.>22m32cap_lock" c="sr14158"/md32cap>329s="sr14>ceph_L863">"86sath sLhedule_delayedlient.id.1L943"iLhedule_delayed863">="sr__gpathlenali>1574/mds_cli22201.1L921"22dcass="l )> a h3299m4.>22m32lasode=drop"1569ass="sr132las>329 _info_tareturn01.1L921"22dcass="l )> a h3322m4.>22m3322m4de=drop"1569ass="sr13322m>330clare1.1L921"22dcass="l )> a h3321m4.>22m332ap_lock" c3ass="sr14f">332ap>330ss="s="sr__gpathlenabad_ref_inode_infoalareadbad_ref_inlare:1.1L921"22dcass="l )> a h3322m4.>22m332ap_lock" cl1562ass="sr1332ap>330alareadcs_"86ss="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/mds_client.c#L952" i"ds_c143h201.1L921"22dcass="l )> a h3323m4.>22m332ap58"/mds_client.c#L952332ap>330ala>(="sr__gpathlenabadode_infoalareadbadlare:1.1L921"22dcass="l )> a h3324m4.>22m332ap_lock" cl"sr15">old_c332ap>3304la>(strumuteL863">"86sath pr_erra> eph_inodshmupr_errdle5replLstid nam4.lld resul2 naerror deaating ds_mape"+cexp_target_sessioptat_sessiophandleerra> eph_inodshmuerrli22201.1L921"22dcass="l )> a h3325m4.>22m332ass="sref"" cstrncpy 332as>330edown_writat_return01.1L921"22dcass="l )> a h3326m4.>22m33246cexpected, 5>l33246>3306lock}1.1L921"22dcass="l )> a h3327m4.>22m33246" class=enala> eph_in33246>330eques1.1L921"22dcass="l )> a h3328m4.>22m332ap_lock" c="sr14158"/md332ap>330s="srstat_c ioid.1L951" clasbaath i>15connectcap5_client.id.1 iL951"connectcapdown_s="sr__g,ala>);1con_ge;ent.c#L952" id.Lon_ge;dle5rioid.1L951" clasbaath i>15connectcap5_client.id.1 iL951"connectcapdown_s="sr__g,ala>);1conent.c#L952" id.Lonli2221.1L921"22dcass="l )> a h3329m4.>22m332asode=drop"1569ass="sr1332as>330 87.1L921"21f14men>148h )> a h3312m4.>22m33cap_lock" cttrequest_pat33cap>331ala>(strumuteioid.1L951" clasbaath i>1548h/ioi_capent.c#L952" id.L951"sessioi_cap>"86ss="sr__g,ala>);1ilient.id.1L943"ili2257h951" clasbaath Lonent.c#L952" id.Lonli22>"86ssutexs_cl 158"/privatelient.id.1L943"privateli2201.1L921"22dcass="l )> a h3311m4.>22m33cap_lock" c3ass="sr14f">33cap>331sry 1.1L921"22dcass="l )> a h3312m4.>22m33enala> eph_inodshmutext_33ena>331alareadcs_="sr__gpathlenailient.id.1L943"ili222N187.1L921"21f14men>148h )> a h3313m4.>22m33cap58"/mds_client.c#L95233cap>331ala>(strumuteeeeeeeeeL863">"86sath ds_client.id.1L943" handle5replLstid nam4.lld resul2 nads_c Lon_ge;e"+cexp ok ("+cexp)_target_sessioptat_sessiophandleilient.id.1L943"ili22tat_sessiophandleatomic_readode_infoalareadatomic_read863">"86ss="sr__gpathlenailient.id.1L943"ili22>"86ssutexs_cl 158"/s_L943ient.id.1L943"i_L94li222N01.1L921"22dcass="l )> a h3314m4.>22m33cap_lock" c>156"srr.lean33cap>3314la>(strumute_info_tareturn s_cap_cexpectedLonent.c#L952" id.Lonli2201.1L921"22dcass="l )> a h3315m4.>22m33lass="sref">14.5assst_pa33las>331edown_writat_}1.1L921"22dcass="l )> a h3316m4.>22m33lass="sref">1536asslps_c33las>3316lockt_c#qL86L863">"86sath ds_client.id.1L943" handle5replLstid nam4.lld resul2 nads_c Lon_ge;e"+cexp FAIL_target_sessioptat_sessiophandleilient.id.1L943"ili22N01.1L921"22dcass="l )> a h3317m4.>22m33cap_lock" cl1487ass="sr133cap>3317down_writat_returnh951" clasbaath NULLf"srr.leanup_caNULL143h01.1L921"22dcass="l )> a h3318m4.>22m33946" class="1548ass="sr133946>331s="sr}1.1L921"22dcass="l )> a h3319m4.>22m33lass="sref">1499assl154e33las>331 1.1L921"22dcass="l )> a h3322m4.>22m33lass="sref">1499ass>153633las>332clarestat_c target_sessiophandleLon_p_client.id.1L943"Lon_p_cdle5rioid.1L951" clasbaath i>15connectcap5_client.id.1 iL951"connectcapdown_s="sr__g,ala>);1conent.c#L952" id.Lonli2221.1L921"22dcass="l )> a h3321m4.>22m33cap7ala> spa1441ass="sr133cap>332ss="s87.1L921"21f14men>148h/mdsgt; a h3322m4.>22m33las7ala> spa144lass="sr133las>3322la>(strumuteioid.1L951" clasbaath i>1548h/ioi_capent.c#L952" id.L951"sessioi_cap>"86ss="sr__g,ala>);1ilient.id.1L943"ili2257h951" clasbaath Lonent.c#L952" id.Lonli22>"86ssutexs_cl 158"/privatelient.id.1L943"privateli2201.1L921"22dcass="l )> a h3323m4.>22m33"857ala> spa1573ass="sr133"85>3322"2194.1L921"21H_NOSNAPf">s)s_cap_rel3324m4.>22m33las7ala> spa1572ass="sr133las>33l4la>(strumuteL863">"86sath ds_client.id.1L943" handle5replLstid nam4.lld resul2 nads_c Lon_p_ce"+cexp ("+cexp)_target_sessioptat_sessiophandleilient.id.1L943"ili22tat_sessiophandleatomic_readode_infoalareadatomic_read863">"86ss="sr__gpathlenailient.id.1L943"ili22>"86ssutexs_cl 158"/s_L943ient.id.1L943"i_L94li222 - 1N01.1L921"22dcass="l )> a h3325m4.>22m339467ala> spa144lass="sr133946>332edown_writat_s_cap_cexpectedL951"put_48h/ioi_capent.c#L952" id.L951"put_48h/ioi_cap863">="sr__gpathlenailient.id.1L943"ili22N01.1L921"22dcass="l )> a h3326m4.>22m33cap7ala> spa144lass="sr133cap>3326lock}1.1L921"22dcass="l )> a h3327m4.>22m33cap_lock" cl1487asssssss33cap>332eques1.1L921"22dcass="l )> a h3328m4.>22m33cap_lock" cl1578asssssss33cap>3328ques notificatioi8that ourds_cli22m4.1L921"22m_NOSNAPf">s)s_cap_rel3329m4.>22m33"+c58"/mds_client.c#L95233"+c>3329ques notificatioi8that our * siothe )s_capeis unresponsiveafor long enough,othe 48hewill kill_cli22m4.1L921"22m_NOSNAPf">s)s_cap_rel3332m4.>22m33lass="sref">1499ass>153633las>333clare notificatioi8that our * the ioi_cap entirely._cli22m4.1L921"22m_NOSNAPf">s)s_cap_rel3331m4.>22m33cap_lock" cl1531ass>153633cap>3331lare notificatioi8that our *s_cli2131.1L921"21sessiopino rgt; a h3332m4.>22m33lass="sref">1492asssssss33las>33la863"stat_c target_sessiophandlepeer_L9se;ent.c#L952" id.peer_L9se;dle5rioid.1L951" clasbaath i>15connectcap5_client.id.1 iL951"connectcapdown_s="sr__g,ala>);1conent.c#L952" id.Lonli2221.1L921"22dcass="l )> a h33l3m4.>22m33946" class="1543assl153133946>333ala>(87.1L921"21f14men>148h/mdsgt; a h3334m4.>22m33cap_lock" cl1514asssssss33cap>3334la>(strumuteioid.1L951" clasbaath i>1548h/ioi_capent.c#L952" id.L951"sessioi_cap>"86ss="sr__g,ala>);1ilient.id.1L943"ili2257h951" clasbaath Lonent.c#L952" id.Lonli22>"86ssutexs_cl 158"/privatelient.id.1L943"privateli2201.1L921"22dcass="l )> a h3335m4.>22m33lass="sref">14.5assode=d33las>333edown_writat_ioid.1L951" clasbaath i>15sess rgt;ent.c#L952" id.L951"sess rgt;>"86ss="sr__g,ala>);1li>1574/mds_cli22a7hL863">"86sath ilient.id.1L943"ili22>"86ssutexs_cl 158"/s_li>1574/ms_3336lock1.1L921"22dcass="l )> a h33l7m4.>22m33cap_lock" cl1487ass="sr133cap>333ockt_c#qL863">"86ssutexelockpr_warninga> eph_inodshmupr_warningdle5replLstid nam4.lld resul2 nads_"+cexp Ldosedhoureioi_cap_target_sessioptat_sessiophandleilient.id.1L943"ili22>"86ssutexs_cl 158"/s_li>1574/ms_ceph_L863">"86sath send"sessreconnectref15>li>1574/msend"sessreconnect863">="sr__gpathlenali>1574/mds_cli22ta="sr__gpathlenailient.id.1L943"ili22N01.1L921"22dcass="l )> a h33l9m4.>22m33cap_lock" code=drop"156933cap>333 }1.1L921"22dcass="l )> a h3342m4.>22m33_cl58"/mds_client.c#L95233_cl>334clare1.1L921"22dcass="l )> a h3341m4.>22m33cap_lock" c3ass="sr14f">33cap>334ss="sstat_c target_sessiophandledissitchent.c#L952" id.dissitchdle5rioid.1L951" clasbaath i>15connectcap5_client.id.1 iL951"connectcapdown_s="sr__g,ala>);1conent.c#L952" id.Lonli22,_ioid.1L951" clasbaath i>15ssgent.c#L952" id.L951"ssg>"86ss="sr__g,ala>);1"8621.1L921"22dcass="l )> a h3251m4.>22m32cap_3ock" cl156asesc86ssutexs_cl 158"/f href15>li>1574/motchdle5rioid.1L951" )> a h3327m4.>22m33cap="sr__g,ala>);1"86sath ds_clie3t.id.3L943" handle5r#L952" id.L951"sessioi_cap>"86ss="sr__g,ala>);1ilient.id.1L943"ili2257h951" clasbaath Lonent.c#L952" id.Lonli22>"86ssutexs_cl 158"/privatelient.id.1L943"privateli2201.1L921"22dcass="l )> a h3335m4.>22m33lass="sref">14.5assode=d33las>334alare}1.13921"22dcass="l )> 3 h32_34/ioi_capent.c#L952" id.L951"sessioi_cap>"86s"sr__g,ala>);1li>1574/mds_cli22a7hL863">"86sath ilient.id.1L943"ili22>"86ssutexs_cl 158"/s_li>1574/ms_3342"21L6.1L321"21eepath ep1> 3 32_634i>1574/mds_cli57h-951" clasbaathtyp="l )> a typ=>"86ssutexs_cl 158"/s_le16_to_cpu"l )> a le16_to_cpuli22ta="sr__gpathlena/frot;ent.c#L952" id.frot;>"86.sutexs_cl 158hd )> a h33hd .froep143h01.1L921"2typ="l )> a typ=>"862m33cap_lock" code=drop"156933cap>3346lock1.1L321"22dcass="l )> a3h32_734.>22m32cap_lock" cl154e_infoala32cap>334eques not3ficatioi8that ourds_cli2234.1L934_infoalareadmdest_ref_in863">"86ss__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/mds_client.c#L952" i"ds_c143h201.1L921"22dcass="l )> a h3271m4.>22m32cap_lock" cl1531ass"srr.32cap>3348ques not3ficatioi8that our * handl3 48he34nodshmuerrli22.get_ioi_cap863">=__verif74/m>li>15ed863">="sr__gpathlenali>15ed863">="sli22ta="sr__gpathlenailient.id.1L943"ili22N01.1L921"22dcass="l )> a h33l9m4.>223m4.>22m2m33cap58"/mds_client.c#L95233cap>3349ques not3ficatioi8that our *s_cli2331.1L34node_infoalareadcsmdest_c#qL863">"86ss="sr="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 158"/mds_client.c#L952" i"ds_c143h201.1L921"22dcass="l )> a h3323m4.>22m332ap58"/mds_client.c#L952332ap>33lalocktarg3t_sessiophandleL951"sesc_3andle35ph_inodshmuerrli2257hadbad_ref_inlare01.1d resul2 nads_c Lo_p_ce"+m332ap58"/mds_client.c#L952332ap>33lss="sstat_921"21f14men>148h/mdsgt; 3 h3253515>li>1574/mdm33_cl58"/mds_client.c#L95233_cl>335alareadcs3li>1574/mds_cli22>"86ssutexs_cl 158"/mds_client.c#L952" i"ds_c143h201.1L921"22dcass="l )> a h3323m4.>22m332ap58"/mds_client.c#L952332ap>33l"86sath ulass="3ref"235.>22m33las7ala> spa1572ass="sr133las>3354la>(stru3utetarges="sr__g,ala>);1p3_clie3t.id.1 ipli225swiap5get_ioi_cap863">=typ="l )> a typ=>"8622m33cap58"/mds_client.c#L95233cap>33ledown_wri3at_targes="sr__g,ala>);1e3da> e3h_inodshmuendlcase_cap_cexpectedepCEPH_MSG_MDS_MAP"l )> a CEPH_MSG_MDS_MAPinodm332ap_lock" cl"sr15">old_c332ap>33lpath upd3to_ioid.1L951" clasbaath 3i>15s35smapide.lloy5_client.id.1 iL951"sesmapide.ll_mapdle5rioid.1L951" clasbaath i>15sess rgt;ent.c#a="sr__gpathlenailient.id.1L943"ili22N01.1L921"22dcass="l l )> a h3251m4.>22mm332ap58"/mds_client.c#L952332ap>33leques not3to_ioid.1L951" clasbaath 3i>15f3515>li>1574/mds_cli22>breakm332ap58"/mds_client.c#L952332ap>33l8ques not3ph_in1L951" clasbaath err3> eph3inodshmuerrli2case_cap_cexpectedepCEPH_MSG_CLIENT_SESSInalist_empty5_cliCEPH_MSG_CLIENT_SESSInainodm332ap_lock" cl"sr15">old_c332ap>33l9ques not321"22dcass="l )> a3h326235node_infoalareadcsmdest_c#qL863">"86ess rg63">="sr__gpathlena="s1.1L921"22dcass="l )> a h3326m4.>2L921"22dcass="l l )> a h3251m4.>22mm332ap58"/mds_client.c#L952332ap>3364 _inf3_ta="sr__g,ala>);1 i>15de3>);_n36ph_inodshmuerrli2257hbreakm332ap58"/mds_client.c#L952332ap>336sry essi3puLs_cap_cexpected i>15de3>);_c3py5_client.id.case_cap_cexpectedepCEPH_MSG_CLIENT_REPLYlist_empty5_cliCEPH_MSG_CLIENT_REPLYinodm332ap_lock" cl"sr15">old_c332ap>336alareadcs33363364la>(stru3uteL863">"86sath epochen3.c#L932" id.epoch143case_cap_cexpectedepCEPH_MSG_CLIENT_REQUEST_FORWARDlist_empty5_cliCEPH_MSG_CLIENT_REQUEST_FORWARDinodm332ap_lock" cl"sr15">old_c332ap>336edown_wri3at_s_cap_cexpectedmaplepe3t.c#L36="l )> a h32c6eplLstid nam4.less rgforwargpathlenailient.ess rgforwargli22ta="sr__gpathlenailient.id.1L943"ili22N01.1L921"22dcass="l )> a h33l9m4.>2L921"22dcass="l l )> a h3251m4.>22mm332ap58"/mds_client.c#L952332ap>336path upd3L86L863">"86sath ds_clie3t.id.36smapide.lloy5_client.breakm332ap58"/mds_client.c#L952332ap>336eques not321"22dcass="l )> a3h3268367 id.epoch143case_cap_cexpectedepCEPH_MSG_CLIENT_CAPSlist_empty5_cliCEPH_MSG_CLIENT_CAPSinodm332ap_lock" cl"sr15">old_c332ap>3368ques not3ph_L not a> authority pro3ledo 36ew_map5_client.id.1 iLheck_new_map863th ess rg="sr__gpathlenaioi_3th ess rg="sr1.1L921"22dcass="l )> a h3326m4.>2L921"22dcass="l l )> a h3251m4.>22mm332ap58"/mds_client.c#L952332ap>3369ques not3_ta="sr__g,ala>);1L951"so3c_got36node_infoalareadcsmdebreakm332ap58"/mds_client.c#L952332ap>3374 _inf3_ta="sr__g,ala>);1old_c332ap>3371ry essi3puLsiop="sr__gpathlenali>1574/mds_cli22>"86ssutexs_cl 13th ess rgsnoid.1L951" clasbaath ess rgsnoili22ta="sr__gpathlenailient.id.1L943"ili22N01.1L921"22dcass="l )> a h33l9m4.>2L921"22dcass="l l )> a h3251m4.>22mm332ap58"/mds_client.c#L952332ap>337alareadcs3"86sath 3ds_cl3ent.id.1L943" handle5rbreakm332ap58"/mds_client.c#L952332ap>337"863ath 3pochent.c#L952case_cap_cexpectedepCEPH_MSG_CLIENT_LEASE"l )> a CEPH_MSG_CLIENT_LEASEinodm332ap_lock" cl"sr15">old_c332ap>3374la>(stru3ute_info_ta="sr__g,ala>);3337edown_wri3at_c#qL863"return01.1L921322dca3s="l )> a h32c6breakm332ap58"/mds_client.c#L952332ap>337path upd3L86}1.1L921"22dcass="l 3 )>37.>22m32cap_lock" cl154e_infoala32cap>337eques1.1L321"22dcass="l )> a3h3278377 id.epoch143defaultm332ap_lock" cl"sr15">old_c332ap>3378ques not3ph_L863">"86sath newmap53clien37ew_map5_client.id.1 iLheck_new_map86m4.lld resul2 naerror deaating ds_mape"+cexp_target_sessiopreceived unknown m3">age typ=> eph_i> eph_sL943"ili22>"86ssutexs_cl 158"/s_typ="l )> a typ=>"86m32946" class=enala> eph_in32946>337 _inf3_tasiop="sr__gpathlenaIS_3RRa> 37node_infoalareadcsmde_cli22>"86ssutexs_cl 13th 1m4_typ=_hlen1_typ=_hlenli22ta="sr__gpathlentyp="l )> a typ=>"862mm332ap58"/mds_client.c#L952332ap>338">old_cap3la>) {nnnnn951" clasbaath3erra>3eph_inodshmuerm33_cl58"/mds_client.c#L95233_cl>338ss="sr15.3L86adest_c#gotog="sr__gpa3hlena38adbad_ref_inlare:1.1d resul2 nads_c Lo_p_ce"+m332ap_lock" cl"sr15">old_c332ap>338alareadcs3338s)s_cap_r3l328434.>22mm33_cl58"/mds_client.c#L95233_cl>3384la>(stru3 authority pro3leswa38.>22m32lass="sref"" cstrncpy 32las>338edown_wri3at_siop="sr__gpathlena157NOSNAPf">s)s_cap_rel3329m4.>22m33"+c58"/mds_client.c#L95233"+c>338path upd3to_snap_tras51" clasbaath3oldma35_cliely._cli22m4.1L921"22m_NOSauthp_recaLonli2.>22m33"+c58"/mds_client.c#L95233"+c>338eques1.1L3h_attr=seatL863">"86sath 3s)s_cap_rel32332m4.>22m33lass="sref">1492asssssss33las>338s="sr14>c3ph_caple32_951" clasbaath3 heck3new_ma33lass="sref">1492asssssss33las>338 _inf3_target_ses="sr__g,ala>);3L951"38eis unresponsiveafor long e29m4.>22m33"+c58"/mds_client.c#L95233"+c>339ala>(stru3ute} else187.1L921"21f14m3n>14839ntirely._cli22m4.1L921"22m_NOSNote:ULL143hed pointerill NAPfaddr3"> of ac#L952"ure that ep9;sm4.>22m33"+c58"/mds_client.c#L95233"+c>339ss="sr15.3L86adest_c#s"sr__g,ala>);315; a ds_c it1m4.>22m33cap_lock" cl1531ass>153633cap>339alareadcs3s)s_cap_rel32332m4.>22m33lass="sref">1492asssssss33las>339ala>(stru3uteL863">"86sath li>3574/mdp5_client.id.1 iL951"connectcapdowauth ess shakn1"86sath943"authorized resul2 naerror943"authorized_client.id.1 iL951"connectcapdown_s="sr__g,ala>);1conent.c#L952" id.Lonli22,_ioid.1L951" clasbaath i>15ssgent.c#L952" 33lass="sref">1492asssssss33las>3394la>(stru321"22dcass="l )> a3h329539ef_inode_infoalareadmmmmmmmmmmmmmmmmmmmmmmmmmi57hioid.1L951" clasproto resul2 naerror doto4.>2L9i57h-951" clasbaathforc.1 iw resul2 naerrorforc.1 iw.>22m32cap_3ock" cl156asesc86ssutexs_cl9edown_wri3at_s_cap_cexpected__wake_3eques3s5_clim33cap58"/mds_client.c#L95233cap>3396lock1.1L321"22dcass="l )> a3h329739map5_client.id.1 iL951"sesmapdle5es="sr__g,ss="sr__g,ala>);1ilient.id.1L943"ili2257h951" clasbaath Lonent.c#L952" id.Lonli22>"86ssutexs_cl 158"/privatelient.id.1L943"privateli2201.1L921"22dcass="l )> a h3335m4.>22m33lass="sref">14.5assode=d33las>339ockt_c#qL363">"86ssutexelock eph_inodshmu i>15fsidlareas_cap_cexp"86s"sr__g,ala>);1li>1574/mds_cli22a7hL863">"86sath ilient.id.1L943"ili22>"86ssutexs_cl 158"/s_li>1574/ms_339s="sr14>c3ph_L863">"86sath sLhedul3_dela3edlient.id.1L9nt.id.1 iL951"connectcapdowauth "sr__g,ala>);1liauth "sr__gcli22a7hL863">"86satha"l )> a ha2>"86ssutexs_cl 158"/s_58"/mds_client.c#L952" i"ds_c143h201.1L921"22dc"/ rgt;ent.c#L952" id.L rgt;" cl>"86ssutexs_cl 158"/soncref15>li>1574/mdoncli22tat_sessiophandleepochent.c#L952" id.epoch1ep143h01.1L921"2authl )> a hauth.>22m33lass="sref"o else5_clien33las>339 _inf3_tareturn01.1L921"22dcass3"l 3 )> a h3322nt.id.1 iL951"connectcapdowauth ess shakn1"86sathauthl )> a hauth.>22ssu86ssutexs_cl 158"/s_L943ient.id.1L943"i_L94li222 - 1N01.1L921"2authl )> a h"2auth.>22m33lass="sref"o else5_clien33las>340clare1.1L421"22dcass="l )> a4h332144.>22m332ap_lock" c3ass="sr14f">332ap>340ss="s="sr4_gpathlenabad_ref_inode_i4foala40i>1574/mds_cli22>"86ssutexs_cl 1forc.1 iw resul2 naerrorforc.1 iw.>22 id.epoch143h5<7hL863">"authl )> a hauth.>2294li222 - 1N01.1L921authorized resul2 naerrorauthorized_cli22m33cap58"/mds_client.c#L95233cap>340alareadcs4"86ssutexs_cl 1a"l )> a ha2>"8694li222 - 1N01.1L921osr__gpathlenaioi_osr1.1L id.epoch143h5<7hL863">"a"l )> a ha2>"8694li222 - 1N01.1L921osr__gpathlenaioi_osr1.1L94li222 - 1N01.1L921d.1 iol"authorized resul2 naerrord.1 iol"authorized.>22m32cap_3ock" cl156asesc86ssutexs_c40ala>(="sr4_gpathlenabadode_infoalar4adbad40ochent.c#L952" id.epoch143as_cap_cexpectedepa"l )> a ha2>"8694li222 - 1N01.1L921osr__gpathlenaioi_osr1.1L94li222 - 1N01.1L921d.1 iol"authorized resul2 naerrord.1 iol"authorized.>22>"86ssutexs_cl 1a"l )> a ha2>"86atomic_read863">"8uthl )> a hauth.>2294li222 - 1N01.1L921authorized resul2 naerrorauthorized_cli2m33lass="sref"o else5_clien33las>3404la>(="sr4_1"22dcass="l )> a4 eph_40ef_inode_infoalareadmdest_ref_in863"8uthl )> a hauth.>2294li222 - 1N01.1L921authorized resul2 naerrorauthorized_cli3h01.1L921"22dcass="l )> a h32_2m4.>22m32cap_lock" cl1562ass="sr132cap>340edown_wri4at_return01.1L921"22dcass4"l 40a h3316m4.>22m33lass="sref">1536asslps_c33las>3406lock}1.14921"22dcass="l )> 4 h332406>1574/mds_cli22>!dest_ref_in863"8uthl )> a hauth.>2294li222 - 1N01.1L921authorized resul2 naerrorauthorized_cli3id.epoch143h5<7hL863">"a"l )> a ha2>"8694li222 - 1N01.1L921osr__gpathlenaioi_osr1.1L id.epoch143h5<7hL863">"a"l )> a ha2>"8694li222 - 1N01.1L921osr__gpathlenaioi_osr1.1L94li222 - 1N01.1L921cre5m4"authorized resul2 naerrorcre5m4"authorized_cli22m33cap58"/mds_client.c#L95233cap>3407lock}1.1493">"86ssutexelockli>1574/mds_cli22>i57h-951" clasbaathr clasbaath i>15crp5_cli3h01.1L921"22dcassa"l )> a ha2>"8694li222 - 1N01.1L921osr__gpathlenaioi_osr1.1L94li222 - 1N01.1L921cre5m4"authorized resul2 naerrorcre5m4"authorized_cli>"86ssutexs_cl 1a"l )> a ha2>"86atomic_read863">"CEPH_ENTITY_TYPE_MDS"l )> a CEPH_ENTITY_TYPE_MDS952" 33lass="sref">1492asssssss33las>340s="srstat4c ioid.1L951" clasbaath 4>15co40ew_map5_client.id.1 iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiidest_ref_in863"8uthl )> a hauth.>222m33lass="sref"o else5_clien33las>3409="srstat4ctareturn01.1L921"22dcass4 h33140node_infoalareadcsmdei22>"86ssutexs_cl 1r clasbaath i>15crp5_clim32cap_3ock" cl156asesc86ssutexs_c41ala>(stru4uteioid.1L951" clasbaath 4i>15441ph_inodshmuerrli2257hhhhhhhhhLL143h01.1L921"22dcassERR_PTnewmap5_client.iERR_PTn_cli>"86ssutexs_cl 1r clasbaath i>15crp5_climm33lass="sref"o else5_clien33las>341sry 1.1L421"22dcass="l )> a4h33124115>li>1574/mdm33_cl58"/mds_client.c#L95233_cl>341alareadcs423h01.1L921"22dcassa"l )> a ha2>"8694li222 - 1N01.1L921 dotocol resul2 naerror dotocol.>22m32cap_lock" cl1562ass="sr132cap>341ala>(stru4uteeeeeeeeeL863">"86sath 4ds_cl41.>22m33las7ala> spa1572ass="sr133las>3414la>(stru4ute_info_tareturn s_cap_c4xpect4dLonent.c#L952LL143h01.1L921"22dcassauthl )> a hauth.>22m33lass="sref"o else5_clien33las>341edown_wri4at_}1.1L921"22dcass="l 4 )>4 a h33m33_cl58"/mds_client.c#L95233_cl>3416lock}1.14L86L863">"86sath ds_clie4t.id.41.>22m32cap_lock" cl154e_infoala32cap>3417down_wri4at_returnh951" clasbaath 4ULLf"41.>22m33cap_lock" cl1578asssssss33cap>341s="sr}1.14921"22dcass="l )> 4 h33141ectcap5_cliei57h-951" clasbaathverif74authorizedgreplr__gpathlenaoldmverif74authorizedgreplr_client.id.1 iL951"connectcapdown_s="sr__g,ala>);1conent.c#L952" id.Lonli22,_ioid.1L951" clasbaath i>15ssgent.c#L952" ei57h-951" clasbaathss="l )> a 67m4.>2233cap_lock" cl1578asssssss33cap>3419="srstat421"22dcass="l )> a4h3322414.>22m33cap_lock" cttrequest_pat33cap>342clarestat4c target_sessiophandleLon4p_cli42/ioi_capent.c#L952" id.L951"sessioi_cap>"86ss="sr__g,ala>);1ilient.id.1L943"ili2257h951" clasbaath Lonent.c#L952" id.Lonli22>"86ssutexs_cl 158"/privatelient.id.1L943"privateli2201.1L921"22dcass="l )> a h3311m4.>22m33cap_lock" c3ass="sr14f">33cap>342ss="s87.14921"21f14men>148h/mdsgt; 4 h332421ioi_capent.c#L952" id.L951"sessioi_cap>"86s"sr__g,ala>);1li>1574/mds_cli22a7hL863">"86sath ilient.id.1L943"ili22>"86ssutexs_cl 158"/s_li>1574/ms_3422la>(stru4uteioid.1L951" clasbaath 4i>1544h/ioi_capent.c#L952" id.L951"sessioi_cap>auth "sr__g,ala>);1liauth "sr__gcli22a7hL863">"86satha"l )> a ha2>"86ssutexs_cl 158"/s_58"/mds_client.c#L952" i"ds_c143h201.1L921"22dc"/ rgt;ent.c#L952" id.L rgt;" cl>"86ssutexs_cl 158"/soncref15>li>1574/mdoncli22tat_sessiophandleepochent.c#L952" id.epoch1ep143h01.1L921"2authl )> a hauth.>22m33lass="sref"o else5_clien33las>3422"2194.1L421"21H_NOSNAPf">s)s_cap_r4l332444.>22m33las7ala> spa1572ass="sr133las>34l4la>(stru4uteL863">"86sath ds_clie4t.id.42Lonent.c#L952LL143h01.1L921"22dcassa"l )> a ha2>"8694li222 - 1N01.1L921osr__gpathlenaioi_osr1.1L94li222 - 1N01.1L921verif74authorizedgreplr__gpathlenaoldmverif74authorizedgreplr_clie"86ssutexs_cl 1a"l )> a ha2>"86atomic_read863">"L943ient.id.1L943"i_L94li222 - 1N01.1L921"2authl )> a h"2auth.>22ep143h01.1L921"2authorized resul2 naerrorauthorized_cliatomic_read863">"ss="l )> a 67m4.>22m33lass="sref"o else5_clien33las>342edown_wri4at_s_cap_cexpectedL951"pu4_48h/42a h33m33_cl58"/mds_client.c#L95233_cl>3426lock}1.14921"22dcass="l )> 4 h33242.>22m32cap_lock" cl154e_infoala32cap>342eques1.1L421"22dcass="l )> a4h332844.>22mp5_cliei57h-951" clasbaathinvalid5m4"authorized resul2 naerrorinvalid5m4"authorized_client.id.1 iL951"connectcapdown_s="sr__g,ala>);1conent.c#L952" id.Lonli22,_ioid.1L951" clasbaath i>15ssgent.c#L952"233cap_lock" cl1578asssssss33cap>3428ques not4ficatioi8that ourds_cli2244.1L941"22m_m33cap_lock" cttrequest_pat33cap>3429="srstat4ficatioi8that our * sioth4 )s_c42)> a h3322nt.id.1 iL951"connectcapdow"86ss="sr__g,ala>);1ilient.id.1L943"ili2257h951" clasbaath Lonent.c#L952" id.Lonli22>"86ssutexs_cl 158"/privatelient.id.1L943"privateli2201.1L921"22dcass="l )> a h3311m4.>22m33cap_lock" c3ass="sr14f">33cap>343clare not4ficatioi8that our * the i4i_cap43/ioi_capent.c#L952" id.L951"sessioi_cap>"86s"sr__g,ala>);1li>1574/mds_cli22a7hL863">"86sath ilient.id.1L943"ili22>"86ssutexs_cl 158"/s_li>1574/ms_3431lare not4ficatioi8that our *s_cli2431.1L431ioi_capent.c#L952" id.L951"sessioi_cap>auth "sr__g,ala>);1liauth "sr__gcli22a7hL863">"86satha"l )> a ha2>"86ssutexs_cl 158"/s_58"/mds_client.c#L952" i"ds_c143h201.1L921"22dc"/ rgt;ent.c#L952" id.L rgt;" cl>"86ssutexs_cl 158"/soncref15>li>1574/mdoncli22tat_sessiophandleepochent.c#L952" id.epoch1ep143h01.1L921"2authl )> a hauth.>22m33lass="sref"o else5_clien33las>34la863"stat4c target_sessiophandlepee4_L9se4ent.c#33lass="sref"o else5_clien33las>34l2"2194.1L4921"21f14men>148h/mdsgt; 4 h33343ochent.c#L952i22>"86ssutexs_cl 1a"l )> a ha2>"8694li222 - 1N01.1L921osr__gpathlenaioi_osr1.1L94li222 - 1N01.1L921invalid5m4"authorized resul2 naerrorinvalid5m4"authorized_cli233cap_lock" cl1578asssssss33cap>3434la>(stru4uteioid.1L951" clasbaath 4i>15443ef_inode_infoalareadmdest_ref_in863"8"l )> a ha2>"8694li222 - 1N01.1L921osr__gpathlenaioi_osr1.1L94li222 - 1N01.1L921invalid5m4"authorized resul2 naerrorinvalid5m4"authorized_cli>"86ssutexs_cl 1a"l )> a ha2>"86atomic_read863">"CEPH_ENTITY_TYPE_MDS"l )> a CEPH_ENTITY_TYPE_MDS952"2m33lass="sref"o else5_clien33las>343edown_wri4at_ioid.1L951" clasbaath 4i>15s4ss rg33lass="sref"o else5_clien33las>3436lock}1.1421"22dcass="l )> a4h33l7436>1574/mds_clli2201.1L921"22dcass="l5>li>.ep_valid5m4"auth,ala>);1li>.ep_valid5m4"auth_cli>li22>"86ssutexs_cl 158"/mds_client.c#L952" i"ds_c143h201.1L921"22dc"/ rgt;ent.c#L952" id.L rgt;" cl>"86ssutexs_cl 158"/soncref15>li>1574/mdoncli22tat_sessiophandleepochent.c#L952" id.epoch12m33lass="sref"o else5_clien33las>343eques1.1L463">"86ssutexelockpr_warn4nga> 4ph_inom33_cl58"/mds_client.c#L95233_cl>343s="sr14>c4ph_L863">"86sath send"se4sreco43ew_ma33lass="sref">1492asssssss33las>343 }1.14921"22dcass="l )> 4 h3344m4.>22p5_clie1L9stent.id.1 iL951"connectcapdown_s="sr__g_operaLonlr__gpathlenaioi_3th n_s="sr__g_operaLonlr>1574"86ssutexs_cl 158" n_s_osr__gpathlenaioi_58" n_s_osr>"86ssum33cap_lock" cttrequest_pat33cap>344clare1.1L421"22dcass="l )> a4h334144/ioi_capent.cep143h01.1L921"2lasbaath i>15conngp5_cli3h01.1L921"22dcass1" clasbaath i>15connectcap5_cli 33lass="sref">1492asssssss33las>344ss="sstat4c target_sessiophandledis4itche441ioi_capent.cep143h01.1L921"2lasbaath i>15connlasli223h01.1L921"22dcass1" clasbaath i>15connectcap5_cli 33lass="sref">1492asssssss33las>344a863"stat4f15>li>1574/motchdle5rioi4.1L95442ioi_capent.cep143h01.1L921"2951" clasbaath i>15connectcap5_cli3h01.1L921"22dcass951" clasbaath i>15connectcap5_cli 33lass="sref">1492asssssss33las>3442"2194.1L4uteL863">"86sath ds_clie4t.id.4L943" handle5rep143h01.1L921"2las"authorized resul2 naerror943"authorized_cli3h01.1L921"22dcasslas"authorized resul2 naerror943"authorized_cli 33lass="sref">1492asssssss33las>3444la>(stru4921"22dcass="l )> 4 h32_44/ioi_capent.cep143h01.1L921"2verif74authorizedgreplr__gpathlenaoldmverif74authorizedgreplr_cli3h01.1L921"22dcassverif74authorizedgreplr__gpathlenaoldmverif74authorizedgreplr_cli 33lass="sref">1492asssssss33las>344edown_wri421"21eepath ep1> 4 32_644i>1574/mds_clep143h01.1L921"2invalid5m4"authorized resul2 naerrorinvalid5m4"authorized_cli3h01.1L921"22dcassinvalid5m4"authorized resul2 naerrorinvalid5m4"authorized_cli 33lass="sref">1492asssssss33las>3446lock}1.1421"22dcass="l )> a4h32_7446ioi_capent.cep143h01.1L921"2l.1L951" clasbaath i>15connectcap5_cli3h01.1L921"22dcassl.1L951" clasbaath i>15connectcap5_cli 33lass="sref">1492asssssss33las>344eques1.1L4ficatioi8that ourds_cli2244.1L944_info}m33lass="sref"o else5_clien33las>3448ques not4ficatioi8that our * handl4 48he44ew_ma33lass="sref">1492asssssss33las>3449ques not4ficatioi8that our *s_cli2431.1L44eis unresponsiveafor long e29 eof332m4.>22m33lass="sref">1492asssssss33las>34lalocktarg4t_sessiophandleL951"sesc_4andle45ph_in
The original LXR software by NAPf3lass="srhttp://sourceforge.net/proj"srs/lxd >LXR or lunitr_cli NAis experilongal ver)s_caby 3lass="srmailto:lxd@ndlux.no">lxd@ndlux.nooch1e
lxd.ndlux.no kindly hostedaby 3lass="srhttp://www.redpill-ndlpro.no">Redpill Ldlpro AS952" provider of Ldluxe1L9sulgt; and operaLonlr servicer since 1995.