linux/fs/jffs2/acl.c
<<
n va3io/spav3. 3io/form3. 3ioa n va3i href="../linux+v33.210/fs/jffs2/acl.c">n va3ioimg src="../.static/gfx/right.png" alt=">>">n o/spav3.n ospav class="lxr_search">n van va3ioinput typ v.21" >.6.33.161 > 2Fte="v3.2.o_searchid2.o_searc1" >.6buttv3.1 > input ">S_searnonclicktyp n.21divc .c">n.2bmit="return ajax+*ch(this);">n va3ioinput typ opt1="v2.6.33.112 ue="v3.2.ajaxolookupchid2.ajaxolookupch > v.21".c">n.210/fs/j".c">n.2divearch" mheadingbottvmh">ndivc .c">>ndivc .c"> ">n.2diveid2.o_sear_results"earch" mo_sear_results"v33c .c">n.21divc 2diveid2.conten "> 2diveid2.file_conten s"/>n.121 vv="+search" mcommen ">/*form ac >n.221 vv="+search" mcommen "> * JFFS2 -- Jo>n.321 vv="+search" mcommen "> *form ac >n.421 vv="+search" mcommen "> * Copyn osp © 2006 NEC Corporaeturform ac >n.521 vv="+search" mcommen "> *form ac >n.621 vv="+search" mcommen "> * Created by KaiGai Kohei <kaigai@ak.jp.nec.comearcform ac >n.721 vv="+search" mcommen "> *form ac >n.821 vv="+search" mcommen "> * For licensing in0/fsaetur, see the file 'LICENCE' in a0+i dir3i ory.form ac >n.921 vv="+search" mcommen "> *form ac >ntion vv="+search" mcommen "> */form ac >n1121 v >n1221 v#defines2/a va3io+code=pr_fmt"earch" mova3">pr_fmt21 v(2/a va3io+code=fmt"earch" mova3">fmt21 v)s2/a va3io+code=KBUILD_MODNAME"earch" mova3">KBUILD_MODNAME21 v v="+search" mstring">": "form acs2/a va3io+code=fmt"earch" mova3">fmt21 v >n1321 v >n1421 v#include < src=/kernel.h21 vearc >n1521 v#include < src=/slab.h21 vearc >n1621 v#include < src=/fs.h21 vearc >n1721 v#include < src=/sched.h21 vearc >n1821 v#include < src=/time.h21 vearc >n1921 v#include < src=/crc32.h21 vearc >n2021 v#include < src=/gfx/r.h21 vearc >n2121 v#include < src=/xattr.h21 vearc >n2221 v#include <n ix_ght_xattr.hcharch" mfva3"> src=/>n ix_ght_xattr.h21 vearc >n2321 v#include < src=/mtd/mtd.h21 vearc >n2421 v#include "f/a va3ioic/gfx/rinodelist.hcharch" mfva3">nodelist.h21 vequot; >n2521 v >n2621 v>n o/ss2/a va3io+code=size_t"earch" mova3">size_t21 v v/a va3io+code=gfx/r_ght_size"earch" mova3">gfx/r_ght_size21 v(int v/a va3io+code=count"earch" mova3">count21 v) >n2721 v{ >n2821 v if (2/a va3io+code=count"earch" mova3">count21 v <= 4) { >n2921 v p gfx/r_ght_header21 v) >n3021 v + v/a va3io+code=count"earch" mova3">count21 v * sizeof(struct v/a va3io+code=gfx/r_ght_en ry_short"earch" mova3">gfx/r_ght_en ry_short21 v); >n3121 v } else { >n3221 v p gfx/r_ght_header21 v) >n3321 v + 4 * sizeof(struct v/a va3io+code=gfx/r_ght_en ry_short"earch" mova3">gfx/r_ght_en ry_short21 v) >n3421 v + (2/a va3io+code=count"earch" mova3">count21 v - 4) * sizeof(struct v/a va3io+code=gfx/r_ght_en ry"earch" mova3">gfx/r_ght_en ry21 v); >n3521 v } >n3621 v} >n3721 v >n3821 v>n o/ssint v/a va3io+code=gfx/r_ght_count"earch" mova3">gfx/r_ght_count21 v(2/a va3io+code=size_t"earch" mova3">size_t21 v v/a va3io+code=size"earch" mova3">size21 v) >n3921 v{ >n4021 v 2/a va3io+code=size_t"earch" mova3">size_t21 v v/a va3io+code=s"earch" mova3">s21 v; >n4121 v >n4221 v 2/a va3io+code=size"earch" mova3">size21 v -=tsizeof(struct v/a va3io+code=gfx/r_ght_header"earch" mova3">gfx/r_ght_header21 v); >n4321 v if (2/a va3io+code=size"earch" mova3">size21 v < 4 * sizeof(struct v/a va3io+code=gfx/r_ght_en ry_short"earch" mova3">gfx/r_ght_en ry_short21 v)) { >n4421 v if (2/a va3io+code=size"earch" mova3">size21 v % sizeof(struct v/a va3io+code=gfx/r_ght_en ry_short"earch" mova3">gfx/r_ght_en ry_short21 v)) >n4521 v p >n4621 v p size21 v / sizeof(struct v/a va3io+code=gfx/r_ght_en ry_short"earch" mova3">gfx/r_ght_en ry_short21 v); >n4721 v } else { >n4821 v v/a va3io+code=s"earch" mova3">s21 v = 2/a va3io+code=size"earch" mova3">size21 v - 4 * sizeof(struct v/a va3io+code=gfx/r_ght_en ry_short"earch" mova3">gfx/r_ght_en ry_short21 v); >n4921 v if (2/a va3io+code=s"earch" mova3">s21 v % sizeof(struct v/a va3io+code=gfx/r_ght_en ry"earch" mova3">gfx/r_ght_en ry21 v)) >n5021 v p >n5121 v p s21 v / sizeof(struct v/a va3io+code=gfx/r_ght_en ry"earch" mova3">gfx/r_ght_en ry21 v) + 4; >n5221 v } >n5321 v} >n5421 v >n5521 v>n o/ssstruct v/a va3io+code=>n ix_ght"earch" mova3">pn ix_ght21 v *v/a va3io+code=gfx/r_ght_from_medium"earch" mova3">gfx/r_ght_from_medium21 v(void *v/a va3io+code= > "earch" mova3"> > 21 v, 2/a va3io+code=size_t"earch" mova3">size_t21 v v/a va3io+code=size"earch" mova3">size21 v) >n5621 v{ >n5721 v void *v/a va3io+code=end"earch" mova3">end21 v = 2/a va3io+code= > "earch" mova3"> > 21 v + v/a va3io+code=size"earch" mova3">size21 v; >n5821 v struct v/a va3io+code=gfx/r_ght_header"earch" mova3">gfx/r_ght_header21 v *v/a va3io+code=header"earch" mova3">header21 v = 2/a va3io+code= > "earch" mova3"> > 21 v; >n5921 v struct v/a va3io+code=gfx/r_ght_en ry"earch" mova3">gfx/r_ght_en ry21 v *v/a va3io+code=en ry"earch" mova3">en ry21 v; >n6021 v struct v/a va3io+code=>n ix_ght"earch" mova3">pn ix_ght21 v *v/a va3io+code=ght"earch" mova3">ght21 v; >n6121 v v/a va3io+code=uint32_t"earch" mova3">uint32_t21 v v/a va3io+code=ver"earch" mova3">ver21 v; >n6221 v int v/a va3io+code=i"earch" mova3">i21 v, 2/a va3io+code=count"earch" mova3">count21 v; >n6321 v >n6421 v if (!2/a va3io+code= > "earch" mova3"> > 21 v) >n6521 v p NULL21 v; >n6621 v if (2/a va3io+code=size"earch" mova3">size21 v < sizeof(struct v/a va3io+code=gfx/r_ght_header"earch" mova3">gfx/r_ght_header21 v)) >n6721 v p ERR_PTR21 v(-2/a va3io+code=EINVAL"earch" mova3">EINVAL21 v); >n6821 v v/a va3io+code=ver"earch" mova3">ver21 v = 2/a va3io+code=je32_to_cpu"earch" mova3">ge32_to_cpu21 v(2/a va3io+code=header"earch" mova3">header21 v-earcf/a va3io+code=g_vers v3"earch" mova3">g_vers v321 v); >n6921 v if (2/a va3io+code=ver"earch" mova3">ver21 v != 2/a va3io+code=JFFS2_ACL_VERSION"earch" mova3">JFFS2_ACL_VERSION21 v) { >n7021 v 2/a va3io+code=JFFS2_WARNING"earch" mova3">JFFS2_WARNING21 v(2="+search" mstring">"In > id ACL vers v3. (=%u)\n"form ac, 2/a va3io+code=ver"earch" mova3">ver21 v); >n7121 v p ERR_PTR21 v(-2/a va3io+code=EINVAL"earch" mova3">EINVAL21 v); >n7221 v } >n7321 v >n7421 v v/a va3io+code=v> "earch" mova3"> > 21 v +=tsizeof(struct v/a va3io+code=gfx/r_ght_header"earch" mova3">gfx/r_ght_header21 v); >n7521 v v/a va3io+code=count"earch" mova3">count21 v = 2/a va3io+code=jfx/r_ght_count"earch" mova3">gfx/r_ght_count21 v(2/a va3io+code=size"earch" mova3">size21 v); >n7621 v if (2/a va3io+code=count"earch" mova3">count21 v < 0) >n7721 v p ERR_PTR21 v(-2/a va3io+code=EINVAL"earch" mova3">EINVAL21 v); >n7821 v if (2/a va3io+code=count"earch" mova3">count21 v == 0) >n7921 v p NULL21 v; >n8021 v >n8121 v v/a va3io+code=ght"earch" mova3">ght21 v = 2/a va3io+code=>n ix_ght_alloc"earch" mova3">pn ix_ght_alloc21 v(2/a va3io+code=count"earch" mova3">count21 v, 2/a va3io+code=GFP_KERNEL"earch" mova3">GFP_KERNEL21 v); >n8221 v if (!2/a va3io+code=ght"earch" mova3">ght21 v) >n8321 v p ERR_PTR21 v(-2/a va3io+code=ENOMEM"earch" mova3">ENOMEM21 v); >n8421 v >n8521 v for (2/a va3io+code=i"earch" mova3">i21 v=0; v/a va3io+code=i"earch" mova3">i21 v < 2/a va3io+code=count"earch" mova3">count21 v; v/a va3io+code=i"earch" mova3">i21 v++) { >n8621 v v/a va3io+code=en ry"earch" mova3">en ry21 v = 2/a va3io+code= > "earch" mova3"> > 21 v; >n8721 v if (2/a va3io+code=v> "earch" mova3"> > 21 v + sizeof(struct v/a va3io+code=gfx/r_ght_en ry_short"earch" mova3">gfx/r_ght_en ry_short21 v) earc v/a va3io+code=end"earch" mova3">end21 v) >n8821 v gotos2/a va3io+code=fait"earch" mova3">fait21 v; >n8921 v 2/a va3io+code=ght"earch" mova3">ght21 v-earcf/a va3io+code=g_en ries"earch" mova3">g_en ries21 v[v/a va3io+code=i"earch" mova3">i21 v].v/a va3io+code=e_tag"earch" mova3">e_tag21 v = 2/a va3io+code=je16_to_cpu"earch" mova3">ge16_to_cpu21 v(2/a va3io+code=en ry"earch" mova3">en ry21 v-earcf/a va3io+code=e_tag"earch" mova3">e_tag21 v); >n9021 v 2/a va3io+code=ght"earch" mova3">ght21 v-earcf/a va3io+code=g_en ries"earch" mova3">g_en ries21 v[v/a va3io+code=i"earch" mova3">i21 v].v/a va3io+code=e_perm"earch" mova3">e_perm21 v = 2/a va3io+code=je16_to_cpu"earch" mova3">ge16_to_cpu21 v(2/a va3io+code=en ry"earch" mova3">en ry21 v-earcf/a va3io+code=e_perm"earch" mova3">e_perm21 v); >n9121 v switch (2/a va3io+code=ght"earch" mova3">ght21 v-earcf/a va3io+code=g_en ries"earch" mova3">g_en ries21 v[v/a va3io+code=i"earch" mova3">i21 v].v/a va3io+code=e_tag"earch" mova3">e_tag21 v) { >n9221 v cases2/a va3io+code=ACL_USER_OBJ"earch" mova3">ACL_USER_OBJ21 v: >n9321 v cases2/a va3io+code=ACL_GROUP_OBJ"earch" mova3">ACL_GROUP_OBJ21 v: >n9421 v cases2/a va3io+code=ACL_MASK"earch" mova3">ACL_MASK21 v: >n9521 v cases2/a va3io+code=ACL_OTHER"earch" mova3">ACL_OTHER21 v: >n9621 v v/a va3io+code=v> "earch" mova3"> > 21 v +=tsizeof(struct v/a va3io+code=gfx/r_ght_en ry_short"earch" mova3">gfx/r_ght_en ry_short21 v); >n9721 v v/a va3io+code=ght"earch" mova3">ght21 v-earcf/a va3io+code=g_en ries"earch" mova3">g_en ries21 v[v/a va3io+code=i"earch" mova3">i21 v].v/a va3io+code=e_id"earch" mova3">e_id21 v = 2/a va3io+code=ACL_UNDEFINED_ID"earch" mova3">ACL_UNDEFINED_ID21 v; >n9821 v break; >n9921 v >10021 v cases2/a va3io+code=ACL_USER"earch" mova3">ACL_USER21 v: >10121 v cases2/a va3io+code=ACL_GROUP"earch" mova3">ACL_GROUP21 v: >10221 v v/a va3io+code=v> "earch" mova3"> > 21 v +=tsizeof(struct v/a va3io+code=gfx/r_ght_en ry"earch" mova3">gfx/r_ght_en ry21 v); >10321 v if (2/a va3io+code=v> "earch" mova3"> > 21 v earc v/a va3io+code=end"earch" mova3">end21 v) >10421 v gotos2/a va3io+code=fait"earch" mova3">fait21 v; >10521 v v/a va3io+code=ght"earch" mova3">ght21 v-earcf/a va3io+code=g_en ries"earch" mova3">g_en ries21 v[v/a va3io+code=i"earch" mova3">i21 v].v/a va3io+code=e_id"earch" mova3">e_id21 v = 2/a va3io+code=je32_to_cpu"earch" mova3">ge32_to_cpu21 v(2/a va3io+code=en ry"earch" mova3">en ry21 v-earcf/a va3io+code=e_id"earch" mova3">e_id21 v); >10621 v break; >10721 v >10821 v default: >10921 v gotos2/a va3io+code=fait"earch" mova3">fait21 v; >11021 v } >11121 v } >11221 v if (2/a va3io+code=v> "earch" mova3"> > 21 v != 2/a va3io+code=end"earch" mova3">end21 v) >11321 v gotos2/a va3io+code=fait"earch" mova3">fait21 v; >11421 v p ght21 v; >11521 vs2/a va3io+code=fait"earch" mova3">fait21 v: >11621 v 2/a va3io+code=>n ix_ght_release"earch" mova3">pn ix_ght_release21 v(2/a va3io+code=ght"earch" mova3">ght21 v); >11721 v p ERR_PTR21 v(-2/a va3io+code=EINVAL"earch" mova3">EINVAL21 v); >11821 v} >11921 v >12021 v>n o/ssvoid *v/a va3io+code=gfx/r_ght_to_medium"earch" mova3">gfx/r_ght_to_medium21 v(const struct v/a va3io+code=>n ix_ght"earch" mova3">pn ix_ght21 v *v/a va3io+code=ght"earch" mova3">ght21 v, 2/a va3io+code=size_t"earch" mova3">size_t21 v *v/a va3io+code=size"earch" mova3">size21 v) >12121 v{ >12221 v struct v/a va3io+code=gfx/r_ght_header"earch" mova3">gfx/r_ght_header21 v *v/a va3io+code=header"earch" mova3">header21 v; >12321 v struct v/a va3io+code=gfx/r_ght_en ry"earch" mova3">gfx/r_ght_en ry21 v *v/a va3io+code=en ry"earch" mova3">en ry21 v; >12421 v void *v/a va3io+code=e"earch" mova3">e21 v; >12521 v v/a va3io+code=size_t"earch" mova3">size_t21 v v/a va3io+code=i"earch" mova3">i21 v; >12621 v >12721 v *v/a va3io+code=size"earch" mova3">size21 v = 2/a va3io+code=jfx/r_ght_size"earch" mova3">gfx/r_ght_size21 v(v/a va3io+code=ght"earch" mova3">ght21 v-earcf/a va3io+code=g_count"earch" mova3">a_count21 v); >12821 v v/a va3io+code=header"earch" mova3">header21 v = 2/a va3io+code=kmalloc"earch" mova3">kmalloc21 v(sizeof(*v/a va3io+code=header"earch" mova3">header21 v) + v/a va3io+code=ght"earch" mova3">ght21 v-earcf/a va3io+code=g_count"earch" mova3">a_count21 v * sizeof(*v/a va3io+code=en ry"earch" mova3">en ry21 v), 2/a va3io+code=GFP_KERNEL"earch" mova3">GFP_KERNEL21 v); >12921 v if (!2/a va3io+code=header"earch" mova3">header21 v) >13021 v p ERR_PTR21 v(-2/a va3io+code=ENOMEM"earch" mova3">ENOMEM21 v); >13121 v v/a va3io+code=header"earch" mova3">header21 v-earcf/a va3io+code=g_vers v3"earch" mova3">g_vers v321 v = 2/a va3io+code=cpu_to_ge32"earch" mova3">cpu_to_ge3221 v(v/a va3io+code=JFFS2_ACL_VERSION"earch" mova3">JFFS2_ACL_VERSION21 v); >13221 v v/a va3io+code=e"earch" mova3">e21 v = 2/a va3io+code=header"earch" mova3">header21 v + 1; >13321 v for (2/a va3io+code=i"earch" mova3">i21 v=0; v/a va3io+code=i"earch" mova3">i21 v < 2/a va3io+code=ght"earch" mova3">ght21 v-earcf/a va3io+code=g_count"earch" mova3">a_count21 v; v/a va3io+code=i"earch" mova3">i21 v++) { >13421 v v/a va3io+code=en ry"earch" mova3">en ry21 v = 2/a va3io+code=e"earch" mova3">e21 v; >13521 v 2/a va3io+code=en ry"earch" mova3">en ry21 v-earcf/a va3io+code=e_tag"earch" mova3">e_tag21 v = 2/a va3io+code=cpu_to_ge16charch" mova3">cpu_to_ge1621 v(2/a va3io+code=ght"earch" mova3">ght21 v-earcf/a va3io+code=g_en ries"earch" mova3">g_en ries21 v[v/a va3io+code=i"earch" mova3">i21 v].v/a va3io+code=e_tag"earch" mova3">e_tag21 v); >13621 v v/a va3io+code=en ry"earch" mova3">en ry21 v-earcf/a va3io+code=e_perm"earch" mova3">e_perm21 v = 2/a va3io+code=cpu_to_ge16charch" mova3">cpu_to_ge1621 v(2/a va3io+code=ght"earch" mova3">ght21 v-earcf/a va3io+code=g_en ries"earch" mova3">g_en ries21 v[v/a va3io+code=i"earch" mova3">i21 v].v/a va3io+code=e_perm"earch" mova3">e_perm21 v); >13721 v switch(2/a va3io+code=ght"earch" mova3">ght21 v-earcf/a va3io+code=g_en ries"earch" mova3">g_en ries21 v[v/a va3io+code=i"earch" mova3">i21 v].v/a va3io+code=e_tag"earch" mova3">e_tag21 v) { >13821 v cases2/a va3io+code=ACL_USER"earch" mova3">ACL_USER21 v: >13921 v cases2/a va3io+code=ACL_GROUP"earch" mova3">ACL_GROUP21 v: >14021 v v/a va3io+code=en ry"earch" mova3">en ry21 v-earcf/a va3io+code=e_id"earch" mova3">e_id21 v = 2/a va3io+code=cpu_to_ge32"earch" mova3">cpu_to_ge3221 v(v/a va3io+code=ght"earch" mova3">ght21 v-earcf/a va3io+code=g_en ries"earch" mova3">g_en ries21 v[v/a va3io+code=i"earch" mova3">i21 v].v/a va3io+code=e_id"earch" mova3">e_id21 v); >14121 v v/a va3io+code=e"earch" mova3">e21 v +=tsizeof(struct v/a va3io+code=gfx/r_ght_en ry"earch" mova3">gfx/r_ght_en ry21 v); >14221 v break; >14321 v >14421 v cases2/a va3io+code=ACL_USER_OBJ"earch" mova3">ACL_USER_OBJ21 v: >14521 v cases2/a va3io+code=ACL_GROUP_OBJ"earch" mova3">ACL_GROUP_OBJ21 v: >14621 v cases2/a va3io+code=ACL_MASK"earch" mova3">ACL_MASK21 v: >14721 v cases2/a va3io+code=ACL_OTHER"earch" mova3">ACL_OTHER21 v: >14821 v v/a va3io+code=e"earch" mova3">e21 v +=tsizeof(struct v/a va3io+code=gfx/r_ght_en ry_short"earch" mova3">gfx/r_ght_en ry_short21 v); >14921 v break; >15021 v >15121 v default: >15221 v gotos2/a va3io+code=fait"earch" mova3">fait21 v; >15321 v } >15421 v } >15521 v p header21 v; >15621 vs2/a va3io+code=fait"earch" mova3">fait21 v: >15721 v 2/a va3io+code=kfree"earch" mova3">kfree21 v(v/a va3io+code=header"earch" mova3">header21 v); >15821 v p ERR_PTR21 v(-2/a va3io+code=EINVAL"earch" mova3">EINVAL21 v); >15921 v} >16021 v >16121 vstruct v/a va3io+code=>n ix_ght"earch" mova3">pn ix_ght21 v *v/a va3io+code=gfx/r_get_ght"earch" mova3">gfx/r_get_ght21 v(struct v/a va3io+code=inode"earch" mova3">inode21 v *v/a va3io+code=inode"earch" mova3">inode21 v, int v/a va3io+code=2.6."earch" mova3">2.6.21 v) >16221 v{ >16321 v struct v/a va3io+code=>n ix_ght"earch" mova3">pn ix_ght21 v *v/a va3io+code=ght"earch" mova3">ght21 v; >16421 v char *v/a va3io+code= > "earch" mova3"> > 21 v = 2/a va3io+code=NULL"earch" mova3">NULL21 v; >16521 v int v/a va3io+code=rc"earch" mova3">rc21 v, v/a va3io+code=xpva3ix"earch" mova3">xpva3ix21 v; >16621 v >16721 v 2/a va3io+code=ght"earch" mova3">ght21 v = 2/a va3io+code=get_cached_ght"earch" mova3">get_cached_ght21 v(v/a va3io+code=inode"earch" mova3">inode21 v, v/a va3io+code=2.6."earch" mova3">2.6.21 v); >16821 v if (2/a va3io+code=ght"earch" mova3">ght21 v != 2/a va3io+code=ACL_NOT_CACHED"earch" mova3">ACL_NOT_CACHED21 v) >16921 v p ght21 v; >17021 v >17121 v switch (2/a va3io+code=2.6."earch" mova3">2.6.21 v) { >17221 v cases2/a va3io+code=ACL_TYPE_ACCESS"earch" mova3">ACL_TYPE_ACCESS21 v: >17321 v v/a va3io+code=xpva3ix"earch" mova3">xpva3ix21 v = 2/a va3io+code=JFFS2_XPREFIX_ACL_ACCESS"earch" mova3">JFFS2_XPREFIX_ACL_ACCESS21 v; >17421 v break; >17521 v cases2/a va3io+code=ACL_TYPE_DEFAULT"earch" mova3">ACL_TYPE_DEFAULT21 v: >17621 v v/a va3io+code=xpva3ix"earch" mova3">xpva3ix21 v = 2/a va3io+code=JFFS2_XPREFIX_ACL_DEFAULT"earch" mova3">JFFS2_XPREFIX_ACL_DEFAULT21 v; >17721 v break; >17821 v default: >17921 v 2/a va3io+code=BUG"earch" mova3">BUG21 v(); >18021 v } >18121 v v/a va3io+code=rc"earch" mova3">rc21 v = 2/a va3io+code=do_gfx/r_getxattr"earch" mova3">do_gfx/r_getxattr21 v(v/a va3io+code=inode"earch" mova3">inode21 v, v/a va3io+code=xpva3ix"earch" mova3">xpva3ix21 v, v="+search" mstring">""form ac, 2/a va3io+code=NULL"earch" mova3">NULL21 v, 0); >18221 v if (v/a va3io+code=rc"earch" mova3">rc21 v earc 0) { >18321 v v/a va3io+code= > "earch" mova3"> > 21 v = 2/a va3io+code=kmalloc"earch" mova3">kmalloc21 v(v/a va3io+code=rc"earch" mova3">rc21 v, v/a va3io+code=GFP_KERNEL"earch" mova3">GFP_KERNEL21 v); >18421 v if (!2/a va3io+code= > "earch" mova3"> > 21 v) >18521 v p ERR_PTR21 v(-2/a va3io+code=ENOMEM"earch" mova3">ENOMEM21 v); >18621 v v/a va3io+code=rc"earch" mova3">rc21 v = 2/a va3io+code=do_gfx/r_getxattr"earch" mova3">do_gfx/r_getxattr21 v(v/a va3io+code=inode"earch" mova3">inode21 v, v/a va3io+code=xpva3ix"earch" mova3">xpva3ix21 v, v="+search" mstring">""form ac, 2/a va3io+code= > "earch" mova3"> > 21 v, 2/a va3io+code=rc"earch" mova3">rc21 v); >18721 v } >18821 v if (2/a va3io+code=rc"earch" mova3">rc21 v earc 0) { >18921 v 2/a va3io+code=ght"earch" mova3">ght21 v = 2/a va3io+code=jfx/r_ght_from_medium"earch" mova3">gfx/r_ght_from_medium21 v(2/a va3io+code= > "earch" mova3"> > 21 v, 2/a va3io+code=rc"earch" mova3">rc21 v); >19021 v } else if (2/a va3io+code=rc"earch" mova3">rc21 v == -2/a va3io+code=ENODATA"earch" mova3">ENODATA21 v || v/a va3io+code=rc"earch" mova3">rc21 v == -2/a va3io+code=ENOSYS"earch" mova3">ENOSYS21 v) { >19121 v 2/a va3io+code=ght"earch" mova3">ght21 v = 2/a va3io+code=NULL"earch" mova3">NULL21 v; >19221 v } else { >19321 v 2/a va3io+code=ght"earch" mova3">ght21 v = 2/a va3io+code=ERR_PTR"earch" mova3">ERR_PTR21 v(2/a va3io+code=rc"earch" mova3">rc21 v); >19421 v } >19521 v if (2/a va3io+code=v> "earch" mova3"> > 21 v) >19621 v 2/a va3io+code=kfree"earch" mova3">kfree21 v(v/a va3io+code=v> "earch" mova3"> > 21 v); >19721 v if (!2/a va3io+code=IS_ERR"earch" mova3">IS_ERR21 v(v/a va3io+code=ght"earch" mova3">ght21 v)) >19821 v v/a va3io+code=set_cached_ght"earch" mova3">set_cached_ght21 v(v/a va3io+code=inode"earch" mova3">inode21 v, v/a va3io+code=2.6."earch" mova3">2.6.21 v, v/a va3io+code=ght"earch" mova3">ght21 v); >19921 v p ght21 v; >20021 v} >20121 v >20221 v>n o/ssint v/a va3io+code=__gfx/r_set_ght"earch" mova3">__gfx/r_set_ght21 v(struct v/a va3io+code=inode"earch" mova3">inode21 v *v/a va3io+code=inode"earch" mova3">inode21 v, int v/a va3io+code=xpva3ix"earch" mova3">xpva3ix21 v, struct v/a va3io+code=>n ix_ght"earch" mova3">pn ix_ght21 v *v/a va3io+code=ght"earch" mova3">ght21 v) >20321 v{ >20421 v char *v/a va3io+code= > "earch" mova3"> > 21 v = 2/a va3io+code=NULL"earch" mova3">NULL21 v; >20521 v v/a va3io+code=size_t"earch" mova3">size_t21 v v/a va3io+code=size"earch" mova3">size21 v = 0; >20621 v int v/a va3io+code=rc"earch" mova3">rc21 v; >20721 v > 1 2/a va3io+code=>n ix_ght_releasv/a va3io+code=v/a va3io+code=3charch" mcode= 0; v v/a va3io+codx/r_set_ght21 v(struct v/a va3io+cod2.L197charch" meinech"v3.2.L197c>>19721 v va3io+code=en ry"earch" rch" mova3"> >U v/a va3io+code=en ry"ea|2de=3ch"v3 rch" meinech"v3.d3">EINVAL21 v); __gfx/r_set_ght21 v(strh" mova3">__gfx v set_ght21 v(strh" mova3">__gfx v set_ght1Oet_gh21 v v/a va3io+cot_ght21 v" movp64i"v3.2L115chid2.L115charch" meinech"v3.2.L1 v p >207d2.L76charch" me">>10; 3nech"v3.2.L142c>>14221 v 6pc2 2 } "earch2 mova2"> > 21 v !==ENOMEM"earch" mova3">ENOMEM21 v); >18621 v v/a va3io+code=rc"earch" mova3">rc21 v = 2/a va3io+code=do_gfx/r_getxattr"earch" mova3">do_gfx/r_getxattr21 v(v/a va3io+code=inode"earch" mova3">inode21 v, v/a va3io+code=xpva3ix"earch"y"earch" rch" mova3"> >U code=xpva3ix"earch" mova3">xpva2arch" mei2ech"v3.2.L113c>>11321 v 2 2 gotos2NEL"earch" mova3">GFP_KERNEL21 v); >19021 v } else if (2/a va3io+code=rc"earch" mova3">hid2.L190charch" meinech"v3.2.cot_ght21 v" movp64i"v3.2L115char *v/ach" meinech"v3.2.L114c>>21421 21ova3">en ry21 v = 2/a va3io+code=e"emova3">ENOMEM21 v); >20521 v t.p#L115c2id2.L115charch" meinech"23.2.L215c>>11521 vs2/a va3io+code=f" mova3"> > 21 v) >19621 v 2=>n ix_gh2_release"earch" mova3">p2 ix_g2121 v int v/a va3io+code=r/a va3io+2ode=ERR_PTR"earch" mova32>ERR_21ee21 v(v/a va3io+code=header"earch"h" mova3">size21 v = 0; >11821 v} >20121 v >20221 v>n o/ssint v/a va3io+code=__gfx/r_set_ght"earch" mova3">__gfx/r_set_ghv/a va3io+code=set_cached_ghtarch" mova3">inode21 v *v/a va3io+code=inode"earch" mova3">inode21 v, int v/a va3io+code=xpva3ix"earch" mova3">xpva3ix21 v, strucarch" mov23">size21 v) gfx/r_2ht_he2der21 v *v/a v/a va3io+code=NULL"earch" mova3">NULL21 v; >16521 v 2=gfx/r_gh2_en ry"earch" mova3">gfx2r_ght22_PTR21 v(-2/a va3io+code=ENOMEM24chid2.L124charch" meinech"v3.2.L124c>>1224chid2.L194charch" meinech"v3.2.S_ISLNe_idi_m va3io+code=rc"earc_m vaa3io+cot_ght21 v" movp64i"v3.2L11521 v 2 v/a va3io+code=size_t2earch22inech"v3.2.L45c>>n4521 v e=rc"earch" mova3OPNOTSUP/a va3ioic/gfx/r3OPNOTSUP/ meinech"v3.2.L165c>>16521 v 2=>n ix_gh2mova3">i21 v; >17021 v en ry21 v),22/a va3io+code va3io+code=2.6."earch" mova3">2.6.21 v) { >12922 v 2 if (!2/a va3io+cod/a va3ioic/gfx/right.p#L165chid2.L165charch" meifx/right.p#L173chid2.L173charch" meinech"v3.2.L173c>>17321 v v/a va3io+code=xpva3ix"earch" mova3"2/a va3io+2ode=ERR_PTR"earch" mova32>ERR_23 p >20721 v cpu_to_ge3221 v(v/a va32o+cod23ech"v3.2.L151c>>15121 v 207charch" meinum vat"earch" mova3">ghm vat" e_idi_m va3io+code=rc"earc_m vaa3io+code=xpva3ix"earch" mova3"2/r_ght_he2 va3io+code=e"earch" mov23">e223L192charch" meinech"v v = 2/a va3io+code=e"emova3">ENOMEM21 v); inode21 v *v/a va3_equiv_m va3io+code=rc"ear *v/a va3_equiv_m va va3io+cod2.L197charch" meinech"v3.2.L197c>>19721 v va3io+code=en rm va3io+code=rc"earm vaa3iov3.2.L196c>>19621 v 2v-earcf/a2va3io+code=g_count"earch2 mova2">a_count21 v; v/a va3a3io+codd2.L207charch" meinL187c>>18721 v } en ry21 v = 2/aaaaaaaaaaaaaaaaa3io+code=header"earch"h" mova3">size21 v = 0; i21 v].v/a va3io+coa3io+codd2.L207charch" mein/a va3io+code=rc"earch" mova3d"earch" mova3">e_idi_m va3io+code=rc"earc_m vaa3io/a va3ioic/gfx/righm va3io+code=rc"earm vaa3iova va3ioic/gfx/right.p#L2arch"c>n ix_gh2[v/a va3io+code=i"earch"2mova32>i21 v].v/a va3io+codeeeeeeeeeeeeeeeee202chid2.L202charch" meL186charch" meinechi18621 v 3io+code=ght"earc186charch" meinech18621 v i21 inode21 vATTR_MODE21 v) { >19021 v iTTR_CTIME21 v) { >12921 v 2 c2ses2/a va3io+code=ACL_GROUP"earch" mova3">ACL_GROUP21c186charch" meinech18621 v ode=ght"earch" mia_m va3io+code=rc"earca_m vaa3iofx/right.p#L173chim va3io+code=rc"earm vaa3io i21 v].v/a va3io+code=e_id"earch" mova3">e_id21 c186charch" meinech18621 v ode=ght"earch" mia_ctima3io+code=rc"earca_ctimaa3iofx/right.p#L173chiCURRENT_TIME_SEC3io+code=rc"earCURRENT_TIME_SECa3io gfx va3io+code=e"emova3">ENOMEM21 v); inode21 vioic/gdogfx/c186charch" meinechioic/gdogfx/c1861 v v/a va3io+code=rc"earch" mova3">21 v va3io+code=en rc186charch" meinech18621 v v3.2.L196c>>19621 v 2x/right.p2L142chid2.L142charch" me2nech"24ode=gfx/r_ght_en ry"earch" mova3">gfx/r_ght_en ry21 v); L187c>>18721 v } size21 v = 0; >14421 v2 c2ses2/2 va3io+code=ACL_USER_OBJ"earch(-2/a va3io+code=EINVAL"ear214521 v 2 cas2s2/a 2a3io+code=ACL_GROUP_OBJ"earch"a3io+code=rc"earch" mova3">rc21 v); n ix_gh214621 v 2 2cases2/a va3io+code=ACL_MASK"eeeeeeeeeo+cod2.L197charch" meinech"v3.2.L197c>>1ioic/gfx/right.p#L204chid2.L204charch" meinech"v3.2.L204c>>20421 v .L147c>>12721 v 2 c2ses2/a va3io+code=ACL_(-2/a va3io+code=EINVAL"ear21io+code=2f(struct v/a va3io+code=2fx/r_2ht_en ry_short"earch" a3">JFFS2_XPREFIX_ACL_DEFAULT21 2x/right.p2L149chid2.L149charch" me2nech"25es2/a va3io+c"v3.2.L174c>>17421 v break; >17621 v v/a va3io+code=xpva3ix"earch" mova3">x2oic/gfx/r2ght.p#L151chid2.L151char2h" me2nech"v3.2.L151c>>15121NEL"earch" mova3">GFS_ISDIcharch" me">>10;S_ISDIc1 v v/a va3io+code=rc"earch" mova3d"earch" mova3">e_idi_m va3io+code=rc"earc_m vaa3io+cot_ght21 v" movp64i"v3.2L11.2.L152c>215221 v 2 2 gotos2/a va3iooooooooov/a va3io+code=ght"earch" mova3">ght21 v); >20521 v t21 v; JFFS2_XPREFIX_ACL_ACCESS21 2 2 } >17721 v 2charch" m2inech"v3.2.L155c>>15521 2 25inech"v3.2.L45c>>n4521 v e=rc"earch" mova3id2.L158charch" meinech"v3.2.LJFFS2_XPREFIX_ACL_ACCESS21 2 >n ix_gh2id2.L156charch" meinech"23.2.L25a3"> > 21 v, 2/a va3io+code=rc"earch" 2 2/a v23io+code=kfree"earch" mo2a3">k25-earcf/a va3io+code=g_count"mova3">ENOMEM21 v); inode21 vnech"v3.2.L201c>>20121 v rc21 v = 2/a va3io+code=do_gfx/r_getxattr"earch" mo07charch" meinech"v3.2.L207c>>20721 v ERR_25/a va3io+code=GFP_KERNEL"earch" mv 2/a va3FFS2_XPREFIX_ACL_ACCESS21 2h" mova3"2EINVAL21 v); ght21 v)) >19821 v v/a va3io+code=set_cached_ght"earch" mova3">set_cached_ght21 v(v/a va3io+code=inode"earch" mova3"2ch"v3.2.L259c>>15921 v} size21 v = 0; i2ode21 , 2/a va3io+code=rc"earch" 2arch" mov23">2.6.21 v) >14221 v 2t v/a va32o+code=>n ix_ght"earch" 2ova3"2pn ix_id2.L201charch" meich"v3.ini/righ_ttrcharch" meinechioic/gini/righ_ttrt.p#L202chid2.L202charch" meinech"v3.2.L202c>>20221 v>n o/ssint v/a va3iodir_o_ge3221 v(v/a vdir_oed_ghtarch" mova3">inode21 veinech"v3.2.L202c>>20221 v>n o/ssint v/a va3io+code=__gfx/r_set_ght"earch" mo207charch" meinum vat"earch" mova3">ghm vat" >14221 v 2t 2 va3io+code= > "earch"2mova32> > va3ioic/gfx/right.p#L2arch" int v2a va3io+code=rc"earch" m2va3">26inech"v3.2.L42.L162charch" meinech"v3.2.L162c>>16221 v{ >16321 v stru2ch" mova32>xpva3ix21 v; size21 v = 0; i21 ght21 v != 2/a va2io+code=ACL_NO+code=size"earcfx/ri_noL162c>>16221 v{ >19821 3io+code=inode"earch" mova3"2arch" mei2ech"v3.2.L169c>>16921 v 2 2 p ght21 v; >14221 v 21charch" 2einech"v3.2.L171c>>171212v 27ech"v3.2.L151c>>151213io+cod0;=ACL_NO+va3">do_gfx/comment">/* Sym.L1k always has no- */a3io+co42c>>14221 v 21rch" mov2>>17221 v cases2/2 va3i27.2.L142c>>14221 v 2xpva3ix212v = 2/a va3io+code=JFFS22XPREF2X_ACL_ACCESS"eo+cod2.L197charch" meinech"v3.2.L197c>>1ioic/gfx/right.p#L.2.L186c>201c>>20121 v >17421 v break; __gfx v set_ght21 v(strh" mova3">__gfx v set_cached_ght21 v(v/a va3+42c>>14221 v 21 int v217521 v cases2/a 2a3io+2ode=ACL_TYPE_DEFAULT"earch" "v3.2.L207c>>207d2.L76charch" me">>10; >20721 v 21 v = ~+code=size"earcfurrent_umaskc>>16221 v{ >17921 v 28a3"> > 21 v, 2/a v va3ioic/gfx/right.p#L2arch"a3">BUG212v(); >10;S_ISDIc1 v /ssint v/a va3io+_m va3io+code=rc"earc_m vaa3io++42c>>14221 v 2ix21 v, v2"+search" mstring">"2"28ech"v3.2.L151c>>15121 v 207charch" meinh" mova3">ght21 v)) >19821 v break; set_cached_ght21 v(v/a va3io+code=inode"earch" mova3"282charch"2meinech"v3.2.L182c>>18222 v 28.2.L142c>>14221 v 2(v/a va3i2+code=rc"earch" mova3">r221 v,2v/a va3io+code=GFP_KERo+code=g_count"mova3">ENOMEM21 v); inode21 v *v/a va3_creata3io+code=rc"ear *v/a va3_creata#L19821 v va3io+code=en rcum"earch" mova3">gfx/r_ght_to_medium21 v( mova3"> > 21 v = 2/a va3io+code=kmalht_to_medium21 v(+_m va3io+code=rc"earc_m vaa3io+io+code=inode"earch" mova3"28 2h"v3.2.L184c>>18421 v 2 2 if (!2/a va3io+c/r_ght_en ry21 v); L187c>>18721 v } ERR_2TR21 v(-2/a va3io+codeEFAULT"earch" "v3.2.L207c>>207h" mova3">size21 v = 0; "ea2ch" m28ases2/a va3io+code=ACarch" meinech"v3.2.L187c>>18721 v } ght21 v)) >19821 v ">2.6.21 v) { set_cached_ght21 v(v/a va3io+code=inode"earch" mova3"28break; <2meinech"v3.2.L188c>>18822 v 28ht.p#L118chid2.L118charch" mein2medium21 2(2/a va3io+code= > "ea2ch" m29 if (!2/a va3io+cod/a va3ioic/gfx/ait"earch" mova3">fait21 v: >11621 v 2/a va3io+cod2v || v/a 2a3io+code=rc"earch" mova2">rc229110charch" meinech"v3.2.L110c>>11021 v 2 2 2/a va3io+code=ght"earc2" mov23">ght21 v = 23io+cod0;nech"v3.2.L110c>>11021 v 2 2charch"2a va3ioic/gfx/right.p#L122chid2.L192cinech"v3.2.L110c>>11021 v 2 v/a va3i2a va3io+code=ERR_PTR"ear2h" mo29_PTR21 v(-2/a va3io+code=ENOMEM2ova3">rc22 v); >20221 v>n o/ssint v/a va3ioh" meinech"v3.2.L198c>>19821 31 v(-2/a va3io+code=ENOMEM2oa va3io+2h" meinech"v3.2.L195c>>12521 v2 va3ioic/gfx/right.p#L2arch" 2/a2va3io+code=kfree"earch" 2ova3"29ght.p#L166chia3io+code=size"earch" mova3">size21 v = 0; i21 e_idi_"v3.2.Lght21 v)) >39921 30 if (!2/a va3io+cod/a va3ioic/gfx/mova3">ENOMEM21 v); inode21 vnech"v3.2.L201c>>20121 v rc21 v = 2/a vad2.L173charch" meinech"v3.2.L176c>>17621 v v/a va3io+cht_to_medium21 v(+a va3io+code=rc"earch" mova3d"earch" mova3">e_idi_"v3.2.Lght21 v)) ght21 v; >20021 v} >15121 v arch" "v3.2.L207c>>207h" mova3">size21 v = 0; n ix_ght"earch" 3ova3"30310charch" meinech"v3.2.L110c>>11021 v 3earch" mo3a3">ght21 v) "earch"3mova330arch" meinechet_ght21 v(strh" mo+a va3io+code=rc"earch" mova3d"earch" mova3">e_idi_ht21 v)) >13a3">s30R21 v(-2/a va3io+code=ENOMEM"earch" mova3">ENOMEM21 v); >20121 v rc21 v = 2/a vad2.L173charch" meinech"v3.2.L173c>>17321 v v/a va3ioht_to_medium21 v(+a va3io+code=rc"earch" mova3d"earch" mova3">e_idi_ht21 v)) >230ases2/a va3io+code=ACarch" meinech"v3.2.L187c>>18721 v }3FFS2_XPREFIX_ACL_ACCESS21 3c8har *v/3 va3io+code=IS_ERR"earc3/gfx/30es2/a va3io+code=ACL_OTHER"eaarch" "v3.2.L207c>>207h" mova3">size21 v = 0; >11021 v 3=3ch"v3 r3h" meinech"v3.d3">EINVAL31 v);31 p >11021 v 3 3 } "earch3 mova31.2.L142c>>14221 v 3arch" mei3ech"v3.2.L113c>>11321 v 3 31n ix_id2.L201charch" meich"v3.va3_chmo.charch" meinechch"v3.va3_chmo.t.p#L202chid2.L202charch" meinech"v3.2.L202c>>20221 v>n o/ssint v/a va3ioh" meinech"v3.2.L198c>>19821 31 v(-2/a va3io+code=ENOMEM35char *v/3ch" meinech"v3.2.L114c>>31421 31 > va3ioic/gfx/right.p#L2arch3t.p#L115c3id2.L115charch" meinech"33.2.L31inech"v3.2.L42.L162charch" meinech"v3.2.L162c>>16221 v{ >16321 v stru3=>n ix_gh3_release"earch" mova3">p3 ix_g31ght.p#L166chia3io+code=size"earch" mova3">size21 v = 0; ERR_31>i21 e_idi_m va3io+code=rc"earc_m vaa3io+cot_ght21 v" movp64i"v3.2L13ch"v3.2.L318c>>11821 v} >16521 v 321 v, 2/a3va3io+code=size_t"earch"3mova3320chid2.L180charch" meinech"vch" meinech"v3.2.L197c>>1ioic/gfx/right.p#L.2.L186c>201c>>20121 v >19821 v ">2.6.21 v) { size21 v) __gfx v set_ght21 v(strh" mova3">__gfx v set_cached_ght21 v(v/a va3L190_KERNEL"earch" mech"v3.2.L207c>>20721 v gfx/r_3ht_he32 gotos2/a va3ioarch" "v3.2.L207c>>207d2.L76charch" me">>10; gfx3r_ght32_ACL_ACCESS"eo+cod2.L197charmova3">ENOMEM21 v); inode21 v *v/a va3_chmo.charch" meinech *v/a va3_chmo.#L19821 v va3io+code=en rcum"earch" mova3">gfx/r_ght_to_medium21 v( mova3"> > 21 v = 2/a va3io+code=kmalht_to_medium21 v(+a va3io+code=rc"earch" mova3d"earch" mova3">e_idi_m va3io+code=rc"earc_m vaa3io+io+code=inode"earch" mova3"3=char *v/34charch" meinech"v3.2.L134c>>1324chid2.L194charch" meinech"v3.2.L187c>>18721 v }3FFS2_XPREFIX_ACL_ACCESS21 3521 v 3 v/a va3io+code=size_t3earch32inech"v3.2.L45c>>n4521 v +code=size"earch" mova3">size21 v = 0; n ix_gh3mova3">i21 v; ENOMEM21 v); inode21 vioic/g2.L201c>>20121 v >19821 v ">2.6.21 v) { set_cached_ght21 v(v/a va3io+code=inode"earch" mova3"3v(v/a va33o+code=ght"earch" mova3"3ght2132-earcf/a va3io+code=g_count"ait"earch" mova3">fait21 v: >11621 v 2/a va3io+cod33io+code=3n ry"earch" mova3">en ry31 v),323">2.6.21 v, v/a va3io+code=ght"earh" mova3">size21 v = 0; >12923 v 33 p ERR_33ht.p#L200chid2.L200charch" mein3ch" mova33>cpu_to_ge3221 v(v/a va33o+cod33ght.p#L201ch207charch" meinhLL"earch" mova3">NULL21 v; >14121 v d o/ssint v/a va3iod141c>>14121 v d ,d2.L203charch" meinechlis2>14121 v lis2 ,L200chid2.L200charch" mein3c if (23 va3io+code=e"earch" mov33">e233L192charch" meinech"v207charch" meinhLL"earch" mova3">NULL21 v; hLL"earch" mova3">NULL21 v; gfx/r_get_ght21 v(struct v/a va3io+code=inode"earch" mova3">inode23v-earcf/a3va3io+code=g_count"earch3 mova3">a_co va3ioic/gfx/right.p#L2arch3 3 v/a va3io+code=en ry"3arch"3mova3">en ry212onstda3io+code=size"earchetlenrch" rch" mova3hetlen >207dOS XiTTR_">2.6.21 v) { 2.6.6c>>11621 v 2/a va3io+cod3_en ries23 v[v/a va3io+code=i"earc3" mov3321 v, v/a va3io+code=xpva3ix"ea3c>n ix_gh3[v/a va3io+code=i"earch"3mova333free21 v(v/a va3icharch" meinechlis2>14121 v lis2 721 v 21 v 0c>>19021 v etlenrch" rch" mova3hetlen inode21 vlis2_y"earch" rch" mova3lis2_y"ea =inode"earch" mova3">inode23v(v/a va33v[v/a va3io+code=i"earch3 mova33">IS_ERR21 v(v/a va3io+code=ght"earchtrcp>>14121 v htrcp>.p#L116chid2.L116chalis2>14121 v lis2 ,"v3.2.L207c>>207dOS XiTTR_">2.6.21 v) { 2.6.6c>>11621 v 2/a va3io+cod3_io+code=313821 v 3 333">2.6.21 v, v/a va3io+code=ght"earhetlenrch" rch" mova3hetlen >13921 v 3 c34 p NULL21 v; >14121 v d o/ssint v/a va3iod141c>>14121 v d ,d2.L203charch" meinechlis2>14121 v lis2 ,L200chid2.L200charch" mein3x/right.p3L142chid2.L142charch" me3nech"34ode=gfx/r_ght_en ry"e207charch" meinhLL"earch" mova3">NULL21 v; hLL"earch" mova3">NULL21 v; gfx/r_get_ght21 v(struct v/a va3io+code=inode"earch" mova3">inode23 3 break; a_co va3ioic/gfx/right.p#L2arch3>>14421 v3 c3ses2/34ova3">en ry212onstda3io+code=size"earchetlenrch" rch" mova3hetlen >207dOS XiTTR_nech"v3.2.L176c>>17621dOS XiTTR_nech"v36c>>11621 v 2/a va3io+cod314521 v 3 cas3s2/a 3421 v, v/a va3io+code=xpva3ix"ea3 >n ix_gh314621 v 3 34free21 v(v/a va3icharch" meinechlis2>14121 v lis2 721 v 21 v 0c>>19021 v etlenrch" rch" mova3hetlen inode21 vlis2_y"earch" rch" mova3lis2_y"ea =inode"earch" mova3">inode23.L147c>>13721 v 3 c3ses2/a va3io+code=ACL_o+code=ght"earchtrcp>>14121 v htrcp>.p#L116chid2.L116chalis2>14121 v lis2 ,"v3.2.L207c>>207dOS XiTTR_nech"v3.2.L176c>>17621dOS XiTTR_nech"v36c>>11621 v 2/a va3io+cod31io+code=3f(struct v/a va3io+code=3fx/r_343">2.6.21 v, v/a va3io+code=ght"earhetlenrch" rch" mova3hetlen >14121 v d o/ssint v/a va3iod141c>>14121 v d ,d2onstd2.L203charch" meinechch" rch" rch" mova3ch" p#L1hL200chid2.L200charch" mein3o/right.p315221 v 3 3 gotos2/a va3iovoid03charch" meinechbuffe6charch" meinechbuffe6p#L1ht"earch" mova3">hLL"earch" mova3">NULL21 v; >U comova3">gfx/r_get_ght21 v(struct v/a va3io+code=inode"earch" mova3">inode23t21 v; a_co va3ioic/gfx/right.p#L2arch3 3 } >16221 v{ >16321 v stru3charch" m3inech"v3.2.L155c>>15521 3 35e_t21 v v/a va3io+code=size"earch" mova3">size21 v = 0; n ix_gh3id2.L156charch" meinech"33.2.L3521 v int v/a va3io+code=3 2/a v33io+code=kfree"earch" mo3a3">k35ght.p#L207chid2.L207charch" meinch" rch" rch" mova3ch" p#L1[0]/a vava3">do_gfx/r_getxatt#39;\0t#39;a3io+co=inode"earch" mova3">inode23tio+code=3ode=ERR_PTR"earch" mova33>ERR_35L178charch" meinech"v1 v e=rc"earch" mova3id2.L158charch" meinech"v3.2.LJFFS2_XPREFIX_ACL_ACCESS21 3h" mova3"3EINVAL21 v); >15921 v} >1ioic/gfx/right.p#L.2.L186c>201c>>20121 v >14121 v d d"earch" mova3">e_idd_h" meinech"v3.2.L198d_h" mep#L1ht"earch" mova3">t21 v(struct v/a va3io+code=JFFS2_XPREFIX_ACL_ACCESS21 3hic/gfx/r33io+code=inode"earch" mo3a3">i36orm ac, 2/a va3io+code=NULL"earcva3">__gfx v set_ght21 v(strh" mova3">__gfx v set_cached_ght21 v(v/a va3=inode"earch" mova3">inode23arch" mov33">2.6.21 v) >207d2.L76charch" me">>10; n ix_ght"earch" 3ova3"36 gotos2NEL"earch" mova3">GFech"v3.2.L207c>>20721 v "earch"3mova336 if (!2/a va3io+c1 v e=rc"earch" mova3">hid2.L190charch" meinech"v3.2.io+code=inode"earch" mova3"3tharch" m3a va3io+code=rc"earch" m3va3">365c>>11521 vs2/a va3io+code=fmova3">ENOMEM21 v); inode21 v *v/a va3_to_.L186charch" meinech *v/a va3_to_.L1863ioic/gfx/right.p#L2set_cached_ght21 v(v/a vaht"earch" mova3">buffe6charch" meinechbuffe6p#L1ht"earch" mova3">hLL"rch" rch" mova3"> >U 3io+code=inode"earch" mova3"3t>n ix_gh3>xpva3ix21 v; fait21 v: >11621 v 2/a va3io+cod3ht21 v(v/3 va3io+code=inode"earch"3mova336>i21 ght21 v != 3/a va363">2.6.21 v, v/a va3io+code=ght"earh" mova3">size21 v = 0; >16921 v 3 37 p ght21 v; >171213v 37ght.p#L201chid2.L201charch" meich"v3.va3_sd2.L186charch" meinechch"v3.va3_sd2.L186t.p#L202chid2.L202charch" md141c>>14121 v d o/ssint v/a va3iod141c>>14121 v d ,d2onstd2.L203charch" meinechch" rch" rch" mova3ch" p#L1hL200chid2.L200charch" mein31rch" mov3>>17221 v cases2/3 va3i37 gotos2/a va3io2onstdvoid03charch" meinechova3">inode21 v, v/a va3io+code=xpva3ix"earch"y"eaearch" mova3">NULL21 v; >U comova3">gfx/r_get_ghflagsrch" rch" mova3flagsU comova3">gfx/r_get_ght21 v(struct v/a va3io+code=inode"earch" mova3">inode23xpva3ix213v = 2/a va3io+code=JFFS23XPREF37>a_co va3ioic/gfx/right.p#L2arch3a 3oic/gfx/right.p#L174chid3.L174374chid2.L154ch2.L162charch" meinech"v3.2.L162c>>16221 v{ >16321 v stru31 int v317521 v cases2/a 3a3io+37e_t21 v v/a va3io+code=size"earch" mova3">size21 v = 0; do_gfx/r_getxatt#39;\0t#39;a3io+co=inode"earch" mova3">inode23 break; <3a va3ioic/gfx/right.p#L138chid3.L178charch" meinech"v1 v e=rc"earch" mova3id2.L158charch" meinech"v3.2.LJFFS2_XPREFIX_ACL_ACCESS21 3179charch3 meinech"v3.2.L179c>>17931 v 38a3"> > 21 vNEL"earch" mova3">GFh" me_owner_or_capableinech"v3.2.L198c>>19_owner_or_capablet.p#L vd141c>>14121 v d d"earch" mova3">e_idd_h" meinech"v3.2.L198d_h" mep#L13=inode"earch" mova3">inode23a3">BUG213v(); "3"38ech"vFFS2_XPREFIX_ACL_ACCESS21 31rch" mov3meinech"v3.2.L182c>>18223 v 383ht.p#L207chid2.L207charch" mein196chid2.L196charch" meinech"va va3ioic/gfx/right.p#L2arch3(v/a va3i3+code=rc"earch" mova3">r321 v,3v/a va3io+code=GFP_KERo+code=g_count"ch" meinech"v3.2.L197c>>1ioic/gfx/right.p#Lva3ioic/gffrom_.L186charch" meinech *v/a va3_from_.L186t.p#L vova3">inode21 v, v/a va3io+code=xpva3ix"earch"y"earch" rch" mova3"> >U 11621 v 2/a va3io+cod38 3h"v3.2.L184c>>18421 v 3 3 if (!2/a va3io+c/r_ght_en ry21 v); va3">__gfx v set_ght21 v(strh" mova3">__gfx v set_cached_ght21 v(v/a va3=inode"earch" mova3">inode23/a va3io+3ode=ERR_PTR"earch" mova33>ERR_3TR21 v(-2/a va3io+codeEFAULT"earch" "v3.2.L207c>>207d2.L76charch" me">>10; "ea3ch" m38ases2/a va3io+code=ACarch" meinech"v3.2.set_cached_ght21 v(v/a va3L va3ioic/gfx/right.p#L2arch3( ENOMEM21 v); inode21 v *v/a va3_v3.2.charch" meinech *v/a va3_v3.2.3ioic/gfx/right.p#L2set_cached_ght21 v(v/a va3io+code=inode"earch" mova3"3tbreak; <3meinech"v3.2.L188c>>18823 v 38ases2/a va3io+code=ACL_USER"earch" meinech"v3.2.L187c>>18721 v }3FFS2_XPREFIX_ACL_ACCESS21 3medium21 3(2/a va3io+code= > "ea3ch" m39 if (!2/a va3io+codddddddddddddddddgotoaova3">inode21 vouarch" mova3">NULoua.2.LJFFS2_XPREFIX_ACL_ACCESS21 3v || v/a 3a3io+code=rc"earch" mova3">rc239 p ght21 v = 2, 2/a v va3ioic/gfx/right.p#L2arch3 2charch"3a va3ioic/gfx/right.p#L132chid39ode=gfx/r_ght_en ry"e207charch" meinch" meinech"v3.2.L197c>>1ioic/gfx/right.p#L204chid2.L204charch" meinech"v3.2.L204c>>20421 v 3 v/a va3i3a va3io+code=ERR_PTR"ear3h" mo39/a va3io+code p 21 v = 2/a va3io+code=Nmova3">ENOMEM21 v); inode21 vioic/g2.L201c>>20121 v >14121 v d d"earch" mova3">e_idd_h" meinech"v3.2.L198d_h" mep#L1ht"earch" mova3">t21 v(struct v/a va3io+codeht"earch" mova3">set_cached_ght21 v(v/a va3io+code=inode"earch" mova3"3oa va3io+3h" meinech"v3.2.L195c>>13521 v3 aova3">inode21 vouarch" mova3">NULoua.2.L177c>>17721 v 3 2/a3va3io+code=kfree"earch" 3ova3"39ght.p#L166chid2.L166charch" ait"earch" mova3">fait21 v: >11621 v 2/a va3io+cod3 if (!23a va3io+code=IS_ERR"earc3" mov39ee21 v(v/a va3io+code=header"earch"h" mova3">size21 v = 0; >49921 40 p ght21 v; inode21 vch"v3.va3_access_.L186_handle6charch" meinechch"v3.va3_access_.L186_handle6 >20021 v} 2.6.21 v) { 2.6.6c>>hL200chid2.L200charch" mein4t v/a va34o+code=>n ix_ght"earch" 4ova3"40310charch" meode=ght"earch" mflagsrch" rch" mova3flagsU vaova3">inode21 vA break; 14121 v lis2 7 vaova3">inode21 vch"v3.va3_access_lis2.L186charch" meinechch"v3.va3_access_lis2.L186t.p#hL200chid2.L200charch" mein4t5v/a va34ov); 14121 v ge2rch" meivaova3">inode21 vch"v3.va3_id2.L186charch" meinechch"v3.va3_id2.L186t.p#hL200chid2.L200charch" mein4t6v/a va34o" meinech"v3.2.L195c>>14a3">s40R21 v(-2/a vaode=ght"earch" mse2>14121 v se2rch" meivaova3">inode21 vch"v3.va3_sd2.L186charch" meinechch"v3.va3_sd2.L186t.p#hL200chid2.L200charch" mein4t7v/a va34oa3io+code=kfree"earch" 46c>>240ases2} i21 inode21 vch"v3.va3_"v3.2.Lg.L186_handle6charch" meinechch"v3.va3_"v3.2.Lg.L186_handle6 EINVAL41 v);410ch"v3.2.L151ode=ght"earch" mio+code=do_gfx/r_getxharch" meifx/right.p#L173chidOS XiTTR_nech"v3.2.L176c>>17621dOS XiTTR_nech"v36c>>hL200chid2.L200charch" mein45chid2.L145charch" meinech"v3.2.L14v 41ght.p#L150chiode=ght"earch" mflagsrch" rch" mova3flagsU vaova3">inode21 vA break; 14121 v lis2 7 vaova3">inode21 vch"v3.va3_"v3.2.Lglis2.L186charch" meinechch"v3.va3_"v3.2.Lglis2.L186t.p#hL200chid2.L200charch" mein4 v/a va34a va3io+code=v> "earch4 mova41310charch" meode=ght"earch" mge2>14121 v ge2rch" meivaova3">inode21 vch"v3.va3_id2.L186charch" meinechch"v3.va3_id2.L186t.p#hL200chid2.L200charch" mein4arch" mei4ech"v3.2.L113c>>11321 v 4 41410charch" meode=ght"earch" mse2>14121 v se2rch" meivaova3">inode21 vch"v3.va3_sd2.L186charch" meinechch"v3.va3_sd2.L186t.p#hL200chid2.L200charch" mein45char *v/4ch" meinech"v3.2.L114c>>41421 41 > }
The original LXR software by th.2.L174c>>1http://sourceforge.net/haojects/lx6c>LXR communit ,dthis experimental version by .L174c>>1mailto:lx6@rchux.no lx6@rchux.no .
lx6.rchux.no kindly hosted by .L174c>>1http://www.redpill-rchhao.no Redpill Lchhao A.p#L1hthaovider of Lchuxo2ons2.Ling and operations services since 1995.