linux/fs/ocfs2/locks.c
<<
ct> img src="../.static/gfx/right.png" alt=">>">ct ct> < ct> input typvalhidden" namvalnavtarget" ion val">ct> input typvaltext" namvalsearch" idalsearch">ct> buttopttypvalsubmit">Search ct> P4nfspan> a>ct divsp ct input typvalhidden" namvalajax_lookup" idalajax_lookup" ion val">c div class="headingbottom"> div idalsearch_results" class="search_results"pansp divsp div idalcontent">p div idalfile_contents"fp >1 a> /* -*- mode: c; c-basic-offset: 8; -*- p >2 a> * vim: noex p >3 a> * p >4 a> * locks.c p >5 a> * p >6 a> * User p >7 a> * p >8 a> * Copyright (C) 2007 Oracle. All rights reserved. p >9 a> * p .16.a> * This program is free software; you cp 11 a> * modify it under the terms of the GNU General Public p 12 a> * License as published by the Free Software Foundap 13 a> * ver p 14 a> * p 15 a> * This program is distributed in the hope that it will be useful, p 16 a> * but WITHOUT ANY WARRANTY; without even the implied warranty of p 17 a> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU p 18 a> * General Public License < more details. p 19 a> * p 216.a> * You should have received a copy of the GNU General Public p 21 a> * License along with this program; if not, write to the p 22 a> * Free Software Foundap 23 a> * Bostop, MA 021110-1307, USA. p 24 a> */ p 25 a>p< h4nf="fs/ocfs2/locks.c#L26" idalL26" class="line" namvalL26">p 26 a>#include << h4nf="include/linux/fs.h" class="fref">linux/fs.h a>>p< h4nf="fs/ocfs2/locks.c#L27" idalL27" class="line" namvalL27">p 27 a>#include << h4nf="include/linux/fcntl.h" class="fref">linux/fcntl.h a>>p< h4nf="fs/ocfs2/locks.c#L28" idalL28" class="line" namvalL28">p 28 a>p< h4nf="fs/ocfs2/locks.c#L29" idalL29" class="line" namvalL29">p 29 a>#include << h4nf="include/cluster/masklog.h" class="fref">cluster/masklog.h a>>p< h4nf="fs/ocfs2/locks.c#L30" idalL30" class="line" namvalL30">p 30 a>p< h4nf="fs/ocfs2/locks.c#L31" idalL31" class="line" namvalL31">p 31 a>#include "< h4nf="fs/ocfs2/ocfs2.h" class="fref">ocfs2.h a>"p< h4nf="fs/ocfs2/locks.c#L32" idalL32" class="line" namvalL32">p 32 a>p< h4nf="fs/ocfs2/locks.c#L33" idalL33" class="line" namvalL33">p 33 a>#include "< h4nf="fs/ocfs2/dlmglue.h" class="fref">dlmglue.h a>"p< h4nf="fs/ocfs2/locks.c#L34" idalL34" class="line" namvalL34">p 34 a>#include "< h4nf="fs/ocfs2/file.h" class="fref">file.h a>"p< h4nf="fs/ocfs2/locks.c#L35" idalL35" class="line" namvalL35">p 35 a>#include "< h4nf="fs/ocfs2/inode.h" class="fref">inode.h a>"p< h4nf="fs/ocfs2/locks.c#L36" idalL36" class="line" namvalL36">p 36 a>#include "< h4nf="fs/ocfs2/locks.h" class="fref">locks.h a>"p< h4nf="fs/ocfs2/locks.c#L37" idalL37" class="line" namvalL37">p 37 a>p< h4nf="fs/ocfs2/locks.c#L38" idalL38" class="line" namvalL38">p 38 a>static intmA h4nf="+code=ocfs2_do_flock" class="sref">ocfs2_do_flock a>(structmA h4nf="+code=file" class="sref">file a> * h4nf="+code=file" class="sref">file a>, structmA h4nf="+code=inode" class="sref">inode a> * h4nf="+code=inode" class="sref">inode a>,p< h4nf="fs/ocfs2/locks.c#L39" idalL39" class="line" namvalL39">p 39 a> intmA h4nf="+code=cmd" class="sref">cmd a>, structmA h4nf="+code=file_lock" class="sref">file_lock a> * h4nf="+code=fl" class="sref">fl a>)p< h4nf="fs/ocfs2/locks.c#L40" idalL40" class="line" namvalL40">p 40 a>{p< h4nf="fs/ocfs2/locks.c#L41" idalL41" class="line" namvalL41">p 41 a> intmA h4nf="+code=ret" class="sref">ret a> = 0,mA h4nf="+code=level" class="sref">level a> = 0,mA h4nf="+code=trylock" class="sref">trylock a> = 0;p< h4nf="fs/ocfs2/locks.c#L42" idalL42" class="line" namvalL42">p 42 a> structmA h4nf="+code=ocfs2_file_private" class="sref">ocfs2_file_private a> * h4nf="+code=fp" class="sref">fp a> = h4nf="+code=file" class="sref">file a>-> h4nf="+code=private_daprivate_da;p< h4nf="fs/ocfs2/locks.c#L43" idalL43" class="line" namvalL43">p 43 a> structmA h4nf="+code=ocfs2_lock_res" class="sref">ocfs2_lock_res a> * h4nf="+code=lockres" class="sref">lockres a> = & h4nf="+code=fp" class="sref">fp a>-> h4nf="+code=fp_flock" class="sref">fp_flock a>;p< h4nf="fs/ocfs2/locks.c#L44" idalL44" class="line" namvalL44">p 44 a>p< h4nf="fs/ocfs2/locks.c#L45" idalL45" class="line" namvalL45">p 45 a> if ( h4nf="+code=fl" class="sref">fl a>-> h4nf="+code=fl_typv" class="sref">fl_typv a> == h4nf="+code=F_WRLCK" class="sref">F_WRLCK a>)p< h4nf="fs/ocfs2/locks.c#L46" idalL46" class="line" namvalL46">p 46 a> A h4nf="+code=level" class="sref">level a> = 1;p< h4nf="fs/ocfs2/locks.c#L47" idalL47" class="line" namvalL47">p 47 a> if (!A h4nf="+code=IS_SETLKW" class="sref">IS_SETLKW a>(A h4nf="+code=cmd" class="sref">cmd a>))p< h4nf="fs/ocfs2/locks.c#L48" idalL48" class="line" namvalL48">p 48 a> A h4nf="+code=trylock" class="sref">trylock a> = 1;p< h4nf="fs/ocfs2/locks.c#L49" idalL49" class="line" namvalL49">p 49 a>p< h4nf="fs/ocfs2/locks.c#L50" idalL50" class="line" namvalL50">p 50 a> A h4nf="+code=mutex_lock" class="sref">mutex_lock a>(& h4nf="+code=fp" class="sref">fp a>-> h4nf="+code=fp_mutex" class="sref">fp_mutex a>);p< h4nf="fs/ocfs2/locks.c#L51" idalL51" class="line" namvalL51">p 51 a>p< h4nf="fs/ocfs2/locks.c#L52" idalL52" class="line" namvalL52">p 52 a> if ( h4nf="+code=lockres" class="sref">lockres a>-> h4nf="+code=l_flags" class="sref">l_flags a> & A h4nf="+code=OCFS2_LOCK_ATTACHED" class="sref">OCFS2_LOCK_ATTACHED a> &&p< h4nf="fs/ocfs2/locks.c#L53" idalL53" class="line" namvalL53">p 53 a> h4nf="+code=lockres" class="sref">lockres a>-> h4nf="+code=l_level" class="sref">l_level a> > h4nf="+code=LKM_NLMODE" class="sref">LKM_NLMODE a>) {p< h4nf="fs/ocfs2/locks.c#L54" idalL54" class="line" namvalL54">p 54 a> intmA h4nf="+code=old_level" class="sref">old_level a> = 0;p< h4nf="fs/ocfs2/locks.c#L55" idalL55" class="line" namvalL55">p 55 a>p< h4nf="fs/ocfs2/locks.c#L56" idalL56" class="line" namvalL56">p 56 a> if ( h4nf="+code=lockres" class="sref">lockres a>-> h4nf="+code=l_level" class="sref">l_level a> == h4nf="+code=LKM_EXMODE" class="sref">LKM_EXMODE a>)p< h4nf="fs/ocfs2/locks.c#L57" idalL57" class="line" namvalL57">p 57 a> h4nf="+code=old_level" class="sref">old_level a> = 1;p< h4nf="fs/ocfs2/locks.c#L58" idalL58" class="line" namvalL58">p 58 a>p< h4nf="fs/ocfs2/locks.c#L59" idalL59" class="line" namvalL59">p 59 a> if ( h4nf="+code=level" class="sref">level a> == h4nf="+code=old_level" class="sref">old_level a>)p< h4nf="fs/ocfs2/locks.c#L60" idalL60" class="line" namvalL60">p 60 a> goto h4nf="+code=out" class="sref">out a>;p< h4nf="fs/ocfs2/locks.c#L61" idalL61" class="line" namvalL61">p 61 a>p< h4nf="fs/ocfs2/locks.c#L62" idalL62" class="line" namvalL62">p 62 a> A /* p 63 a> * Converting p 64 a> * atomic, so we cp 65 a> * here p 66 a> * level. p 67 a> */ p 68 a>p< h4nf="fs/ocfs2/locks.c#L69" idalL69" class="line" namvalL69">p 69 a> h4nf="+code=flock_lock_file_wait" class="sref">flock_lock_file_wait a>(A h4nf="+code=file" class="sref">file a>,p< h4nf="fs/ocfs2/locks.c#L70" idalL70" class="line" namvalL70">p 70 a> &(structmA h4nf="+code=file_lock" class="sref">file_lock a>){. h4nf="+code=fl_typv" class="sref">fl_typv a> = h4nf="+code=F_UNLCK" class="sref">F_UNLCK a>});p< h4nf="fs/ocfs2/locks.c#L71" idalL71" class="line" namvalL71">p 71 a>p< h4nf="fs/ocfs2/locks.c#L72" idalL72" class="line" namvalL72">p 72 a> A h4nf="+code=ocfs2_file_unlock" class="sref">ocfs2_file_unlock a>(A h4nf="+code=file" class="sref">file a>);p< h4nf="fs/ocfs2/locks.c#L73" idalL73" class="line" namvalL73">p 73 a> }p< h4nf="fs/ocfs2/locks.c#L74" idalL74" class="line" namvalL74">p 74 a>p< h4nf="fs/ocfs2/locks.c#L75" idalL75" class="line" namvalL75">p 75 a> A h4nf="+code=ret" class="sref">ret a> = A h4nf="+code=ocfs2_file_lock" class="sref">ocfs2_file_lock a>(A h4nf="+code=file" class="sref">file a>,mA h4nf="+code=level" class="sref">level a>,mA h4nf="+code=trylock" class="sref">trylock a>);p< h4nf="fs/ocfs2/locks.c#L76" idalL76" class="line" namvalL76">p 76 a> if ( h4nf="+code=ret" class="sref">ret a>) {p< h4nf="fs/ocfs2/locks.c#L77" idalL77" class="line" namvalL77">p 77 a> if ( h4nf="+code=ret" class="sref">ret a> == - h4nf="+code=EAGAIN" class="sref">EAGAIN a> &&mA h4nf="+code=trylock" class="sref">trylock a>)p< h4nf="fs/ocfs2/locks.c#L78" idalL78" class="line" namvalL78">p 78 a> A h4nf="+code=ret" class="sref">ret a> = - h4nf="+code=EWOULDBLOCK" class="sref">EWOULDBLOCK a>;p< h4nf="fs/ocfs2/locks.c#L79" idalL79" class="line" namvalL79">p 79 a> elsep< h4nf="fs/ocfs2/locks.c#L80" idalL80" class="line" namvalL80">p 80 a> A h4nf="+code=mlog_errno" class="sref">mlog_errno a>(A h4nf="+code=ret" class="sref">ret a>);p< h4nf="fs/ocfs2/locks.c#L81" idalL81" class="line" namvalL81">p 81 a> goto h4nf="+code=out" class="sref">out a>;p< h4nf="fs/ocfs2/locks.c#L82" idalL82" class="line" namvalL82">p 82 a> }p< h4nf="fs/ocfs2/locks.c#L83" idalL83" class="line" namvalL83">p 83 a>p< h4nf="fs/ocfs2/locks.c#L84" idalL84" class="line" namvalL84">p 84 a> A h4nf="+code=ret" class="sref">ret a> = A h4nf="+code=flock_lock_file_wait" class="sref">flock_lock_file_wait a>(A h4nf="+code=file" class="sref">file a>, A h4nf="+code=fl" class="sref">fl a>);p< h4nf="fs/ocfs2/locks.c#L85" idalL85" class="line" namvalL85">p 85 a>p< h4nf="fs/ocfs2/locks.c#L86" idalL86" class="line" namvalL86">p 86 a> h4nf="+code=out" class="sref">out a>:p< h4nf="fs/ocfs2/locks.c#L87" idalL87" class="line" namvalL87">p 87 a> A h4nf="+code=mutex_unlock" class="sref">mutex_unlock a>(& h4nf="+code=fp" class="sref">fp a>-> h4nf="+code=fp_mutex" class="sref">fp_mutex a>);p< h4nf="fs/ocfs2/locks.c#L88" idalL88" class="line" namvalL88">p 88 a>p< h4nf="fs/ocfs2/locks.c#L89" idalL89" class="line" namvalL89">p 89 a> return A h4nf="+code=ret" class="sref">ret a>;p< h4nf="fs/ocfs2/locks.c#L90" idalL90" class="line" namvalL90">p 90 a>}p< h4nf="fs/ocfs2/locks.c#L91" idalL91" class="line" namvalL91">p 91 a>p< h4nf="fs/ocfs2/locks.c#L92" idalL92" class="line" namvalL92">p 92 a>static intmA h4nf="+code=ocfs2_do_funlock" class="sref">ocfs2_do_funlock a>(structmA h4nf="+code=file" class="sref">file a> * h4nf="+code=file" class="sref">file a>, intmA h4nf="+code=cmd" class="sref">cmd a>, structmA h4nf="+code=file_lock" class="sref">file_lock a> * h4nf="+code=fl" class="sref">fl a>)p< h4nf="fs/ocfs2/locks.c#L93" idalL93" class="line" namvalL93">p 93 a>{p< h4nf="fs/ocfs2/locks.c#L94" idalL94" class="line" namvalL94">p 94 a> intmA h4nf="+code=ret" class="sref">ret a>;p< h4nf="fs/ocfs2/locks.c#L95" idalL95" class="line" namvalL95">p 95 a> structmA h4nf="+code=ocfs2_file_private" class="sref">ocfs2_file_private a> * h4nf="+code=fp" class="sref">fp a> = h4nf="+code=file" class="sref">file a>-> h4nf="+code=private_daprivate_da;p< h4nf="fs/ocfs2/locks.c#L96" idalL96" class="line" namvalL96">p 96 a>p< h4nf="fs/ocfs2/locks.c#L97" idalL97" class="line" namvalL97">p 97 a> A h4nf="+code=mutex_lock" class="sref">mutex_lock a>(& h4nf="+code=fp" class="sref">fp a>-> h4nf="+code=fp_mutex" class="sref">fp_mutex a>);p< h4nf="fs/ocfs2/locks.c#L98" idalL98" class="line" namvalL98">p 98 a> A h4nf="+code=ocfs2_file_unlock" class="sref">ocfs2_file_unlock a>(A h4nf="+code=file" class="sref">file a>);p< h4nf="fs/ocfs2/locks.c#L99" idalL99" class="line" namvalL99">p 99 a> A h4nf="+code=ret" class="sref">ret a> = A h4nf="+code=flock_lock_file_wait" class="sref">flock_lock_file_wait a>(A h4nf="+code=file" class="sref">file a>, A h4nf="+code=fl" class="sref">fl a>);p< h4nf="fs/ocfs2/locks.c#L100" idalL100" class="line" namvalL100">p100 a> A h4nf="+code=mutex_unlock" class="sref">mutex_unlock a>(& h4nf="+code=fp" class="sref">fp a>-> h4nf="+code=fp_mutex" class="sref">fp_mutex a>);p< h4nf="fs/ocfs2/locks.c#L101" idalL101" class="line" namvalL101">p101 a>p< h4nf="fs/ocfs2/locks.c#L102" idalL102" class="line" namvalL102">p102 a> return A h4nf="+code=ret" class="sref">ret a>;p< h4nf="fs/ocfs2/locks.c#L103" idalL103" class="line" namvalL103">p103 a>}p< h4nf="fs/ocfs2/locks.c#L104" idalL104" class="line" namvalL104">p104 a>p< h4nf="fs/ocfs2/locks.c#L105" idalL105" class="line" namvalL105">p105 a> /* p106 a> * Overall flow of ocfs2_flock() was influenced by gfs2_flock(). p107 a> */ p108 a>intmA h4nf="+code=ocfs2_flock" class="sref">ocfs2_flock a>(structmA h4nf="+code=file" class="sref">file a> * h4nf="+code=file" class="sref">file a>, intmA h4nf="+code=cmd" class="sref">cmd a>, structmA h4nf="+code=file_lock" class="sref">file_lock a> * h4nf="+code=fl" class="sref">fl a>)p< h4nf="fs/ocfs2/locks.c#L109" idalL109" class="line" namvalL109">p109 a>{p< h4nf="fs/ocfs2/locks.c#L110" idalL110" class="line" namvalL110">p110 a> structmA h4nf="+code=inode" class="sref">inode a> * h4nf="+code=inode" class="sref">inode a> = h4nf="+code=file" class="sref">file a>-> h4nf="+code=f_mapping" class="sref">f_mapping a>-> h4nf="+code=host" class="sref">host a>;p< h4nf="fs/ocfs2/locks.c#L111" idalL111" class="line" namvalL111">p111 a> structmA h4nf="+code=ocfs2_super" class="sref">ocfs2_super a> * h4nf="+code=osb" class="sref">osb a> = h4nf="+code=OCFS2_SB" class="sref">OCFS2_SB a>(A h4nf="+code=inode" class="sref">inode a>-> h4nf="+code=i_sb" class="sref">i_sb a>);p< h4nf="fs/ocfs2/locks.c#L112" idalL112" class="line" namvalL112">p112 a>p< h4nf="fs/ocfs2/locks.c#L113" idalL113" class="line" namvalL113">p113 a> if (!( h4nf="+code=fl" class="sref">fl a>-> h4nf="+code=fl_flags" class="sref">fl_flags a> & A h4nf="+code=FL_FLOCK" class="sref">FL_FLOCK a>))p< h4nf="fs/ocfs2/locks.c#L114" idalL114" class="line" namvalL114">p114 a> return - h4nf="+code=ENOLCK" class="sref">ENOLCK a>;p< h4nf="fs/ocfs2/locks.c#L115" idalL115" class="line" namvalL115">p115 a> if ( h4nf="+code=__manda__manda(A h4nf="+code=inode" class="sref">inode a>))p< h4nf="fs/ocfs2/locks.c#L116" idalL116" class="line" namvalL116">p116 a> return - h4nf="+code=ENOLCK" class="sref">ENOLCK a>;p< h4nf="fs/ocfs2/locks.c#L117" idalL117" class="line" namvalL117">p117 a>p< h4nf="fs/ocfs2/locks.c#L118" idalL118" class="line" namvalL118">p118 a> if ((A h4nf="+code=osb" class="sref">osb a>-> h4nf="+code=s_mount_opt" class="sref">s_mount_opt a> & A h4nf="+code=OCFS2_MOUNT_LOCALFLOCKS" class="sref">OCFS2_MOUNT_LOCALFLOCKS a>) ||p< h4nf="fs/ocfs2/locks.c#L119" idalL119" class="line" namvalL119">p119 a> A h4nf="+code=ocfs2_mount_local" class="sref">ocfs2_mount_local a>(A h4nf="+code=osb" class="sref">osb a>))p< h4nf="fs/ocfs2/locks.c#L120" idalL120" class="line" namvalL120">p120 a> return A h4nf="+code=flock_lock_file_wait" class="sref">flock_lock_file_wait a>(A h4nf="+code=file" class="sref">file a>, A h4nf="+code=fl" class="sref">fl a>);p< h4nf="fs/ocfs2/locks.c#L121" idalL121" class="line" namvalL121">p121 a>p< h4nf="fs/ocfs2/locks.c#L122" idalL122" class="line" namvalL122">p122 a> if ( h4nf="+code=fl" class="sref">fl a>-> h4nf="+code=fl_typv" class="sref">fl_typv a> == h4nf="+code=F_UNLCK" class="sref">F_UNLCK a>)p< h4nf="fs/ocfs2/locks.c#L123" idalL123" class="line" namvalL123">p123 a> return A h4nf="+code=ocfs2_do_funlock" class="sref">ocfs2_do_funlock a>(A h4nf="+code=file" class="sref">file a>, A h4nf="+code=cmd" class="sref">cmd a>, A h4nf="+code=fl" class="sref">fl a>);p< h4nf="fs/ocfs2/locks.c#L124" idalL124" class="line" namvalL124">p124 a> elsep< h4nf="fs/ocfs2/locks.c#L125" idalL125" class="line" namvalL125">p125 a> return A h4nf="+code=ocfs2_do_flock" class="sref">ocfs2_do_flock a>(A h4nf="+code=file" class="sref">file a>, A h4nf="+code=inode" class="sref">inode a>, A h4nf="+code=cmd" class="sref">cmd a>, A h4nf="+code=fl" class="sref">fl a>);p< h4nf="fs/ocfs2/locks.c#L126" idalL126" class="line" namvalL126">p126 a>}p< h4nf="fs/ocfs2/locks.c#L127" idalL127" class="line" namvalL127">p127 a>p< h4nf="fs/ocfs2/locks.c#L128" idalL128" class="line" namvalL128">p128 a>intmA h4nf="+code=ocfs2_lock" class="sref">ocfs2_lock a>(structmA h4nf="+code=file" class="sref">file a> * h4nf="+code=file" class="sref">file a>, intmA h4nf="+code=cmd" class="sref">cmd a>, structmA h4nf="+code=file_lock" class="sref">file_lock a> * h4nf="+code=fl" class="sref">fl a>)p< h4nf="fs/ocfs2/locks.c#L129" idalL129" class="line" namvalL129">p129 a>{p< h4nf="fs/ocfs2/locks.c#L130" idalL130" class="line" namvalL130">p130 a> structmA h4nf="+code=inode" class="sref">inode a> * h4nf="+code=inode" class="sref">inode a> = h4nf="+code=file" class="sref">file a>-> h4nf="+code=f_mapping" class="sref">f_mapping a>-> h4nf="+code=host" class="sref">host a>;p< h4nf="fs/ocfs2/locks.c#L131" idalL131" class="line" namvalL131">p131 a> structmA h4nf="+code=ocfs2_super" class="sref">ocfs2_super a> * h4nf="+code=osb" class="sref">osb a> = h4nf="+code=OCFS2_SB" class="sref">OCFS2_SB a>(A h4nf="+code=inode" class="sref">inode a>-> h4nf="+code=i_sb" class="sref">i_sb a>);p< h4nf="fs/ocfs2/locks.c#L132" idalL132" class="line" namvalL132">p132 a>p< h4nf="fs/ocfs2/locks.c#L133" idalL133" class="line" namvalL133">p133 a> if (!( h4nf="+code=fl" class="sref">fl a>-> h4nf="+code=fl_flags" class="sref">fl_flags a> & A h4nf="+code=FL_POSIX" class="sref">FL_POSIX a>))p< h4nf="fs/ocfs2/locks.c#L134" idalL134" class="line" namvalL134">p134 a> return - h4nf="+code=ENOLCK" class="sref">ENOLCK a>;p< h4nf="fs/ocfs2/locks.c#L135" idalL135" class="line" namvalL135">p135 a> if ( h4nf="+code=__manda__manda(A h4nf="+code=inode" class="sref">inode a>) &&mA h4nf="+code=fl" class="sref">fl a>-> h4nf="+code=fl_typv" class="sref">fl_typv a> != h4nf="+code=F_UNLCK" class="sref">F_UNLCK a>)p< h4nf="fs/ocfs2/locks.c#L136" idalL136" class="line" namvalL136">p136 a> return - h4nf="+code=ENOLCK" class="sref">ENOLCK a>;p< h4nf="fs/ocfs2/locks.c#L137" idalL137" class="line" namvalL137">p137 a>p< h4nf="fs/ocfs2/locks.c#L138" idalL138" class="line" namvalL138">p138 a> return A h4nf="+code=ocfs2_plock" class="sref">ocfs2_plock a>(A h4nf="+code=osb" class="sref">osb a>-> h4nf="+code=cconn" class="sref">cconn a>, A h4nf="+code=OCFS2_I" class="sref">OCFS2_I a>(A h4nf="+code=inode" class="sref">inode a>)-> h4nf="+code=ip_blkno" class="sref">ip_blkno a>, A h4nf="+code=file" class="sref">file a>, A h4nf="+code=cmd" class="sref">cmd a>, A h4nf="+code=fl" class="sref">fl a>);p< h4nf="fs/ocfs2/locks.c#L139" idalL139" class="line" namvalL139">p139 a>}p< h4nf="fs/ocfs2/locks.c#L140" idalL140" class="line" namvalL140">p140 a> The original LXR software by the < h4nf="http://sourceforge.net/projects/lxr">LXR community a>, this experimental ver lxr@linux.no a>. divsp div class="subfooter"> lxr.linux.no kindly hosted by < h4nf="http://www.redpill-linpro.no">Redpill Linpro AS a>, provider of Linux consulting