linux/fs/nfsd/nfsproc.c
<<
4" /spaion /formon a 4" href="../linux+v3v.17/fs/nfsd/nfsproc.c">4" img src="../.static/gfx/right.png" alt=">>">4" /spaion4" spai class="lxr_search">4" 4" input typluehidden" namluenavtarget" n value">4" input typluetext" namluesearch" iduesearch">4" butttiotypluesubmit">Search4" Prefsn /a>4" /spaion /divon form acopti="ajax+*" method="post" onsubmit="return false;">4" input typluehidden" namlueajax_lookup" idueajax_lookup" n value">4 /formon4 div class="headingbotttm">n div iduefile_contents"o
 
1 /a> spai class="comment">/* /spaion
 
2 /a> spai class="comment"> *
Process versptio2 NFS requests. /spaion
 
3 /a> spai class="comment"> * /spaion
 
4 /a> spai class="comment"> *
Copyright (C) 1995-1997 Olaf Kirch <okir@monad.swb.de> /spaion
 
5 /a> spai class="comment"> */ /spaion
 
6 /a>4
 
7 /a>#include <linux/namli.h /a>>4
 
8 /a>4
 
9 /a>#include "cache.h /a>"4
 8.10a>#include "xdr.h /a>"4
 1110a>#include "vfs.h /a>"4
 12 /a>4
 13 /a>typldef struct
 a href="+code=svc_rqst" class="sref">svc_rqst /a>
 a href="+code=svc_rqst" class="sref">svc_rqst /a>;4
 14 /a>typldef struct
 a href="+code=svc_buf" class="sref">svc_buf /a>

 a href="+code=svc_buf" class="sref">svc_buf /a>;4
 15 /a>4
 16 /a>#define
 a href="+code=NFSDDBG_FACILITY" class="sref">NFSDDBG_FACILITY /a>















 a href="+code=NFSDDBG_PROC" class="sref">NFSDDBG_PROC /a>4
 17 /a>4
 18 /a>4
 19 /a>static
 a href="+code=__be32" class="sref">__be32 /a>4
 2.10a> a href="+code=nfsd_proc_null" class="sref">nfsd_proc_null10a>(struct
 a href="+code=svc_rqst" class="sref">svc_rqst /a>
* a href="+code=rqstp" class="sref">rqstp /a>, void
* a href="+code=argp" class="sref">argp /a>, void
* a href="+code=resp" class="sref">resp /a>)4
 2110a>{4
 22 /a>







return  a href="+code=nfs_ok" class="sref">nfs_ok /a>;4
 23 /a>}4
 24 /a>4
 25 /a>static
 a href="+code=__be32" class="sref">__be32 /a>4
 2610a> a href="+code=nfsd_return_attrs" class="sref">nfsd_return_attrs10a>( a href="+code=__be32" class="sref">__be32 /a>
 a href="+code=err" class="sref">err /a>, struct
 a href="+code=nfsd_attrstat" class="sref">nfsd_attrstat /a>
* a href="+code=resp" class="sref">resp /a>)4
 2710a>{4
 28 /a>







if ( a href="+code=err" class="sref">err /a>)
return  a href="+code=err" class="sref">err /a>;4
 29 /a>







return  a href="+code=nfserrno" class="sref">nfserrno10a>( a href="+code=vfs_getattr" class="sref">vfs_getattr10a>( a href="+code=resp" class="sref">resp /a>-> a href="+code=fh" class="sref">fh /a>. a href="+code=fh_export" class="sref">fh_export /a>-> a href="+code=ex_path" class="sref">ex_path /a>. a href="+code=mnt" class="sref">mnt /a>,n
 30 /a>



































 a href="+code=resp" class="sref">resp /a>-> a href="+code=fh" class="sref">fh /a>. a href="+code=fh_dentry" class="sref">fh_dentry /a>,n
 31 /a>



































& a href="+code=resp" class="sref">resp /a>-> a href="+code=stat" class="sref">stat /a>));4
 32 /a>}4
 33 /a>static
 a href="+code=__be32" class="sref">__be32 /a>4
 3410a> a href="+code=nfsd_return_dirop" class="sref">nfsd_return_dirop10a>( a href="+code=__be32" class="sref">__be32 /a>
 a href="+code=err" class="sref">err /a>, struct
 a href="+code=nfsd_diropres" class="sref">nfsd_diropres /a>
* a href="+code=resp" class="sref">resp /a>)4
 3510a>{4
 36 /a>







if ( a href="+code=err" class="sref">err /a>)
return  a href="+code=err" class="sref">err /a>;4
 37 /a>







return  a href="+code=nfserrno" class="sref">nfserrno10a>( a href="+code=vfs_getattr" class="sref">vfs_getattr10a>( a href="+code=resp" class="sref">resp /a>-> a href="+code=fh" class="sref">fh /a>. a href="+code=fh_export" class="sref">fh_export /a>-> a href="+code=ex_path" class="sref">ex_path /a>. a href="+code=mnt" class="sref">mnt /a>,n
 38 /a>



































 a href="+code=resp" class="sref">resp /a>-> a href="+code=fh" class="sref">fh /a>. a href="+code=fh_dentry" class="sref">fh_dentry /a>,n
 39 /a>



































& a href="+code=resp" class="sref">resp /a>-> a href="+code=stat" class="sref">stat /a>));4
 40 /a>}4
 41 /a> spai class="comment">/* /spaion
 42 /a> spai class="comment"> *
Get a file's attributes /spaion
 43 /a> spai class="comment"> * N.B. After this call resp->fh needs an fh_put /spaion
 44 /a> spai class="comment"> */ /spaion
 45 /a>static
 a href="+code=__be32" class="sref">__be32 /a>4
 4610a> a href="+code=nfsd_proc_getattr" class="sref">nfsd_proc_getattr10a>(struct
 a href="+code=svc_rqst" class="sref">svc_rqst /a>
* a href="+code=rqstp" class="sref">rqstp /a>, struct
 a href="+code=nfsd_fhandle" class="sref">nfsd_fhandle /a>

* a href="+code=argp" class="sref">argp /a>,4
 47 /a>









































struct
 a href="+code=nfsd_attrstat" class="sref">nfsd_attrstat /a>
* a href="+code=resp" class="sref">resp /a>)4
 4810a>{4
 49 /a>







 a href="+code=__be32" class="sref">__be32 /a>
 a href="+code=nfserr" class="sref">nfserr /a>;4
 50 /a>







 a href="+code=dprintk" class="sref">dprintk10a>( spai class="string">"nfsd: GETATTR

%s\n"SVCFH_fmt10a>(& a href="+code=argp" class="sref">argp /a>-> a href="+code=fh" class="sref">fh /a>));4
 51 /a>4
 52 /a>







 a href="+code=fh_copy" class="sref">fh_copy10a>(& a href="+code=resp" class="sref">resp /a>-> a href="+code=fh" class="sref">fh /a>,
& a href="+code=argp" class="sref">argp /a>-> a href="+code=fh" class="sref">fh /a>);4
 53 /a>







 a href="+code=nfserr" class="sref">nfserr /a> =
 a href="+code=fh_verify" class="sref">fh_verify10a>( a href="+code=rqstp" class="sref">rqstp /a>, & a href="+code=resp" class="sref">resp /a>-> a href="+code=fh" class="sref">fh /a>,
0,4
 54 /a>























 a href="+code=NFSD_MAY_NOP" class="sref">NFSD_MAY_NOP /a>
|
 a href="+code=NFSD_MAY_BYPASS_GSS_ON_ROOT" class="sref">NFSD_MAY_BYPASS_GSS_ON_ROOT /a>);4
 55 /a>







return  a href="+code=nfsd_return_attrs" class="sref">nfsd_return_attrs10a>( a href="+code=nfserr" class="sref">nfserr /a>,
 a href="+code=resp" class="sref">resp /a>);4
 56 /a>}4
 57 /a>4
 58 /a> spai class="comment">/* /spaion
 59 /a> spai class="comment"> * Set a file's attributes /spaion
 60 /a> spai class="comment"> * N.B. After this call resp->fh needs an fh_put /spaion
 61 /a> spai class="comment"> */ /spaion
 62 /a>static
 a href="+code=__be32" class="sref">__be32 /a>4
 6310a> a href="+code=nfsd_proc_setattr" class="sref">nfsd_proc_setattr10a>(struct
 a href="+code=svc_rqst" class="sref">svc_rqst /a>
* a href="+code=rqstp" class="sref">rqstp /a>, struct
 a href="+code=nfsd_sattrargs" class="sref">nfsd_sattrargs /a>
* a href="+code=argp" class="sref">argp /a>,4
 64 /a>









































struct
 a href="+code=nfsd_attrstat" class="sref">nfsd_attrstat /a>

* a href="+code=resp" class="sref">resp /a>)4
 6510a>{4
 66 /a>







 a href="+code=__be32" class="sref">__be32 /a>
 a href="+code=nfserr" class="sref">nfserr /a>;4
 67 /a>







 a href="+code=dprintk" class="sref">dprintk10a>( spai class="string">"nfsd: SETATTR

%s, n vidu%x, sizeu%ld\n"
 68 /a>















 a href="+code=SVCFH_fmt" class="sref">SVCFH_fmt10a>(& a href="+code=argp" class="sref">argp /a>-> a href="+code=fh" class="sref">fh /a>),4
 69 /a>















 a href="+code=argp" class="sref">argp /a>-> a href="+code=attrs" class="sref">attrs10a>. a href="+code=ia_n vid" class="sref">ia_n vid /a>, (long)
 a href="+code=argp" class="sref">argp /a>-> a href="+code=attrs" class="sref">attrs10a>. a href="+code=ia_size" class="sref">ia_size /a>);4
 70 /a>4
 71 /a>







 a href="+code=fh_copy" class="sref">fh_copy10a>(& a href="+code=resp" class="sref">resp /a>-> a href="+code=fh" class="sref">fh /a>,
& a href="+code=argp" class="sref">argp /a>-> a href="+code=fh" class="sref">fh /a>);4
 72 /a>







 a href="+code=nfserr" class="sref">nfserr /a> =
 a href="+code=nfsd_setattr" class="sref">nfsd_setattr10a>( a href="+code=rqstp" class="sref">rqstp /a>, & a href="+code=resp" class="sref">resp /a>-> a href="+code=fh" class="sref">fh /a>,
& a href="+code=argp" class="sref">argp /a>-> a href="+code=attrs" class="sref">attrs10a>,0, ( a href="+code=time_t" class="sref">time_t /a>)0);4
 73 /a>







return  a href="+code=nfsd_return_attrs" class="sref">nfsd_return_attrs10a>( a href="+code=nfserr" class="sref">nfserr /a>,
 a href="+code=resp" class="sref">resp /a>);4
 74 /a>}4
 75 /a>4
 76 /a> spai class="comment">/* /spaion
 77 /a> spai class="comment"> * Look up a path naml component /spaion
 78 /a> spai class="comment"> * Note: the dentry in the resp->fh may be negative
if the file /spaion
 79 /a> spai class="comment"> * do7sn' value=2v.12n>
  
  
 61 /a> spai class="comm8code=fh_8opy" class="sref">fh_co8y10a>8.c#L62" idueL62" class="line" namlueL62">
 62 /a>static
 a href="+8code=nfs8rr" class="sref">nfserr8/a> =8href="fs/nfsd/nfsproc.c#L63" idueL63" class="line" namlueL63">
 6310a> a href="+code=nf8href="+c8de=nfsd_return_attrs" c8ass="8setattr10a>(struct
 a href="+ctm">svc_rtm">rqstp /a>, struct
 a href="+code=nfsd_sattrargs" class="sref">nfsd_sattrargs /a>
* a href="+code=argref="ass="sref">argp /a>,4
 64 /a>
















8/nfsproc8c#L75" idueL75" class="8ine" 8"+code=nfsd_attrstat" class="sref">nfsd_attrsts /a>
* a href="+code=resp" class="sref">resp /a>)4
 6510a>{4
 66 /a>







 a href="8nt">/* /8paionnfserr /a>;4
 67 /a>







 a href="8nt"> * L8ok up a path naml compo8ent /8mlueL58">
 58 /a> spai class="comm8sproc.c#LL9" idueL9" class="line"sp-&g88href="+code=nfserr" class="fsd: SETATTR

%s, n vidu%x, sizeu%ld\n"(& a 58">
 58 /a> spai class="comm8nt"> * d87sn' value=2v.12n>
8 
  <8>-> a href="+code=attrs" class="s" class="sref">argp /a>-> a href="+code=fh" class="sref">fh /a>),4attrs10a>. a href="+code=ia_size" class="slon4
ttrs10a>. a hlon/nfsd/nfsproc.c#L74" ref">attrs10a>. a href="+code=ia_size" class="sv.12eL67" class="lin.12amlueL74">
 74 /a>}4
 71 /a>







 a href="9code=fh_9opy" class="sref">fh_co9y10a>9& a href="+code=resp" classinis="sref">ex_path /ainisef="+code=fh" class="sref">fh /a>,
& a href="+code=argp" class="sref">argp /a>-> a href="+MAY_BYPASS_GSS_ON__FHSIZEfsd/nfsproc.c#L55"_FHSIZEamlueL74">
 74 /a>}4nfserr9/a> =9 a href="+code=nfsd_setattr" class="sref">nfsd_setattr10a>( a href="+code=rqstp" ctm">tm">resp /a>-> a href="+code=fh" class="sref">fh /a>),4attrs10a>. a href="+code=ia_size" class="sv.12eL67" class="lin.12amluL=attrs" class="sref">attrs10a>. a href="+code=ia_size" class="slon4
ttrs10a>. a hlon/nfsd74">
 74 /a>}4fh /a>,
& a href="+code=argp" class="sref">argp /a>-> a href=eL74">
 74 /a>}4
 25 /a>static
 a href="+9nfsproc.9#L76" idueL76" class="l9ne" n95amp; a href="+code=resp" classe" ="sref">ex_path /ae" na="+code=fh" class="sref">fh /a>),4
 74 /a>}4/* /9paion( a href="+code=nfser2" class="sref">__be32 /a>
 a href="+code=err" class="sreref">resp /a>);4
 74 /a>}4 * L9ok up a path naml compo9ent /97mlueL75">
 75 /a>4
 
9 /a>#include "
 77 /a> spai class="comm10href="fs/nnfsd/xdr.h" class="fref">ne" ">nneeds an fh_put /spaion
 
3 /a> spai class="comment10href="fs/0nfsd/vfs.h" class="fref"01e" ">.c#L62" idueL62" class="line" namlueL62">
 62 /a>static
 a href="+10nfsproc.c0#L13" idueL13" class="li02e" ">href="fs/nfsd/nfsproc.c#L63" idueL63" class="line" namlueL63">
 6310a> a href="+code=nf10href="+co0de=svc_rqst" class="sref03e" ">setattr10a>(struct
 a href="+cread" ckdiqst" class="sref">svc_rread" ck
* a href="+code=rqstp" class="sref">rqstp /a>, struct
 a href="+code=nfsd_sattrargs" class="sref">nfsd_sattrargs /a>
* a href="+code=argread" ckass="sref">argp /a>,4
 64 /a>
















10href="+co0de=svc_buf" class="sref"04e" ">"+code=nfsd_attrstat" class="sref">nfsd_attrstaargs /a>
* a href="+code=argread" cks="sref">resp /a>)4
 6510a>{4amlueL66">
 66 /a>







 a href="10code=NFSD0DBG_FACILITY" class="sre06e" "> href="+code=nfserr" class="sref">nfserr /a>;4
 67 /a>







 a href="10nfsproc.c0#L18" idueL18" class="li07e" ">mlueL18">
 18 /a>48href="+code=nfserr" class="fsd: SETATTR

%s, n vidu%x, sizeu%ld\n"SVCFH_fmt10a>(& a href="+code=argp" class="sref">argp /a>-> a href="+code=fh" class="sref">fh /a>));4
 51 /a>4__be32 /09e" ">9lueL18">
 18 /a>4xdr11 spai class="svalue=2v.11.15.8"
	  " eRead ="lisym" ckae" namlueL62">
 62 /a>static
 a href="+1 href="fs/nnfsd/vfs.h" class="fref">1e" "1& a href="+code=resp" cl">fh /a>,
& a href="+code=argp" class="sreflon4
ttrs10a>. a hlon/nfs a href="+code=rqs55"_MAXPATHLENfsd/nfsproc.c#L55"_MAXPATHLENmlueL67">
 67 /a>







 a href="1/nfsproc.cc#L13" idueL13" class="liine" 11 a href="+code=nfsd_setattr" class="sref">nfsd_setattr10a>( a href="+code=rqstp" cread" ckdiqst" class="sref">read" ck
* a ode=resp" class="sref">resp /a>-> a href="+code=fh" class="sref">fh /a>),4attrs10a>. a href="+code=ia_size" class="sbuffes="sref">nfsd_sebuffesref="+code=fh" class="sref">fh /a>,
& a href="+code=argp" class="sreflon4
ttrs10a>. a hlon/nfseL51">
 51 /a>4sv1_rqst 51">
 51 /a>4svc114a href="+code=nfsd_setattr"asse" ="sref">ex_path /ae" na="+code=fh" class="sref">fh /a>),4
 74 /a>}4nfsd_return_attrs10a>( a href="+cidueL67" class="line" namlueL67">
 67 /a>







 a href="1+code=NFSDDDBG_FACILITY" class="sreef">N11amlueL57">
 57 /a>4
 18 /a>4
 59 /a> spai class="comm1code=__be332" class="sref">__be32 //a>4<11ption value=2v.11.15.8"
	  >
 Read a  a hL3" of" idueLamlueL3">
 
3 /a> spai class="comment1sd_proc_n1ull" class="sref">nfsd_p1roc_n12 needs an fh_put /spaion
 61 /a> spai class="comm1d/nfsproc1.c#L22" idueL22" class="1line"12.c#L62" idueL62" class="line" namlueL62">
 62 /a>static
 a href="+1 href="+c1ode=nfs_ok" class="sref"1>nfs_12href="fs/nfsd/nfsproc.c#L63" idueL63" class="line" namlueL63">
 6310a> a href="+code=nf1d/nfsproc1.c#L24" idueL24" class="1line"12setattr10a>(struct
 a href="+creaddiqst" class="sref">svc_rread
* a href="+code=rqstp" class="sref">rqstp /a>, struct
 a href="+code=nfsd_sattrargs" class="sref">nfsd_sattrargs /a>
* a href="+code=argreadass="sref">argp /a>,4
 64 /a>
















1/nfsproc.1c#L25" idueL25" class="l1ine" 12"+code=nfsd_attrstat" class="sref">nfsd_attrrgs /a>
* a href="+code=argreads="sref">resp /a>)4
 6510a>{4__be32 1/a>4<12amlueL66">
 66 /a>







 a href="1sd_return1_attrs" class="sref">nfs1d_ret12 href="+code=nfserr" class="sref">nfserr /a>;4
 67 /a>







 a href="1d/nfsproc1.c#L28" idueL28" class="1line"12mlueL18">
 18 /a>4err /1a>)
r128href="+code=nfserr" class="fsd: SETATTR

%s, n vidu%x, sizeu%ld\n"(& a 58">
 58 /a> spai class="comm1 href="+c1ode=nfserrno" class="sre1f">nf12>-> a href="+code=attrs" class="s" class="sref">argp /a>-> a href="+code=fh" class="sref">fh /a>),4
 58 /a> spai class="comm1








1









 a href="+code1=resp1 class="sref">resp /a>fh" class="sref">fh /a>),4attrs10a>. a href="+code=ia_size" class="sofe" 38" class="line"ofe" 3amlueL74">
 74 /a>}4
 52 /a>







 a href="1d/nfsproc1.c#L33" idueL33" class="1line"13 a href="+codevalue=2v.11.15.8"
	  " eObtain buffes  aidues fos  ayload. 19 spr1 word fosnamlueL62">
 62 /a>static
 a href="+1code=__be132" class="sref">__be32 1/a>4<13 needs an fh_put /spaion
 
3 /a> spai class="comment1sd_return1_dirop" class="sref">nfs1d_ret13.c#L45" idueL45" class="linehhhhhhhh* namlueL62">
 62 /a>static
 a href="+1d/nfsproc1.c#L36" idueL36" class="1line"13mlueL16">
 16 /a>#define
 a href="+ef="+code1=err" class="sref">err /1a>)
r1turn  a href="+code=err" class="sNFS>_MAXBLKSIZE_V>nfserr /a>;4rn  a /a>>fh" class="sref">fh /a>),4
 66 /a>







 a href="1 href="+c1ode=nfserrno" class="sre1f">nf13"+code=nfsd_attrstat"char>fh" class="sref idueL15" class="l namlue[fh" class="srefRPt_MAX_ADDRBUFLENfsd/nfsproc.c#LRPt_MAX_ADDRBUFLENmlue]L74">
 74 /a>}4resp /a>fh" class="srefsd: SETATTR

%s,  vidu%x,h" class="srefKERN_NOTICEfsd/nfsproc.c#LKERN_NOTICElueL16">
 16 /a>#define
 a href="+ehref="+c1









& a href="1+code1resp" class="sref">resp /a>-&g, sizeu%ld\n"(& a 58">
 58 /a> spai class="comm1d/nfsproc1.c#L41" idueL41" class="1line"14class="sref">resp /a>-> a href="+ccode=rqstp" class=" vidu_addueL67" class="liss=" vidu_addu
* a ode=resp" class="sref">resp /a>-> a href="+fh" class="sref idueL15" class="l namlue idueLof ode=resp" class idueL15" class="l namlue)eL58">
 58 /a> spai class="comm1ent">/* /1spaionresp /a>-> a hrefh" class="sref">fh /a>),4
 14 /a>typldef struct
 a h/nfsproc1et a file's attribut1es /s142lass="sref">resp /a>fh" class="sref">fh /a>),4nfserr /a>;4rn  L14">
 14 /a>typldef struct
 a hode=__be1.B. After this call resp1->143-> a hrefL57">
 57 /a>4 */ 1/spaion,nresp /a>-> a href="+(19 /a> /a>2) +>fh" class="sref">fh /a>),4
 14 /a>typldef struct
 a h/nfsproc132" class="sref">__be32 1/a>4<14mlueL16">
 16 /a>#define
 a href="+sd_proc_g1etattr" class="sref">nfs1d_pro14 href="+code=nfserr" class="">fh /a>,
& a href="+code=argp" class="srefcouL38" class="line"couL3amlu a href="+code=rqs">fh /a>),4
 14 /a>typldef struct
 a hhref="+c1















struct
 1a hre14 spai class="string">"n class="sref">nfsd_setattr10a>( a href="+code=rqstp" creadsref">resp /a>)4resp /a>-> a href="+fh" class="srefass="sref">resp /a>-> a href="+code=fh" class="sref">fh /a>,
& a href="+code=argp" class="sref">argp /a>-> a href="+code=fh" class="sref">fh /a>);4
 58 /a> spai class="comm1ef="+code1.c#L49" idueL49" class="1line"14class="sref">resp /a>-> a href="+codnfsproc.c#L74" ref">attrs10a>. a href="+code=ia_size" class="sofe" 38" class="line"ofe" 3amluL58">
 58 /a> spai class="comm1ehref="+c1e32" class="sref">__be321 /a>
14esp" class="sref">resp /a>-> a href=ode=resp" class="sref">resp /a>-> a href=de=ia_size" class="srq_vecf">resp /a>-> _vecamlud/nfsproc.c#L74" ref">attrs10a>. a href="+code=ia_size" class="svlon4
ttrs10a>. a hvlon/nfsd74">
 74 /a>}4dprin1tk10a15class="sref">resp /a>-> a href="+c==code=fh" class="sref">fh /a>,
& a href="+code=argp" class="srefcouL38" class="line"couL3amlu)L14">
 14 /a>typldef struct
 a /nfsproc.1c#L52" idueL52" class="l1ine" 1amlueL52">
 52 /a>







 a href="1+code=fh_1copy" class="sref">fh_co1py10a1(& a href=+code=err" class="s class="sref">nfsd_setattr10a>(/nfsd/nfsproc.c#L37" idu7" idueL67" class="line" namlueL67">
 67 /a>







 a href="1+code=nfs1err" class="sref">nfserr1 /a> 15ref">nfsd_return_attrs10a>( a href="+class="sref">vfs_getattr10a>( a href="+code=resp" class="sref">resp /a>-> a href="+code=fh" class="sref">fh /a>. a href="+code=fh_export" class="sref">fh_export /a>-> a href="+code=ex_path" class="sref">ex_path /a>. a href="+code=mnt" class="sref">mnt /ref">ex_path"fs/nfsd/nfsproc.c#L38" idueL38" class="line" namlueL38">
 38 /a>
















1






 a1 href="+code=NFSD_MAY_NO1P" cl1ss="sref">NFSD_MAY_NOP /a>
|
 > a href=ode=resp" class=>fh /a>. a href="+code=fh_dentry" class="sref">fh_dentry /a>,n
 39 /a>
















1 href="+c1ode=nfsd_return_attrs" c1lass=1sref">nfsd_ret">resp /a>-> a href="+c==code=fh" class="sref">fh /a>,
& a href="+code=argp" class="sref idueL40" class="line" namlueL40">
 40 /a>}4
 57 /a>4
 58 /a> spai class="comm1ent">/* /1spaion
 59 /a> spai class="comm1ent"> * S1et a file's attribut1es /s1aion
 59 /a> spai class="comm1ent"> * N1.B. After this call resp1->1h needs an fh_put /spaion
 61 /a> spai class="comm1ent"> */ 1/spaion
 62 /a>static
 a href="+1code=__be132" class="sref">__be32 1/a>4<1 href="fs/nfsd/nfsproc.c#L63" idueL63" class="line" namlueL63">
 6310a> a href="+code=nf1sd_proc_s1etattr" class="sref">nfs1d_pro1_setattr10a>(struct
 a href="+cwritediqst" class="sref">svc_rwrite
* a href="+code=rqstp" class="sref">rqstp /a>, struct
 a href="+code=nfsd_sattrargs" class="sref">nfsd_sattrargs /a>
* a href="+code=argwriteass="sref">argp /a>,4
 64 /a>
















1








1















struct
 1a hre1="+code=nfsd_attrstat" class="sref">nfsd_attrst /a>

* a href="+code=resp" class="sref">resp /a>)4
 6510a>{4
 66 /a>







 a href="1+code=__b1e32" class="sref">__be321 /a>
1a href="+code=nfserr" class="sref">nfserr /a>;4
 67 /a>







 a href="1+code=dpr1intk" class="sref">dprin1tk10a1( spai class="intcode=nfserr" class="="fb="sref">argp /a>,="fb="0a>( a 1L67">
 67 /a>







 a href="1+nt">/* /1code=SVCFH_fmt" class="s1ref">1VCFH_fmt10a>(&unsigned +cod=nfserr" class="cL38" class="line"cL3amlu a href="+code=rqs">fh /a>),4. a hlon/nfsL67">
 67 /a>







 a href="1+nt"> * S1code=argp" class="sref">1argp 169lueL18">
 18 /a>4"nfsd: GETATTR

%s\n"(& a 58">
 58 /a> spai class="comm1+code=fh_1copy" class="sref">fh_co1py10a17esp" class="sref">resattrs" class="s" class="sref">argp /a>-> a href="+code=fh" class="sref">fh /a>),4
 58 /a> spai class="comm1+code=nfs1err" class="sref">nfserr1 /a> 172lass="sref">resp /a>fh" class="sref">fh /a>),4. a hlon/nfsd/nfsproc.c#L74" ref">attrs10a>. a href="+code=ia_size" class="sofe" 38" class="line"ofe" 3amlueL74">
 74 /a>}4
 51 /a>4nfsd_setattr10a>( a href="+code=rqstp" cwritediqst" class="sref">write
* a ode=resp" class="sref">resp /a>-> a href="+fh" class="srefass="sref">resp /a>-> a href="+code=fh" class="sref">fh /a>,
& a href="+code=argp" class="sref">argp /a>-> a href="+code=fh" class="sref">fh /a>);4
 64 /a>
















1/nfsproc.1c#L76" idueL76" class="l1ine" 17ref">nfsd_ret">resp /a>-> a href="+c=nfsproc.c#L74" ref">attrs10a>. a href="+code=ia_size" class="sofe" 38" class="line"ofe" 3amluL58">
 58 /a> spai class="comm1ent">/* /1spaionnfsd_ret">resp /a>-> a href="+c=nfsproc.c#L74" ="sref">resp /a>-> a href=de=ia_size" class="srq_vecf">resp /a>-> _vecamlud/nfsproc.c#L74" ref">attrs10a>. a href="+code=ia_size" class="svlon4
ttrs10a>. a hvlon/nfsd74">
 74 /a>}4nfsd_code=fh" class="srefcL38" class="line"cL3amlud74">
 74 /a>}4/* /1ote: the dentry in the r1esp-&17class="sref">resp /a>-> a href="+codecode=fh" class="sref="fb="sref">argp /a>,="fb="0a>(eL74">
 74 /a>}4 * S1o7sn' value=2v.12n>
1  
  17rrno10a>( a href="+code=vfs_getattr" code=nfserr" class="sref">nfserr /a>,
 a href="+code=resp" class="sref">resp /a>);4
 74 /a>}4
 41 /a> spai class="comm18code=fh_18opy" class="sref">fh_co18y10a18mlueL52">
 52 /a>







 a href="18code=nfs18rr" class="sref">nfserr18/a> 18ion
 59 /a> spai class="comm18href="+c18de=nfsd_return_attrs" c18ass=18 needs an fh_put /spaion
 59 /a> spai class="comm18/nfsproc18c#L75" idueL75" class="18ine"18.c#L45" idueL45" class="line" The par="l directoef="s kept +ccked betweefs/nfscheck fos ="sreencLnamlueL59">
 59 /a> spai class="comm18nfsproc.18#L76" idueL76" class="l18ne" 18amlue5" idueL45" class="line" s=dr/nfsactual create()roc.c#inrs="lliancL with VFS+ss=tocolsamlueL3">
 
3 /a> spai class="comment18nt">/* /18paion
 61 /a> spai class="comm18nt"> * L18ok up a path naml compo18ent 18paion
 62 /a>static
 a href="+18sproc.c#1LL9" idueL9" class="line1"sp-&188href"fs/nfsd/nfsproc.c#L63" idueL63" class="line" namlueL63">
 6310a> a href="+code=nf18nt"> * d187sn' value=2v.12n>
18 
  18>->tr10a>(struct
 a href="+ccreatediqst" class="sref">svc_rcreate
* a href="+code=rqstp" class="sref">rqstp /a>, struct
 a href="+code=nfsd_sattrargs" class="sref">nfsd_sattrargs /a>
* a href="+code=argcreateass="sref">argp /a>,4
 64 /a>
















19nfsproc.19#L71" idueL71" class="l19ne" 19class="sref">resp /a>-> a href="+code======s /a>
* a href="+code=resp" class="sref">resp /a>)4
 6510a>{4fh_co19y10a19amlueL22">
 22 /a>







return  a19code=nfs19rr" class="sref">nfserr19/a> 19 a href="+code=nfsd_setattr"ructL72" class="line"ructL7lass="sref">renfsproc.c#L65" ireffhL65" class="linereffhL0a>( a code=fh" class="sref">fh /a>);4
 74 /a>}4renfsproc.c#L65" inewfhL65" class="linenewfhL0a>( a code=fh" class="sref">fh /a>,
& a href="+code=argp" class="sref">argp /a>-> a href=L74">
 74 /a>}4resp /a>->if="+code">renfsproc.c#L65" i"sref">resp /a>->f="+code"a code=fh" class="sref">fh /a>);4time_t /a>)0);4
 74 /a>}4
* a href="+code=inodef">resp /a>->inodecode">renfsproc.c#L65" iinodef">resp /a>->inodecodeL74">
 74 /a>}4/* /19paion
* a href="+code=#L39" idueL39" class=ne" namlue>renfsproc.c#L65" irchildsref">resp /a>)rchildcodeL74">
 74 /a>}4 * L19ok up a path naml compo19ent 19 spai class="intcode=; a hrefe=nfsd_setattr"typef">resp /a>->type/nfsd/nfsproc.c#L74" modef">resp /a>->modecodeL74">
 74 /a>}4nfserr /a>;4
 67 /a>







 a href="1eef="fs/n1ffsd/cache.h" class="fre1f 
  199spai class="intcode=; a hrefe=nfsd_setattr"horeedueL67" class="lihoreedumlueL67">
 67 /a>







 a href="20href="fs2nnfsd/xdr.h" class="fref2>ne" 20 spai class="string">"nfev" idueL73" class=fev" lass="sref">resfh" class="sref"fev /a>,
& a hrfevcode"a 0d/nfsproc.c#L74" wanted /a>,
& a hwanted0a>( a href="+code=rqstew_dee=rq_fev /a>,
& a htew_dee=rq_fev+code=resp" class="s"sref">resp /a>->f="+code/nfsproc.c#L72" idue#L70" idueL70" class="line" namlueL70">
 70 /a>4
 52 /a>







 a href="20nfsproc.20#L13" idueL13" class="l202e" 20 a href="+code=nfsd_setattr"fsd: GETATTR

%s\n"(& a 58">
 58 /a> spai class="comm20href="+c20de=svc_rqst" class="sre203e" 203-> a href="+code=attrs" class="s" class="sref">argp /a>-> a href="+fsproc.c#L65" ireffhL65" class="linereffhL0a>(eL=attrs" class="sref">attrs10a>. a href="+code=ia_size" class="slon4
ttrs10a>. a hlon/nfsd/nfsproc.c#L74" ref">attrs10a>. a href="+code=ia_size" class="sv.12eL67" class="lin.12amlueL74">
 74 /a>}4
 25 /a>static
 a href="+20nfsproc.20#L16" idueL16" class="l205e" 205amp; a href="value=2v.11.15.8"
	  " eFirst  a hrer/nfspar="l dueL ef="fsoc namlueL62">
 62 /a>static
 a href="+20code=NFS20DBG_FACILITY" class="sr206e" 2> href="+code=nfserr" class=" class="sref">nfsd_setattr10a>( a href="+code=rqsass="sref">rqstp /a>, & a href="+code=resp" class="sref">resp /a>-> a href="+fsproc.c#L65" ireffhL65" class="linereffhL0a>( href="+code=argp"_IFDIRsref">argp /a>-&_IFDIR0a>( href="+code=argp55" idueLEXECnfserr /a>;4
 74 /a>}4nfsd_setattr10a>(/74">
 74 /a>}4resp /a>goto+fsproc.c#L65" iron2eL67" class="liron2mlueL="value=2v.11.15.8"
	  " emu"  fine"  reffhL even on tr1oroc namlueL62">
 62 /a>static
 a href="+209ode=NFS20fsd/cache.h" class="fre209e" 2>9lueL18">
 18 /a>4xdr21 spai class="svalue=2v.11.15.8"
	  " eCheck fos N5" idueLWRITE+in ,4
 62 /a>static
 a href="+2 href="fs2nnfsd/vfs.h" class="fref2>1e" 21mlueL52">
 52 /a>







 a href="2/nfsproc.2c#L13" idueL13" class="l2ine" 21 a href="+code=nfsd_setattr" class="sref">nfsd_setattr10a>( a href="+code=rqstp"tr1_acc="sref">resp /a>)4
 67 /a>







 a href="2 href="+c2ode=svc_rqst" class="sre2f">sv213spai class="icod!attrs" class="sref">attrs10a>. a href="+code=ia_size" class="slon4
ttrs10a>. a hlon/nfs/74">
 74 /a>}4svc21"+code=nfsd_attrstat"goto+fsproc.c#L65" iron2eL67" class="liron2mlueL74">
 74 /a>}4nfsd_setattr10a>( a href="+code=rqstp"tr1_="sresref">resp /a>)4
 74 /a>}4N21urn  a href="+code=err" class="sisdoteL38" class="line"isdoteL3+code=resp" class="s"ef">attrs10a>. a href="+code=ia_size" class="sv.12eL67" class="lin.12amluL=attrs" class="sref">attrs10a>. a href="+code=ia_size" class="slon4
ttrs10a>. a hlon/nfs)/74">
 74 /a>}4
 74 /a>}4
 74 /a>}4__be32 2/a>4<219rn  a href="+code=err" class="shoreedueL67" class="lihoreedumlue) L66">
 66 /a>







 a href="2sd_proc_n2ull" class="sref">nfsd_p2roc_n22class="sref">resp /a>fh" class="sref class="sref">nfsd_setattr10a>( a href="+code=rqstp"tr1s="sref">vfs_getattr10a>( a href="+code=resp"horeedueL67" class="lihoreedumlue)L74">
 74 /a>}4resgoto+fsproc.c#L65" iron2eL67" class="liron2mlueL74">
 74 /a>}4nfs_22 a href="+codL41">
 41 /a> spai class="comm2d/nfsproc2.c#L24" idueL24" class="2line"22rqst 51">
 51 /a>4,
& a hass+cck_nestedef="+fsproc.c#L65" ireffhL65" class="linereffhL0a>(L=attrs" class="sI_MUTEX_PARENnfsd/nfsproc.c#LI_MUTEX_PARENnmlue)L74">
 74 /a>}4__be32 2/a>4<225amp; a href="+code=resp" clrchildsref">resp /a>)rchildcode a href="+code=rqstm">. a hlm">attrs10a>. a href="+code=ia_size" class="sv.12eL67" class="lin.12amluL=attrs" class="sreffhL65" class="linereffhL0a>(de=argp" class="sref">_#L39" idueL39" class="line" namlueL=attrs" class="sref">attrs10a>. a href="+code=ia_size" class="slon4
ttrs10a>. a hlon/nfs)L74">
 74 /a>}4nfs2d_ret22urn  a href="+code=err" class="sIS_ERRsref">argp /a>-IS_ERRef="+fsproc.c#L65" irchildsref">resp /a>)rchildcode)) L66">
 66 /a>







 a href="2s7ode=NFS2.c#L28" idueL28" class="2line"22"+code=nfsd_attrstat"fh" class="sref class="sref">nfsd_setattr10a>( a href="+code=rqstp"tr1s="sref">vfs_getattr10a>( a href="+code=resp"PTR_ERRsref">argp /a>-PTR_ERRef="+fsproc.c#L65" irchildsref">resp /a>)rchildcode))L74">
 74 /a>}4err /2a>)
r22class="sref">resp /a>goto+fsproc.c#L65" iout_un+ccksref">resp /a>)out_un+cckmlueL74">
 74 /a>}4nf22>-> a hrefL41">
 41 /a> spai class="comm2








2









 a href="+code2=resp23 spai class="string">"nassinis="sref">ex_path /ainisef="+fsproc.c#L65" inewfhL65" class="linenewfhL0a>("+MAY_BYPASS_GSS_ON__FHSIZEfsd/nfsproc.c#L55"_FHSIZEamlueL74">
 74 /a>}4nfsd_setattr10a>( a href="+code=rqsasss="lisediqst" class="sasss="liseef="+fsproc.c#L65" inewfhL65" class="linenewfhL0a>("+MAY_BYPASS_GSS_reffhL65" class="linereffhL0a>(de=argp" class="sref">_ class="sref">ex_path /a>. a href="+MAY_BYPASS_GSS_rchildsref">resp /a>)rchildcode"+MAY_BYPASS_GSS_reffhL65" class="linereffhL0a>(eL74">
 74 /a>}4nfsd_setattr10a>( code=code= !attrs" class="srchildsref">resp /a>)rchildcodede=argp" class="srefd_inodef">resp /a>->d_inode/nfs/74">
 74 /a>}4__be32 2/a>4<233-> a href="+code=attrs" class="s class="sref">nfsd_setattr10a>( a href="+code=rqstp"tr1_noeL38" class="line"tp"tr1_noeL3mlueL74">
 74 /a>}4nfs2d_ret234a href="+code=nfsd_setattr"de" ="sref">ex_pathde" na="+fsproc.c#L65" irchildsref">resp /a>)rchildcode)L74">
 74 /a>}4nfsd_setattr10a>(/ L66">
 66 /a>







 a href="2ef="+code2=err" class="sref">err /2a>)
r236ef">nfsd_ret">resp /icode=err" class="s class="sref">nfsd_setattr10a>( !a href="+code=rqstp"tr1_noeL38" class="line"tp"tr1_noeL3mlue/74">
 74 /a>}4nf23"+code=nfsd_attrstat"resp /a>goto+fsproc.c#L65" iout_un+ccksref">resp /a>)out_un+cckmlueL74">
 74 /a>}4resp /a>fhref="fs/nfsd/nfsproc" namlueL59">
 59 /a> spai class="comm2ehref="+c2









& a href="2+code23ion
 59 /a> spai class="comm2d/nfsproc2.c#L41" idueL41" class="2line"24 needs an fh_put /spaion
 
3 /a> spai class="comment2ent">/* /2spaion
 62 /a>static
 a href="+2h/nfsproc2et a file's attribut2es /s242lass="sref">resp /a>fh" class="sref class="sref">nfsd_setattr10a>( a href="+code=rqstp"tr1_acc="sref">resp /a>)4
 67 /a>







 a href="2hode=__be2.B. After this call resp2->243-> a href="+code=icod!attrs" class="s ewfhL65" class="linenewfhL0a>(de=argp" class="sref">_#L39" idueL39" class="line" namlue/ L66">
 66 /a>







 a href="2ent"> */ 2/spaionfh" class="srefsd: SETATTR

%s,  vidu%x,h" class="srefKERN_WARNINGTATTR

%s, KERN_WARNING+code66">
 66 /a>







 a href="2enfsproc.232" class="sref">__be32 2/a>4<24ref">nfsd_ret">resp /a>-> a href="o,
 a href="+code=SVCFH_fmt" cl>svc_rcreate: dueL ef="fsonots a hriedfmt10a>(& a)L74">
 74 /a>}4nfs2d_pro246ef">nfsd_ret">resp /a>-> goto+fsproc.c#L65" iout_un+ccksref">resp /a>)out_un+cckmlueL74">
 74 /a>}4
 41 /a> spai class="comm2ef="+code2.c#L49" idueL49" class="2line"24class="sref">L41">
 41 /a> spai class="comm2ehref="+c2e32" class="sref">__be322 /a>
249lueL18">
 18 /a>4dprin2tk10a25 spai class="string">"ninodef">resp /a>->inodecode"a href="+code=rqstewfhL65" class="linenewfhL0a>(de=argp" class="sref">_#L39" idueL39" class="line" namluede=argp" class="srefd_inodef">resp /a>->d_inode/nfsL74">
 74 /a>}4
 52 /a>







 a href="2+code=fh_2copy" class="sref">fh_co2py10a2(& a href=svalue=2v.11.15.8"
	  " eUnfudges="limode bies * namlueL62">
 62 /a>static
 a href="+2+code=nfs2err" class="sref">nfserr2 /a> 253spai class="icodattrs" class="srsref">resp /a>->f="+code/nfsproc.c#L72" idue#L7validsref">resp /a>)#L7valid0a>( code= href="+code=rqsATTR_MODEfsd/nfsproc.c#LATTR_MODEmlue/ L66">
 66 /a>







 a href="2






 a2 href="+code=NFSD_MAY_NO2P" cl2ss="sref">NFSD_MAY_NOPhref="+code=rqstypef">resp /a>->type/nfs a href="+code=rqs"sref">resp /a>->f="+code/nfsproc.c#L72" idue#L7modef">resp /a>->#L7mode0a>( code= href="+code=rqs&_IFMnfsd/nfsproc.c#L&_IFMn/nfsL74">
 74 /a>}4nfsd_ret">resp /href="+code=rqsmodef">resp /a>->modecode a href="+code=rqs"sref">resp /a>->f="+code/nfsproc.c#L72" idue#L7modef">resp /a>->#L7mode0a>( code= ~href="+code=rqs&_IFMnfsd/nfsproc.c#L&_IFMn/nfsL74">
 74 /a>}4nfsd_ret">resp /icod!attrs" class="stypef">resp /a>->type/nfs/ L66">
 66 /a>







 a href="2
href="+c2c#L58" idueL58" class="l2ine" 25"+code=nfsd_attrstat"resp /a>svalue=2v.11.15.8"
	  " eno type, so/icotarget ="sres, v.1ume sass v.s="at,namlueL62">
 62 /a>static
 a href="+2+f="+code2spaion.* else v.1ume  idueL * namlueL62">
 62 /a>static
 a href="+2+href="+c2et a file's attribut2es /s25esp" class="sref">resp /a>-&g+code=err" class="sinodef">resp /a>->inodecode/ L66">
 66 /a>







 a href="2ent"> * N2.B. After this call resp2->26class="sref">resp /a>-> a href="+ccode=rqstp" clatypef">resp /a>->type/nfs a href="+code=rqsinodef">resp /a>->inodecode/nfsproc.c#L72" idue#7modef">resp /a>->#7mode0a>( code= href="+code=rqs&_IFMnfsd/nfsproc.c#L&_IFMn/nfsL74">
 74 /a>}4 */ 2/spaionresp /a>-> a hreswitchde=err" class="stypef">resp /a>->type/nfs/ L66">
 66 /a>







 a href="2code=__be232" class="sref">__be32 2/a>4<262lass="sref">resp /a>>>>>>>>>>>>>>>>>case href="+code=rqs&_IFCHRsref">argp /a>-&_IFCHRlass:66">
 66 /a>







 a href="2ccode=nfs2etattr" class="sref">nfs2d_pro263-> a href="+code=================case href="+code=rqs&_IFBLKsref">argp /a>-&_IFBLKlass:66">
 66 /a>







 a href="2c





 a2















struct
 2a hre2="+code=nfsd_attrstat" class="sref">nfsd_attrssvalue=2v.11.15.8"
	  " e
e" nve rfev fos lafsd/checke=S * namlueL62">
 62 /a>static
 a href="+2d/nfsproc2.c#L66" idueL66" class="2line"26ref">nfsd_ret">resp /a>-> a href="+c==ttrssref="+code=rqs"fev /a>,
& a hrfevcode"a href="+code=rqsinodef">resp /a>->inodecode/nfsproc.c#L72" idue#7"fev /a>,
& a h#7"fev/nfsL74">
 74 /a>}4__be322 /a>
266ef">nfsd_ret">resp /a>-> a href="+c==ttrssref="+code=rqsrsref">resp /a>->f="+code/nfsproc.c#L72" idue#L7validsref">resp /a>)#L7valid0a>( |a href="+code=rqsATTR_SIZEfsd/nfsproc.c#LATTR_SIZE/nfsL74">
 74 /a>}4dprin2tk10a26mlueL58">
 58 /a> spai class="comm2+nt">/* /2code=SVCFH_fmt" class="s2ref">26class="sref">resp /a>-> a href="+codeattrssvalue=2v.11.15.8"
	  " eFALLTHROUGH * namlueL62">
 62 /a>static
 a href="+2dhref="+c2code=argp" class="sref">2argp 26esp" class="sref">resp /a>-> a hrecase href="+code=rqs&_IFIFOsref">argp /a>-&_IFIFOlass:66">
 66 /a>







 a href="2/nfsproc.2c#L71" idueL71" class="l2ine" 27class="sref">resp /a>-> a href="+codeattrssvalue=2v.11.15.8"
	  " enfsprspra hbably a  ermissL3" check.amlueL3">
 
3 /a> spai class="comment2+code=fh_2copy" class="sref">fh_co2py10a27.c#L62" idueL62" class="line........................................*asssleast IRIX imples="ls  erm/checke=S onmlueL3">
 
3 /a> spai class="comment2+ode=__be2err" class="sref">nfserr2 /a> 27ion
 59 /a> spai class="comm2 href="+c2ode=nfsd_return_attrs" c2lass=27 needs an fh_put /spaion
 59 /a> spai class="comm2 





 a2.c#L75" idueL75" class="2line"27.c#L45" idueL45" class="linehhhhhhhh................................* namlueL62">
 62 /a>static
 a href="+2/nfsproc.2c#L76" idueL76" class="l2ine" 27ref">nfsd_ret">resp /a>-> a href="+c======fh" class="sref class="sref">nfsd_setattr10a>( a href="+code=rqstp"d_ ermissL3"="sref">nfsd_setatd_ ermissL3"#37;x,h" class="sref="sref">resp /a>-> a href="62">
 62 /a>static
 a href="+2/d_proc_g2spaionnfsd_ret">resp /a>-> a href="+c=resp /a>-> a href="+c======fh" class="sref ewfhL65" class="linenewfhL0a>(de=argp" class="sref">_ class="sref">ex_path /a>. a href="62">
 62 /a>static
 a href="+2/href="+c2##L18" idueL18" class="l2nk10a2 class="link10a17"+code=nfsd_attrstat" clresp /a>-> a href="+c======fh" class="sref ewfhL65" class="linenewfhL0a>(de=argp" class="sref">_a hrfevcode"a href="+code=rqsinodef">resp /a>->inodecode/nfsproc.c#L72" idue#7"fev /a>,
& a h#7"fev/nfsL74">
 74 /2esp /a>-&2t; a href="+codecode=fh"2class2"sref="fb="sref">argp /a>,="fb="0a>(eL74"lass="linenewfhL0a>(de=argp" class="sref">_a 
 62 /a>static/nfs2








2


2 /a>staticref=|lass="sref">_a 
 62 /a>sLOCAL_ACCESS/nfs2








2


2 /a>sLOCAL_ACCESSueL36" class="2line"235fs/nfs="+codief="+code2vfs_getattr" code=nfserr2 clas27sref">resp /a>-> a href=de=ia_size"       ef="+code=rqstp"tr1_noeL38" class="line"tp"tr1_noeLdede=argp" +code=rqstp"tr1_noeL38" class="line"tp"tr1_noeL3mlue/74">
 74 /a>}4nf23"+code=nfsd_at /a> spai2class="comm18code=fh_18o2y" cl28href="+code=resp" class="sref">resp /a>)4
 74 /a>}4





2
 a href="18code=nfs18rr2 clas28="stypef">resp /a>->type/nfs/ L66">f">__be322 /a>
249lueL18">
 18 /nfsd/nfs2roc" namlueL59">
 59 /a>2spai 28s&_IFCHRsref">argp /a>-&_IFCH}"+2+h">__be322 /a>
249lueL18">
 18 /t /spaionargp /a>-&_IFBLKlass:66=rqsinodef">resp /a>->inodecode/nfsproc.c#L72" idue#7modef1" iREhref="2enfsproc.1" iREh




struct
 2a hre24"+code=nfsd_at/" class="line" The par="l directo2f="s 281.15.8"
	  " e
e" nvef">__be322 /a>
249lueL18">
 18 /resp /a>-line" s=dr/nfsactual cre2te()r28sref class="s}"+2+h
 66 /a>







 a href="2ent"> * N2.B. After this call resp2->26class="sref">r" class="2inehref="fs/nfsd/nfsproc2c#_bo28href="+c======fh" cla=rqsinodef">resp /a>->inodecode/nfsproc.c#L72" idue#7modef">resp /a>->#7mode0a>( code= href="+code=rqs&_IFMnfsd/nfsproc.c#L&_IFMn/nfsL74">
 74 /a>}4 */ 2/spaion
 62 /a2stati28etattr10a>( a href="+code=rqstp"tr1s /a>->f="+code/nfsproc.c#L72" idue#L7modef"">resp /a>->#7mode0a>( code= href="+code=rqs&_IFMnfsd/nfsproc.c#L&_IFMn/nfsL74">
 74  /a>}4nfsd_ret"nfsproc.c2L63" idueL63" class="lin2" nam288ref class="s}"+2+h
call resp2->26class="sref">r"f="+code2ef="+ccreatediqst" class2"sref28/a>-> a href="+code=fh" class="srp /a>->inodecode/nfsproc.c#L72" idue#7modef1" iREhref="2enfsproc.1" iREh




struct
 2a hre24"+code=nfsd_atesp /a>-&2t; a href="+code======s 2a>
* 2 href="+code=resp" clacode=rqstp"tr1s /a>->f="+code/nfsproc.c#L720;sp" claceck.amlueL3">
 
3 /a> sp??? idueL76" class="l2ine" 27ref">nfsd_ret" /a>




2

return  a19code=nfs19r2" cla29="stypef">resf">__be322 /a>
249lueL18">
 18 =nfsd_set2ttr"ructL72" class="line2ructL29alue=2v.12n>
18 
  18>->tr10a>(s2=nfsd_set2ttr"ructL72" class="line2ructL2lass="sref">renfsproc.c#L65" ref">resp /a>)#L7valid0a>( |a href="+code=rqsATTR_SIZEfsd/nfsproc.c#LATTR_SIZE/nfsL74">
 74 /a>}4resp 2a>-&g29fsproc.c#L65" irchildsref">r>resp /a>->#L7mode0a>( code= ~href="+code=rqs&_IFMnfsd/nfsproc.c#L&_IFMn/nfsL744">
 74 /a>}4
* a 2ref="+code=inodef">resp 2a>-&g29ss="sref">nfs1d_pro14 href="+code=2 /a>
* a 2ref="+code=#L39" idueL392 clas2=ne" namlue>receck.amlueL3">
 
3 /a> spS href= t /a>mcode=ment2n-regulart a fs accord"comt/a> _return_attrs" c2lass=27 needs an fh_pntcode=; 2 hrefe=nfsd_setattr"type2">res29 a href="+18sproc.c#1LL9" iddddddddd*rluspel of sun microreturn_attrs" c2lass=27 needs an fh_pnfsproc.c2ss="sref">nfserr /a>;4
 62 /idueL76" class="l2ine" 27ref">nfsd_ret" f="+code2 hrefe=nfsd_setattr"hore2dueL629reedumlue) L66">
 66 /a>







p /a>->inodecode/nfsproc.c3mlue/74">
 74 /a>1" iREhref="2enfsproc.1" iREh



s call resp2->26class="sref">3tring">&q3ot;nfev" idueL73" class=3ev" l30href="+code=resp" cla6">
 66 /a>







p /a>->inodecode/nfsproc.c3mlue/74">
 74 /a>1" if="2c





 a2














Ldede=argp" +code=rqstp"tr1p /a>->inodecode/nfsproc.c3mlue/74">
 74 /a>1" if="2ccode=nfs2etattr" class="s call resp2->26class="sref">3t1ing">&q3o
return  a19code=nfs19r33" id30="stypef">resp /a>->type/nf=rqsinodef">resp /a>->inodecode/nfsproc.c#L0ass="line19sp-&198href="+code=3=nfsd_set3ttr"fsd: GETATTR

%s3n&quo30s&_IFCHRsref">argp /a}"+2+h
 66 /a>







 a hp /a>->inodecode/nfsproc.c#mlue/74">
 74 /a>1" if="2ccode=nfs2etattr" class="odede=argp" c2" idue#L7validsref">resp /a>)#L7valid0a>( code= href="+code=rqsATTR_MODEfsd/nfsproc.c#LATTR_MODEmlue/ L66">
 66 /a>







 fs/nfs2ehref="+c2intk" class="srL28" class="2line"22"+code=nfsd_a3"+code=at3rs" class="s" class="sre3">arg3 /a>-> a href="+fspamlue>receck.amlueL3">
 
3 /a> spIf youa> spk youc2.c#ve ss="comm1worst, grokpai c./idueL76" class="l2ine" 27ref">nfsd_ret3/a>static3 a href="+20nfsproc.20#L36" id30
%s,  vidu%x,h" class="srefKERN_WARNp /a>->inodecode/nfsproc.c#L72" idue#7modef1" if="2/nfsproc.2c#L71" idueL71"ass="line19sp-&198href="+code=3=5>static3 ef="+code=inodef">resp 3er/nf30sref class="sref">nfs}"+2+h
call resp2->26class="sref">3fserr" cl3ss=" class="sref">nfsd_s3tattr30href="+c======fh" class="srefceck.amlueL3">
 
3 /a> spOkay, chartmenb



 2 href=/idueL76" class="l2ine" 27ref">nfsd_ret3/7err" cl3shrefe=nfsd_setattr"type3d_set30href="+c======fh" class="sref66 /a>







 a hrep /a>->inodecode/nfsproc.lass="sre2f">nf23"+code=nfsd_a3esp /a>go3o+fsproc.c#L65" iron2eL63" cla3s="liron2mlueL="value=u%x,h" class="srefKERN_WARNp /a>->inodecode/nfsproc.c#L72" idue#7"fev =rq_fev /a>,
& a htew_dee=rass="line19sp-&198href="+code=3=9p /a>go3ohrefe=nfsd_setattr"hore3d/xdr30/a>-> a href="+codf">__be322 /a>
249lueL18">
 183value=2v.31.15.8"
	  " eCheck fos 35" id3eLWRIT">__be322 /a>
249lueL18">
 183v1ing">&q3
 a href="2/nfsproc.2c#L33" id31/a>-> a href="+codeeck.amlueL3">
 
3 /a> spwec2.c#ve useolsamllass in=memation62 /adiscard it/idueL76" class="l2ine" 27ref">nfsd_ret3=nfsd_set3ttr" class="sref">nfsd_s3tattr31etattr10a>( a href="+code=rqstp"tr1_ref">resp /a>)#L7valid0a>( code= href="+code=rqsATTR_MODEfsd/nfsproc.c#LATTR_MODEmlue/ L=  /a>}4dprin2tk10a26mlueL58">
 583cod!attrs3 class="sref">attrs10a>.3a hre31L25" class="l2ine" 224a href="+cod3trstat"go3o+fsproc.c#L65" iron2eL63" cla3s="liron2mlueL74">
 74eeck.amlueL3">
 
3 /a> spMake surcode=nnfspclasss="com matcheclass="sref">nfserr2 /a> 253spai class="3+code=res3" cl class="sref">nfsd_s3tattr31sref class="sref">nfscode=rqstp"d_ ermissL3"="sref">nfsd_setatd_ ermissL3"#37;x,h" classa href="fs/nfs2 code=NFS2DDBG_FACILITY" class="sr2ef">N21urn  a href="3code=err"3class="sisdoteL38" class3"line31sd_setattr10a>( !a href="+code=rqstp"tr1 class="linenewfhL0a>(de=argp"dede=argp" +code=rqstp"tr1p /a>->inodecode/nfsproc.c3ml"+code=rqstp"tr1 class="linenewfhL0a>(de=argp= href="+code=rqs&_IFMnfsd/nfsproc.c#L&_IFMn/nfsL74">
 74 /a>}4 */ 2/spaion
 7444444444lueL74">
 74 /a>}4__be322 /a>
249lueL18">
 183code=err"3class="shoreedueL67" cla3s="li31="sref">dprin2tk10a25 spai class="3esp /a>fh3 class="sref class="sref3>nfsd32e"a href="+code=rqstewfhL65"rmissL3"="sref">nfsd_setatd_ ermis0ass="line19sp-&198href="+code=3ef">resgo3o+fsproc.c#L65" iron2eL63" cla3s="liron2mlueL66 /a>







 a hreref="2ent"> * N2.B. After this call resp2->26class="sref">341">
 41 3a> spai class="comm2d/nf3proc232etattr10a>( a href="+c"fsoc namlueL62">
 62 /a>sle doespai clasACILI. C+2 hreftclasssetcliduelass="sref">nfserr2 /a> 253spai class="3/a>4( a href="+code=rqstp"tr1_noeL38" class="line"tp"tr1_noeL3mlueL74">
 74 /a>}4rqstp /acuct
 a hre>static
 a href="+2/d_proc_g2spaionargp /a>-&_IFDIR0a>( href="+code=argp55" id class="lin.12amluL=attrs" class="sref">attrs10a>. a href="+code=ia_size" class="slon4
ttrs10a>. a hlon/nfs)/74">
 74 /a>}4
 74 /3=nfsd_set3ttr"ass+cck_nested /a>,
3amp; 321.15.8"
	  " e
e" nve rfev fos lafsd/checke=S ode=rqstp"tr1_ref">resp /a>)#L7valid0a>( class="slon4
ttrs/a>->modecodeL74">
 74 /a>}4resp /a>3rchil3code a href="+}"+2+h
 66 /a>







 a hp /a>->inodecode/nfsproc.c#mlue/74">
 74 /a>1" iREhref="2enfsproc.1" iREh



s call resp2->26class="sref">3code=err"3class="sIS_ERRsref">argp3/a>-I32href="+c======fh" cla=rqsinodef">resH_fmt" clasCREATE+fs/nfsd/s/nfsd.*_fmt10a>(& a 58">
 58 /a> spa sACILIspai omm20, TTR_M= omm2x62 ize= omm2l1copy" class="sref">fh_co1py10a17esp" class="s3trstat"fh3 class="sref class="sref3>nfsd3setattr10a>( a href="+checke=S ode=rqstp"tr1_rclass="lin.12amluL=attrs" class="sref">attrs10a>. a href="+code=ia_size" class="slon4
ttrs1ef">resp /a>)#L7valid0a>( code= href="+code=rqsATTR_MODEfsd/nfsproc.c#LATTR_MODEm, (ode=)lass="slon4
ttrs1ef">resp /a>)#L7valid0a>( code= href="+code=rqsAT/nfsd20href="fs20nfsd/vfs.h" class="fref201e" 20mlueL52">
 523esp /a>go3o+fsproc.c#L65" iout_un+3cksre3">resp /a>)out_un+cckmc"fsoc namlueL62">
 62 /a>sle aluctdya href=. Wh
 gnore allcliduibumm1+excep path naml compo18ent 18paion
 41 3a> spai class="comm2



3



232 dueL ef="fsowafh" class a hried, we cah" clasvfs.62 /aon&q3ot;nassinis="sref">ex_pa3h /ai33line"  ="sres or not. Time to"bail ..amlueL3">open(..., O_ 



|O_TRUNC|O_WRONLY)ass="sref">fh_co2py10a27.c#L62" idueL3+code=res3" cl class="sref">nfsd_s3tattr33>
 62 /a>static
 a href="+2h/nfsproc2et a file's attribut2es /s242lass="sref">3cod!attrs3 class="s class="sref">n3sd_se3namlueL67">
 67 ecke=S ode=rqstp"tr1_ref">resp /a>)#L7valid0a>( code= href="+code=rqsATTR_MODEfsd/nfsproc.c#LATTR_MODEmlue/ L= /a>}4dprin2tk10a26mlueL58">
 583"+code=at3rs" class="s class="sref3>nfsd3setattr10a>( a href="+#L72" idue#L7validsref">resp /a>)#L7valid0a>( code= href="+code=rqsATTR_MODEfsd/nfsproc.c#LATTR_MODEm class="l2ine" 21"+code=nfsd_a3=nfsd_set3ttr"de" ="sref">ex_pathd3" na=33
%s,  vidu%x,h" class="srefKERN_WARNnoeL38" class="line"tp"tr1_noeL3mlueL74">
 74 /a>}4resp /a>)#L7va}4static
 a href="+2/d_proc_g2spaion_ cref">resp /a>)#L7valid0a>( cl0,6 /a>







 a hpime /a>,
& a hrfpime /ODEm 0lass="fref201e" 20mlueL52">
 523code=err"3class="s class="sref">nf3d_set3ttr10a>(/ L66"f">__be322 /a>
249lueL18">
 183>resp /ic3de=err" class="s class="3ref">3fsd_se">__be322 /a>
249lueL18">
 183>rstat"fh3p /a>goto+fsproc.c#L65" 3out_u3+ccksr4">
 74 /a>}43esp /a>fh3ef="fs/nfsd/nfsproc" nam3ueL593>
 59 /a> spaic"fsoc namlueL62">
 62 /aWe dopai clas
3 lly  * L1to 





"+2+
 a href=oeseft./idueL76" class="l2ine" 27ref">nfsd_ret3/nfsd/nfs3roc.................* Is3="lin33/a>-> a hr4">
 74 /a>}4
 62 static
 a hreff2 href="+c2ode=nfs_ok" cla class="l2ine" 27class="sref">3esp /a>fh3 class="sref class="sref3>nfsd3setattr10a>( ac#L65" inewfhL65" sp /a>)rchildcode) up a pahre>static
 a hreffs/nfs2
href="+c2.c#L33" idueL33" class="2line"2="fs/nfs="+cod3u+code=at3d!attrs" class="s ewfhL63" cla3s="linenewfhL0 /a>,
 a href="+code=resp" class="ueL65>resp /a>)#L7va}4static
 a hrefnoeL38" class="line"tp"tr1_noeLa>}4
 43trstat"re3p /a>fh" class="srefsd: 3ETATT3

%f">__be322 /a>
249lueL18">
 183>resp /a>3> a href="o,
 a href=3+code34ss="sref">nfs1d_pro14 href="+code=3>resp /a>3> goto+fsproc.c#L65" 3out_u3+ccksr>
 6310a> a href="+code=nf18nt"> * d187sn' value=2v.12n>
18 
  18>->tr10a>(s3trstat"L43">
 41 /a> spai class="c3mm2ef34ccksr4">
 74 /a>}4
 7removclass="sref">rqstp /a">
 7removcpahref="+code=nfsd_sattrargs" class="sref">nfsd_sattrargs /a>
* a href="+code=argcreateass="sref">argp /a>,4
* a href="+code=a
19nfsproc.19#L71" idueL71" class="l19ne" 19class="sref">341">
 41 3a> spai class="comm2ehre3="+c234sref="fb="sref">argp /a>,="fb="0a>(eL74"lass="voidb="0a>(eL74"lass=" a href="+code=ar19code=fh_19opy" class="sref">fh_co19y10a19amlueL22">
 23/a>43tring">&q3ot;ninodef">resp /a>->3nodec3de"a href="+code=rqstewfhL65"7" idueL67" class="line" namlueL6>static
 a hrefnoeL38" class="line"tp"tr1_noeL class="l18ne" 18amlueL41">
 43/a>





3
 a href="2+code=fh_2cop3" cla3s="sref">fh_co2py10a2(& a href=3value=2v.31.15.8"
	  " eUnfudges="3imode35etattr10a>( ac#L65" inewfhL6H_fmt" clasCREATE+fs/nfsd/s/nfsd.*_fmt10a>(& a 58">
 58 /a> spaREMOVss="comm20href="+c20de=svc_rqst" cllue/74">
 74 /a>1hL65" class="linereffhL0a>(eL=attrs" c#L72" idueL72" class="line" namluL74">
 74 /a>}43codattrs"3class="srsref">resp /a>-3gtf="35etattr10a>( a href="+code=rqstp"tr1_10a>. a hlon/nfsd/nfsproc.c#L74" ref">attrs10a>. a href="+code=ia_size" class="sv.12eL67" class="lin.12amlueL74">
 74 /a>}4
 253MAY_NOPhr3f="+code=rqstypef">resp 3a>-&g35L16" class="l205e" 205amp; a href=3>resp /hr3f="+code=rqsmodef">resp 3a>-&g3modecode a hre62">
 62 /a>static
 a href=smok. -S" idu meanst a fiatic
fs2sbc2etnamlueL59"idueL76" class="l2ine" 27ref">nfsd_ret3>resp /ic3d!attrs" class="stypef">3esp /35a>( a href="+code=rqsass="sref">rqstp /a>, & a href="+code=resp" class="s namlu=smok4" class="line" namlu=smoka hre>static
 a href="+2/d_proc_g2spaion
 74 /a>}4
 74 /a>1" iXECnfserr /a>;4
 74  class="lin.12amluL=attrs" class="sref">attrs10a>. a href="+code=ia_size" class="slon4
ttrs10a>. a hlon/nfs)/74">
 74 /a>}4
 253Mrstat"L43p /a>svalue=2v.11.15.8"
3  " e3o type, so/icoc#L65" inewfhL65" sp /a>)rchildcode) up a pahrec#L72" idueL72" class="line" namluL74">
 74 /a>}4
 253M1">
 41 3inee=nfsd_attrstat"resp 3a>.* 35sref="fb="sre /a>,
 a href="+code=respL38" class="line"tp"tr1_noeL class="l18ne" 18amlueL41">
 43/a>4-&g+code=err" class="s3nodef3>resp f">__be322 /a>
249lueL18">
 183esp /a>-&3t; a href="+ccode=rqstp"3claty36LWRIT">__be322 /a>
249lueL18">
 183ef">resp 3a>-> a hreswitchde=er3" cla3s="sty>
 6310a> a href="+code=nf18nt"> * d187sn' value=2v.12n>
18 
  18>->tr10a>(s3esp /a>>>3>>>>>>>>>>>>>case href="3code=3qs&_IF4">
 74 /a>}4
 7rea>. a href="+code=ia)L74">
 7rea>. pahref="+code=nfsd_sattrargs" class="sref">nfsd_sattrargs /a>
* a href="+code=argcreateass="sref">argp /a>,4. ueL64" class="line" namlrea>. ueL6/a>
* a href="+code=a
19nfsproc.19#L71" idueL71" class="l19ne" 19class="sref">3"+code===3=============case href="3code=3qs&_IFBLKsref">argp /a>-&_IFBLKlass:6674"lass="voidb="0a>(eL74"lass="" a href="+code=ar19code=fh_19opy" class="sref">fh_co19y10a19amlueL22">
 23trstat" c3ass="sref">nfsd_attrssva3ue=2v311.15.call resp2->26class="sref">3>resp /a>3> a href="+c==ttrssre3="+co3e=rqs"fev /a>,de=rqstewfhL65"7" idueL67" class="line" namlueL6>static
 a hrefnoeL38" class="line"tp"tr1_noeL class="l18ne" 18amlueL41">
 43>resp /a>3> a href="+c==ttrssre3="+co36sd_se">__be322 /a>
249lueL18">
 183/a> spai 3lass="comm2+nt">/* /2cod3=SVCF36 type, so/icoc#L65" inewfhL6H_fmt" clasCREATE+fs/nfsd/s/nfsd.*_fmt10a>(& a 58">
 58 /a> spaRENAMss="comm20href="+c2 }4fh_co1py10a17esp" class="s3esp /a>-&3t; a href="+codeattrssva3ue=2v311.15.8"
	  " eFALLTHRue/74">
 74 /a>1hL65" class="linereffhL0a>(eL=attrs" c#L72" idueL72" class="line" namluL74">
 74 /a>}4
 74 /a>}4
 74 /a>}4
 253ef">resp 3a>-> a hrecase href="3code=36/a>-> a hr4">
 74 /a>}4(& a 58">
 58 /a> spa ssssss}4-&3t; a href="+codeattrssva3ue=2v311.15.8"
	  " enfsprspue/74">
 74 /a>1hL65" class="linereffhL0a>(eL=attrs" c#L72" idueL72" class="line" namluL74">
 74 /a>}4
 74 /a>}4
 74 /a>}4
 2532" class=3line....................3.....37="sref">fh_co2py10a2(& a href=3/nfsd/nfs3roce....................3.....37a>( a href="+code=rqstp"tr1_acc="sref">resp /a>)4
 67 /a>


d7rea>. a href="+code=ia)L74rea>. pahre>static
 a href="+2/d_proc_g2spaion
 74 /a>}4
 74 /a>}4
 74 /a>}4fh_co2py10a2(& a href=3/+code===3argp /a>-&_IFBLKlass:6674"lc#L72" idueL72" class="line" namluL74">
 74 /a>}4
 74 /a>}4
 74 /a>}4
 2532rstat" c3linehhhhhhhh............3.....37hass+cck_nestedef="+fsproc.c#L6sp /a>)rchildcode) up a pahrec#L72" idueL72" class="line" namluL74">
 74 /a>}4
 2532resp /a>3> a href="+c======fh"3class37=rqs"fev /a>,de=rqstewfhL65"#L6sp /a>)rchildcode) up a pahrec#L72" idueL72" class="line" namluL74">
 74 /a>}4
 2532resp /a>3> a href="+c=resp /a>3> 3 href="+c===== /a>,
 a href="+code=respL38" class="line"tp"tr1_noeL class="l18ne" 18amlueL41">
 4317"+code=3fsd_attrstat" clresp /a>3> 3 href=f">__be322 /a>
249lueL18">
 183esp /a>-&3t; a href="+codecode=fh"3class3"sref=">__be322 /a>
249lueL18">
 183ef">resp 3vfs_getattr" code=nfserr3 clas37sref">
 6310a> a href="+code=nf18nt"> * d187sn' value=2v.12n>
18 
  18>->tr10a>(s3 /a> spai3class="comm18code=fh_18o3y" cl38href=4">
 74 /a>}4
 7smok4" class="line" naml">
 7smokpahref="+code=nfsd_sattrargs" class="sref">nfsd_sattrargs /a>
* a href="+code=argcreateass="sref">argp /a>,4
* a href="+code=a
19nfsproc.19#L71" idueL71" class="l19ne" 19class="sref">3/a>





3
 a href="18code=nfs18rr3 clas38="stypef">resp /a>->type/nfs/ L66">voidb="0a>(eL74"lass=""""""" a href="+code=ar19code=fh_19opy" class="sref">fh_co19y10a19amlueL22">
 23/nfsd/nfs3roc" namlueL59">
 59 /a>3spai 38s&_IFcall resp2->26class="sref">3/t /spaio3renfsproc.c#L65" 7" idueL67" class="line" namlueL6>static
 a hrefnoeL38" class="line"tp"tr1_noeL class="l18ne" 18amlueL41">
 43/" class=3line" The par="l directo3f="s 38L16" class="l205e" 205amp; a href=3/resp /a>3line" s=dr/nfsactual cre3te()r38=rqs"fev /a>,de=rqstewfhL65"H_fmt" clasCREATE+fs/nfsd/s/nfsd.*_fmt10a>(& a 58">
 58 /a> spaLINK674"lcomm20h}4res1hL65" class="linereffhL0a>(eL=attrs" c#L72" idueL72" class="line" namluL74">
 74 /a>}4
 253fs/nfsd/n3sproc namlueL62">
 62 /a3stati38 type, so/icoc#L65" inewfhL6H_fmt" clasCREATE+fs/nfsd/s/nfsd.*_fmt10a>(& a 58">
 58 /a> spa  "comm20href="+c20de=svc_rqst" class="sre203e" 203-> a href3nfsproc.c3L63" idueL63" class="lin3" nam381.15.8"
	  " eFALLTHRue/74">
 74 /a>1hL65" class="linereffhL0a>(eL=attrs" c#L72" idueL72" class="line" namluL74">
 74 /a>}4resp 3ef="+ccreatediqst" class3"sref38/a>-> a href="+code=fh" class="sr10a>. a hlon/nfs)/74">
 74 /a>}4-&3t; a href="+code======s 3a>
* 3 href="+code=resp" clacode=rqstp"tr1s class="lin.12amlueL74">
 74 /a>}4
 253 /a>




3

return  a19code=nfs19r3" cla39="sref">fh_co2py10a2(& a href=3=nfsd_set3ttr"ructL72" class="line3ructL39a>( a href="+code=rqstp"tr1_acc="sref">resp /a>)4
 67 /a>


d7smok4" class="line" namlsmoka hre>static
 a href="+2/d_proc_g2spaion
 74 /a>}4
 74 /a>}4
 74 /a>}4argp /a>-&_IFBLKlass:6674c#L72" idueL72" class="line" namluL74">
 74 /a>}4
 253e" class=3ref="+code=i"sref">resp 3a>-&g39fsproc.c#L65" irchildsref">r#L6sp /a>)rchildcode) up a pahrec#L72" idueL72" class="line" namluL74">
 74 /a>}4
 253 /a>
* a 3ref="+code=inodef">resp 3a>-&g39=rqs"fev /a>,de=rqstewfhL65"#L6sp /a>)rchildcode) up a pahrec#L72" idueL72" class="line" namluL74">
 74 /a>}4
 253 /a>
* a 3ref="+code=#L39" idueL393 clas39href="+c===== /a>,
 a href="+code=respL38" class="line"tp"tr1_noeL class="l18ne" 18amlueL41">
 43ntcode=; 3 hrefe=nfsd_setattr"type3">res39href=f">__be322 /a>
249lueL18">
 183nfsproc.c3ss="sref">nfserr /a>;4__be322 /a>
249lueL18">
 183 f="+code3 hrefe=nfsd_setattr"hore3dueL639sref">
 6310a> a href="+code=nf18nt"> * d187sn' value=2v.12n>
18 
  18>->tr10a>(s4tring">&q4ot;nfev" idueL73" class=4ev" l40href=4">
 74 /a>}4
 7symsmok4" class="line" naml">
 7symsmokpahref="+code=nfsd_sattrargs" class="sref">nfsd_sattrargs /a>
* a href="+code=argcreateass="sref">argp /a>,4
* a href="+code=a
19nfsproc.19#L71" idueL71" class="l19ne" 19class="sref">4t1ing">&q4o
return  a19code=nfs19r43" id40="stypef">resp /a>->type/nfffffffffffffffffffvoidb="0a>(eL74"lass=""" a href="+code=ar19code=fh_19opy" class="sref">fh_co19y10a19amlueL22">
 24=nfsd_set4ttr"fsd: GETATTR

%s4n&quo40s&_IFcall resp2->26class="sref">4"+code=at4rs" class="s" class="sre4">arg4 /a>-> a hrf="+code=nfsd_sattrargs" cref="+c19de=nfsd_s" crea>->ass=nfsd/nfsproc(de=4" class="line" (de=noeL class="l18ne" 18amlueL41">
 44/a>static4 a href="+20nfsproc.20#L46" id40fsproc.c#L65" irchildsref">r7" idueL67" class="line" namlueL6c.c#L65" irchildsref">respL38" class="line"tp"tr1_noeL class="l18ne" 18amlueL41">
 44=5>static4 ef="+code=inodef">resp 4er/nf40ss="sref">nfs1d_pro14 href="+code=4fserr" cl4ss=" class="sref">nfsd_s4tattr40a>( a href="+code=rqsass="srH_fmt" clasCREATE+fs/nfsd/s/nfsd.*_fmt10a>(& a 58">
 58 /a> spaSYMLINK67comm20href="+c2 }4res1hL65" class="linereffhL0a>(eL=attrs" c#L72" idueL72" class="line" namluL74">
 74 /a>}4
 74 /a>}4
 74 /a>}4nfserr /a>;4. a hlon/nfs)/74">
 74 /a>}4
 74 /a>}4
 254=9p /a>go4ohrefe=nfsd_setattr"hore4d/xdr40="sref">dprin2tk10a25 spai class="4value=2v.41.15.8"
	  " eCheck fos 45" id41sef="+fsproc.c#L65" inewfhL65" ini /a>)rchildcode) upini trs" c#L72" idueL72" clasc(de=4" class="line" (de=noeLclass="sv.12eL67"NFS_FHfs/nfs2ehref="+c2inNFS_FHfs/nf" class="sref204e" 20mlueL25">
 254v1ing">&q4
 a href="2/nfsproc.2c#L43" id41/a>-> a hr62">
 62 /a>static
 a hrueL76" class="l2ine" 27ref">nfsd_ret4=nfsd_set4ttr" class="sref">nfsd_s4tattr41............*a  echoenfs=S nfsp fevi* C+2 hrede=nsmok, look up  (dt a filasssetclidueass="sref">fh_co2py10a27.c#L62" idueL4cod!attrs4 class="sref">attrs10a>.4a hre41............*aby dos=S asCREATE+withidueL76" class="l2ine" 27ref">nfsd_ret4trstat"go4o+fsproc.c#L65" iron2eL64" cla41fsproc.c#L65" irchildsref">racc="sref">resp /a>)4
 67 /a>


d7symsmok4" class="line" namlsymsmokpahre>static
 a href="+2/d_proc_g2spaion
 74 /a>}4
 74 /a>}4
 74 /a>}4fh_co2py10a2(& a href=4+code=res4" cl class="sref">nfsd_s4tattr41sref class="sref">nfssssssssssssssssssssssssssssssssssass="sv.12eL67" class="lin.12amlueL74">
 74 /a>}4
 74 /a>}4( !a hrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrc#L72" idueL72" clasc(de=4" class="line" (de=noeLclc#L72" idueL72" class="line" namluL74">
 74 /a>}4
iduef" class="sref204e" 20mlueL25">
 254v7err" cl4o+fsproc.c#L65" iron2eL64" cla41fmt" class="s2ref">26class="sref">4fserr" cl4ss="horeedueL67" class="4ihore41sref=">__be322 /a>
249lueL18">
 184code=err"4class="shoreedueL67" cla4s="li41/a>-> a hr4">
 74 /a>}4)rchildcode) up a pahrec#L72" idueL72" class="line" namluL74">
 74 /a>}4
 254esp /a>fh4 class="sref class="sref4>nfsd42e"a href="+code=rqstewfhL65" a sp /a>)rchildcode) up a pahrec#L72" idueL72" clasc(de=4" class="line" (de=noeL)ass="sref204e" 20mlueL25">
 254e1ing">&q4o+fsproc.c#L65" iron2eL64" cla4s="liron2mlueL /a>,
 a href="+code=respL38" class="line"tp"tr1_noeL class="l18ne" 18amlueL41">
 4441">
 41 4a> spai class="comm2d/nf4proc242etattf">__be322 /a>
249lueL18">
 184/a>4,
4amp; 42............* namlueL62">
 hrueL76" class="l2ine" 27ref">nfsd_ret4+code=res4" clrchildsref">resp /a>4rchil4code a.......*aby dos=S asCREspMake namlueL59. Ti cloperationlassfs2sidempot asass="sref">fh_co2py10a27.c#L62" idueL4code=err"4class="sIS_ERRsref">argp4/a>-I42href=.......*aby dos=S asCREspN.B. Afsproai clcallclass}4fh_co2py10a27.c#L62" idueL4c7err" cl4 class="sref class="sref4>nfsd42 a href="+18sproc.c#1LL9" ididueL76" class="l2ine" 27ref">nfsd_ret4esp /a>go4o+fsproc.c#L65" iout_un+4cksre4">resp>
 6310a> a href="+code=nf18nt"> * d187sn' value=2v.12n>
18 
  18>->tr10a>(s441">
 41 4a> spai class="comm2



4



242 dueL ">
 74 /a>}4
 7mknam4" class="line" naml">
 7mknampahref="+code=nfsd_sattrargs" class="sref">nfsd_sattrargs /a>
* a href="+code=argcreateass="sref">argp /a>,4
* a href="+code=a
19nfsproc.19#L71" idueL71" class="l19ne" 19class="sref">4tring">&q4ot;nassinis="sref">ex_pa4h /ai43href="+code=resp" class="sref">resp /a>)4fh_co19y10a19amlueL22">
 24+code=res4" cl class="sref">nfsd_s4tattr43>
 62call resp2->26class="sref">4cod!attrs4 class="s class="sref">n4sd_se43a>( a href="+code=rqstp"tr1_7" idueL67" class="line" namlueL6>static
 a hrefnoeL38" class="line"tp"tr1_noeL class="l18ne" 18amlueL41">
 44"+code=at4rs" class="s class="sref4>nfsd43L25" class="l2ine" 224a href="+cod4=nfsd_set4ttr"de" ="sref">ex_pathd4" na=43fsproc.c#L65" irchildsref">rH_fmt" clasCREATE+fs/nfsd/s/nfsd.*_fmt10a>(& a 58">
 58 /a> spaMKidu  ="comm20href="+c20de=svc_rqst" cllue/74">
 74 /a>1hL65" class="linereffhL0a>(eL=attrs" c#L72" idueL72" class="line" namluL74">
 74 /a>}4. a hlon/nfsd/nfsproc.c#L74" ref">attrs10a>. a href="+code=ia_size" class="sv.12eL67" class="lin.12amlueL74">
 74 /a>}4
 254code=err"4class="s class="sref">nf4d_set43ss="sref">nfs1d_pro14 href="+code=4>resp /ic4de=err" class="s class="4ref">43sd_setattr10a#L72" idue#L7validsr19code=fh_19opy" class="sr}4,
s call resp2->26class="sref">4>rstat"fh4p /a>goto+fsproc.c#L65" 4out_u43href="+c======fh" cla=rqsinodef">res_fmt" clasCREATE+fs/nsd/s/nfsd.*_rqsinodef">resKERN_WARNINhref="2enfsproc.KERN_WARNINhs="sref">nfs1d_pro14 href="+code=4>sp /a>go4ef="fs/nfsd/nfsproc" nam4ueL5943="liron2mlueL="value==fh" cla=fmt10a>(& a 58">
 58 /a> sl">
 7mknam:classonse aluctdyaverified??0de=svc_rqst" class="sref204e" 20mlueL25">
 254c1">
 41 4roc.................* Is4="lin43/a>-> a hrf">__be322 /a>
249lueL18">
 184ut /spaio4__be322 /a>
249lueL18">
 184ucode=res4line................* na4lueL6441sproc.c#L65" irchildsref">rs="line" namluL74">
 74 /a>}4
iduef" c.de=rqstewfhL65"sATTR_MODEfsd/nfsproc.c#LATTR_MODEmlue/ L=  /a>}4dprin2tk10a26mlueL58">
 584esp /a>fh4 class="sref class="sref4>nfsd4setattr10a>( ac#L65" inewfhL65" ini /a>)rchildcode) upini trs" c#L72" idueL72" clasr19code=fh_19opy" class="sr}4
 254u+code=at4d!attrs" class="s ewfhL64" cla44ass="sref">renfsproc.c#L65" acc="sref">resp /a>)4
 67 /a>


d7ctp" class="sref">rqstp /acuct
 a hre>static
 a href="+2/d_proc_g2spaion
 74 /a>}4
 74 /a>}4
 74 /a>}4
 74 /4trstat"re4p /a>fh" class="srefsd: 4ETATT441.15.8"
	  " e
e" nve rfev fos lafsd/checc#L72" idueL72" class="line" namluL74">
 74 /a>}4
iduef" cllue/74">
 74 /a>1" iXECnfserr /a>;4
 254uode=err"4> a href="o,
 a href=4+code44=rqs"fev /a>,de=rqstewfhL65"#L6sp /a>)rchildcode) up a pahrec#L72" idueL72" class="line" namluL74">
 74 /a>}4
 254uresp /ic4> goto+fsproc.c#L65" 4out_u44href="+c===== /a>,
 a href="+code=resp" class="ueL65>resp /a>)#L7va}4static
 a hrefnoeL38" class="line"tp"tr1_noeLa>}4
 44trstat"L44">
 41 /a> spai class="c4mm2ef44href=f">__be322 /a>
249lueL18">
 18441">
 41 4a> spai class="comm2ehre4="+c244sref=">__be322 /a>
249lueL18">
 184/a>4nfsd_ret4tring">&q4ot;ninodef">resp /a>->4nodec45line"  ="sres or not. Time t* Removc2etnamlueL59ueL76" class="l2ine" 27ref">nfsd_ret4tcode=res4
 a href="2+code=fh_2cop4" cla45>
 62 /a>static
 a href="+2hidueL76" class="l2ine" 27ref">nfsd_ret4value=2v.41.15.8"
	  " eUnfudges="4imode45etatt>
 6310a> a href="+code=nf18nt"> * d187sn' value=2v.12n>
18 
  18>->tr10a>(s4codattrs"4class="srsref">resp /a>-4gtf="45etatt ">
 74 /a>}4
 7rmnam4" class="line" naml">
 7rmnampahref="+code=nfsd_sattrargs" class="sref">nfsd_sattrargs /a>
* a href="+code=argcreateass="sref">argp /a>,4
* a href="+code=a
19nfsproc.19#L71" idueL71" class="l19ne" 19class="sref">4MAY_NOPhr4f="+code=rqstypef">resp 4a>-&g451.15.8"
	  " e
e" nve rfev fos lafsd/checke=Svoidb="0a>(eL74"lass=" a href="+code=ar19code=fh_19opy" class="sref">fh_co19y10a19amlueL22">
 24>resp /hr4f="+code=rqsmodef">resp 4a>-&g4modecocall resp2->26class="sref">4>resp /ic4d!attrs" class="stypef">4esp /45a>( a href="+code=rqsass="sr7" idueL67" class="line" namlueL6>static
 a hrefnoeL38" class="line"tp"tr1_noeL class="l18ne" 18amlueL41">
 44Mrstat"L44p /a>svalue=2v.11.15.8"
4  " e45fmt" class="s2ref">26class="sref">4M1">
 41 4inee=nfsd_attrstat"resp 4a>.* 45sref="fb="sre irchildsref">rH_fmt" clasCREATE+fs/nfsd/s/nfsd.*_fmt10a>(& a 58">
 58 /a> spaRMidu  ="comm20href="+c20de=svc_rqst" cllue/74">
 74 /a>1hL65" class="linereffhL0a>(eL=attrs" c#L72" idueL72" class="line" namluL74">
 74 /a>}4. a hlon/nfsd/nfsproc.c#L74" ref">attrs10a>. a href="+code=ia_size" class="sv.12eL67" class="lin.12amlueL74">
 74 /a>}4
 254/a>4-&g+code=err" class="s4nodef45="sref">dprin2tk10a25 spai class="4esp /a>-&4t; a href="+ccode=rqstp"4claty46e"a href="+code=rqstewfhL65"rmissL3"="sref">nfsd_setatd_ ermisass=nfsd/nfsproc.c#Lu=smok4" class="line" namlu=smoka hre>static
 a href="+2/d_proc_g2spaion
 74 /a>}4
 74 /a>1" iXECnfserr /a>;4
 74 /a>}4
 74 /a>}4
 254ef">resp 4a>-> a hreswitchde=er4" cla461sproc.c#L65" irchildsref">r#L6sp /a>)rchildcode) up a pahrec#L72" idueL72" class="line" namluL74">
 74 /a>}4
 254esp /a>>>4>>>>>>>>>>>>>case href="4code=46etattr10a>( a /a>,
 a href="+code=respL38" class="line"tp"tr1_noeL class="l18ne" 18amlueL41">
 44"+code===4=============case href="4code=4qs&_IFf">__be322 /a>
249lueL18">
 184trstat" c4ass="sref">nfsd_attrssva4ue=2v46L16" class="l205e" 205amp; a href=4>resp /a>4> a href="+c==ttrssre4="+co46ode a.......*aby dos=S asCRhrueL76" class="l2ine" 27ref">nfsd_ret4>resp /a>4> a href="+c==ttrssre4="+co46href=.......*aby dos=S asCREspRead2etportionlof2etnamlueL59ass="sref">fh_co2py10a27.c#L62" idueL4/a> spai 4lass="comm2+nt">/* /2cod4=SVCF46 a href="+18sproc.c#1LL9" ididueL76" class="l2ine" 27ref">nfsd_ret4esp /a>-&4t; a href="+codeattrssva4ue=2v46>resp>
 6310a> a href="+code=nf18nt"> * d187sn' value=2v.12n>
18 
  18>->tr10a>(s4ef">resp 4a>-> a hrecase href="4code=46 dueL ">
 74 /a>}4
 7uctdnam4" class="line" naml">
 7rctdnampahref="+code=nfsd_sattrargs" class="sref">nfsd_sattrargs /a>
* a href="+code=argcreateass="sref">argp /a>,4
* a href="+code=a
19nfsproc.19#L71" idueL71" class="l19ne" 19class="sref">4esp /a>-&4t; a href="+codeattrssva4ue=2v411.15.8"
	  " enfsprsppppppppppppppppppppppppppp createass=nfsd/nfsproc.c#Lrctdnamlas4" class="line" namlrctdnamlas.15.8" a href="+code=ar19code=fh_19opy" class="sref">fh_co19y10a19amlueL22">
 242" class=4line....................4.....47>
 62call resp2->26class="sref">4/nfsd/nfs4roce....................4.....47a>( a href="+/s/pppppppppppppa href="+code=acouns="sref">nfsd_sacounsnoeL class="l18ne" 18amlueL41">
 44/+code===4renfsproc.c#L65" 7" idueL67" class="line" namlueL6ref="+code=rqstewfhL65"rmissL3"="sref">nfsd_setatd_ er class="l18ne" 18amlueL41">
 44/rstat" c4linehhhhhhhh............4.....47hass+cck_nestedef="+fsproc.cloff /a>,
& a hrfloff /mlueL6ref="+code=rqstewfhL65"offse/a>,
& a hrfoffse/_ er class="l18ne" 18amlueL41">
 44/resp /a>4> a href="+c======fh"4class47ss="sref">nfs1d_pro14 href="+code=42resp /a>4> a href="+c=resp /a>4> 47a>( a href="+code=rqsass="srH_fmt" clasCREATE+fs/nfsd/s/nfsd.*_fmt10a>(& a 58">
 58 /a> spaREADidu  comm20href="d bymm1+athref="d0de=svc_rqst" class="sre203e" 203-> a href417"+code=4fsd_attrstat" clresp /a>4> 47href="+c======fh" cla=rqsinodef">res1hL65" class="linereffhL0a>(eL=attrs" c#L72" idueL72" class="line" namluL74">
 74 /a>}4-&4t; a href="+codecode=fh"4class47="liron2mlueL="value=ass="slon4
ttrs10a>. a hlon/nfs)/74">
 74 /a>}4nfsd_sacounsnoeLclass="slon4
ttrs10a>. a hlon/nfs)/74">
 74 /a>}4
 254ef">resp 4vfs_getattr" code=nfserr4 clas47="sref">dprin2tk10a25 spai class="4 /a> spai4class="comm18code=fh_18o4y" cl48e"a href="+cod2">
 62 /a>static
 a hreSha 5k1to de=nclic
 s
3 dsvfs.didueL76" class="l2ine" 27ref">nfsd_ret4/a>





4
 a href="18code=nfs18rr4 clas481sproc.c#L65" irchildsref">rcouns="sref">nfsd_sacounsnoeL ml"+code=rqstp"tr110a>. a hlon/nfs)/74">
 74 /a>}4nfsd_sacounsnoeL a>}44
 254/nfsd/nfs4roc" namlueL59">
 59 /a>4spai 48alue=2v.12n>
18 
  18>->tr10a>(s4/t /spaio4ren2">
 62 /a>static
 a hreMake sure weai clve room for de=nNULL ptr">
 74 eof2flagdidueL76" class="l2ine" 27ref">nfsd_ret4/rstat" c4line" The par="l directo4f="s 48hass+cck_nestedef="+fsproc.ccouns="sref">nfsd_sacounsnoeL -= 2ass="sref204e" 20mlueL25">
 254/resp /a>4line" s=dr/nfsactual cre4te()r48=rqs"fev /a>,#L72" idue#L7validscouns="sref">nfsd_sacounsnoeL ala  0ef">fh_co19y10a19amlueL22">
 24" class="4inehref="fs/nfsd/nfsproc4c#_bo48href="+c======fh" cla=rqsinodef">rescouns="sref">nfsd_sacounsnoeL ml0ass="line19sp-&198href="+code=4fs/nfsd/n4sproc namlueL62">
 62 /a4stati48fmt" class="s2ref">26class="sref">4nfsproc.c4L63" idueL63" class="lin4" nam48sref="fb="sre irchildsref">rr19code=fh_19opy" class="sr}4nfsd_buffeL_ ermisass=nfsd/nfspro10a>. a hlon/nfs)/74">
 74 /a>}4nfsd_buffeL_ erass="line19sp-&198href="+code=4ff">resp 4ef="+ccreatediqst" class4"sref48/a>-> a hr4">
 74 /a>}4,
& a hrfoffse/_ ermisass=nfsd/nfsproNULLa>,
& a hrfNULL_ erass="line19sp-&198href="+code=4esp /a>-&4t; a href="+code======s 4a>
* 49e"a href="+code=rqstewfhL65"r19code=fh_19opy" class="sr}4nfsd_sacounsnoeL class="l18ne" 18amlueL41">
 44 /a>




4

return  a19code=nfs19r4" cla491sproc.c#L65" irchildsref">rr19code=fh_19opy" class="sr}4nfsd_atd_ ermisass=nfsd/nfsproc.c_ok4" class="line" na_oknoeL class="l18ne" 18amlueL41">
 44 nfsd/nfs4ttr"ructL72" class="line4ructL49a>( a href="+c2">
 62 /a>static
 a hreRead2namlueL59"lassenfspr fev im1+on de=nfl9"idueL76" class="l2ine" 27ref">nfsd_ret4et /spaio4ttr"ructL72" class="line4ructL49ass="sref">renfsproc.c#L65" offse/a>,
& a hrfoffse/_ ermisass=nfsd/nfspro10a>. a hlon/nfs)/74">
 74 /a>}4
 44 rstat" c4ref="+code=i"sref">resp 4a>-&g49fsproc.c#L65" irchildsref">rrmissL3"="sref">nfsd_setatd_ ermisass=nfsd/nfsproc.c#Luctdnam4" class="line" namlrctdnampahre>static
 a href="+2/d_proc_g2spaion
 74 /a>}4,
& a hrfoffse/_ er,+ass="sre203e" 203-> a href4 /a>
* a 4ref="+code=inodef">resp 4a>-&g49sref class="sref">nfsssssssssssssssc#L72" idueL72" clasr19code=fh_19opy" class="sr}4
 254 /a>
* a 4ref="+code=#L39" idueL394 clas49sd_se">__be322 /a>
249lueL18">
 184ntcode=; 4 hrefe=nfsd_setattr"type4">res49 type, so/icoc#L65" inewfhL6r19code=fh_19opy" class="sr}4nfsd_sacounsnoeL ml irchildsref">rr19code=fh_19opy" class="sr}4nfsd_buffeL_ erm-sass=nfsd/nfspro10a>. a hlon/nfs)/74">
 74 /a>}4nfsd_buffeL_ erass="line19sp-&198href="+code=4nfsproc.c4ss="sref">nfserr /a>;4,
& a hrfoffse/_ eref">fh_co19y10a19amlueL22">
 24 f="+code4 hrefe=nfsd_setattr"hore4dueL649/a>-> a href="+cod a href="+code=ar19code=fh_19opy" class="sr}4&q5ot;nfev" idueL73" class=5ev" l50LWRIT">__be322 /a>
249lueL18">
 185t1ing">&q5o
return  a19code=nfs19r53" id501sproc.c#L65" irchildsref">r#L6sp /a>)rchildcode) up a pahrec#L72" idueL72" class="line" namluL74">
 74 /a>}4
 255=nfsd_set5ttr"fsd: GETATTR

%s5n&quo50etattr10a>( a /a>,
 a href="+code=respL38" class="line"tp"tr1_noeL class="l18ne" 18amlueL41">
 45"+code=at5rs" class="s" class="sre5">arg50s&_IFf">__be322 /a>
249lueL18">
 185/a>static5 a href="+20nfsproc.20#L56" id50L16" class="l205e" 205amp; a href=5=5>static5 ef="+code=inodef">resp 5er/nf50ode a.......*aby dos=S asCRhrueL76" class="l2ine" 27ref">nfsd_ret5fserr" cl5ss=" class="sref">nfsd_s5tattr50href=.......*aby dos=S asCREspGett a fisystem infoueL76" class="l2ine" 27ref">nfsd_ret5f7err" cl5shrefe=nfsd_setattr"type5d_set50 a href="+18sproc.c#1LL9" ididueL76" class="l2ine" 27ref">nfsd_ret5/8err" cl5ss="sref">nfserr /a>;4resp>
 6310a> a href="+code=nf18nt"> * d187sn' value=2v.12n>
18 
  18>->tr10a>(s5=9p /a>go5ohrefe=nfsd_setattr"hore5d/xdr50 dueL ">
 74 /a>}4
 7>
 6fs4" class="line" naml">
 7>
 6fspahref="+code=nfsd_sattrargs" class="sref">nfsd_sattrargs /a>
* l irchildsref">rrgcreateass="sref">argp /a>,4rqstp /afhlaslctattr10 a href="+code=a
19nfsproc.19#L71" idueL71" class="l19ne" 19class="sref">5value=2v.51.15.8"
	  " eCheck fos 55" id511.15.8"
	  " enfsprsppppppppppppppppppppppppppp createass=nfsd/nfsproc.c#L>
 6fslas4" class="line" naml>
 6fslas/a>
* a href="+code=ar19code=fh_19opy" class="sref">fh_co19y10a19amlueL22">
 25v1ing">&q5
 a href="2/nfsproc.2c#L53" id51>
 62call resp2->26class="sref">5=nfsd_set5ttr" class="sref">nfsd_s5tattr51a>( a href="+code=rqstp"tr1_7" idueL67" class="line" namlueL6>static
 a hrefnoeL38" class="line"tp"tr1_noeL class="l18ne" 18amlueL41">
 45cod!attrs5 class="sref">attrs10a>.5a hre51L25" class="l2ine" 224a href="+cod5trstat"go5o+fsproc.c#L65" iron2eL65" cla51fsproc.c#L65" irchildsref">rH_fmt" clasCREATE+fs/nfsd/s/nfsd.*_fmt10a>(& a 58">
 58 /a> spaSTATFS   comm200de=svc_rqst" cllue/74">
 74 /a>1hL65" class="linereffhL0a>(eL=attrs" c#L72" idueL72" class="line" namluL74">
 74 /a>}4
 255+code=res5" cl class="sref">nfsd_s5tattr51ss="sref">nfs1d_pro14 href="+code=5code=err"5class="sisdoteL38" class5"line51a>( a href="+code=rqsass="sref">rqstp /a>, & a href="+code=resp" class="s naml>
 6fs4" class="line" naml>
 6fspahre>static
 a href="+2/d_proc_g2spaion
 74 /a>}4
 6s4" class="line">
 6sL71" class="l19ne" 19class="sref">5v7err" cl5o+fsproc.c#L65" iron2eL65" cla51href="+c======fh" cla href="+code=rqsass="srNFSD_MAY_BYPASS_GSS_ON_ROOTa>,
& a hrfNFSD_MAY_BYPASS_GSS_ON_ROOTturnlass="sref204e" 20mlueL25">
 255fserr" cl5ss="horeedueL67" class="5ihore51sref="fb="sre irchildsref">r#L6sp /a>)rchildcode) up a pahrec#L72" idueL72" class="line" namluL74">
 74 /a>}4
 255code=err"5class="shoreedueL67" cla5s="li51/a>-> a hr /a>,
 a href="+code=respL38" class="line"tp"tr1_noeL class="l18ne" 18amlueL41">
 45esp /a>fh5 class="sref class="sref5>nfsd52e"a hf">__be322 /a>
249lueL18">
 185e1ing">&q5o+fsproc.c#L65" iron2eL65" cla52="sref">fh_co2py10a2(& a href=541">
 41 5a> spai class="comm2d/nf5proc252............*a  echoenfs=S hrueL76" class="l2ine" 27ref">nfsd_ret5/a>4fh_co2py10a27.c#L62" idueL5=nfsd_set5ttr"ass+cck_nested /a>,
5amp; 52............* namlueL62">
 E* Only de=nlasultslof2non-idempot asloperations are cachedass="sref">fh_co2py10a27.c#L62" idueL5=code=res5" clrchildsref">resp /a>5rchil5code a.......*aby dos=S asCREsdueL76" class="l2ine" 27ref">nfsd_ret5code=err"5class="sIS_ERRsref">argp5/a>-I52href= createass=nfsd/nfsproc.c#Lvoid4" class="line" namlvoida>-&g{+/s/p irchildsref">rHummsproc.c#L72" iduHummsnoeL  } class="l18ne" 18amlueL41">
 45e7err" cl5 class="sref class="sref5>nfsd52fmt" class="s2ref">26class="sref">5esp /a>go5o+fsproc.c#L65" iout_un+5cksre5">resp#def65"lue/74">
 74 /a>1Ta>,
& a hrfSTturn 1 cla href="+c2">
 62 /a>static
 a hre>
 6usEsdueL76" class="l2ine" 27ref">nfsd_ret5code=err"5a> spai class="comm2



5



252 dueL#def65"lue/74">
 74 /a>FHa>,
& a hrfFHturn 8 cla href="+c2">
 62 /a>static
 a hre a fhlaslcEsdueL76" class="l2ine" 27ref">nfsd_ret5tring">&q5ot;nassinis="sref">ex_pa5h /ai53href=#def65"lue/74">
 74 /a>ATa>,
& a hrfATturn 18cla href="+c2">
 62 /a>static
 a hre
iduibumm1+sdueL76" class="l2ine" 27ref">nfsd_ret5t1ing">&q5" cl class="sref">nfsd_s5tattr53="sref">fh_co2py10a2(& a href=5cod!attrs5 class="s class="sref">n5sd_se53etatt>
 6310f="+code=nfsd_sattrargs" cnfsdedula="sref">nfsd_sattranfsdedularef="+c======fh"  ">
 74 /a>}4
 edulasueL67" class="lin)L74">
 edulasuref=[18]odecall resp2->26class="sref">5"+code=at5rs" class="s class="sref5>nfsd53ass="sref">re[code=rqsass="srNFSPROC_NULLa>,
& a hrfNFSPROC_NULLss="]odecall resp2->26class="sref">5"nfsd_set5ttr"de" ="sref">ex_pathd5" na=53fsproc.c#L65""""""""".de=rqstewfhL65"pc_funca>,
& a hrfpc_func="+codee>static
 a hrefttranfsdfunca>,
& a hrfttranfsdfuncturnl  ">
 74 /a>}4
 _nulla>,
& a hrfn)L74">
 _nullL71" class="l19ne" 19class="sref">5code=err"5class="s class="sref">nf5d_set53sref class="sref">nfs.de=rqstewfhL65"pc_dehL65a>,
& a hrfpc_dehL65="+codee>static
 a hrefkxdr">
 _ /a>)rchildcode)kxdr">
 _ turnl  ">
 74 /a>}45code=err"5de=err" class="s class="5ref">53href="+c======fh" cla.de=rqstewfhL65"pc_enfspra>,
& a hrfpc_enfspr="+codee>static
 a hrefkxdr">
 _ /a>)rchildcode)kxdr">
 _ turnl  ">
 74 /a>}45c7err" cl5p /a>goto+fsproc.c#L65" 5out_u53href="+c======fh" cla.de=rqstewfhL65"pc_ueL6izra>,
& a hrfpc_ueL6izr="+code6izrofef="+code=nfsd_sattrargc.c#Lvoid4" class="line" namlvoida>-&) ass="sre203e" 203-> a href5>sp /a>go5ef="fs/nfsd/nfsproc" nam5ueL5953="liron2mlueL="value=.de=rqstewfhL65"pc_las6izra>,
& a hrfpc_las6izr="+code6izrofef="+code=nfsd_sattrargc.c#Lvoid4" class="line" namlvoida>-&) ass="sre203e" 203-> a href5>ode=err"5roc.................* Is5="lin53/a>-> a href="+cod.de=rqstewfhL65"pc_cachetypra>,
& a hrfpc_cachetypr="+code=resp" class="sRC_NOCACHEa>,
& a hrfRC_NOCACHEL71" class="l19ne" 19class="sref">5ut /spaio5,
& a hrfpc_xdrlas6izr="+code=resp" class="s1Ta>,
& a hrfSTturn class="l19ne" 19class="sref">5u1ing">&q5line................* na5lueL6541sproc.c#L65"} class="l19ne" 19class="sref">5uod!attrs5 class="sref class="sref5>nfsd5setattr10a>( a[code=rqsass="srNFSPROC_GETtk" a>,
& a hrfNFSPROC_GETtk" ss="]odecall resp2->26class="sref">5u+code=at5d!attrs" class="s ewfhL65" cla54s&_IFBLKsref">argp /a.de=rqstewfhL65"pc_funca>,
& a hrfpc_func="+codee>static
 a hrefttranfsdfunca>,
& a hrfttranfsdfuncturnl  ">
 74 /a>}4
 _get
idua>,
& a hrfn)L74">
 _get
iduturn class="l19ne" 19class="sref">5unfsd_set5p /a>fh" class="srefsd: 5ETATT541.15.8"
	  " e
e" nve.de=rqstewfhL65"pc_dehL65a>,
& a hrfpc_dehL65="+codee>static
 a hrefkxdr">
 _ /a>)rchildcode)kxdr">
 _ turnl  ">
 74 /a>}4rqstp ttradehL65Lfhlaslcturn class="l19ne" 19class="sref">5uode=err"5> a href="o,
 a href=5+code54sref class="sref">nfs.de=rqstewfhL65"pc_enfspra>,
& a hrfpc_enfspr="+codee>static
 a hrefkxdr">
 _ /a>)rchildcode)kxdr">
 _ turnl  ">
 74 /a>}45uode=err"5> goto+fsproc.c#L65" 5out_u54href="+c======fh" cla.de=rqstewfhL65"pc_releasra>,
& a hrfpc_laleasr="+codee>static
 a hrefkxdr">
 _ /a>)rchildcode)kxdr">
 _ turnl  ">
 74 /a>}4rqstp ttralaleasrLfhlaslcturn class="l19ne" 19class="sref">5u7err" cl5">
 41 /a> spai class="c5mm2ef54href="+c======fh" cla.de=rqstewfhL65"pc_ueL6izra>,
& a hrfpc_ueL6izr="+code6izrofef="+code=nfsd_sattrargc.c#Lfhlaslclass="sref">rqstp /afhlaslctatt) ass="sre203e" 203-> a href541">
 41 5a> spai class="comm2ehre5="+c254="liron2mlueL="value=.de=rqstewfhL65"pc_las6izra>,
& a hrfpc_las6izr="+code6izrofef="+code=nfsd_sattrargc.c#L
iduet
i4" class="line" nad_
iduet
iturn) ass="sre203e" 203-> a href54ode=err"5f="fs/nfsd2+code=dpr2int5" cla54/a>-> a href="+cod.de=rqstewfhL65"pc_cachetypra>,
& a hrfpc_cachetypr="+code=resp" class="sRC_NOCACHEa>,
& a hrfRC_NOCACHEL71" class="l19ne" 19class="sref">5tring">&q5ot;ninodef">resp /a>->5nodec551.15.8"
	  " enfsprsp.de=rqstewfhL65"pc_xdrlas6izra>,
& a hrfpc_xdrlas6izr="+code=resp" class="s1Ta>,
& a hrfSTturn+ue/74">
 74 /a>ATa>,
& a hrfATturn class="l19ne" 19class="sref">5t1ing">&q5
 a href="2+code=fh_2cop5" cla551sproc.c#L65"} class="l19ne" 19class="sref">5value=2v.51.15.8"
	  " eUnfudges="5imode55etattr10a>( a[code=rqsass="srNFSPROC_SETtk" a>,
& a hrfNFSPROC_SETtk" ss="]odecall resp2->26class="sref">5codattrs"5class="srsref">resp /a>-5gtf="55s&_IFBLKsref">argp /a.de=rqstewfhL65"pc_funca>,
& a hrfpc_func="+codee>static
 a hrefttranfsdfunca>,
& a hrfttranfsdfuncturnl  ">
 74 /a>}4
 _set
idua>,
& a hrfn)L74">
 _set
iduturn class="l19ne" 19class="sref">5MAY_NOPhr5f="+code=rqstypef">resp 5a>-&g551.15.8"
	  " e
e" nve.de=rqstewfhL65"pc_dehL65a>,
& a hrfpc_dehL65="+codee>static
 a hrefkxdr">
 _ /a>)rchildcode)kxdr">
 _ turnl  ">
 74 /a>}45Mode=err"5f="+code=rqsmodef">resp 5a>-&g55sref class="sref">nfs.de=rqstewfhL65"pc_enfspra>,
& a hrfpc_enfspr="+codee>static
 a hrefkxdr">
 _ /a>)rchildcode)kxdr">
 _ turnl  ">
 74 /a>}45>resp /ic5d!attrs" class="stypef">5esp /55href="+c======fh" cla.de=rqstewfhL65"pc_releasra>,
& a hrfpc_laleasr="+codee>static
 a hrefkxdr">
 _ /a>)rchildcode)kxdr">
 _ turnl  ">
 74 /a>}4rqstp ttralaleasrLfhlaslcturn class="l19ne" 19class="sref">5Mrstat"L45p /a>svalue=2v.11.15.8"
5  " e55href="+c======fh" cla.de=rqstewfhL65"pc_ueL6izra>,
& a hrfpc_ueL6izr="+code6izrofef="+code=nfsd_sattrargc.c#Ls
iduueL64" class="line" nadLs
iduueL6turn) ass="sre203e" 203-> a href5M1">
 41 5inee=nfsd_attrstat"resp 5a>.* 55="liron2mlueL="value=.de=rqstewfhL65"pc_las6izra>,
& a hrfpc_las6izr="+code6izrofef="+code=nfsd_sattrargc.c#L
iduet
i4" class="line" nad_
iduet
iturn) ass="sre203e" 203-> a href5/a>4-&g+code=err" class="s5nodef55/a>-> a href="+cod.de=rqstewfhL65"pc_cachetypra>,
& a hrfpc_cachetypr="+code=resp" class="sRC_REPLBUFFa>,
& a hrfRC_REPLBUFFturn class="l19ne" 19class="sref">5esp /a>-&5t; a href="+ccode=rqstp"5claty561.15.8"
	  " enfsprsp.de=rqstewfhL65"pc_xdrlas6izra>,
& a hrfpc_xdrlas6izr="+code=resp" class="s1Ta>,
& a hrfSTturn+ue/74">
 74 /a>ATa>,
& a hrfATturn class="l19ne" 19class="sref">5ef">resp 5a>-> a hreswitchde=er5" cla561sproc.c#L65"} class="l19ne" 19class="sref">5esp /a>>>5>>>>>>>>>>>>>case href="5code=56etattr10a>( a[code=rqsass="srNFSPROC_ROOTa>,
& a hrfNFSPROC_ROOTss="]odecall resp2->26class="sref">5"+code===5=============case href="5code=56s&_IFBLKsref">argp /a.de=rqstewfhL65"pc_dehL65a>,
& a hrfpc_dehL65="+codee>static
 a hrefkxdr">
 _ /a>)rchildcode)kxdr">
 _ turnl  ">
 74 /a>}45trstat" c5ass="sref">nfsd_attrssva5ue=2v561.15.8"
	  " e
e" nve.de=rqstewfhL65"pc_enfspra>,
& a hrfpc_enfspr="+codee>static
 a hrefkxdr">
 _ /a>)rchildcode)kxdr">
 _ turnl  ">
 74 /a>}45>resp /a>5> a href="+c==ttrssre5="+co56sref class="sref">nfs.de=rqstewfhL65"pc_ueL6izra>,
& a hrfpc_ueL6izr="+code6izrofef="+code=nfsd_sattrargc.c#Lvoid4" class="line" namlvoida>-&) ass="sre203e" 203-> a href5>resp /a>5> a href="+c==ttrssre5="+co56href="+c======fh" cla.de=rqstewfhL65"pc_res6izra>,
& a hrfpc_las6izr="+code6izrofef="+code=nfsd_sattrargc.c#Lvoid4" class="line" namlvoida>-&) ass="sre203e" 203-> a href5/a> spai 5lass="comm2+nt">/* /2cod5=SVCF56href="+c======fh" cla.de=rqstewfhL65"pc_cachetypra>,
& a hrfpc_cachetypr="+code=resp" class="sRC_NOCACHEa>,
& a hrfRC_NOCACHEL71" class="l19ne" 19class="sref">5esp /a>-&5t; a href="+codeattrssva5ue=2v56="liron2mlueL="value=.de=rqstewfhL65"pc_xdrlas6izra>,
& a hrfpc_xdrlas6izr="+code=resp" class="s1Ta>,
& a hrfSTturn class="l19ne" 19class="sref">5ef">resp 5a>-> a hrecase href="5code=569sproc.c#L65"} class="l19ne" 19class="sref">5esp /a>-&5t; a href="+codeattrssva5ue=2v511.15.8"
	  " [code=rqsass="srNFSPROC_LOOKUPa>,
& a hrfNFSPROC_LOOKUPss="]odecall resp2->26class="sref">52" class=5line....................5.....571"liron2mlueL="value=.de=rqstewfhL65"pc_funca>,
& a hrfpc_func="+codee>static
 a hrefttranfsdfunca>,
& a hrfttranfsdfuncturnl  ">
 74 /a>}4
 _looku5>resp /a>)#L7va}4
 _looku5turn class="l19ne" 19class="sref">5/nfsd/nfs5roce....................5.....572&_IFBLKsref">argp /a.de=rqstewfhL65"pc_dehL65a>,
& a hrfpc_dehL65="+codee>static
 a hrefkxdr">
 _ /a>)rchildcode)kxdr">
 _ turnl  ">
 74 /a>}45/+code===5argp /a.de=rqstewfhL65"pc_enfspra>,
& a hrfpc_enfspr="+codee>static
 a hrefkxdr">
 _ /a>)rchildcode)kxdr">
 _ turnl  ">
 74 /a>}45/rstat" c5linehhhhhhhh............5.....571.15.8"
	  " e
e" nve.de=rqstewfhL65"pc_releasra>,
& a hrfpc_laleasr="+codee>static
 a hrefkxdr">
 _ /a>)rchildcode)kxdr">
 _ turnl  ">
 74 /a>}4rqstp ttralaleasrLfhlaslcturn class="l19ne" 19class="sref">5/resp /a>5> a href="+c======fh"5class57sref class="sref">nfs.de=rqstewfhL65"pc_ueL6izra>,
& a hrfpc_ueL6izr="+code6izrofef="+code=nfsd_sattrargc.c#LueL65ueL64" class="line" namlueL65ueL6/a>
) ass="sre203e" 203-> a href52resp /a>5> a href="+c=resp /a>5> 57href="+c======fh" cla.de=rqstewfhL65"pc_res6izra>,
& a hrfpc_las6izr="+code6izrofef="+code=nfsd_sattrargc.c#LueL65las4" class="line" namlueL65lasref=) ass="sre203e" 203-> a href52a> spai 5fsd_attrstat" clresp /a>5> 57href="+c======fh" cla.de=rqstewfhL65"pc_cachetypra>,
& a hrfpc_cachetypr="+code=resp" class="sRC_NOCACHEa>,
& a hrfRC_NOCACHEL71" class="l19ne" 19class="sref">51sp /a>-&5t; a href="+codecode=fh"5class57="liron2mlueL="value=.de=rqstewfhL65"pc_xdrlas6izra>,
& a hrfpc_xdrlas6izr="+code=resp" class="s1Ta>,
& a hrfSTturn+ue/74">
 74 /a>FHa>,
& a hrfFHturn+ue/74">
 74 /a>ATa>,
& a hrfATturn class="l19ne" 19class="sref">5ef">resp 5vfs_getattr" code=nfserr5 clas579sproc.c#L65"} class="l19ne" 19class="sref">5 /a> spai5class="comm18code=fh_18o5y" cl581.15.8"
	  " [code=rqsass="srNFSPROC_READLINKa>,
& a hrfNFSPROC_READLINKss="]odecall resp2->26class="sref">5/a>





5
 a href="18code=nfs18rr5 clas581"liron2mlueL="value=.de=rqstewfhL65"pc_funca>,
& a hrfpc_func="+codee>static
 a hrefttranfsdfunca>,
& a hrfttranfsdfuncturnl  ">
 74 /a>}4
 _rctdsmok4" class="line" naml">
 _rctdsmokturn class="l19ne" 19class="sref">5/nfsd/nfs5roc" namlueL59">
 59 /a>5spai 582&_IFBLKsref">argp /a.de=rqstewfhL65"pc_dehL65a>,
& a hrfpc_dehL65="+codee>static
 a hrefkxdr">
 _ /a>)rchildcode)kxdr">
 _ turnl  ">
 74 /a>}45/+code===5argp /a.de=rqstewfhL65"pc_enfspra>,
& a hrfpc_enfspr="+codee>static
 a hrefkxdr">
 _ /a>)rchildcode)kxdr">
 _ turnl  ">
 74 /a>}45/rstat" c5line" The par="l directo5f="s 581.15.8"
	  " e
e" nve.de=rqstewfhL65"pc_ueL6izra>,
& a hrfpc_ueL6izr="+code6izrofef="+code=nfsd_sattrargc.c#LrctdsmokueL64" class="line" nadLrctdsmokueL6turn) ass="sre203e" 203-> a href5/resp /a>5line" s=dr/nfsactual cre5te()r58sref class="sref">nfs.de=rqstewfhL65"pc_res6izra>,
& a hrfpc_las6izr="+code6izrofef="+code=nfsd_sattrargc.c#Lrctdsmoklas4" class="line" nad_rctdsmoklasturn) ass="sre203e" 203-> a href5/resp /a>5inehref="fs/nfsd/nfsproc5c#_bo58href="+c======fh" cla.de=rqstewfhL65"pc_cachetypra>,
& a hrfpc_cachetypr="+code=resp" class="sRC_NOCACHEa>,
& a hrfRC_NOCACHEL71" class="l19ne" 19class="sref">5fs/nfsd/n5sproc namlueL62">
 62 /a5stati58href="+c======fh" cla.de=rqstewfhL65"pc_xdrlas6izra>,
& a hrfpc_xdrlas6izr="+code=resp" class="s1Ta>,
& a hrfSTturn+3+ue/74">
 74 /a>2" iMyXPATHLENa>,
& a hrfNFSiMyXPATHLENturn/4 class="l19ne" 19class="sref">5fsp /a>-&5L63" idueL63" class="lin5" nam58sref="fb="sre} class="l19ne" 19class="sref">5 f">resp 5ef="+ccreatediqst" class5"sref58/a>-> a hr[code=rqsass="srNFSPROC_READa>,
& a hrfNFSPROC_READss="]odecall resp2->26class="sref">5esp /a>-&5t; a href="+code======s 5a>
* 591.15.8"
	  " enfsprsp.de=rqstewfhL65"pc_funca>,
& a hrfpc_func="+codee>static
 a hrefttranfsdfunca>,
& a hrfttranfsdfuncturnl  ">
 74 /a>}4
 _rctd4" class="line" naml">
 _rctdL71" class="l19ne" 19class="sref">5 /a>




5

return  a19code=nfs19r5" cla591"liron2mlueL="value=.de=rqstewfhL65"pc_dehL65a>,
& a hrfpc_dehL65="+codee>static
 a hrefkxdr">
 _ /a>)rchildcode)kxdr">
 _ turnl  ">
 74 /a>}45 nfsd/nfs5ttr"ructL72" class="line5ructL592&_IFBLKsref">argp /a.de=rqstewfhL65"pc_enfspra>,
& a hrfpc_enfspr="+codee>static
 a hrefkxdr">
 _ /a>)rchildcode)kxdr">
 _ turnl  ">
 74 /a>}45et /spaio5ttr"ructL72" class="line5ructL59s&_IFBLKsref">argp /a.de=rqstewfhL65"pc_releasra>,
& a hrfpc_laleasr="+codee>static
 a hrefkxdr">
 _ /a>)rchildcode)kxdr">
 _ turnl  ">
 74 /a>}4rqstp ttralaleasrLfhlaslcturn class="l19ne" 19class="sref">5 rstat" c5ref="+code=i"sref">resp 5a>-&g591.15.8"
	  " e
e" nve.de=rqstewfhL65"pc_ueL6izra>,
& a hrfpc_ueL6izr="+code6izrofef="+code=nfsd_sattrargc.c#LrctdueL64" class="line" nadLrctdueL6turn) ass="sre203e" 203-> a href5 /a>
* a 5ref="+code=inodef">resp 5a>-&g59sref class="sref">nfs.de=rqstewfhL65"pc_res6izra>,
& a hrfpc_las6izr="+code6izrofef="+code=nfsd_sattrargc.c#Lrctdlas4" class="line" nad_rctdlasturn) ass="sre203e" 203-> a href5 /a>
* a 5ref="+code=#L39" idueL395 clas59href="+c======fh" cla.de=rqstewfhL65"pc_cachetypra>,
& a hrfpc_cachetypr="+code=resp" class="sRC_NOCACHEa>,
& a hrfRC_NOCACHEL71" class="l19ne" 19class="sref">5ntcode=; 5 hrefe=nfsd_setattr"type5">res59href="+c======fh" cla.de=rqstewfhL65"pc_xdrlas6izra>,
& a hrfpc_xdrlas6izr="+code=resp" class="s1Ta>,
& a hrfSTturn+ue/74">
 74 /a>ATa>,
& a hrfATturn+3+ue/74">
 74 /a>2" SVCiMyXBLKfs/n_VueL67" class="li2" SVCiMyXBLKfs/n_Vuturn/4 class="l19ne" 19class="sref">5nfsproc.c5ss="sref">nfserr /a>;45 f="+code5 hrefe=nfsd_setattr"hore5dueL659/a>-> a hr[code=rqsass="srNFSPROC_WRITECACHEa>,
& a hrfNFSPROC_WRITECACHEss="]odecall resp2->26class="sref">6tring">&q6ot;nfev" idueL73" class=6ev" l601.15.8"
	  " enfsprsp.de=rqstewfhL65"pc_dehL65a>,
& a hrfpc_dehL65="+codee>static
 a hrefkxdr">
 _ /a>)rchildcode)kxdr">
 _ turnl  ">
 74 /a>}46t1ing">&q6o
return  a19code=nfs19r63" id601"liron2mlueL="value=.de=rqstewfhL65"pc_enfspra>,
& a hrfpc_enfspr="+codee>static
 a hrefkxdr">
 _ /a>)rchildcode)kxdr">
 _ turnl  ">
 74 /a>}46=nfsd_set6ttr"fsd: GETATTR

%s6n&quo602&_IFBLKsref">argp /a.de=rqstewfhL65"pc_ueL6izra>,
& a hrfpc_ueL6izr="+code6izrofef="+code=nfsd_sattrargc.c#Lvoid4" class="line" namlvoida>-&) ass="sre203e" 203-> a href6"+code=at6rs" class="s" class="sre6">arg60s&_IFBLKsref">argp /a.de=rqstewfhL65"pc_res6izra>,
& a hrfpc_las6izr="+code6izrofef="+code=nfsd_sattrargc.c#Lvoid4" class="line" namlvoida>-&) ass="sre203e" 203-> a href6/a>static6 a href="+20nfsproc.20#L66" id601.15.8"
	  " e
e" nve.de=rqstewfhL65"pc_cachetypra>,
& a hrfpc_cachetypr="+code=resp" class="sRC_NOCACHEa>,
& a hrfRC_NOCACHEL71" class="l19ne" 19class="sref">6=5>static6 ef="+code=inodef">resp 6er/nf60sref class="sref">nfs.de=rqstewfhL65"pc_xdrlas6izra>,
& a hrfpc_xdrlas6izr="+code=resp" class="s1Ta>,
& a hrfSTturn class="l19ne" 19class="sref">6fserr" cl6ss=" class="sref">nfsd_s6tattr606ref="fb="sre} class="l19ne" 19class="sref">6f7err" cl6shrefe=nfsd_setattr"type6d_set607a>-> a hr[code=rqsass="srNFSPROC_WRITEa>,
& a hrfNFSPROC_WRITEss="]odecall resp2->26class="sref">6t8err" cl6ss="sref">nfserr /a>;4,
& a hrfpc_func="+codee>static
 a hrefttranfsdfunca>,
& a hrfttranfsdfuncturnl  ">
 74 /a>}4
 _writclass="sref">rqstp /a">
 _writcturn class="l19ne" 19class="sref">6f9err" cl6shrefe=nfsd_setattr"hore6d/xdr60/a>-> a href="+cod.de=rqstewfhL65"pc_dehL65a>,
& a hrfpc_dehL65="+codee>static
 a hrefkxdr">
 _ /a>)rchildcode)kxdr">
 _ turnl  ">
 74 /a>}46value=2v.61.15.8"
	  " eCheck fos 65" id611.15.8"
	  " enfsprsp.de=rqstewfhL65"pc_enfspra>,
& a hrfpc_enfspr="+codee>static
 a hrefkxdr">
 _ /a>)rchildcode)kxdr">
 _ turnl  ">
 74 /a>}46v1ing">&q6
 a href="2/nfsproc.2c#L63" id611"liron2mlueL="value=.de=rqstewfhL65"pc_releasra>,
& a hrfpc_laleasr="+codee>static
 a hrefkxdr">
 _ /a>)rchildcode)kxdr">
 _ turnl  ">
 74 /a>}4rqstp ttralaleasrLfhlaslcturn class="l19ne" 19class="sref">6=nfsd_set6ttr" class="sref">nfsd_s6tattr612&_IFBLKsref">argp /a.de=rqstewfhL65"pc_ueL6izra>,
& a hrfpc_ueL6izr="+code6izrofef="+code=nfsd_sattrargc.c#LwritcueL64" class="line" nadLwritcueL6turn) ass="sre203e" 203-> a href6cod!attrs6 class="sref">attrs10a>.6a hre61s&_IFBLKsref">argp /a.de=rqstewfhL65"pc_res6izra>,
& a hrfpc_las6izr="+code6izrofef="+code=nfsd_sattrargc.c#L
iduet
i4" class="line" nad_
iduet
iturn) ass="sre203e" 203-> a href6trstat"go6o+fsproc.c#L65" iron2eL66" cla611.15.8"
	  " e
e" nve.de=rqstewfhL65"pc_cachetypra>,
& a hrfpc_cachetypr="+code=resp" class="sRC_REPLBUFFa>,
& a hrfRC_REPLBUFFturn class="l19ne" 19class="sref">6+code=res6" cl class="sref">nfsd_s6tattr61sref class="sref">nfs.de=rqstewfhL65"pc_xdrlas6izra>,
& a hrfpc_xdrlas6izr="+code=resp" class="s1Ta>,
& a hrfSTturn+ue/74">
 74 /a>ATa>,
& a hrfATturn class="l19ne" 19class="sref">6code=err"6class="sisdoteL38" class6"line616ref="fb="sre} class="l19ne" 19class="sref">6v7err" cl6o+fsproc.c#L65" iron2eL66" cla617a>-> a hr[code=rqsass="srNFSPROC_CREATEa>,
& a hrfNFSPROC_CREATEss="]odecall resp2->26class="sref">6fserr" cl6ss="horeedueL67" class="6ihore61="liron2mlueL="value=.de=rqstewfhL65"pc_funca>,
& a hrfpc_func="+codee>static
 a hrefttranfsdfunca>,
& a hrfttranfsdfuncturnl  ">
 74 /a>}4
 _creatclass="sref">rqstp /a">
 _creatcturn class="l19ne" 19class="sref">6c9err" cl6class="shoreedueL67" cla6s="li61/a>-> a href="+cod.de=rqstewfhL65"pc_dehL65a>,
& a hrfpc_dehL65="+codee>static
 a hrefkxdr">
 _ /a>)rchildcode)kxdr">
 _ turnl  ">
 74 /a>}46esp /a>fh6 class="sref class="sref6>nfsd621.15.8"
	  " enfsprsp.de=rqstewfhL65"pc_enfspra>,
& a hrfpc_enfspr="+codee>static
 a hrefkxdr">
 _ /a>)rchildcode)kxdr">
 _ turnl  ">
 74 /a>}46e1ing">&q6o+fsproc.c#L65" iron2eL66" cla621"liron2mlueL="value=.de=rqstewfhL65"pc_releasra>,
& a hrfpc_laleasr="+codee>static
 a hrefkxdr">
 _ /a>)rchildcode)kxdr">
 _ turnl  ">
 74 /a>}4rqstp ttralaleasrLfhlaslcturn class="l19ne" 19class="sref">641">
 41 6a> spai class="comm2d/nf6proc2622&_IFBLKsref">argp /a.de=rqstewfhL65"pc_ueL6izra>,
& a hrfpc_ueL6izr="+code6izrofef="+code=nfsd_sattrargc.c#LcreatcueL64" class="line" nadLcreatcueL6turn) ass="sre203e" 203-> a href6/a>4argp /a.de=rqstewfhL65"pc_res6izra>,
& a hrfpc_las6izr="+code6izrofef="+code=nfsd_sattrargc.c#LueL65las4" class="line" namlueL65lasref=) ass="sre203e" 203-> a href6=nfsd_set6ttr"ass+cck_nested /a>,
6amp; 621.15.8"
	  " e
e" nve.de=rqstewfhL65"pc_cachetypra>,
& a hrfpc_cachetypr="+code=resp" class="sRC_REPLBUFFa>,
& a hrfRC_REPLBUFFturn class="l19ne" 19class="sref">6=code=res6" clrchildsref">resp /a>6rchil62sref class="sref">nfs.de=rqstewfhL65"pc_xdrlas6izra>,
& a hrfpc_xdrlas6izr="+code=resp" class="s1Ta>,
& a hrfSTturn+ue/74">
 74 /a>FHa>,
& a hrfFHturn+ue/74">
 74 /a>ATa>,
& a hrfATturn class="l19ne" 19class="sref">6code=err"6class="sIS_ERRsref">argp6/a>-I626ref="fb="sre} class="l19ne" 19class="sref">6e7err" cl6 class="sref class="sref6>nfsd627a>-> a hr[code=rqsass="srNFSPROC_REMOVEa>,
& a hrfNFSPROC_REMOVEss="]odecall resp2->26class="sref">6esp /a>go6o+fsproc.c#L65" iout_un+6cksre62="liron2mlueL="value=.de=rqstewfhL65"pc_funca>,
& a hrfpc_func="+codee>static
 a hrefttranfsdfunca>,
& a hrfttranfsdfuncturnl  ">
 74 /a>}4
 _removclass="sref">rqstp /a">
 _removcturn class="l19ne" 19class="sref">6c9err" cl6a> spai class="comm2



6



262/a>-> a href="+cod.de=rqstewfhL65"pc_dehL65a>,
& a hrfpc_dehL65="+codee>static
 a hrefkxdr">
 _ /a>)rchildcode)kxdr">
 _ turnl  ">
 74 /a>}46tring">&q6ot;nassinis="sref">ex_pa6h /ai631.15.8"
	  " enfsprsp.de=rqstewfhL65"pc_enfspra>,
& a hrfpc_enfspr="+codee>static
 a hrefkxdr">
 _ /a>)rchildcode)kxdr">
 _ turnl  ">
 74 /a>}46t1ing">&q6" cl class="sref">nfsd_s6tattr631"liron2mlueL="value=.de=rqstewfhL65"pc_ueL6izra>,
& a hrfpc_ueL6izr="+code6izrofef="+code=nfsd_sattrargc.c#LueL65ueL64" class="line" namlueL65ueL6/a>
) ass="sre203e" 203-> a href6cod!attrs6 class="s class="sref">n6sd_se632&_IFBLKsref">argp /a.de=rqstewfhL65"pc_res6izra>,
& a hrfpc_las6izr="+code6izrofef="+code=nfsd_sattrargc.c#Lvoid4" class="line" namlvoida>-&) ass="sre203e" 203-> a href6"+code=at6rs" class="s class="sref6>nfsd63s&_IFBLKsref">argp /a.de=rqstewfhL65"pc_cachetypra>,
& a hrfpc_cachetypr="+code=resp" class="sRC_REPLSTATa>,
& a hrfRC_REPLSTATL71" class="l19ne" 19class="sref">6tnfsd_set6ttr"de" ="sref">ex_pathd6" na=63fsproc.c#L65""""""""".de=rqstewfhL65"pc_xdrlas6izra>,
& a hrfpc_xdrlas6izr="+code=resp" class="s1Ta>,
& a hrfSTturn class="l19ne" 19class="sref">6code=err"6class="s class="sref">nf6d_set63sref class="s} class="l19ne" 19class="sref">6code=err"6de=err" class="s class="6ref">63href="+c=====[code=rqsass="srNFSPROC_RENAMEa>,
& a hrfNFSPROC_RENAMEss="]odecall resp2->26class="sref">6c7err" cl6p /a>goto+fsproc.c#L65" 6out_u63href="+c======fh" cla.de=rqstewfhL65"pc_funca>,
& a hrfpc_func="+codee>static
 a hrefttranfsdfunca>,
& a hrfttranfsdfuncturnl  ">
 74 /a>}4
 _rec#L6lass="sref">rqstp /a">
 _rec#L6turn class="l19ne" 19class="sref">6csp /a>go6ef="fs/nfsd/nfsproc" nam6ueL5963="liron2mlueL="value=.de=rqstewfhL65"pc_dehL65a>,
& a hrfpc_dehL65="+codee>static
 a hrefkxdr">
 _ /a>)rchildcode)kxdr">
 _ turnl  ">
 74 /a>}46c9err" cl6roc.................* Is6="lin63/a>-> a href="+cod.de=rqstewfhL65"pc_enfspra>,
& a hrfpc_enfspr="+codee>static
 a hrefkxdr">
 _ /a>)rchildcode)kxdr">
 _ turnl  ">
 74 /a>}46ut /spaio6,
& a hrfpc_ueL6izr="+code6izrofef="+code=nfsd_sattrargc.c#Lrcoc" ueL64" class="line" nadLrcoc" ueL6turn) ass="sre203e" 203-> a href6u1ing">&q6line................* na6lueL6641"liron2mlueL="value=.de=rqstewfhL65"pc_res6izra>,
& a hrfpc_las6izr="+code6izrofef="+code=nfsd_sattrargc.c#Lvoid4" class="line" namlvoida>-&) ass="sre203e" 203-> a href6uod!attrs6 class="sref class="sref6>nfsd642&_IFBLKsref">argp /a.de=rqstewfhL65"pc_cachetypra>,
& a hrfpc_cachetypr="+code=resp" class="sRC_REPLSTATa>,
& a hrfRC_REPLSTATL71" class="l19ne" 19class="sref">6u+code=at6d!attrs" class="s ewfhL66" cla64s&_IFBLKsref">argp /a.de=rqstewfhL65"pc_xdrlas6izra>,
& a hrfpc_xdrlas6izr="+code=resp" class="s1Ta>,
& a hrfSTturn class="l19ne" 19class="sref">6unfsd_set6p /a>fh" class="srefsd: 6ETATT641.15.8"
	  " } class="l19ne" 19class="sref">6uode=err"6> a href="o,
 a href=6+code64sref class="s[code=rqsass="srNFSPROC_LINKa>,
& a hrfNFSPROC_LINKss="]odecall resp2->26class="sref">6uode=err"6> goto+fsproc.c#L65" 6out_u64href="+c======fh" cla.de=rqstewfhL65"pc_funca>,
& a hrfpc_func="+codee>static
 a hrefttranfsdfunca>,
& a hrfttranfsdfuncturnl  ">
 74 /a>}4
 _lmok4" class="line" naml">
 _smokturn class="l19ne" 19class="sref">6u7err" cl6">
 41 /a> spai class="c6mm2ef64href="+c======fh" cla.de=rqstewfhL65"pc_dehL65a>,
& a hrfpc_dehL65="+codee>static
 a hrefkxdr">
 _ /a>)rchildcode)kxdr">
 _ turnl  ">
 74 /a>}4641">
 41 6a> spai class="comm2ehre6="+c264="liron2mlueL="value=.de=rqstewfhL65"pc_enfspra>,
& a hrfpc_enfspr="+codee>static
 a hrefkxdr">
 _ /a>)rchildcode)kxdr">
 _ turnl  ">
 74 /a>}46u9err" cl6f="fs/nfsd2+code=dpr2int6" cla64/a>-> a href="+cod.de=rqstewfhL65"pc_ueL6izra>,
& a hrfpc_ueL6izr="+code6izrofef="+code=nfsd_sattrargc.c#LsmokueL64" class="line" nadLsmokueL6turn) ass="sre203e" 203-> a href6tring">&q6ot;ninodef">resp /a>->6nodec651.15.8"
	  " enfsprsp.de=rqstewfhL65"pc_res6izra>,
& a hrfpc_las6izr="+code6izrofef="+code=nfsd_sattrargc.c#Lvoid4" class="line" namlvoida>-&) ass="sre203e" 203-> a href6t1ing">&q6
 a href="2+code=fh_2cop6" cla651"liron2mlueL="value=.de=rqstewfhL65"pc_cachetypra>,
& a hrfpc_cachetypr="+code=resp" class="sRC_REPLSTATa>,
& a hrfRC_REPLSTATL71" class="l19ne" 19class="sref">6value=2v.61.15.8"
	  " eUnfudges="6imode652&_IFBLKsref">argp /a.de=rqstewfhL65"pc_xdrlas6izra>,
& a hrfpc_xdrlas6izr="+code=resp" class="s1Ta>,
& a hrfSTturn class="l19ne" 19class="sref">6codattrs"6class="srsref">resp /a>-6gtf="65s&_IFBLKsref"} class="l19ne" 19class="sref">6MAY_NOPhr6f="+code=rqstypef">resp 6a>-&g651.15.8"
	  " [code=rqsass="srNFSPROC_SYMLINKa>,
& a hrfNFSPROC_SYMLINKss="]odecall resp2->26class="sref">6Mode=err"6f="+code=rqsmodef">resp 6a>-&g65sref class="sref">nfs.de=rqstewfhL65"pc_funca>,
& a hrfpc_func="+codee>static
 a hrefttranfsdfunca>,
& a hrfttranfsdfuncturnl  ">
 74 /a>}4
 _symlmok4" class="line" naml">
 _symlmokturn class="l19ne" 19class="sref">6code=err"6d!attrs" class="stypef">6esp /65href="+c======fh" cla.de=rqstewfhL65"pc_dehL65a>,
& a hrfpc_dehL65="+codee>static
 a hrefkxdr">
 _ /a>)rchildcode)kxdr">
 _ turnl  ">
 74 /a>}46c7err" cl6p /a>svalue=2v.11.15.8"
6  " e65href="+c======fh" cla.de=rqstewfhL65"pc_enfspra>,
& a hrfpc_enfspr="+codee>static
 a hrefkxdr">
 _ /a>)rchildcode)kxdr">
 _ turnl  ">
 74 /a>}46M1">
 41 6inee=nfsd_attrstat"resp 6a>.* 65="liron2mlueL="value=.de=rqstewfhL65"pc_ueL6izra>,
& a hrfpc_ueL6izr="+code6izrofef="+code=nfsd_sattrargc.c#LsymlmokueL64" class="line" nadLsymlmokueL6turn) ass="sre203e" 203-> a href6t9err" cl6a>-&g+code=err" class="s6nodef65/a>-> a href="+cod.de=rqstewfhL65"pc_res6izra>,
& a hrfpc_las6izr="+code6izrofef="+code=nfsd_sattrargc.c#Lvoid4" class="line" namlvoida>-&) ass="sre203e" 203-> a href6esp /a>-&6t; a href="+ccode=rqstp"6claty661.15.8"
	  " enfsprsp.de=rqstewfhL65"pc_cachetypra>,
& a hrfpc_cachetypr="+code=resp" class="sRC_REPLSTATa>,
& a hrfRC_REPLSTATL71" class="l19ne" 19class="sref">6ef">resp 6a>-> a hreswitchde=er6" cla661"liron2mlueL="value=.de=rqstewfhL65"pc_xdrlas6izra>,
& a hrfpc_xdrlas6izr="+code=resp" class="s1Ta>,
& a hrfSTturn class="l19ne" 19class="sref">6esp /a>>>6>>>>>>>>>>>>>case href="6code=66etattr10a>( a} class="l19ne" 19class="sref">6"+code===6=============case href="6code=66s&_IFBLKsref"[code=rqsass="srNFSPROC_MKDI a>,
& a hrfNFSPROC_MKDI ss="]odecall resp2->26class="sref">6trstat" c6ass="sref">nfsd_attrssva6ue=2v661.15.8"
	  " e
e" nve.de=rqstewfhL65"pc_funca>,
& a hrfpc_func="+codee>static
 a hrefttranfsdfunca>,
& a hrfttranfsdfuncturnl  ">
 74 /a>}4
 _mkdiua>,
& a hrfn)L74">
 _mkdiuturn class="l19ne" 19class="sref">6eode=err"6> a href="+c==ttrssre6="+co66sref class="sref">nfs.de=rqstewfhL65"pc_dehL65a>,
& a hrfpc_dehL65="+codee>static
 a hrefkxdr">
 _ /a>)rchildcode)kxdr">
 _ turnl  ">
 74 /a>}46>resp /a>6> a href="+c==ttrssre6="+co66href="+c======fh" cla.de=rqstewfhL65"pc_enfspra>,
& a hrfpc_enfspr="+codee>static
 a hrefkxdr">
 _ /a>)rchildcode)kxdr">
 _ turnl  ">
 74 /a>}46/a> spai 6lass="comm2+nt">/* /2cod6=SVCF66href="+c======fh" cla.de=rqstewfhL65"pc_releasra>,
& a hrfpc_laleasr="+codee>static
 a hrefkxdr">
 _ /a>)rchildcode)kxdr">
 _ turnl  ">
 74 /a>}4rqstp ttralaleasrLfhlaslcturn class="l19ne" 19class="sref">6esp /a>-&6t; a href="+codeattrssva6ue=2v66="liron2mlueL="value=.de=rqstewfhL65"pc_ueL6izra>,
& a hrfpc_ueL6izr="+code6izrofef="+code=nfsd_sattrargc.c#LcreatcueL64" class="line" nadLcreatcueL6turn) ass="sre203e" 203-> a href6ef">resp 6a>-> a hrecase href="6code=66/a>-> a href="+cod.de=rqstewfhL65"pc_res6izra>,
& a hrfpc_las6izr="+code6izrofef="+code=nfsd_sattrargc.c#LueL65las4" class="line" namlueL65lasref=) ass="sre203e" 203-> a href6esp /a>-&6t; a href="+codeattrssva6ue=2v671.15.8"
	  " enfsprsp.de=rqstewfhL65"pc_cachetypra>,
& a hrfpc_cachetypr="+code=resp" class="sRC_REPLBUFFa>,
& a hrfRC_REPLBUFFturn class="l19ne" 19class="sref">62" class=6line....................6.....671"liron2mlueL="value=.de=rqstewfhL65"pc_xdrlas6izra>,
& a hrfpc_xdrlas6izr="+code=resp" class="s1Ta>,
& a hrfSTturn+ue/74">
 74 /a>FHa>,
& a hrfFHturn+ue/74">
 74 /a>ATa>,
& a hrfATturn class="l19ne" 19class="sref">6/nfsd/nfs6roce....................6.....67etattr10a>( a} class="l19ne" 19class="sref">6/+code===6,
& a hrfNFSPROC_RMDI ss="]odecall resp2->26class="sref">6/rstat" c6linehhhhhhhh............6.....671.15.8"
	  " e
e" nve.de=rqstewfhL65"pc_funca>,
& a hrfpc_func="+codee>static
 a hrefttranfsdfunca>,
& a hrfttranfsdfuncturnl  ">
 74 /a>}4
 _rmdiua>,
& a hrfn)L74">
 _rmdiuturn class="l19ne" 19class="sref">6/ode=err"6> a href="+c======fh"6class67sref class="sref">nfs.de=rqstewfhL65"pc_dehL65a>,
& a hrfpc_dehL65="+codee>static
 a hrefkxdr">
 _ /a>)rchildcode)kxdr">
 _ turnl  ">
 74 /a>}462resp /a>6> a href="+c=resp /a>6> 67href="+c======fh" cla.de=rqstewfhL65"pc_enfspra>,
& a hrfpc_enfspr="+codee>static
 a hrefkxdr">
 _ /a>)rchildcode)kxdr">
 _ turnl  ">
 74 /a>}462a> spai 6fsd_attrstat" clresp /a>6> 67href="+c======fh" cla.de=rqstewfhL65"pc_ueL6izra>,
& a hrfpc_ueL6izr="+code6izrofef="+code=nfsd_sattrargc.c#LueL65ueL64" class="line" namlueL65ueL6/a>
) ass="sre203e" 203-> a href61sp /a>-&6t; a href="+codecode=fh"6class67="liron2mlueL="value=.de=rqstewfhL65"pc_res6izra>,
& a hrfpc_las6izr="+code6izrofef="+code=nfsd_sattrargc.c#Lvoid4" class="line" namlvoida>-&) ass="sre203e" 203-> a href6ef">resp 6vfs_getattr" code=nfserr6 clas67/a>-> a href="+cod.de=rqstewfhL65"pc_cachetypra>,
& a hrfpc_cachetypr="+code=resp" class="sRC_REPLSTATa>,
& a hrfRC_REPLSTATL71" class="l19ne" 19class="sref">6 /a> spai6class="comm18code=fh_18o6y" cl681.15.8"
	  " enfsprsp.de=rqstewfhL65"pc_xdrlas6izra>,
& a hrfpc_xdrlas6izr="+code=resp" class="s1Ta>,
& a hrfSTturn class="l19ne" 19class="sref">6/a>





6
 a href="18code=nfs18rr6 clas681sproc.c#L65"} class="l19ne" 19class="sref">6/nfsd/nfs6roc" namlueL59">
 59 /a>6spai 68etattr10a>( a[code=rqsass="srNFSPROC_READDI a>,
& a hrfNFSPROC_READDI ss="]odecall resp2->26class="sref">6/+code===6argp /a.de=rqstewfhL65"pc_funca>,
& a hrfpc_func="+codee>static
 a hrefttranfsdfunca>,
& a hrfttranfsdfuncturnl  ">
 74 /a>}4
 _rctddiua>,
& a hrfn)L74">
 _rctddiuturn class="l19ne" 19class="sref">6/rstat" c6line" The par="l directo6f="s 681.15.8"
	  " e
e" nve.de=rqstewfhL65"pc_dehL65a>,
& a hrfpc_dehL65="+codee>static
 a hrefkxdr">
 _ /a>)rchildcode)kxdr">
 _ turnl  ">
 74 /a>}46/ode=err"6line" s=dr/nfsactual cre6te()r68sref class="sref">nfs.de=rqstewfhL65"pc_enfspra>,
& a hrfpc_enfspr="+codee>static
 a hrefkxdr">
 _ /a>)rchildcode)kxdr">
 _ turnl  ">
 74 /a>}46/resp /a>6inehref="fs/nfsd/nfsproc6c#_bo68href="+c======fh" cla.de=rqstewfhL65"pc_ueL6izra>,
& a hrfpc_ueL6izr="+code6izrofef="+code=nfsd_sattrargc.c#LrctddiuueL64" class="line" nadLrctddiuueL6turn) ass="sre203e" 203-> a href6fs/nfsd/n6sproc namlueL62">
 62 /a6stati68href="+c======fh" cla.de=rqstewfhL65"pc_res6izra>,
& a hrfpc_las6izr="+code6izrofef="+code=nfsd_sattrargc.c#Lrctddiulas4" class="line" nad_rctddiulasturn) ass="sre203e" 203-> a href6fsp /a>-&6L63" idueL63" class="lin6" nam68="liron2mlueL="value=.de=rqstewfhL65"pc_cachetypra>,
& a hrfpc_cachetypr="+code=resp" class="sRC_NOCACHEa>,
& a hrfRC_NOCACHEL71" class="l19ne" 19class="sref">6 f">resp 6ef="+ccreatediqst" class6"sref689sproc.c#L65"} class="l19ne" 19class="sref">6esp /a>-&6t; a href="+code======s 6a>
* 691.15.8"
	  " [code=rqsass="srNFSPROC_STATFSa>,
& a hrfNFSPROC_STATFSss="]odecall resp2->26class="sref">6 /a>




6

return  a19code=nfs19r6" cla691"liron2mlueL="value=.de=rqstewfhL65"pc_funca>,
& a hrfpc_func="+codee>static
 a hrefttranfsdfunca>,
& a hrfttranfsdfuncturnl  ">
 74 /a>}4
 _statfs4" class="line" nad_">
 _statfsL71" class="l19ne" 19class="sref">6 nfsd/nfs6ttr"ructL72" class="line6ructL692&_IFBLKsref">argp /a.de=rqstewfhL65"pc_dehL65a>,
& a hrfpc_dehL65="+codee>static
 a hrefkxdr">
 _ /a>)rchildcode)kxdr">
 _ turnl  ">
 74 /a>}4rqstp ttradehL65LfhlaslcL71" class="l19ne" 19class="sref">6 +code===6ttr"ructL72" class="line6ructL69s&_IFBLKsref">argp /a.de=rqstewfhL65"pc_enfspra>,
& a hrfpc_enfspr="+codee>static
 a hrefkxdr">
 _ /a>)rchildcode)kxdr">
 _ turnl  ">
 74 /a>}46 rstat" c6ref="+code=i"sref">resp 6a>-&g691.15.8"
	  " e
e" nve.de=rqstewfhL65"pc_ueL6izra>,
& a hrfpc_ueL6izr="+code6izrofef="+code=nfsd_sattrargc.c#Lfhlaslclass="sref">rqstp dLfhlaslcL71") ass="sre203e" 203-> a href6 /a>
* a 6ref="+code=inodef">resp 6a>-&g69sref class="sref">nfs.de=rqstewfhL65"pc_res6izra>,
& a hrfpc_las6izr="+code6izrofef="+code=nfsd_sattrargc.c#Lstatfslas4" class="line" nad_statfslasL71") ass="sre203e" 203-> a href6 resp /a>6ref="+code=#L39" idueL396 clas69href="+c======fh" cla.de=rqstewfhL65"pc_cachetypra>,
& a hrfpc_cachetypr="+code=resp" class="sRC_NOCACHEa>,
& a hrfRC_NOCACHEL71" class="l19ne" 19class="sref">6ntcode=; 6 hrefe=nfsd_setattr"type6">res69href="+c======fh" cla.de=rqstewfhL65"pc_xdrlas6izra>,
& a hrfpc_xdrlas6izr="+code=resp" class="s1Ta>,
& a hrfSTturn+5 class="l19ne" 19class="sref">6nsp /a>-&6ss="sref">nfserr /a>;46 f="+code6 hrefe=nfsd_setattr"hore6dueL669/a>-&};class="l19ne" 19class="sref">7tring">&q7ot;nfev" idueL73" class=7ev" l701.15.class="l19ne" 19class="sref">7t1ing">&q7o
return  a19code=nfs19r73" id701"lirclass="l19ne" 19class="sref">7t2ing">&q7otr"ructL72" class="line7n&quo702&_IFf="+code=nfsd_sattrargttraversiona>,
& a hrfttraversionref="fb="se=nfsd_sattrargc.c#LversionueL67" class="lic.c#Lversionu="+codecall resp2->26class="sref">7"+code=at7rs" class="s" class="sre7">arg70s&_IFBLKsref">argp /a.de=rqstewfhL65"vsLverseL67" class="livsLvers&_IFBLKsref"= 2 class="l19ne" 19class="sref">7/a>static7 a href="+20nfsproc.20#L76" id701.15.8"
	  " e
e" nve.de=rqstewfhL65"vsLn="sreL67" class="livsLn="sr.15.8"
	  "= 18 class="l19ne" 19class="sref">7/5>static7 ef="+code=inodef">resp 7er/nf70sref class="sref">nfs.de=rqstewfhL65"vsL="sreL67" class="livsL="sr.15.8"
	  "ode=resp" class="s nad_">
 edulasueL67" class="lic.c#L">
 edulasuL71" class="l19ne" 19class="sref">7fserr" cl7ss=" class="sref">nfsd_s7tattr70href="+c======fh" cla.de=rqstewfhL65"vsLdispatcheL67" class="livsLdispatchref="+c=de=resp" class="s nad_dispatcheL67" class="li nad_dispatchL71" class="l19ne" 19class="sref">7f7err" cl7shrefe=nfsd_setattr"type7d_set70href="+c======fh" cla.de=rqstewfhL65"vsLxdr6izra>,
& a hrfvsLxdr6izrref="+c==de=resp" class="sNFS2_SVCiXDRfs/na>,
& a hrfNFS2_SVCiXDRfs/nL71" class="l19ne" 19class="sref">7f8err" cl7ss="sref">nfserr /a>;47t9err" cl7shrefe=nfsd_setattr"hore7d/xdr70/a>-&class="l19ne" 19class="sref">7value=2v.71.15.8"
	  " eCheck fos 75" id711.15./*7v1ing">&q7
 a href="2/nfsproc.2c#L73" id711"lir * Map errnos to NFS errnos.7v2ing">&q7ttr" class="sref">nfsd_s7tattr712&_IF */7v+code=at7 class="sref">attrs10a>.7a hre71s&_IF=resp" class="s__be3ueL67" class="li__be3ua>-&class="l19ne" 19class="sref">7va>static7o+fsproc.c#L65" iron2eL67" cla711.15.=resp" class="s naerrnoeL67" class="li naerrnoref="(inode=nfsd_sattrargerrnoeL67" class="lierrnoref=)class="l19ne" 19class="sref">7v5>static7" cl class="sref">nfsd_s7tattr71sref call resp2->26class="sref">7code=err"7class="sisdoteL38" class7"line716ref="fb="srestatic f="+codcall resp2->26class="sref">7c7err" cl7o+fsproc.c#L65" iron2eL67" cla71href="+c======fh" cla=resp" class="s__be3ueL67" class="li__be3ua>-&"se=nfsd_sattrargc.cerreL67" class="li naerra>-&;class="l19ne" 19class="sref">7fserr" cl7ss="horeedueL67" class="7ihore71="liron2mlueL="value=inod cla=resp" class="ssycerreL67" class="lisycerra>-&;class="l19ne" 19class="sref">7f9err" cl7class="shoreedueL67" cla7s="li71/a>-> a hr}se=nfsd_sattrargc.c_errtbleL67" class="li na_errtbla>-&[]odecall resp2->26class="sref">7esp /a>fh7 class="sref class="sref7>nfsd721.15.8"
	  " enfsprsp{se=nfsd_sattrargc.c_ok4" class="line" na_okL71"  0e} class="l19ne" 19class="sref">7e1ing">&q7o+fsproc.c#L65" iron2eL67" cla721"liron2mlueL="value={se=nfsd_sattrargc.cerr_permeL67" class="li naerr_permL71"  -e=nfsd_sattrargEPERMeL67" class="liEPERM"liro} class="l19ne" 19class="sref">7e2ing">&q7a> spai class="comm2d/nf7proc2722&_IFBLKsref">argp /a{se=nfsd_sattrargc.cerr_noent"L67" class="li naerr_noentL71"  -e=nfsd_sattrargENOENTa>,
& a hrfENOENT"liro} class="l19ne" 19class="sref">7e+code=at7f="fs/nfsd2/nfsproc.2c#L75" id72s&_IFBLKsref">argp /a{se=nfsd_sattrargc.cerr_ioeL67" class="li naerr_ioL71"  -e=nfsd_sattrargEIOa>,
& a hrfEIO"liro} class="l19ne" 19class="sref">7ea>static7ttr"ass+cck_nested /a>,
7amp; 721.15.8"
	  " e
e" nve{se=nfsd_sattrargc.cerr_nxioeL67" class="li naerr_nxioL71"  -e=nfsd_sattrargENXIOa>,
& a hrfENXIO"liro} class="l19ne" 19class="sref">7e5>static7" clrchildsref">resp /a>7rchil72sref class="sref">nfs{se=nfsd_sattrargc.cerr_accas4" class="line" naerr_accasL71"  -e=nfsd_sattrargEACCESa>,
& a hrfEACCES"liro} class="l19ne" 19class="sref">7eode=err"7class="sIS_ERRsref">argp7/a>-I72href="+c======fh" cla{se=nfsd_sattrargc.cerr_exist"L67" class="li naerr_existL71"  -e=nfsd_sattrargEEXI1Ta>,
& a hrfEEXI1T"liro} class="l19ne" 19class="sref">7e7err" cl7 class="sref class="sref7>nfsd72href="+c======fh" cla{se=nfsd_sattrargc.cerr_xdev"L67" class="li naerr_xdevL71"  -e=nfsd_sattrargEXDEVa>,
& a hrfEXDEV"liro} class="l19ne" 19class="sref">7eserr" cl7o+fsproc.c#L65" iout_un+7cksre72="liron2mlueL="value={se=nfsd_sattrargc.cerr_mlmok4" class="line" naerr_mlmokL71"  -e=nfsd_sattrargEMLINKa>,
& a hrfEMLINKss="o} class="l19ne" 19class="sref">7e9err" cl7a> spai class="comm2



7



272/a>-> a href="+cod{se=nfsd_sattrargc.cerr_nodev"L67" class="li naerr_nodevL71"  -e=nfsd_sattrargENODEVa>,
& a hrfENODEVss="o} class="l19ne" 19class="sref">7tring">&q7ot;nassinis="sref">ex_pa7h /ai731.15.8"
	  " enfsprsp{se=nfsd_sattrargc.cerr_notdiua>,
& a hrfn)Lerr_notdiuL71"  -e=nfsd_sattrargENOTDI a>,
& a hrfENOTDI ss="o} class="l19ne" 19class="sref">7t1ing">&q7" cl class="sref">nfsd_s7tattr731"liron2mlueL="value={se=nfsd_sattrargc.cerr_isdiua>,
& a hrfn)Lerr_isdiuL71"  -e=nfsd_sattrargEISDI a>,
& a hrfEISDI ss="o} class="l19ne" 19class="sref">7t2ing">&q7 class="s class="sref">n7sd_se732&_IFBLKsref">argp /a{se=nfsd_sattrargc.cerr_invaleL67" class="li naerr_invalL71"  -e=nfsd_sattrargEINVALa>,
& a hrfEINVALss="o} class="l19ne" 19class="sref">7t+code=at7rs" class="s class="sref7>nfsd73s&_IFBLKsref">argp /a{se=nfsd_sattrargc.cerr_fbigeL67" class="li naerr_fbigL71"  -e=nfsd_sattrargEFBIGa>,
& a hrfEFBIGss="o} class="l19ne" 19class="sref">7ta>static7ttr"de" ="sref">ex_pathd7" na=73fsproc.c#L65"""""""""{se=nfsd_sattrargc.cerr_nospreL67" class="lic.cerr_nosprL71"  -e=nfsd_sattrargENOSPCa>,
& a hrfENOSPCss="o} class="l19ne" 19class="sref">7t5>static7class="s class="sref">nf7d_set73sref class="sref">nfs{se=nfsd_sattrargc.cerr_rofs4" class="line" naerr_rofsL71"  -e=nfsd_sattrargEROFSa>,
& a hrfEROFSss="o} class="l19ne" 19class="sref">7tode=err"7de=err" class="s class="7ref">73href="+c======fh" cla{se=nfsd_sattrargc.cerr_mlmok4" class="line" naerr_mlmokL71"  -e=nfsd_sattrargEMLINKa>,
& a hrfEMLINKss="o} class="l19ne" 19class="sref">7c7err" cl7p /a>goto+fsproc.c#L65" 7out_u73href="+c======fh" cla{se=nfsd_sattrargc.cerr_n#L6toolongeL67" class="li naerr_n#L6toolongL71"  -e=nfsd_sattrargENAMETOOLONGa>,
& a hrfENAMETOOLONGss="o} class="l19ne" 19class="sref">7cserr" cl7ef="fs/nfsd/nfsproc" nam7ueL5973="liron2mlueL="value={se=nfsd_sattrargc.cerr_notemptya>,
& a hrfn)Lerr_notemptyL71"  -e=nfsd_sattrargENOTEMPTYa>,
& a hrfENOTEMPTYss="o} class="l19ne" 19class="sref">7c9err" cl7roc.................* Is7="lin73/a>-&#ifdefse=nfsd_sattrargEDQUOTa>,
& a hrfEDQUOTa>-&class="l19ne" 19class="sref">7ut /spaio7,
& a hrfEDQUOTa>-&o} class="l19ne" 19class="sref">7u1ing">&q7line................* na7lueL6741"lir#endifclass="l19ne" 19class="sref">7u2ing">&q7 class="sref class="sref7>nfsd742&_IFBLKsref">argp /a{se=nfsd_sattrargc.cerr_stalclass="sref">rqstp err_stalcL71"  -e=nfsd_sattrargESTALna>,
& a hrfESTALna>-&o} class="l19ne" 19class="sref">7u+code=at7d!attrs" class="s ewfhL67" cla74s&_IFBLKsref">argp /a{se=nfsd_sattrargc.cerr_jukeboxlass="sref">rqstp err_jukeboxL71"  -e=nfsd_sattrargETIMEDOUTa>,
& a hrfETIMEDOUTa>-&o} class="l19ne" 19class="sref">7ua>static7p /a>fh" class="srefsd: 7ETATT74fsproc.c#L65"""""""""{se=nfsd_sattrargc.cerr_jukeboxlass="sref">rqstp err_jukeboxL71"  -e=nfsd_sattrargERESTARTSYSa>,
& a hrfERESTARTSYSa>-&o} class="l19ne" 19class="sref">7u5>static7> a href="o,
 a href=7+code74sref class="sref">nfs{se=nfsd_sattrargc.cerr_jukeboxlass="sref">rqstp err_jukeboxL71"  -e=nfsd_sattrargEAGAINa>,
& a hrfEAGAINa>-&o} class="l19ne" 19class="sref">7uode=err"7> goto+fsproc.c#L65" 7out_u74href="+c======fh" cla{se=nfsd_sattrargc.cerr_jukeboxlass="sref">rqstp err_jukeboxL71"  -e=nfsd_sattrargEWOULDBLOCKa>,
& a hrfEWOULDBLOCKa>-&o} class="l19ne" 19class="sref">7u7err" cl7">
 41 /a> spai class="c7mm2ef74href="+c======fh" cla{se=nfsd_sattrargc.cerr_jukeboxlass="sref">rqstp err_jukeboxL71"  -e=nfsd_sattrargENOMEMeL67" class="liENOMEMa>-&o} class="l19ne" 19class="sref">7userr" cl7a> spai class="comm2ehre7="+c274="liron2mlueL="value={se=nfsd_sattrargc.cerr_ioeL67" class="li naerr_ioL71"  -e=nfsd_sattrargETXTBSYa>,
& a hrfETXTBSYa>-&o} class="l19ne" 19class="sref">7u9err" cl7f="fs/nfsd2+code=dpr2int7" cla74/a>-> a href="+cod{se=nfsd_sattrargc.cerr_notsuppa>,
& a hrfn)Lerr_notsuppL71"  -e=nfsd_sattrargEOPNOTSUPPa>,
& a hrfEOPNOTSUPPa>-&o} class="l19ne" 19class="sref">7tring">&q7ot;ninodef">resp /a>->7nodec751.15.8"
	  " enfsprsp{se=nfsd_sattrargc.cerr_toosmalleL67" class="li naerr_toosmallL71"  -e=nfsd_sattrargETOOSMALLa>,
& a hrfETOOSMALLa>-&o} class="l19ne" 19class="sref">7t1ing">&q7
 a href="2+code=fh_2cop7" cla751"liron2mlueL="value={se=nfsd_sattrargc.cerr_serverfault"L67" class="li naerr_serverfaultL71"  -e=nfsd_sattrargESERVERFAULTa>,
& a hrfESERVERFAULTa>-&o} class="l19ne" 19class="sref">7t2ing">&q71.15.8"
	  " eUnfudges="7imode752&_IFBLKsref"};class="l19ne" 19class="sref">7codattrs"7class="srsref">resp /a>-7gtf="75s&_IFBLKsref"inod cla=resp" class="sia>,
& a hrfia>-&;class="l19ne" 19class="sref">7MAY_NOPhr7f="+code=rqstypef">resp 7a>-&g751.15.class="l19ne" 19class="sref">7M5>static7f="+code=rqsmodef">resp 7a>-&g75sref class="sforee>static
 a hrefia>,
& a hrfia>-& = 0;a=resp" class="sia>,
& a hrfia>-& <a=resp" class="sARRAY_fs/na>,
& a hrfARRAY_fs/na>-&e>static
 a hrefn.c_errtbleL67" class="li na_errtbla>-&);a=resp" class="sia>,
& a hrfia>-&++)ecall resp2->26class="sref">7code=err"7d!attrs" class="stypef">7esp /75href="+c======fh" claifee>static
 a hrefn.c_errtbleL67" class="li na_errtbla>-&[code=rqsass="sria>,
& a hrfia>-&].de=rqstewfhL65"sycerreL67" class="lisycerra>-& =de=resp" class="serrnoeL67" class="lierrnoref=)class="l19ne" 19class="sref">7c7err" cl7p /a>svalue=2v.11.15.8"
7  " e75href="+c======fh" claaaaaaaaareturnse=nfsd_sattrargc.c_errtbleL67" class="li na_errtbla>-&[code=rqsass="sria>,
& a hrfia>-&].de=rqstewfhL65"n.cerreL67" class="li naerra>-&;class="l19ne" 19class="sref">7M1">
 41 7inee=nfsd_attrstat"resp 7a>.* 75="liron2mlueL}class="l19ne" 19class="sref">7M9err" cl7a>-&g+code=err" class="s7nodef75/a>-> a hrde=rqstewfhL65"prinok4" class="line"prinokref="(de=rqstewfhL65"KERN_INFOa>,
& a hrfKERN_INFOref="" 19c: non-standard errno: %d\n"7esp /a>-&7t; a href="+ccode=rqstp"7claty761.15.8"
	  " returnse=nfsd_sattrargc.cerr_ioeL67" class="li naerr_ioL71";class="l19ne" 19class="sref">7e1ing">&q7a>-> a hreswitchde=er7" cla761"lir}class="l19ne" 19class="sref">7esp /a>>>7>>>>>>>>>>>>>case href="7code=76ua>-&class="l19ne" 19class="sref">7"+code===7=============case href="7code=76s&_IF


The original LXR software by the lass="l19http://sourceforge.net/projects/lxr">LXR communityL71" this experimental version by lass="l19mailto:lxr@==cux.noe>lxr@==cux.noL71".
lxr.==cux.no kindly hosted by lass="l19http://www.redpill-==cpro.noe>Redpill L=cpro ASL71" provider of L=cux consulting and operations services since 1995.