linux/kernel/cgroup_freezer.c
<<
3.0. v3/spa v3/form v3a 3.0. v href="../linux+v3on 6/kernel/cgroup_freezer.c">3.0. v3img src="../.static/gfx/right.png" alt=">>">3.3/spa 3.3spa class="lxr_search">3.0.3.0. v3input typon>hidden" namon>navtarget" option>">3.0. v3input typon>text" namon>search" idn>search">3.0. v3butt7submit">Search3.0. vPrefs v3/a>3.3/spa 0. v v3/div 0. v v3form ac7" ="ajax+*" method="post" onsubmit="return false;">3.3input typon>hidden" namon>ajax_lookup" idn>ajax_lookup" option>">30. v v3/form 30. v v3div class="headingbott7m">
search_results" class="search_results" 0. v v3/div 3div idn>content"> 3div idn>file_contents"
ba/25/477ae9d77495005f88b26eb0d76b5a6b0ede_3/0" L1" class="line" namon>L1">v v13/a>3spa	 class="comment">/*3/spa	  L2" class="line" namon>L2">v v23/a>3spa	 class="comment"> * cgroup_freezer.c -  control group freezer subsystem3/spa	  L3" class="line" namon>L3">v v33/a>3spa	 class="comment"> *3/spa	  L4" class="line" namon>L4">v v43/a>3spa	 class="comment"> * Copyright IBM Corpora7"
	, 20073/spa	  L5" class="line" namon>L5">v v53/a>3spa	 class="comment"> *3/spa	  L6" class="line" namon>L6">v v63/a>3spa	 class="comment"> * Author : Cedric Le Goater <clg@fr.ibm.com>3/spa	  L7" class="line" namon>L7">v v73/a>3spa	 class="comment"> *3/spa	  L8" class="line" namon>L8">v v83/a>3spa	 class="comment"> * This program is free software; you ca	 redistribute it and/or modify it3/spa	  L9" class="line" namon>L9">v v93/a>3spa	 class="comment"> * under the terms of vers17L10" class="line" namon>L10">v  vala>3spa	 class="comment"> * as published by the Free Software Founda7"
	.3/spa	  L11" class="line" namon>L11">v 113/a>3spa	 class="comment"> *3/spa	  L12" class="line" namon>L12">v 123/a>3spa	 class="comment"> * This program is distributed in the hope that it would be useful, but3/spa	  L13" class="line" namon>L13">v 133/a>3spa	 class="comment"> * WITHOUT ANY WARRANTY; without even the implied warranty of3/spa	  L14" class="line" namon>L14">v 143/a>3spa	 class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.3/spa	  L15" class="line" namon>L15">v 153/a>3spa	 class="comment"> */3/spa	  L16" class="line" namon>L16">v 163/a> L17" class="line" namon>L17">v 173/a>#include <linux/export.h3/a>> L18" class="line" namon>L18">v 183/a>#include <linux/slab.h3/a>> L19" class="line" namon>L19">v 193/a>#include <linux/cgroup.h3/a>> L20" class="line" namon>L20">v 203/a>#include <linux/fs.h3/a>> L21" class="line" namon>L21">v 213/a>#include <linux/uaccess.h3/a>> L22" class="line" namon>L22">v 223/a>#include <linux/freezer.h3/a>> L23" class="line" namon>L23">v 233/a>#include <linux/seq_file.h3/a>> L24" class="line" namon>L24">v 243/a> L25" class="line" namon>L25">v 253/a>enumv3a href="+code=freezer_state" class="sref">freezer_state3/a> { L26" class="line" namon>L26">v 263/a>        3a href="+code=CGROUP_THAWED" class="sref">CGROUP_THAWED3/a> = 0, L27" class="line" namon>L27">v 273/a>        3a href="+code=CGROUP_FREEZING" class="sref">CGROUP_FREEZING3/a>, L28" class="line" namon>L28">v 283/a>        3a href="+code=CGROUP_FROZEN" class="sref">CGROUP_FROZEN3/a>, L29" class="line" namon>L29">v 293/a>}; L30" class="line" namon>L30">v 303/a> L31" class="line" namon>L31">v 313/a>structv3a href="+code=freezer" class="sref">freezer3/a> { L32" class="line" namon>L32">v 323/a>        structv3a href="+code=cgroup_subsys_state" class="sref">cgroup_subsys_state3/a> 3a href="+code=css" class="sref">css3/a>; L33" class="line" namon>L33">v 333/a>        enumv3a href="+code=freezer_state" class="sref">freezer_state3/a> 3a href="+code=state" class="sref">state3/a>; L34" class="line" namon>L34">v 343/a>        3a href="+code=spinlock_t" class="sref">spinlock_t3/a> 3a href="+code=lock" class="sref">lock3/a>; 3spa	 class="comment">/* protects _writes_ to state */3/spa	  L35" class="line" namon>L35">v 353/a>}; L36" class="line" namon>L36">v 363/a> L37" class="line" namon>L37">v 373/a>static 3a href="+code=inline" class="sref">inline3/a> structv3a href="+code=freezer" class="sref">freezer3/a> *3a href="+code=cgroup_freezer" class="sref">cgroup_freezer3/a>( L38" class="line" namon>L38">v 383/a>                structv3a href="+code=cgroup" class="sref">cgroup3/a> *3a href="+code=cgroup" class="sref">cgroup3/a>) L39" class="line" namon>L39">v 393/a>{ L40" class="line" namon>L40">v 403/a>        return 3a href="+code=container_of" class="sref">container_of3/a>( L41" class="line" namon>L41">v 413/a>                3a href="+code=cgroup_subsys_state" class="sref">cgroup_subsys_state3/a>(3a href="+code=cgroup" class="sref">cgroup3/a>,v3a href="+code=freezer_subsys_id" class="sref">freezer_subsys_id3/a>), L42" class="line" namon>L42">v 423/a>                structv3a href="+code=freezer" class="sref">freezer3/a>,v3a href="+code=css" class="sref">css3/a>); L43" class="line" namon>L43">v 433/a>} L44" class="line" namon>L44">v 443/a> L45" class="line" namon>L45">v 453/a>static 3a href="+code=inline" class="sref">inline3/a> structv3a href="+code=freezer" class="sref">freezer3/a> *3a href="+code=task_freezer" class="sref">task_freezer3/a>(structv3a href="+code=task_struct" class="sref">task_struct3/a> *3a href="+code=task" class="sref">task3/a>) L46" class="line" namon>L46">v 463/a>{ L47" class="line" namon>L47">v 473/a>        return 3a href="+code=container_of" class="sref">container_of3/a>(3a href="+code=task_subsys_state" class="sref">task_subsys_state3/a>(3a href="+code=task" class="sref">task3/a>,v3a href="+code=freezer_subsys_id" class="sref">freezer_subsys_id3/a>), L48" class="line" namon>L48">v 483/a>                            structv3a href="+code=freezer" class="sref">freezer3/a>,v3a href="+code=css" class="sref">css3/a>); L49" class="line" namon>L49">v 493/a>} L50" class="line" namon>L50">v 503/a> L51" class="line" namon>L51">v 513/a>3a href="+code=bool" class="sref">bool3/a> 3a href="+code=cgroup_freezing" class="sref">cgroup_freezing3/a>(structv3a href="+code=task_struct" class="sref">task_struct3/a> *3a href="+code=task" class="sref">task3/a>) L52" class="line" namon>L52">v 523/a>{ L53" class="line" namon>L53">v 533/a>        enumv3a href="+code=freezer_state" class="sref">freezer_state3/a> 3a href="+code=state" class="sref">state3/a>; L54" class="line" namon>L54">v 543/a>        3a href="+code=bool" class="sref">bool3/a> 3a href="+code=ret" class="sref">ret3/a>; L55" class="line" namon>L55">v 553/a> L56" class="line" namon>L56">v 563/a>        3a href="+code=rcu_read_lock" class="sref">rcu_read_lock3/a>(); L57" class="line" namon>L57">v 573/a>        3a href="+code=state" class="sref">state3/a> =v3a href="+code=task_freezer" class="sref">task_freezer3/a>(3a href="+code=task" class="sref">task3/a>)->3a href="+code=state" class="sref">state3/a>; L58" class="line" namon>L58">v 583/a>        3a href="+code=ret" class="sref">ret3/a> =v3a href="+code=state" class="sref">state3/a> ==v3a href="+code=CGROUP_FREEZING" class="sref">CGROUP_FREEZING3/a> ||v3a href="+code=state" class="sref">state3/a> ==v3a href="+code=CGROUP_FROZEN" class="sref">CGROUP_FROZEN3/a>; L59" class="line" namon>L59">v 593/a>        3a href="+code=rcu_read_unlock" class="sref">rcu_read_unlock3/a>(); L60" class="line" namon>L60">v 603/a> L61" class="line" namon>L61">v 613/a>        return 3a href="+code=ret" class="sref">ret3/a>; L62" class="line" namon>L62">v 623/a>} L63" class="line" namon>L63">v 633/a> L64" class="line" namon>L64">v 643/a>3spa	 class="comment">/*3/spa	  L65" class="line" namon>L65">v 653/a>3spa	 class="comment"> * cgroups_write_string() limits the size of freezer state strings to3/spa	  L66" class="line" namon>L66">v 663/a>3spa	 class="comment"> * CGROUP_LOCAL_BUFFER_SIZE3/spa	  L67" class="line" namon>L67">v 673/a>3spa	 class="comment"> */3/spa	  L68" class="line" namon>L68">v 683/a>static const char *3a href="+code=freezer_state_strs" class="sref">freezer_state_strs3/a>[] =v{ L69" class="line" namon>L69">v 693/a>        3spa	 class="string">"THAWED"3/spa	 , L70" class="line" namon>L70">v 703/a>        3spa	 class="string">"FREEZING"3/spa	 , L71" class="line" namon>L71">v 713/a>        3spa	 class="string">"FROZEN"3/spa	 , L72" class="line" namon>L72">v 723/a>}; L73" class="line" namon>L73">v 733/a> L74" class="line" namon>L74">v 743/a>3spa	 class="comment">/*3/spa	  L75" class="line" namon>L75">v 753/a>3spa	 class="comment"> * State diagram3/spa	  L76" class="line" namon>L76">v 763/a>3spa	 class="comment"> * Transi7"
	s are caused by userspace writes to the freezer.state file.3/spa	  L77" class="line" namon>L77">v 773/a>3spa	 class="comment"> * The optios in parenthesis are state labels. The rest are edge labels.3/spa	  L78" class="line" namon>L78">v 783/a>3spa	 class="comment"> *3/spa	  L79" class="line" namon>L79">v 793/a>3spa	 class="comment"> * (THAWED) --FROZEN--> (FREEZING) --FROZEN--> (FROZEN)3/spa	  L80" class="line" namon>L80">v 8vala>3spa	 class="comment"> *    ^ ^                    |                     |3/spa	  L81" class="line" namon>L81">v 813/a>3spa	 class="comment"> *    | \_______THAWED_______/                     |3/spa	  L82" class="line" namon>L82">v 823/a>3spa	 class="comment"> *    \__________________________THAWED____________/3/spa	  L83" class="line" namon>L83">v 833/a>3spa	 class="comment"> */3/spa	  L84" class="line" namon>L84">v 843/a> L85" class="line" namon>L85">v 853/a>structv3a href="+code=cgroup_subsys" class="sref">cgroup_subsys3/a> 3a href="+code=freezer_subsys" class="sref">freezer_subsys3/a>; L86" class="line" namon>L86">v 863/a> L87" class="line" namon>L87">v 873/a>3spa	 class="comment">/* Locks taken and their ordering3/spa	  L88" class="line" namon>L88">v 883/a>3spa	 class="comment"> * ------------------------------3/spa	  L89" class="line" namon>L89">v 893/a>3spa	 class="comment"> * cgroup_mutex (AKA cgroup_lock)3/spa	  L90" class="line" namon>L90">v 9vala>3spa	 class="comment"> * freezer->lock3/spa	  L91" class="line" namon>L91">v 913/a>3spa	 class="comment"> * css_set_lock3/spa	  L92" class="line" namon>L92">v 923/a>3spa	 class="comment"> * task->alloc_lock (AKA task_lock)3/spa	  L93" class="line" namon>L93">v 933/a>3spa	 class="comment"> * task->sighand->siglock3/spa	  L94" class="line" namon>L94">v 943/a>3spa	 class="comment"> *3/spa	  L95" class="line" namon>L95">v 953/a>3spa	 class="comment"> * cgroup code forcos css_set_lock to be taken before task->alloc_lock3/spa	  L96" class="line" namon>L96">v 963/a>3spa	 class="comment"> *3/spa	  L97" class="line" namon>L97">v 973/a>3spa	 class="comment"> * freezer_create(), freezer_destroy():3/spa	  L98" class="line" namon>L98">v 983/a>3spa	 class="comment"> * cgroup_mutex [ by cgroup core ]3/spa	  L99" class="line" namon>L99">v 993/a>3spa	 class="comment"> *3/spa	  L100" class="line" namon>L100">v1003/a>3spa	 class="comment"> * freezer_can_attach():3/spa	  L101" class="line" namon>L101">v1013/a>3spa	 class="comment"> * cgroup_mutex (held by caller of can_attach)3/spa	  L102" class="line" namon>L102">v1023/a>3spa	 class="comment"> *3/spa	  L103" class="line" namon>L103">v1033/a>3spa	 class="comment"> * freezer_fork() (preserving fork() performance means can't take cgroup_mutex):3/spa	  L104" class="line" namon>L104">v1043/a>3spa	 class="comment"> * freezer->lock3/spa	  L105" class="line" namon>L105">v1053/a>3spa	 class="comment"> *  sighand->siglock (if the cgroup is freezing)3/spa	  L106" class="line" namon>L106">v1063/a>3spa	 class="comment"> *3/spa	  L107" class="line" namon>L107">v1073/a>3spa	 class="comment"> * freezer_read():3/spa	  L108" class="line" namon>L108">v1083/a>3spa	 class="comment"> * cgroup_mutex3/spa	  L109" class="line" namon>L109">v1093/a>3spa	 class="comment"> *  freezer->lock3/spa	  L110" class="line" namon>L110">v1 vala>3spa	 class="comment"> *   write_lock css_set_lock (cgroup iterator start)3/spa	  L111" class="line" namon>L111">v1113/a>3spa	 class="comment"> *    task->alloc_lock3/spa	  L112" class="line" namon>L112">v1123/a>3spa	 class="comment"> *   read_lock css_set_lock (cgroup iterator start)3/spa	  L113" class="line" namon>L113">v1133/a>3spa	 class="comment"> *3/spa	  L114" class="line" namon>L114">v1143/a>3spa	 class="comment"> * freezer_write() (freeze):3/spa	  L115" class="line" namon>L115">v1153/a>3spa	 class="comment"> * cgroup_mutex3/spa	  L116" class="line" namon>L116">v1163/a>3spa	 class="comment"> *  freezer->lock3/spa	  L117" class="line" namon>L117">v1173/a>3spa	 class="comment"> *   write_lock css_set_lock (cgroup iterator start)3/spa	  L118" class="line" namon>L118">v1183/a>3spa	 class="comment"> *    task->alloc_lock3/spa	  L119" class="line" namon>L119">v1193/a>3spa	 class="comment"> *   read_lock css_set_lock (cgroup iterator start)3/spa	  L120" class="line" namon>L120">v12vala>3spa	 class="comment"> *    sighand->siglock (fake signal delivery inside freeze_task())3/spa	  L121" class="line" namon>L121">v1213/a>3spa	 class="comment"> *3/spa	  L122" class="line" namon>L122">v1223/a>3spa	 class="comment"> * freezer_write() (unfreeze):3/spa	  L123" class="line" namon>L123">v1233/a>3spa	 class="comment"> * cgroup_mutex3/spa	  L124" class="line" namon>L124">v1243/a>3spa	 class="comment"> *  freezer->lock3/spa	  L125" class="line" namon>L125">v1253/a>3spa	 class="comment"> *   write_lock css_set_lock (cgroup iterator start)3/spa	  L126" class="line" namon>L126">v1263/a>3spa	 class="comment"> *    task->alloc_lock3/spa	  L127" class="line" namon>L127">v1273/a>3spa	 class="comment"> *   read_lock css_set_lock (cgroup iterator start)3/spa	  L128" class="line" namon>L128">v1283/a>3spa	 class="comment"> *    task->alloc_lock (inside __thaw_task(), prevents race with refrigerator())3/spa	  L129" class="line" namon>L129">v1293/a>3spa	 class="comment"> *     sighand->siglock3/spa	  L130" class="line" namon>L130">v13vala>3spa	 class="comment"> */3/spa	  L131" class="line" namon>L131">v1313/a>static structv3a href="+code=cgroup_subsys_state" class="sref">cgroup_subsys_state3/a> *3a href="+code=freezer_create" class="sref">freezer_create3/a>(structv3a href="+code=cgroup" class="sref">cgroup3/a> *3a href="+code=cgroup" class="sref">cgroup3/a>) L132" class="line" namon>L132">v1323/a>{ L133" class="line" namon>L133">v1333/a>        structv3a href="+code=freezer" class="sref">freezer3/a> *3a href="+code=freezer" class="sref">freezer3/a>; L134" class="line" namon>L134">v1343/a> L135" class="line" namon>L135">v1353/a>        3a href="+code=freezer" class="sref">freezer3/a> =v3a href="+code=kzalloc" class="sref">kzalloc3/a>(sizeof(structv3a href="+code=freezer" class="sref">freezer3/a>),v3a href="+code=GFP_KERNEL" class="sref">GFP_KERNEL3/a>); L136" class="line" namon>L136">v1363/a>        if (!3a href="+code=freezer" class="sref">freezer3/a>) L137" class="line" namon>L137">v1373/a>                return 3a href="+code=ERR_PTR" class="sref">ERR_PTR3/a>(-3a href="+code=ENOMEM" class="sref">ENOMEM3/a>); L138" class="line" namon>L138">v1383/a> L139" class="line" namon>L139">v1393/a>        3a href="+code=spin_lock_init" class="sref">spin_lock_init3/a>(&3a href="+code=freezer" class="sref">freezer3/a>->3a href="+code=lock" class="sref">lock3/a>); L140" class="line" namon>L140">v1403/a>        3a href="+code=freezer" class="sref">freezer3/a>->3a href="+code=state" class="sref">state3/a> =v3a href="+code=CGROUP_THAWED" class="sref">CGROUP_THAWED3/a>; L141" class="line" namon>L141">v1413/a>        return &3a href="+code=freezer" class="sref">freezer3/a>->3a href="+code=css" class="sref">css3/a>; L142" class="line" namon>L142">v1423/a>} L143" class="line" namon>L143">v1433/a> L144" class="line" namon>L144">v1443/a>static void 3a href="+code=freezer_destroy" class="sref">freezer_destroy3/a>(structv3a href="+code=cgroup" class="sref">cgroup3/a> *3a href="+code=cgroup" class="sref">cgroup3/a>) L145" class="line" namon>L145">v1453/a>{ L146" class="line" namon>L146">v1463/a>        structv3a href="+code=freezer" class="sref">freezer3/a> *3a href="+code=freezer" class="sref">freezer3/a> =v3a href="+code=cgroup_freezer" class="sref">cgroup_freezer3/a>(3a href="+code=cgroup" class="sref">cgroup3/a>); L147" class="line" namon>L147">v1473/a> L148" class="line" namon>L148">v1483/a>        if (3a href="+code=freezer" class="sref">freezer3/a>->3a href="+code=state" class="sref">state3/a> !=v3a href="+code=CGROUP_THAWED" class="sref">CGROUP_THAWED3/a>) L149" class="line" namon>L149">v1493/a>                re href="+code=CGsregroup2v v3/s="sref">kzallocoup2v v3/smp;3a href="+code=freezer/spa	 ng3/a>(st_cns="sref">spin_locspa	 ng3/a>(st_cnsL50" cla1ss="line" namon>L50">v 5103/a>15      3a href="+code=freezerk.c#L="sref">kzalloc3.c#L href="+code=cgroup"" class="sref">freezer3/a>) L141" class="line" namon>L51">v 5113/a>1a hrefef="kernel/cgroup_freezer.c#L143" idn>L52" cla1ss="line" namon>L52">v 5123/a>1 L143" class="line" namon>L53">v 5133/a>15pa	 class="comment"> * cgro/>siezing)ozenNESSwillr->l i * di !=ly whenNnexuld bgets woore 	  L54" cla1ss="line" namon>L54">v 5143/a>15atic void 3a="+code=cgroup"lass="sref">bool3/a> 3a href="+code=ret" clis_eezer3/ozen_enough="sref">bool3/ais_eezer3/ozen_enoughructv3a href="+code=cgroup"ruct" class="sref">task_struct3/a> *3a href="+code=task" class="sref">task3/a>) L55" cla1ss="line" namon>L55">v 5153/a>15L56" cla1ss="line" namon>L56">v 5163/a>1       3a href3a href="+code=ERR_PTR3/ozen="sref">freezer3/ozen href="+code=cgroup"lass="sref">task3/a>) L147" class="line" namon>L57">v 5173/a>15              return f="+code=task_subsys_i3/a>opped_or_tth rs="sref">freezerbsys_i3/a>opped_or_tth rs href="+code=cgroup"lass="sref">task3/a>) cgroup_" claass href="+code=cgroup"lass="sref">task3/a>) L148" class="line" namon>L58">v 5183/a>1      ef="kernel/cgroup_freezer.c#L143" idn>L149" class="line" namon>L59">v 5193/a>1      f="kernel/cgroup_freezer.c#L143" idn>L60" cla1ss="line" namon>L60">v 6103/a>16pa	 class="comment"> */3/sp	  L61" cla1ss="line" namon>L61">v 6113/a>16pa	 class="comment"> *    taskt arof ctakelock)3/spa	() hope th.c#L75" abels.ock c="post"ts race w L52" cla1ss="line" namon>L62">v 6123/a>16pa	 class="comment"> * freezera.ock c=freezat/spa	ith k() agair *3s="3/spa	,eir ohencit w  >L63" cla1ss="line" namon>L63">v 6133/a>16pa	 class="comment"> * cgroup_mch():3/spa	 " 	   Swillrremair in refuntilpe th):3/sp "> plete	  L64" cla1ss="line" namon>L64">v 6143/a>1spa	 class="comment">/*3/spaa	  LL55" cla1ss="line" namon>L65">v 6153/a>16atic 3a hrefinef="+code=freezer" classtach():3/sp="sref">freezer_create3/ch():3/spructv3a href="+code=cgroup" class="sref">cgroup3/a> *3a href="+code=cgroup"new_ class="sref">cgroup3new_ classa href="kernel/cgroup_freezer.c#L72" idn16L16" classs="line" namon>L16">v 1633/a>166             return               3a href="+code=cgroup_subsys_>) ret3/a>subsys_>) ret3/a>tsssa href="kernel/cgroup_freezer.c#L52" idn1>L67" cla1ss="line" namon>L67">v 6173/a>1spa	 cef="kernel/cgroup_freezer.c#L146" idn>L68" cla1ss="line" namon>L68">v 6183/a>16      if (3a 3a href="+code=freezer" class="sref">freezer3/a> *3a href="+code=freezer" class="sref">freezer3/a>; L69" cla1ss="line" namon>L69">v 6193/a>1       3spa	 c3a href="+code=cgroup"ruct" class="sref">task_struct3/a> *3a href="+code=task" class="sref">task3/a>) L70" cla1ss="line" namon>L70">v 7103/a>17a href="kernel/cgroup_freezer.c#L61" idn1>L71" cla1ss="line" namon>L71">v 7113/a>1       3spa	 class="string""> */3/sp	  L72" cla1ss="line" namon>L72">v 7123/a>17pa	 class="comment"> * freezzzzzzzzz* Anythk() p)ozenN;t take cgmoveNESSbegmoved=fr/p)om  L73" cla1ss="line" namon>L73">v 7133/a>17pa	 class="comment"> * cgrouzzzzzzzz*  >L74" cla1ss="line" namon>L74">v 7143/a>17      3a href="+code=bool" csubsys_>) freezersubsys_>) task3/a>) cgroup3new_ classa href="+code=cgroup"rsss="sref">ret3/a>tsssa href="kernel/cgroup_freezer.c#L52" idn1>L75" cla1ss="line" namon>L75">v 7153/a>175             return href="+code=freezerfreezer.c#L5ass="sref">cgroup_freezing3/a>(structv="+code=cgroup"lass="sref">task3/a>) L16" classs="line" namon>L76">v 7163/a>176             return         3a hreff="+code=ENOMEM" BUSY="sref">ENOMEM3/BUSYa href="kernel/cgroup_freezer.c#L134" idn>L17" classs="line" namon>L17">v 1733/a>17a href="kernel/cgroup_freezer.c#L148" idn>L78" cla1ss="line" namon>L78">v 7183/a>17      3a href="+code=ret" cl" class="sref">freezer3/a> =v3a href="+code=cgroup_freezer" class="sref">cgroup_freezer3/a>(3a href="+code=cgroup"new_ class="sref">cgroup3new_ classa hreef="kernel/cgroup_freezer.c#L147" idn>L79" cla1ss="line" namon>L79">v 7193/a>17      3spa	 chref="+code=freezer" class="sref">freezer3/a>->3a href="+code=state" class="sref">state3/a> !=v3a href="+code=CGROUP_THAWED" class="sref">CGROUP_THAWED3/a>) L80" cla1ss="line" namon>L80">v 81vala>180             return 3a hreff="+code=ENOMEM" BUSY="sref">ENOMEM3/BUSYa href="kernel/cgroup_freezer.c#L134" idn>L81" cla1ss="line" namon>L81">v 8113/a>1spa	 cf="kernel/cgroup_freezer.c#L134" idn>L72" cla1ss="line" namon>L82">v 8123/a>18             3a href0ef="kernel/cgroup_freezer.c#L134" idn>L73" cla1ss="line" namon>L83">v 8133/a>18L84" cla1ss="line" namon>L84">v 8143/a>1L85" cla1ss="line" namon>L85">v 8153/a>18atic 3a href href="+code=freezer_destroyperf="sref">freezer_create3perfructv3a href="+code=cgroup"ruct" class="sref">task_struct3/a> *3a href="+code=task" class="sref">task3/a>) L86" cla1ss="line" namon>L86">v 8163/a>18L87" cla1ss="line" namon>L87">v 8173/a>18             3a href="+code=freezer" class="sref">freezer3/a> *3a href="+code=freezer" class="sref">freezer3/a>; L88" cla1ss="line" namon>L88">v 8183/a>18a href="kernel/cgroup_freezer.c#L139" idn>L89" cla1ss="line" namon>L89">v 8193/a>18      3spa	 class="string""> */3/sp	  L90" cla1ss="line" namon>L90">v 91vala>1spa	 class="comment"> * freezzzzzzzzz* No nsideis needed, sincit w gt;siezi take cgn>su;silist yet, L81" cla1ss="line" namon>L91">v 9113/a>1spa	 class="comment"> * css_szzzzzzzz* sold b;t take cgbegmoved=fr ano w relock)3, whichcan' w  >L92" cla1ss="line" namon>L92">v 9123/a>1spa	 class="comment"> * task-zzzzzzzz* .c#L10" wo take cgbegremoved=ir owillrbe in refdupa	  >3.0 >L73" cla1ss="line" namon>L93">v 9133/a>1spa	 class="comment"> * task-zzzzzzzz* .unajax+rof c.  Never w less, apply RCUock c-thaw_crihreal >L84" cla1ss="line" namon>L94">v 9143/a>1spa	 class="comment"> *3/spa	zzzzzzzz* seajax+re */uping s RCUonsiddep">3.3i po areve	  L95" cla1ss="line" namon>L95">v 9153/a>1spa	 class="comment"> * cgrouzzzzzzzz*  >L96" cla1ss="line" namon>L96">v 9163/a>19      3a href="+code=rcu_read_lock" class="sref">rcu_read_lock3/a>(); L97" cla1ss="line" namon>L97">v 9173/a>19      3a href="+code=state" " class="sref">freezer3/a> =v3a href="+code=cgroup_eezer" class="sref">task_freezer3/a>(3a href="+code=task" class="sref">task3/a>)->3aef="kernel/cgroup_freezer.c#L57" idn1>L88" cla1ss="line" namon>L98">v 9183/a>19      3a href="+code=ret" cla_unlock" class="sref">rcu_read_unlock3/a>(); L99" cla1ss="line" namon>L99">v 9193/a>19     f="kernel/cgroup_freezer.c#L143" id2>L100" cl2ss="line" namon>L100">v1203/a>20      3spa	 class="string"">/*3/spa	  L>L101" cl2ss="line" namon>L101">v1213/a>2spa	 class="comment"> * cgrouzzzzzzzz* t areoot is freezinnon-.c#L2able, solwedistrskip9 w  L102" cl2ss="line" namon>L102">v1223/a>2spa	 class="comment"> *3/spa	zzzzzzzz* .ollowa	  check  L103" cl2ss="line" namon>L103">v1233/a>2spa	 class="comment"> * freezzzzzzzzz*  L104" cl2ss="line" namon>L104">v1243/a>20      3a href href="+code=freezer" class="sref">freezer3/a>) css3/a>; cgroup3/a> *3a hr href="+code=css" clesis a="sref">cgroup3esis aa href="kernel/cgroup_freezer.c#L52" idn2>L105" cl2ss="line" namon>L105">v1253/a>205             return 3a hreef="kernel/cgroup_freezer.c#L20" idn>LL26" classs="line" namon>L106">v1263/a>20a href="kernel/cgroup_freezer.c#L87" idn2>L107" cl2ss="line" namon>L107">v1273/a>20      3a href="+code=state" ck_init3/a>rq="sref">state3/ak_init3/a>rqmp;3a href="+code=freezer" class="sref">freezer3/a>->3a href="+code=lock" class="sref">lock3/a>); L108" cl2ss="line" namon>L108">v1283/a>20      3a href="+code=ret" clBUG_Os="sref">CGROUP_BUG_Os href="+code=cgroup"" class="sref">freezer3/a>) state3/a> =v3a hreef="+code=CGROUP_FROZEN" class="sref">CGROUP_FROZEN3/a>; L29" classs="line" namon>L109">v1293/a>20     f="kernel/cgroup_freezer.c#L143" id2>L110" cl2ss="line" namon>L110">v12vala>21      3spa	 class="string"">/*3/spa	 takenk() a hrewith refrigeG) --FRO FROZEN/a>) < t
	s are ca.z*  L111" cl2ss="line" namon>L111">v1213/a>211     3a href hre="+code=cgroup"" class="sref">freezer3/a>) state3/a> =v3a hreef="+code=CGROUP_FROZEN" c class="sref">CGROUP_FREEZING3/a> ||v3a ef="kernel/cgroup_freezer.c#L52" idn2>L112" cl2ss="line" namon>L112">v1223/a>21              structv="+code=cgroup"" clas_lass="sref">task3/a" clas_lass href="+code=task" class="sref">task3/a>)->3aef="kernel/cgroup_freezer.c#L57" idn2>L113" cl2ss="line" namon>L113">v1233/a>213     3a href="+code=state" ck_in/a>();a>rq="sref">state3/ak_in/a>();a>rqmp;3a href="+code=freezer" class="sref">freezer3/a>->3a href="+code=lock" class="sref">lock3/a>); L114" cl2ss="line" namon>L114">v1243/a>2spa	 cef="kernel/cgroup_freezer.c#L44" idn2>L115" cl2ss="line" namon>L115">v1253/a>21a href="kernel/cgroup_freezer.c#L56" idn2>L116" cl2ss="line" namon>L116">v1263/a>2spa	 class="comment"> *  fre	  L>L117" cl2ss="line" namon>L117">v1273/a>2spa	 class="comment"> *   writeof can_must holdr->lock3/spa	  L118" cl2ss="line" namon>L118">v1283/a>2spa	 class="comment"> *    tas  L29" classs="line" namon>L119">v1293/a>2spa	 c3a href href="+code=freezerupds3/aif_3/ozen="sref">freezerupds3/aif_3/ozenructv3a href="+code=cgroup" class="sref">cgroup3/a> *3a href="+code=cgroup" class="sref">cgroup3/a> *3a href="kernel/cgroup_freezer.c#L29" idn>>L20" classs="line" namon>L20">v 20vala>220             return                  3a href="+code=freezer" class="sref">freezer3/a> *3a href="+code=freezer" class="sref">freezer3/a>; L21" classs="line" namon>L21">v 2113/a>2spa	 cef="kernel/cgroup_freezer.c#L26" idn>>L22" classs="line" namon>L22">v 2233/a>22      structv3a href="+code=cgroup_subsys_r st="sref">cgroup_freezerr st     ="+code=cgroup_ss="sref">spin_loiL23" classs="line" namon>L23">v 2333/a>22      structv3a href="+code=freezerruct" class="sref">task_struct3/a> *3a href="+code=task" class="sref">task3/a>) L24" classs="line" namon>L24">v 2443/a>22      3a hrefundeliedfinef="+code=freezern3/ozen="sref">freezern3/ozenructa href="+code=freezerntotas="sref">bool3/antotasructa href="kernel/cgroup_freezer.c#L134" id2>L115" cl2ss="line" namon>L25">v 2553/a>225             href="+code=freezer_state" class="sref">freezer_state3/a> 3a href="+code=state" old class="sref">freezerold class3a href="+code=cgroup_" class="sref">freezer3/a>) state3/a> =v3a hef="kernel/cgroup_freezer.c#L134" id2>L116" cl2ss="line" namon>L26">v 2663/a>22a href="kernel/cgroup_freezer.c#L87" idn2>L27" classs="line" namon>L27">v 2773/a>2       3a href="+code=CGROUP_freezerr st_/spa	="sref">cgroup_freezerr st_/spa	 href="+code=task" c class="sref">cgroup3/a> *3a hrea href="+code=freezerss="sref">spin_loiL28" classs="line" namon>L28">v 2883/a>2       3a hrefwhpa	i(f="+code=task" class="sref">task3/a>)->3ref="+code=cgroup_freezerr st_nexu="sref">cgroup_freezerr st_nexu href="+code=task" c class="sref">cgroup3/a> *3a hrea href="+code=freezerss="sref">spin_loi>L29" classs="line" namon>L29">v 2993/a>22              re href="+code=CGsregrntotas="sref">bool3/antotasruct++ef="kernel/cgroup_freezer.c#L140" id2>L130" cl2ss="line" namon>L130">v12vala>230             return  hre="+code=cgroup"" claass="sref">cgroup_" claass href="+code=cgroup"lass="sref">task3/a>) bool3/ais_eezer3/ozen_enoughructv="+code=cgroup"lass="sref">task3/a>) L131" cl2ss="line" namon>L131">v1213/a>23              3a href re href="+code=CGsregrn3/ozen="sref">freezern3/ozenruct++ef="kernel/cgroup_freezer.c#L140" id2>L22" classs="line" namon>L132">v1223/a>2       structvef="kernel/cgroup_freezer.c#L44" idn2>L133" cl2ss="line" namon>L133">v1233/a>23a href="kernel/cgroup_freezer.c#L144" id2>L134" cl2ss="line" namon>L134">v1243/a>23      3a href hre="+code=state" old class="sref">freezerold class3a hreef="+code=CGROUP_THAWED" class="sref">CGROUP_THAWED3/a>) >L135" cl2ss="line" namon>L135">v1253/a>235             return ="+code=ret" clBUG_Os="sref">CGROUP_BUG_Os href="+code=cgroup"n3/ozen="sref">freezern3/ozenructaROZEN0ref="kernel/cgroup_freezer.c#L140" id2>L136" cl2ss="line" namon>L136">v1263/a>2       if (!3a} e.3i  hre="+code=state" old class="sref">freezerold class3a hreef="+code=CGROUP_THAWED" c class="sref">CGROUP_FREEZING3/a> ||v3a eref="kernel/cgroup_freezer.c#L26" idn>>L27" classs="line" namon>L137">v1273/a>2               return  hre="+code=state" n3/ozen="sref">freezern3/ozenructa ef="+code=CGROUP_ntotas="sref">bool3/antotasructef="kernel/cgroup_freezer.c#L52" idn2>L28" classs="line" namon>L138">v1283/a>2               structv return ="+code=ret" cl" class="sref">freezer3/a>) state3/a> =v3a href="+code=CGROUP_FROZEN" class="sref">CGROUP_FROZEN3/a>; L139" cl2ss="line" namon>L139">v1293/a>2       3a href} e.3i {class="string"">/*3/spa	 told classa efFROZEN3/a>; L140" cl2ss="line" namon>L140">v1203/a>240             return ="+code=ret" clBUG_Os="sref">CGROUP_BUG_Os href="+code=cgroup"n3/ozen="sref">freezern3/ozenructaref="+code=CGROUP_ntotas="sref">bool3/antotasructeef="kernel/cgroup_freezer.c#L59" idn2>L141" cl2ss="line" namon>L141">v1213/a>2       return ef="kernel/cgroup_freezer.c#L44" idn2>L142" cl2ss="line" namon>L142">v1223/a>24L143" cl2ss="line" namon>L143">v1233/a>243     3a href="+code=state" freezerr st_ens="sref">freezerfreezerr st_ens href="+code=task" c class="sref">cgroup3/a> *3a hrea href="+code=freezerss="sref">spin_loiL144" cl2ss="line" namon>L144">v1243/a>24pa	 cef="kernel/cgroup_freezer.c#L44" idn2>L145" cl2ss="line" namon>L145">v1253/a>24a href="kernel/cgroup_freezer.c#L56" idn2>L146" cl2ss="line" namon>L146">v1263/a>2      3a hrefinef="+code=freezer" classtlock="sref">freezer_state3/lockructv3a href="+code=cgroup" class="sref">cgroup3/a> *3a href="+code=cgroup" class="sref">cgroup3/a> *3a hrev3a href="+code=cgroup_sftyps="sref">state3/sftypsa href="+code=cgroup" fu="sref">cgroup_ffta href="kernel/cgroup_freezer.c#L29" idn>>L147" cl2ss="line" namon>L147">v1273/a>24              return         3a href="+code=cgroup_seq_spa	="sref">state3/aeq_spa	a href="+code=cgroup"m="sref">state3/mructef="kernel/cgroup_freezer.c#L52" idn2>L148" cl2ss="line" namon>L148">v1283/a>2      ef="kernel/cgroup_freezer.c#L26" idn>>L149" cl2ss="line" namon>L149">v1293/a>24      3spa	 c3a href="+code=cgroup"" class="sref">freezer3/a> *3a href="+code=freezer" class="sref">freezer3/a>; L50" cla2ss="line" namon>L50">v 5203/a>25      3a href href="+code=freezer_state" class="sref">freezer_state3/a> 3a href="+code=state" class="sref">state3/a>; L141" cl2ss="line" namon>L51">v 5213/a>25pa	 cf="kernel/cgroup_freezer.c#L134" id2>L52" cla2ss="line" namon>L52">v 5223/a>25      structv href="+code=freezerfreezer>();ainsi_class="sref">cgroup3/a> *3r>();ainsi_class href="+code=task" c class="sref">cgroup3/a> *3a hreef="kernel/cgroup_freezer.c#L52" idn2>L143" cl2ss="line" namon>L53">v 5233/a>2       enumv3aaaaaaaaa3a hreff="+code=ENOMEM" NODEV="sref">cgroup3 NODEVa href="kernel/cgroup_freezer.c#L54" idn2>L144" cl2ss="line" namon>L54">v 5243/a>25a href="kernel/cgroup_freezer.c#L85" idn2>L55" cla2ss="line" namon>L55">v 5253/a>25      3a href="+code=freezer" class="sref">freezer3/a> =v3a href="+code=kzallocfreezer" class="sref">cgroup_freezer3/a>(3a href="+code=cgroup" class="sref">cgroup3/a> *3a hreef="kernel/cgroup_freezer.c#L54" idn2>L146" cl2ss="line" namon>L56">v 5263/a>2       3a href="+code=rcu_reack_init3/a>rq="sref">state3/ak_init3/a>rqmp;3a href="+code=freezer" class="sref">freezer3/a>->3a href="+code=lock" class="sref">lock3/a>); L147" cl2ss="line" namon>L57">v 5273/a>2       3a href="+code=state" class="sref">state3/a> =v3a href="+code=task_fr" class="sref">freezer3/a>) state3/a> =v3a hef="kernel/cgroup_freezer.c#L134" id2>L148" cl2ss="line" namon>L58">v 5283/a>25      if (3a href="+code=freezerclass="sref">state3/a> =v3a hreef="+code=CGROUP_FROZEN" c class="sref">CGROUP_FREEZING3/a> ||v3a eref="kernel/cgroup_freezer.c#L26" idn>>L149" cl2ss="line" namon>L59">v 5293/a>25              re href=ass="string"">/*3/spa	 tWe3a hngth.comeG) --FRO to /a>; L60" cla2ss="line" namon>L60">v 6203/a>26pa	 class="comment"> */3/sp  return          tonly partially p)ozenNwhenNwe exitted.ock c.z*  L61" cla2ss="line" namon>L61">v 6213/a>26              3a href="+code=freezerupds3/aif_3/ozen="sref">freezerupds3/aif_3/ozenructv="+code=cgroup" class="sref">cgroup3/a> *3a hrev="+code=freezer" class="sref">freezer3/a>; L52" cla2ss="line" namon>L62">v 6223/a>26              structv="+code=cgroup"class="sref">state3/a> =v3a href="+code=task_fr" class="sref">freezer3/a>) state3/a> =v3a hef="kernel/cgroup_freezer.c#L134" id2>L63" cla2ss="line" namon>L63">v 6233/a>26      enumv3aef="kernel/cgroup_freezer.c#L44" idn2>L64" cla2ss="line" namon>L64">v 6243/a>26      3a href="+code=bool" cck_in/a>();a>rq="sref">state3/ak_in/a>();a>rqmp;3a href="+code=freezer" class="sref">freezer3/a>->3a href="+code=lock" class="sref">lock3/a>); L65">v 6253/a>26      3a href="+code=freezerfreezer class="sref">rcu_reafreezer classmp;3aref="kernel/cgroup_freezer.c#L140" id2LL146" cl2ss="line" namon>L16">v 1233/a>26a href="kernel/cgroup_freezer.c#L87" idn2>L67" cla2ss="line" namon>L67">v 6273/a>26      3a href="+code=state" ceq_puts="sref">css3/a>ceq_putsructv="+code=cgroup"m="sref">state3/mructev="+code=freezer" class/a> 3a3/a>s="sref">freezer_subsys3/> 3a3/a>sruct[="+code=state" class="sref">state3/a> =v3a h]ref="kernel/cgroup_freezer.c#L140" id2LL148" cl2ss="line" namon>L68">v 6283/a>26      3a href="+code=ret" clceq_puts="sref">kzallocceq_putsructv="+code=cgroup"m="sref">state3/mructev=ass="comment/a>ass=>take \ take  L69">v 6293/a>2       3spa	 c3a href0ef="kernel/cgroup_freezer.c#L134" id2>L70" cla2ss="line" namon>L70">v 7203/a>27a hreef="kernel/cgroup_freezer.c#L44" idn2>L71" cla2ss="line" namon>L71">v 7213/a>27pa	 cf="kernel/cgroup_freezer.c#L134" id2>L72" cla2ss="line" namon>L72">v 7223/a>27pa	 c3a hrefinef="+code=freezertry_tor.c#L13_ class="sref">cgroup3try_tor.c#L13_ classructv3a href="+code=cgroup" class="sref">cgroup3/a> *3a href="+code=cgroup" class="sref">cgroup3/a> *3a hrev3a href="+code=cgroup_" class="sref">freezer3/a> *3a href="+code=freezer" class="sref">freezer3/a>; L73" cla2ss="line" namon>L73">v 7233/a>27pa	 cef="kernel/cgroup_freezer.c#L26" idn>>L74" cla2ss="line" namon>L74">v 7243/a>27      3a href3a href="+code=cgroup_subsys_r st="sref">cgroup_freezerr st     ="+code=cgroup_ss="sref">spin_loiL75" cla2ss="line" namon>L75">v 7253/a>275            3a href="+code=freezerruct" class="sref">task_struct3/a> *3a href="+code=task" class="sref">task3/a>) L16" cla2ss="line" namon>L76">v 7263/a>276            undeliedfinef="+code=freezernum3/chtr.c#L13_now="sref">bool3/anum3/chtr.c#L13_now3a href0ef="kernel/cgroup_freezer.c#L134" id2>L67" cla2ss="line" namon>L17">v 1233/a>27a href="kernel/cgroup_freezer.c#L148" id2>L78" cla2ss="line" namon>L78">v 7283/a>27      3a href="+code=ret" clfreezerr st_/spa	="sref">cgroup_freezerr st_/spa	 href="+code=task" c class="sref">cgroup3/a> *3a hrea href="+code=freezerss="sref">spin_loiL79" cla2ss="line" namon>L79">v 7293/a>27      3spa	 cwhpa	i(f="+code=task" class="sref">task3/a>)->3ref="+code=cgroup_freezerr st_nexu="sref">cgroup_freezerr st_nexu href="+code=task" c class="sref">cgroup3/a> *3a hrea href="+code=freezerss="sref">spin_loi>L80" cla2ss="line" namon>L80">v 82vala>280             return  href="+code=freezer" clas_lass="sref">task3/a" clas_lass href="+code=task" class="sref">task3/a>)->3aef="kernel/cgroup_freezer.c#L52" idn2>L81" cla2ss="line" namon>L81">v 8213/a>28              3a href re hrefcontinueef="kernel/cgroup_freezer.c#L140" id2>L72" cla2ss="line" namon>L82">v 8223/a>28              structvhref="+code=freezeris_eezer3/ozen_enough="sref">bool3/ais_eezer3/ozen_enoughructv="+code=cgroup"lass="sref">task3/a>) L73" cla2ss="line" namon>L83">v 8233/a>28      enumv3aaaaaaaaa re hrefcontinueef="kernel/cgroup_freezer.c#L140" id2>L74" cla2ss="line" namon>L84">v 8243/a>284             return  href="+code=freezer" claass="sref">cgroup_" claass href="+code=cgroup"lass="sref">task3/a>) cgroup3" class_should ckisructv="+code=cgroup"lass="sref">task3/a>) L75" cla2ss="line" namon>L85">v 8253/a>285             return  3a href="+code=ret" clnum3/chtr.c#L13_now="sref">bool3/anum3/chtr.c#L13_now3a h++ef="kernel/cgroup_freezer.c#L140" id2>L86" cla2ss="line" namon>L86">v 8263/a>28      if (!3a}f="kernel/cgroup_freezer.c#L140" id2>L67" cla2ss="line" namon>L87">v 8273/a>28      3a href="+code=CGROUP_freezerr st_ens="sref">freezerfreezerr st_ens href="+code=task" c class="sref">cgroup3/a> *3a hrea href="+code=freezerss="sref">spin_loiL88" cla2ss="line" namon>L88">v 8283/a>28a href="kernel/cgroup_freezer.c#L139" id2>L89" cla2ss="line" namon>L89">v 8293/a>28      3spa	 c3a href="+code=freezernum3/chtr.c#L13_now="sref">bool3/anum3/chtr.c#L13_now3a hr?ff="+code=ENOMEM" BUSY="sref">ENOMEM3/BUSYa hr :f0ef="kernel/cgroup_freezer.c#L134" id2>L90" cla2ss="line" namon>L90">v 92vala>29a hreef="kernel/cgroup_freezer.c#L44" idn2>L81" cla2ss="line" namon>L91">v 9213/a>29pa	 cf="kernel/cgroup_freezer.c#L134" id2>L92" cla2ss="line" namon>L92">v 9223/a>29pa	 c3a href href="+code=freezerun.c#L13_ class="sref">cgroup3un.c#L13_ classructv3a href="+code=cgroup" class="sref">cgroup3/a> *3a href="+code=cgroup" class="sref">cgroup3/a> *3a hrev3a href="+code=cgroup_" class="sref">freezer3/a> *3a href="+code=freezer" class="sref">freezer3/a>; L73" cla2ss="line" namon>L93">v 9233/a>29pa	 cef="kernel/cgroup_freezer.c#L26" idn>>L84" cla2ss="line" namon>L94">v 9243/a>29      3a href3a href="+code=cgroup_subsys_r st="sref">cgroup_freezerr st     ="+code=cgroup_ss="sref">spin_loiL95" cla2ss="line" namon>L95">v 9253/a>295            3a href="+code=freezerruct" class="sref">task_struct3/a> *3a href="+code=task" class="sref">task3/a>) L96" cla2ss="line" namon>L96">v 9263/a>29a href="kernel/cgroup_freezer.c#L87" idn2>L97" cla2ss="line" namon>L97">v 9273/a>29      3a href="+code=state" freezerr st_/spa	="sref">cgroup_freezerr st_/spa	 href="+code=task" c class="sref">cgroup3/a> *3a hrea href="+code=freezerss="sref">spin_loiL88" cla2ss="line" namon>L98">v 9283/a>29      3a hrefwhpa	i(f="+code=task" class="sref">task3/a>)->3ref="+code=cgroup_freezerr st_nexu="sref">cgroup_freezerr st_nexu href="+code=task" c class="sref">cgroup3/a> *3a hrea href="+code=freezerss="sref">spin_loiL89" cla2ss="line" namon>L99">v 9293/a>29              re href="+code=CGsregrtask(), pre="sref">spin_lotask(), preructv="+code=cgroup"lass="sref">task3/a>) L100" cl3ss="line" namon>L100">v1303/a>30      3spa	 cl"+code=CGROUP_freezerr st_ens="sref">freezerfreezerr st_ens href="+code=task" c class="sref">cgroup3/a> *3a hrea href="+code=freezerss="sref">spin_loiL101" cl3ss="line" namon>L101">v1313/a>30 hrefef="kernel/cgroup_freezer.c#L143" id3>L102" cl3ss="line" namon>L102">v1323/a>30L103" cl3ss="line" namon>L103">v1333/a>3spa	 c3a hrefinef="+code=freezer" classta hngt class="sref">freezer_state3/a hngt classructv3a href="+code=cgroup" class="sref">cgroup3/a> *3a href="+code=cgroup" class="sref">cgroup3/a> *3a href="kernel/cgroup_freezer.c#L143" id3>4103" cl3ss="line" namon>L94">v 9343/a>304             return                  href="+code=freezer_state" class="sref">freezer_state3/a> 3a href="+code=state" goal class="sref">freezergoal classa href="kernel/cgroup_freezer.c#L52" idn3>L105" cl3ss="line" namon>L105">v1353/a>30L106">v1363/a>30      structv3a href="+code=freezer" class="sref">freezer3/a> *3a href="+code=freezer" class="sref">freezer3/a> =v3a hef="kernel/cgroup_freezer.c#L140" id3>726" cla3ss="line" namon>L97">v 9373/a>30      3a hrefinef="+code=freezer3a vas="sref">bool3/a3a vas3a href0ef="kernel/cgroup_freezer.c#L134" id3>L108" cl3ss="line" namon>L108">v1383/a>30a href="kernel/cgroup_freezer.c#L139" id3>L29" cla3ss="line" namon>L109">v1393/a>30      3a href="+code=spin_lo" class="sref">freezer3/a> =v3a href="+code=kzallocfreezer" class="sref">cgroup_freezer3/a>(3a href="+code=cgroup" class="sref">cgroup3/a> *3a hreef="kernel/cgroup_freezer.c#L54" idn3>L110" cl3ss="line" namon>L110">v13vala>31a href="kernel/cgroup_freezer.c#L61" idn3>L111" cl3ss="line" namon>L111">v1313/a>311     3a href="+code=bool" cck_init3/a>rq="sref">state3/ak_init3/a>rqmp;3a href="+code=freezer" class="sref">freezer3/a>->3a href="+code=lock" class="sref">lock3/a>); L112" cl3ss="line" namon>L112">v1323/a>31L113" cl3ss="line" namon>L113">v1333/a>313     3a href="+code=state" upds3/aif_3/ozen="sref">freezerupds3/aif_3/ozenructv="+code=cgroup" class="sref">cgroup3/a> *3a hrev="+code=freezer" class="sref">freezer3/a>; L114" cl3ss="line" namon>L114">v1343/a>31a href="kernel/cgroup_freezer.c#L85" idn3>L115" cl3ss="line" namon>L115">v1353/a>315            3witchef="+code=freezergoal class="sref">freezergoal classa hreref="kernel/cgroup_freezer.c#L26" idn3>L116" cl3ss="line" namon>L116">v1363/a>31      structvcasef="+code=CGROUP_THAWED" class="sref">CGROUP_THAWED3/a>) 726" cla3ss="line" namon>L117">v1373/a>31              return  hre="+code=state" " class="sref">freezer3/a>) state3/a> =v3a hhref="+code=CGROUP_THAWED" class="sref">CGROUP_THAWED3/a>) L118" cl3ss="line" namon>L118">v1383/a>31              structv return ="+code=ret" cloup2v v3/s="sref">kzallocoup2v v3/smp;3a href="+code=freezer/spa	 ng3/a>(st_cns="sref">spin_locspa	 ng3/a>(st_cnsL29" cla3ss="line" namon>L119">v1393/a>31              re href="+code=CGsregr" class="sref">freezer3/a>) state3/a> =v3a hhef="+code=CGROUP_THAWED" class="sref">CGROUP_THAWED3/a>; L20" cla3ss="line" namon>L20">v 23vala>320             return ="+code=freezerun.c#L13_ class="sref">cgroup3un.c#L13_ classructv="+code=cgroup" class="sref">cgroup3/a> *3a hrev="+code=freezer" class="sref">freezer3/a>; L21" cla3ss="line" namon>L21">v 2313/a>32              3a hrefbreakef="kernel/cgroup_freezer.c#L134" id3>L112" cl3ss="line" namon>L22">v 2333/a>32      structvcasef="+code=CGROUP_THAWED" class="sref">CGROUP_FROZEN3/a>; L23" cla3ss="line" namon>L23">v 2333/a>32      enumv3aaaaaaaaa hre="+code=cgroup"" class="sref">freezer3/a>) state3/a> =v3a hreef="+code=CGROUP_FROZEN" class="sref">CGROUP_THAWED3/a>) L24" cla3ss="line" namon>L24">v 2343/a>324             return         ="+code=ret" cloup2v vins="sref">kzallocoup2v vinsmp;3a href="+code=freezer/spa	 ng3/a>(st_cns="sref">spin_locspa	 ng3/a>(st_cnsL115" cl3ss="line" namon>L25">v 2353/a>325             return ="+code=ret" cl" class="sref">freezer3/a>) state3/a> =v3a hhef="+code=CGROUP_THAWED" c class="sref">CGROUP_FREEZING3/a> ||v3a ef="kernel/cgroup_freezer.c#L147" id3>L116" cl3ss="line" namon>L26">v 2363/a>326             return ="+code=freezer3a vas="sref">bool3/a3a vas3a href="+code=cgroup"lry_tor.c#L13_ class="sref">cgroup3try_tor.c#L13_ classructv="+code=cgroup" class="sref">cgroup3/a> *3a hrev="+code=freezer" class="sref">freezer3/a>; 726" cla3ss="line" namon>L27">v 2373/a>32              return breakef="kernel/cgroup_freezer.c#L134" id3>L118" cl3ss="line" namon>L28">v 2383/a>3       3a hrefdefault:f="kernel/cgroup_freezer.c#L26" idn3>L29" cla3ss="line" namon>L29">v 2393/a>32              re href="+code=CGsregrBUs="sref">CGROUP_BUsructveef="kernel/cgroup_freezer.c#L134" id3>L130" cl3ss="line" namon>L130">v13vala>330            ef="kernel/cgroup_freezer.c#L143" id3>L131" cl3ss="line" namon>L131">v1313/a>33pa	 cf="kernel/cgroup_freezer.c#L134" id3>L22" cla3ss="line" namon>L132">v1323/a>3       structv="+code=bool" cck_in/a>();a>rq="sref">state3/ak_in/a>();a>rqmp;3a href="+code=freezer" class="sref">freezer3/a>->3a href="+code=lock" class="sref">lock3/a>); L133" cl3ss="line" namon>L133">v1333/a>33a href="kernel/cgroup_freezer.c#L144" id3>L134" cl3ss="line" namon>L134">v1343/a>33      3a href3a href="+code=freezer3a vas="sref">bool3/a3a vas3a hef="kernel/cgroup_freezer.c#L140" id3>L115" cl3ss="line" namon>L135">v1353/a>335    ef="kernel/cgroup_freezer.c#L143" id3>L116" cl3ss="line" namon>L136">v1363/a>33a href="kernel/cgroup_freezer.c#L87" idn3>L27" cla3ss="line" namon>L137">v1373/a>3      3a hrefinef="+code=freezer" classtock c="sref">freezer_state3/ock cructv3a href="+code=cgroup" class="sref">cgroup3/a> *3a href="+code=cgroup" class="sref">cgroup3/a> *3a href="kernel/cgroup_freezer.c#L143" id3>L28" cla3ss="line" namon>L138">v1383/a>3               structv return v3a href="+code=cgroup_sftyps="sref">state3/sftypsa href="+code=cgroup" fu="sref">cgroup_ffta href="kernel/cgroup_freezer.c#L29" idn3>L139" cl3ss="line" namon>L139">v1393/a>33              re hreffffffffffcor *3charef="+code=cgroup"buffss="sref">freezerbuffssa href="kernel/cgroup_freezer.c#L149" id3>L140" cl3ss="line" namon>L140">v1303/a>340    ef="kernel/cgroup_freezer.c#L26" idn3>L141" cl3ss="line" namon>L141">v1313/a>3       return inef="+code=freezer3a vas="sref">bool3/a3a vas3a hef="kernel/cgroup_freezer.c#L140" id3>L142" cl3ss="line" namon>L142">v1323/a>34      structv href="+code=freezer_state" class="sref">freezer_state3/a> 3a href="+code=state" goal class="sref">freezergoal classa href="kernel/cgroup_freezer.c#L140" id3>L133" cl3ss="line" namon>L143">v1333/a>34a href="kernel/cgroup_freezer.c#L144" id3>L144" cl3ss="line" namon>L144">v1343/a>34      3a href hre="+code=state" 3a cms="sref">cgroup33a cmsructv="+code=cgroup"buffss="sref">freezerbuffssa hrev="+code=freezer" class/a> 3a3/a>s="sref">freezer_subsys3/> 3a3/a>sruct[="+code=state" FROZEN" class="sref">CGROUP_THAWED3/a>) L115" cl3ss="line" namon>L145">v1353/a>345             return ="+code=ret" clgoal class="sref">freezergoal classa hrhef="+code=CGROUP_THAWED" class="sref">CGROUP_THAWED3/a>; L146" cl3ss="line" namon>L146">v1363/a>346            e.3i  hre="+code=state" 3a cms="sref">cgroup33a cmsructv="+code=cgroup"buffss="sref">freezerbuffssa hrev="+code=freezer" class/a> 3a3/a>s="sref">freezer_subsys3/> 3a3/a>sruct[="+code=state" FROZEN" class="sref">CGROUP_FROZEN3/a>; L27" cla3ss="line" namon>L147">v1373/a>34              return ="+code=ret" clgoal class="sref">freezergoal classa hrhef="+code=CGROUP_THAWED" class="sref">CGROUP_FROZEN3/a>; L148" cl3ss="line" namon>L148">v1383/a>348            e.3if="kernel/cgroup_freezer.c#L59" idn3>L139" cl3ss="line" namon>L149">v1393/a>34              re href3a hreff="+code=ENOMEM" INVAL="sref">CGROUP_ INVALa href="kernel/cgroup_freezer.c#L59" idn3>L50" cla3ss="line" namon>L50">v 5303/a>35a href="kernel/cgroup_freezer.c#L61" idn3>L141" cl3ss="line" namon>L51">v 5313/a>351     3a href href="+code=freezerfreezer>();ainsi_class="sref">cgroup3/a> *3r>();ainsi_class href="+code=task" c class="sref">cgroup3/a> *3a hreef="kernel/cgroup_freezer.c#L52" idn3>L52" cla3ss="line" namon>L52">v 5323/a>35              structv3a hreff="+code=ENOMEM" NODEV="sref">cgroup3 NODEVa href="kernel/cgroup_freezer.c#L54" idn3>L143" cl3ss="line" namon>L53">v 5333/a>353     3a href="+code=state" 3a vas="sref">bool3/a3a vas3a href="+code=cgroup"" classta hngt class="sref">freezer_state3/a hngt classructv="+code=cgroup" class="sref">cgroup3/a> *3a hrev="+code=freezergoal class="sref">freezergoal classa hreef="kernel/cgroup_freezer.c#L54" idn3>L144" cl3ss="line" namon>L54">v 5343/a>35      3a href="+code=bool" csubsys_ class="sref">rcu_reafreezer classmp;3aref="kernel/cgroup_freezer.c#L140" id3>L55" cla3ss="line" namon>L55">v 5353/a>35      3a href3a href="+code=freezer3a vas="sref">bool3/a3a vas3a hef="kernel/cgroup_freezer.c#L140" id3>L146" cl3ss="line" namon>L56">v 5363/a>3      ef="kernel/cgroup_freezer.c#L143" id3>L147" cl3ss="line" namon>L57">v 5373/a>35a href="kernel/cgroup_freezer.c#L148" id3>L148" cl3ss="line" namon>L58">v 5383/a>35     3a href3a href="+code=cgroup_sftyps="sref">state3/sftypsa hre="+code=cgroup""iles="sref">freezer_ilesruct[]refef="kernel/cgroup_freezer.c#L26" idn3>L149" cl3ss="line" namon>L59">v 5393/a>35             ef="kernel/cgroup_freezer.c#L26" idn3>L60" cla3ss="line" namon>L60">v 6303/a>360             return .="+code=cgroup"60">="sref">freezer60">3a href=ass="comment/a>ass=>tquot;classtquot; L61" cla3ss="line" namon>L61">v 6313/a>36              3a href.="+code=cgroup"flags="sref">freezer_lagsa hrhef="+code=CGROUP_TFTYPE_NOT_ON_ROOT="sref">CGROUP_FFTYPE_NOT_ON_ROOTa href="kernel/cgroup_freezer.c#L29" idn3>L52" cla3ss="line" namon>L62">v 6323/a>36              structv.="+code=cgroup"lock3ceq_/a>ass="sref">bool3/a3ack3ceq_/a>ass3a href="+code=cgroup"" classtlock="sref">freezer_state3/lockructef="kernel/cgroup_freezer.c#L29" idn3>L143" cl3ss="line" namon>L63">v 6333/a>36      enumv3aaaaaaaaa.="+code=cgroup"ock c_/a>ass="sref">bool3/aock c_/a>ass3a href="+code=cgroup"" classtock c="sref">freezer_state3/ock cructef="kernel/cgroup_freezer.c#L29" idn3>L144" cl3ss="line" namon>L64">v 6343/a>36      3a href}ef="kernel/cgroup_freezer.c#L29" idn3>L55" cla3ss="line" namon>L65">v 6353/a>36      3a href{ } href=ass="string"">/*3/spa	 tterminassa*  L16">v 1333/a>36a hre}ef="kernel/cgroup_freezer.c#L140" id3>L67" cla3ss="line" namon>L67">v 6373/a>36a href="kernel/cgroup_freezer.c#L148" id3LL148" cl3ss="line" namon>L68">v 6383/a>36     3a href="+code=cgroup_subsys_subsys="sref">css3/a>;ubsys_subsysa hre="+code=cgroup""subsys3/ubsys="sref">css3/a>"subsys3/ubsys3a hrefef="kernel/cgroup_freezer.c#L26" idn3>L149" cl3ss="line" namon>L69">v 6393/a>3       3spa	 c.="+code=cgroup"60">="sref">freezer60">3a hrrrrrrrrrrref=ass="comment/a>ass=>tquot;.c#L26"tquot; L70" cla3ss="line" namon>L70">v 7303/a>370     3spa	 c.="+code=cgroup"cloc c="sref">freezercloc c3a hrrrrrrrrref="+code=cgroup"" classtaloc c="sref">freezer" classtaloc cructef="kernel/cgroup_freezer.c#L29" idn3>L71" cla3ss="line" namon>L71">v 7313/a>371     3spa	 c.="+code=cgroup"de/a>oy="sref">freezerde/a>oy     3spa	 cef="+code=cgroup"" classtde/a>oy="sref">freezer" classtde/a>oyructef="kernel/cgroup_freezer.c#L29" idn3>L52" cla3ss="line" namon>L72">v 7323/a>372     3spa	 c.="+code=cgroup"/ubsys_ik="sref">freezer/ubsys_ik     3spa	ef="+code=cgroup"" classt/ubsys_ik="sref">freezer" classt/ubsys_ikructef="kernel/cgroup_freezer.c#L29" idn3>L143" cl3ss="line" namon>L73">v 7333/a>373     3spa	 c.="+code=cgroup"can_attach="sref">bool3/acan_attach     3spaef="+code=cgroup"" classtaan_attach="sref">bool3/a" classtaan_attachructef="kernel/cgroup_freezer.c#L29" idn3>L144" cl3ss="line" namon>L74">v 7343/a>37      3a href.="+code=cgroup"fors="sref">task3/a"ors3a hrrrrrrrrrrref="+code=cgroup"" classtfors="sref">task3/a" classtforsructef="kernel/cgroup_freezer.c#L29" idn3>L55" cla3ss="line" namon>L75">v 7353/a>375            .="+code=cgroup"base_sftypss="sref">css3/a>base_sftypss       ef="+code=cgroup""iles="sref">freezer_ilesructef="kernel/cgroup_freezer.c#L29" idn3>L146" cl3ss="line" namon>L76">v 7363/a>37a hre}ef="kernel/cgroup_freezer.c#L140" id3>L67" cla3ss="line" namon>L17">v 1333/a>37a hre


t aroriginal LXR software byroup ="kernel/http://sourceforge.net/projects/lxt=>LXR ">/*unityructerouis experi*3/sal version byr="kernel/mailto:lxt@amoux.no">lxt@amoux.noruct. lxt.amoux.no kindly hosted.byr="kernel/http://www.redpill-amopro.no">Redpill Lmopro ASructerprovider of Lmouxfcor ultk() and operare ca servicea since>19 5.