sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget%/translations/zh_CN/filesystems/dlmfsmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget%/translations/zh_TW/filesystems/dlmfsmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget%/translations/it_IT/filesystems/dlmfsmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget%/translations/ja_JP/filesystems/dlmfsmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget%/translations/ko_KR/filesystems/dlmfsmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget%/translations/sp_SP/filesystems/dlmfsmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhh?/var/lib/git/docbuild/linux/Documentation/filesystems/dlmfs.rsthKubh)}(h4This data file has been placed in the public domain.h]h4This data file has been placed in the public domain.}hhsbah}(h]h ]h"]h$]h&]hhuh1hhhhhho/srv/docbuild/lib/venvs/build-kernel-docs/lib64/python3.9/site-packages/docutils/parsers/rst/include/isonum.txthKubh)}(hDerived from the Unicode character mappings available from . Processed by unicode2rstsubs.py, part of Docutils: .h]hDerived from the Unicode character mappings available from . Processed by unicode2rstsubs.py, part of Docutils: .}hhsbah}(h]h ]h"]h$]h&]hhuh1hhhhhhhhKubhsubstitution_definition)}(h*.. |amp| unicode:: U+00026 .. AMPERSANDh]h&}hhsbah}(h]h ]h"]ampah$]h&]uh1hhhhKhhhhubh)}(h+.. |apos| unicode:: U+00027 .. APOSTROPHEh]h'}hhsbah}(h]h ]h"]aposah$]h&]uh1hhhhKhhhhubh)}(h).. |ast| unicode:: U+0002A .. ASTERISKh]h*}hhsbah}(h]h ]h"]astah$]h&]uh1hhhhK hhhhubh)}(h+.. |brvbar| unicode:: U+000A6 .. BROKEN BARh]h¦}hjsbah}(h]h ]h"]brvbarah$]h&]uh1hhhhK hhhhubh)}(h0.. |bsol| unicode:: U+0005C .. REVERSE SOLIDUSh]h\}hjsbah}(h]h ]h"]bsolah$]h&]uh1hhhhK hhhhubh)}(h*.. |cent| unicode:: U+000A2 .. CENT SIGNh]h¢}hjsbah}(h]h ]h"]centah$]h&]uh1hhhhK hhhhubh)}(h&.. |colon| unicode:: U+0003A .. COLONh]h:}hj-sbah}(h]h ]h"]colonah$]h&]uh1hhhhK hhhhubh)}(h&.. |comma| unicode:: U+0002C .. COMMAh]h,}hj<sbah}(h]h ]h"]commaah$]h&]uh1hhhhKhhhhubh)}(h... |commat| unicode:: U+00040 .. COMMERCIAL ATh]h@}hjKsbah}(h]h ]h"]commatah$]h&]uh1hhhhKhhhhubh)}(h/.. |copy| unicode:: U+000A9 .. COPYRIGHT SIGNh]h©}hjZsbah}(h]h ]h"]copyah$]h&]uh1hhhhKhhhhubh)}(h... |curren| unicode:: U+000A4 .. CURRENCY SIGNh]h¤}hjisbah}(h]h ]h"]currenah$]h&]uh1hhhhKhhhhubh)}(h0.. |darr| unicode:: U+02193 .. DOWNWARDS ARROWh]h↓}hjxsbah}(h]h ]h"]darrah$]h&]uh1hhhhKhhhhubh)}(h,.. |deg| unicode:: U+000B0 .. DEGREE SIGNh]h°}hjsbah}(h]h ]h"]degah$]h&]uh1hhhhKhhhhubh)}(h... |divide| unicode:: U+000F7 .. DIVISION SIGNh]h÷}hjsbah}(h]h ]h"]divideah$]h&]uh1hhhhKhhhhubh)}(h,.. |dollar| unicode:: U+00024 .. DOLLAR SIGNh]h$}hjsbah}(h]h ]h"]dollarah$]h&]uh1hhhhKhhhhubh)}(h,.. |equals| unicode:: U+0003D .. EQUALS SIGNh]h=}hjsbah}(h]h ]h"]equalsah$]h&]uh1hhhhKhhhhubh)}(h1.. |excl| unicode:: U+00021 .. EXCLAMATION MARKh]h!}hjsbah}(h]h ]h"]exclah$]h&]uh1hhhhKhhhhubh)}(h9.. |frac12| unicode:: U+000BD .. VULGAR FRACTION ONE HALFh]h½}hjsbah}(h]h ]h"]frac12ah$]h&]uh1hhhhKhhhhubh)}(h<.. |frac14| unicode:: U+000BC .. VULGAR FRACTION ONE QUARTERh]h¼}hjsbah}(h]h ]h"]frac14ah$]h&]uh1hhhhKhhhhubh)}(h;.. |frac18| unicode:: U+0215B .. VULGAR FRACTION ONE EIGHTHh]h⅛}hjsbah}(h]h ]h"]frac18ah$]h&]uh1hhhhKhhhhubh)}(h?.. |frac34| unicode:: U+000BE .. VULGAR FRACTION THREE QUARTERSh]h¾}hjsbah}(h]h ]h"]frac34ah$]h&]uh1hhhhKhhhhubh)}(h>.. |frac38| unicode:: U+0215C .. VULGAR FRACTION THREE EIGHTHSh]h⅜}hjsbah}(h]h ]h"]frac38ah$]h&]uh1hhhhKhhhhubh)}(h=.. |frac58| unicode:: U+0215D .. VULGAR FRACTION FIVE EIGHTHSh]h⅝}hjsbah}(h]h ]h"]frac58ah$]h&]uh1hhhhKhhhhubh)}(h>.. |frac78| unicode:: U+0215E .. VULGAR FRACTION SEVEN EIGHTHSh]h⅞}hj,sbah}(h]h ]h"]frac78ah$]h&]uh1hhhhKhhhhubh)}(h2.. |gt| unicode:: U+0003E .. GREATER-THAN SIGNh]h>}hj;sbah}(h]h ]h"]gtah$]h&]uh1hhhhKhhhhubh)}(h9.. |half| unicode:: U+000BD .. VULGAR FRACTION ONE HALFh]h½}hjJsbah}(h]h ]h"]halfah$]h&]uh1hhhhK hhhhubh)}(h/.. |horbar| unicode:: U+02015 .. HORIZONTAL BARh]h―}hjYsbah}(h]h ]h"]horbarah$]h&]uh1hhhhK!hhhhubh)}(h'.. |hyphen| unicode:: U+02010 .. HYPHENh]h‐}hjhsbah}(h]h ]h"]hyphenah$]h&]uh1hhhhK"hhhhubh)}(h:.. |iexcl| unicode:: U+000A1 .. INVERTED EXCLAMATION MARKh]h¡}hjwsbah}(h]h ]h"]iexclah$]h&]uh1hhhhK#hhhhubh)}(h7.. |iquest| unicode:: U+000BF .. INVERTED QUESTION MARKh]h¿}hjsbah}(h]h ]h"]iquestah$]h&]uh1hhhhK$hhhhubh)}(hJ.. |laquo| unicode:: U+000AB .. LEFT-POINTING DOUBLE ANGLE QUOTATION MARKh]h«}hjsbah}(h]h ]h"]laquoah$]h&]uh1hhhhK%hhhhubh)}(h0.. |larr| unicode:: U+02190 .. LEFTWARDS ARROWh]h←}hjsbah}(h]h ]h"]larrah$]h&]uh1hhhhK&hhhhubh)}(h3.. |lcub| unicode:: U+0007B .. LEFT CURLY BRACKETh]h{}hjsbah}(h]h ]h"]lcubah$]h&]uh1hhhhK'hhhhubh)}(h;.. |ldquo| unicode:: U+0201C .. LEFT DOUBLE QUOTATION MARKh]h“}hjsbah}(h]h ]h"]ldquoah$]h&]uh1hhhhK(hhhhubh)}(h).. |lowbar| unicode:: U+0005F .. LOW LINEh]h_}hjsbah}(h]h ]h"]lowbarah$]h&]uh1hhhhK)hhhhubh)}(h1.. |lpar| unicode:: U+00028 .. LEFT PARENTHESISh]h(}hjsbah}(h]h ]h"]lparah$]h&]uh1hhhhK*hhhhubh)}(h4.. |lsqb| unicode:: U+0005B .. LEFT SQUARE BRACKETh]h[}hjsbah}(h]h ]h"]lsqbah$]h&]uh1hhhhK+hhhhubh)}(h;.. |lsquo| unicode:: U+02018 .. LEFT SINGLE QUOTATION MARKh]h‘}hjsbah}(h]h ]h"]lsquoah$]h&]uh1hhhhK,hhhhubh)}(h/.. |lt| unicode:: U+0003C .. LESS-THAN SIGNh]h<}hj sbah}(h]h ]h"]ltah$]h&]uh1hhhhK-hhhhubh)}(h+.. |micro| unicode:: U+000B5 .. MICRO SIGNh]hµ}hjsbah}(h]h ]h"]microah$]h&]uh1hhhhK.hhhhubh)}(h+.. |middot| unicode:: U+000B7 .. MIDDLE DOTh]h·}hj+sbah}(h]h ]h"]middotah$]h&]uh1hhhhK/hhhhubh)}(h/.. |nbsp| unicode:: U+000A0 .. NO-BREAK SPACEh]h }hj:sbah}(h]h ]h"]nbspah$]h&]uh1hhhhK0hhhhubh)}(h).. |not| unicode:: U+000AC .. NOT SIGNh]h¬}hjIsbah}(h]h ]h"]notah$]h&]uh1hhhhK1hhhhubh)}(h,.. |num| unicode:: U+00023 .. NUMBER SIGNh]h#}hjXsbah}(h]h ]h"]numah$]h&]uh1hhhhK2hhhhubh)}(h).. |ohm| unicode:: U+02126 .. OHM SIGNh]hΩ}hjgsbah}(h]h ]h"]ohmah$]h&]uh1hhhhK3hhhhubh)}(h;.. |ordf| unicode:: U+000AA .. FEMININE ORDINAL INDICATORh]hª}hjvsbah}(h]h ]h"]ordfah$]h&]uh1hhhhK4hhhhubh)}(h<.. |ordm| unicode:: U+000BA .. MASCULINE ORDINAL INDICATORh]hº}hjsbah}(h]h ]h"]ordmah$]h&]uh1hhhhK5hhhhubh)}(h-.. |para| unicode:: U+000B6 .. PILCROW SIGNh]h¶}hjsbah}(h]h ]h"]paraah$]h&]uh1hhhhK6hhhhubh)}(h-.. |percnt| unicode:: U+00025 .. PERCENT SIGNh]h%}hjsbah}(h]h ]h"]percntah$]h&]uh1hhhhK7hhhhubh)}(h*.. |period| unicode:: U+0002E .. FULL STOPh]h.}hjsbah}(h]h ]h"]periodah$]h&]uh1hhhhK8hhhhubh)}(h*.. |plus| unicode:: U+0002B .. PLUS SIGNh]h+}hjsbah}(h]h ]h"]plusah$]h&]uh1hhhhK9hhhhubh)}(h0.. |plusmn| unicode:: U+000B1 .. PLUS-MINUS SIGNh]h±}hjsbah}(h]h ]h"]plusmnah$]h&]uh1hhhhK:hhhhubh)}(h+.. |pound| unicode:: U+000A3 .. POUND SIGNh]h£}hjsbah}(h]h ]h"]poundah$]h&]uh1hhhhK;hhhhubh)}(h... |quest| unicode:: U+0003F .. QUESTION MARKh]h?}hjsbah}(h]h ]h"]questah$]h&]uh1hhhhKhhhhubh)}(h1.. |rarr| unicode:: U+02192 .. RIGHTWARDS ARROWh]h→}hjsbah}(h]h ]h"]rarrah$]h&]uh1hhhhK?hhhhubh)}(h4.. |rcub| unicode:: U+0007D .. RIGHT CURLY BRACKETh]h}}hj*sbah}(h]h ]h"]rcubah$]h&]uh1hhhhK@hhhhubh)}(h<.. |rdquo| unicode:: U+0201D .. RIGHT DOUBLE QUOTATION MARKh]h”}hj9sbah}(h]h ]h"]rdquoah$]h&]uh1hhhhKAhhhhubh)}(h0.. |reg| unicode:: U+000AE .. REGISTERED SIGNh]h®}hjHsbah}(h]h ]h"]regah$]h&]uh1hhhhKBhhhhubh)}(h2.. |rpar| unicode:: U+00029 .. RIGHT PARENTHESISh]h)}hjWsbah}(h]h ]h"]rparah$]h&]uh1hhhhKChhhhubh)}(h5.. |rsqb| unicode:: U+0005D .. RIGHT SQUARE BRACKETh]h]}hjfsbah}(h]h ]h"]rsqbah$]h&]uh1hhhhKDhhhhubh)}(h<.. |rsquo| unicode:: U+02019 .. RIGHT SINGLE QUOTATION MARKh]h’}hjusbah}(h]h ]h"]rsquoah$]h&]uh1hhhhKEhhhhubh)}(h-.. |sect| unicode:: U+000A7 .. SECTION SIGNh]h§}hjsbah}(h]h ]h"]sectah$]h&]uh1hhhhKFhhhhubh)}(h*.. |semi| unicode:: U+0003B .. SEMICOLONh]h;}hjsbah}(h]h ]h"]semiah$]h&]uh1hhhhKGhhhhubh)}(h,.. |shy| unicode:: U+000AD .. SOFT HYPHENh]h­}hjsbah}(h]h ]h"]shyah$]h&]uh1hhhhKHhhhhubh)}(h(.. |sol| unicode:: U+0002F .. SOLIDUSh]h/}hjsbah}(h]h ]h"]solah$]h&]uh1hhhhKIhhhhubh)}(h,.. |sung| unicode:: U+0266A .. EIGHTH NOTEh]h♪}hjsbah}(h]h ]h"]sungah$]h&]uh1hhhhKJhhhhubh)}(h0.. |sup1| unicode:: U+000B9 .. SUPERSCRIPT ONEh]h¹}hjsbah}(h]h ]h"]sup1ah$]h&]uh1hhhhKKhhhhubh)}(h0.. |sup2| unicode:: U+000B2 .. SUPERSCRIPT TWOh]h²}hjsbah}(h]h ]h"]sup2ah$]h&]uh1hhhhKLhhhhubh)}(h2.. |sup3| unicode:: U+000B3 .. SUPERSCRIPT THREEh]h³}hjsbah}(h]h ]h"]sup3ah$]h&]uh1hhhhKMhhhhubh)}(h4.. |times| unicode:: U+000D7 .. MULTIPLICATION SIGNh]h×}hjsbah}(h]h ]h"]timesah$]h&]uh1hhhhKNhhhhubh)}(h0.. |trade| unicode:: U+02122 .. TRADE MARK SIGNh]h™}hj sbah}(h]h ]h"]tradeah$]h&]uh1hhhhKOhhhhubh)}(h... |uarr| unicode:: U+02191 .. UPWARDS ARROWh]h↑}hjsbah}(h]h ]h"]uarrah$]h&]uh1hhhhKPhhhhubh)}(h... |verbar| unicode:: U+0007C .. VERTICAL LINEh]h|}hj)sbah}(h]h ]h"]verbarah$]h&]uh1hhhhKQhhhhubh)}(h*.. |yen| unicode:: U+000A5 .. YEN SIGN h]h¥}hj8sbah}(h]h ]h"]yenah$]h&]uh1hhhhKRhhhhubhsection)}(hhh](htitle)}(hDLMFSh]hDLMFS}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjIhhhhhKubh paragraph)}(hHA minimal DLM userspace interface implemented via a virtual file system.h]hHA minimal DLM userspace interface implemented via a virtual file system.}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhjIhhubj])}(hDdlmfs is built with OCFS2 as it requires most of its infrastructure.h]hDdlmfs is built with OCFS2 as it requires most of its infrastructure.}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhK hjIhhubh field_list)}(hhh](hfield)}(hhh](h field_name)}(hProject web pageh]hProject web page}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhhKubh field_body)}(hhttp://ocfs2.wiki.kernel.orgh]j])}(hjh]h reference)}(hjh]hhttp://ocfs2.wiki.kernel.org}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1jhjubah}(h]h ]h"]h$]h&]uh1j\hhhK hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhhhK hj|hhubj)}(hhh](j)}(hTools web pageh]hTools web page}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhhKubj)}(h)https://github.com/markfasheh/ocfs2-toolsh]j])}(hjh]j)}(hjh]h)https://github.com/markfasheh/ocfs2-tools}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1jhjubah}(h]h ]h"]h$]h&]uh1j\hhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhhhKhj|hhubj)}(hhh](j)}(hOCFS2 mailing listsh]hOCFS2 mailing lists}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhhKubj)}(h1https://subspace.kernel.org/lists.linux.dev.html h]j])}(h0https://subspace.kernel.org/lists.linux.dev.htmlh]j)}(hjh]h0https://subspace.kernel.org/lists.linux.dev.html}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1jhj ubah}(h]h ]h"]h$]h&]uh1j\hhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhhhKhj|hhubeh}(h]h ]h"]h$]h&]uh1jzhjIhhhhhK ubj])}(h;All code copyright 2005 Oracle except when otherwise noted.h]h;All code copyright 2005 Oracle except when otherwise noted.}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhjIhhubjH)}(hhh](jM)}(hCreditsh]hCredits}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjDhhhhhKubj])}(h\Some code taken from ramfs which is Copyright |copy| 2000 Linus Torvalds and Transmeta Corp.h](h.Some code taken from ramfs which is Copyright }(hjUhhhNhNubh©}(hjUhhhNhNubh( 2000 Linus Torvalds and Transmeta Corp.}(hjUhhhNhNubeh}(h]h ]h"]h$]h&]uh1j\hhhKhjDhhubj])}(h$Mark Fasheh h](h Mark Fasheh <}(hjkhhhNhNubj)}(hmark.fasheh@oracle.comh]hmark.fasheh@oracle.com}(hjshhhNhNubah}(h]h ]h"]h$]h&]refurimailto:mark.fasheh@oracle.comuh1jhjkubh>}(hjkhhhNhNubeh}(h]h ]h"]h$]h&]uh1j\hhhKhjDhhubeh}(h]creditsah ]h"]creditsah$]h&]uh1jGhjIhhhhhKubjH)}(hhh](jM)}(hCaveatsh]hCaveats}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhhhKubh bullet_list)}(hhh]h list_item)}(hvRight now it only works with the OCFS2 DLM, though support for other DLM implementations should not be a major issue. h]j])}(huRight now it only works with the OCFS2 DLM, though support for other DLM implementations should not be a major issue.h]huRight now it only works with the OCFS2 DLM, though support for other DLM implementations should not be a major issue.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubah}(h]h ]h"]h$]h&]bullet-uh1jhhhKhjhhubeh}(h]caveatsah ]h"]caveatsah$]h&]uh1jGhjIhhhhhKubjH)}(hhh](jM)}(h Mount optionsh]h Mount options}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhhhK!ubj])}(hNoneh]hNone}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhK"hjhhubeh}(h] mount-optionsah ]h"] mount optionsah$]h&]uh1jGhjIhhhhhK!ubjH)}(hhh](jM)}(hUsageh]hUsage}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjhhhhhK%ubj])}(hIf you're just interested in OCFS2, then please see ocfs2.rst. The rest of this document will be geared towards those who want to use dlmfs for easy to setup and easy to use clustered locking in userspace.h]hIf you’re just interested in OCFS2, then please see ocfs2.rst. The rest of this document will be geared towards those who want to use dlmfs for easy to setup and easy to use clustered locking in userspace.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhK'hjhhubeh}(h]usageah ]h"]usageah$]h&]uh1jGhjIhhhhhK%ubjH)}(hhh](jM)}(hSetuph]hSetup}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jLhj#hhhhhK-ubj])}(hdlmfs requires that the OCFS2 cluster infrastructure be in place. Please download ocfs2-tools from the above url and configure a cluster.h]hdlmfs requires that the OCFS2 cluster infrastructure be in place. Please download ocfs2-tools from the above url and configure a cluster.}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhK/hj#hhubj])}(hX_You'll want to start heartbeating on a volume which all the nodes in your lockspace can access. The easiest way to do this is via ocfs2_hb_ctl (distributed with ocfs2-tools). Right now it requires that an OCFS2 file system be in place so that it can automatically find its heartbeat area, though it will eventually support heartbeat against raw disks.h]hXaYou’ll want to start heartbeating on a volume which all the nodes in your lockspace can access. The easiest way to do this is via ocfs2_hb_ctl (distributed with ocfs2-tools). Right now it requires that an OCFS2 file system be in place so that it can automatically find its heartbeat area, though it will eventually support heartbeat against raw disks.}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhK3hj#hhubj])}(hUPlease see the ocfs2_hb_ctl and mkfs.ocfs2 manual pages distributed with ocfs2-tools.h]hUPlease see the ocfs2_hb_ctl and mkfs.ocfs2 manual pages distributed with ocfs2-tools.}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhK:hj#hhubj])}(hnOnce you're heartbeating, DLM lock 'domains' can be easily created / destroyed and locks within them accessed.h]htOnce you’re heartbeating, DLM lock ‘domains’ can be easily created / destroyed and locks within them accessed.}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhK=hj#hhubeh}(h]setupah ]h"]setupah$]h&]uh1jGhjIhhhhhK-ubjH)}(hhh](jM)}(hLockingh]hLocking}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jLhjthhhhhKAubj])}(hUsers may access dlmfs via standard file system calls, or they can use 'libo2dlm' (distributed with ocfs2-tools) which abstracts the file system calls and presents a more traditional locking api.h]hUsers may access dlmfs via standard file system calls, or they can use ‘libo2dlm’ (distributed with ocfs2-tools) which abstracts the file system calls and presents a more traditional locking api.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKChjthhubj])}(hdlmfs handles lock caching automatically for the user, so a lock request for an already acquired lock will not generate another DLM call. Userspace programs are assumed to handle their own local locking.h]hdlmfs handles lock caching automatically for the user, so a lock request for an already acquired lock will not generate another DLM call. Userspace programs are assumed to handle their own local locking.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKGhjthhubj])}(hfTwo levels of locks are supported - Shared Read, and Exclusive. Also supported is a Trylock operation.h]hfTwo levels of locks are supported - Shared Read, and Exclusive. Also supported is a Trylock operation.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKLhjthhubj])}(h\For information on the libo2dlm interface, please see o2dlm.h, distributed with ocfs2-tools.h]h\For information on the libo2dlm interface, please see o2dlm.h, distributed with ocfs2-tools.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKOhjthhubj])}(hX<Lock value blocks can be read and written to a resource via read(2) and write(2) against the fd obtained via your open(2) call. The maximum currently supported LVB length is 64 bytes (though that is an OCFS2 DLM limitation). Through this mechanism, users of dlmfs can share small amounts of data amongst their nodes.h]hX<Lock value blocks can be read and written to a resource via read(2) and write(2) against the fd obtained via your open(2) call. The maximum currently supported LVB length is 64 bytes (though that is an OCFS2 DLM limitation). Through this mechanism, users of dlmfs can share small amounts of data amongst their nodes.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKRhjthhubj])}(hbmkdir(2) signals dlmfs to join a domain (which will have the same name as the resulting directory)h]hbmkdir(2) signals dlmfs to join a domain (which will have the same name as the resulting directory)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKXhjthhubj])}(h*rmdir(2) signals dlmfs to leave the domainh]h*rmdir(2) signals dlmfs to leave the domain}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhK[hjthhubj])}(hLocks for a given domain are represented by regular inodes inside the domain directory. Locking against them is done via the open(2) system call.h]hLocks for a given domain are represented by regular inodes inside the domain directory. Locking against them is done via the open(2) system call.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhK]hjthhubj])}(hThe open(2) call will not return until your lock has been granted or an error has occurred, unless it has been instructed to do a trylock operation. If the lock succeeds, you'll get an fd.h]hThe open(2) call will not return until your lock has been granted or an error has occurred, unless it has been instructed to do a trylock operation. If the lock succeeds, you’ll get an fd.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKahjthhubj])}(hopen(2) with O_CREAT to ensure the resource inode is created - dlmfs does not automatically create inodes for existing lock resources.h]hopen(2) with O_CREAT to ensure the resource inode is created - dlmfs does not automatically create inodes for existing lock resources.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKehjthhubhtable)}(hhh]htgroup)}(hhh](hcolspec)}(hhh]h}(h]h ]h"]h$]h&]colwidthK uh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubhthead)}(hhh]hrow)}(hhh](hentry)}(hhh]j])}(h Open Flagh]h Open Flag}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKihj=ubah}(h]h ]h"]h$]h&]uh1j;hj8ubj<)}(hhh]j])}(hLock Request Typeh]hLock Request Type}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKihjTubah}(h]h ]h"]h$]h&]uh1j;hj8ubeh}(h]h ]h"]h$]h&]uh1j6hj3ubah}(h]h ]h"]h$]h&]uh1j1hjubhtbody)}(hhh](j7)}(hhh](j<)}(hhh]j])}(hO_RDONLYh]hO_RDONLY}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKkhjubah}(h]h ]h"]h$]h&]uh1j;hj|ubj<)}(hhh]j])}(h Shared Readh]h Shared Read}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKkhjubah}(h]h ]h"]h$]h&]uh1j;hj|ubeh}(h]h ]h"]h$]h&]uh1j6hjyubj7)}(hhh](j<)}(hhh]j])}(hO_RDWRh]hO_RDWR}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKlhjubah}(h]h ]h"]h$]h&]uh1j;hjubj<)}(hhh]j])}(h Exclusiveh]h Exclusive}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKlhjubah}(h]h ]h"]h$]h&]uh1j;hjubeh}(h]h ]h"]h$]h&]uh1j6hjyubeh}(h]h ]h"]h$]h&]uh1jwhjubeh}(h]h ]h"]h$]h&]colsKuh1jhjubah}(h]h ]h"]h$]h&]uh1jhjthhhhhNubj)}(hhh]j)}(hhh](j)}(hhh]h}(h]h ]h"]h$]h&]colwidthK uh1jhj ubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhj ubj2)}(hhh]j7)}(hhh](j<)}(hhh]j])}(h Open Flagh]h Open Flag}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKqhj ubah}(h]h ]h"]h$]h&]uh1j;hj ubj<)}(hhh]j])}(hResulting Locking Behaviorh]hResulting Locking Behavior}(hj7 hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKqhj4 ubah}(h]h ]h"]h$]h&]uh1j;hj ubeh}(h]h ]h"]h$]h&]uh1j6hj ubah}(h]h ]h"]h$]h&]uh1j1hj ubjx)}(hhh]j7)}(hhh](j<)}(hhh]j])}(h O_NONBLOCKh]h O_NONBLOCK}(hj` hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKshj] ubah}(h]h ]h"]h$]h&]uh1j;hjZ ubj<)}(hhh]j])}(hTrylock operationh]hTrylock operation}(hjw hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKshjt ubah}(h]h ]h"]h$]h&]uh1j;hjZ ubeh}(h]h ]h"]h$]h&]uh1j6hjW ubah}(h]h ]h"]h$]h&]uh1jwhj ubeh}(h]h ]h"]h$]h&]colsKuh1jhjubah}(h]h ]h"]h$]h&]uh1jhjthhhhhNubj])}(h3You must provide exactly one of O_RDONLY or O_RDWR.h]h3You must provide exactly one of O_RDONLY or O_RDWR.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKvhjthhubj])}(hIf O_NONBLOCK is also provided and the trylock operation was valid but could not lock the resource then open(2) will return ETXTBUSY.h]hIf O_NONBLOCK is also provided and the trylock operation was valid but could not lock the resource then open(2) will return ETXTBUSY.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKxhjthhubj])}(h0close(2) drops the lock associated with your fd.h]h0close(2) drops the lock associated with your fd.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhK{hjthhubj])}(hModes passed to mkdir(2) or open(2) are adhered to locally. Chown is supported locally as well. This means you can use them to restrict access to the resources via dlmfs on your local node only.h]hModes passed to mkdir(2) or open(2) are adhered to locally. Chown is supported locally as well. This means you can use them to restrict access to the resources via dlmfs on your local node only.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhK}hjthhubj])}(hThe resource LVB may be read from the fd in either Shared Read or Exclusive modes via the read(2) system call. It can be written via write(2) only when open in Exclusive mode.h]hThe resource LVB may be read from the fd in either Shared Read or Exclusive modes via the read(2) system call. It can be written via write(2) only when open in Exclusive mode.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhjthhubj])}(hoOnce written, an LVB will be visible to other nodes who obtain Read Only or higher level locks on the resource.h]hoOnce written, an LVB will be visible to other nodes who obtain Read Only or higher level locks on the resource.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhjthhubeh}(h]lockingah ]h"]lockingah$]h&]uh1jGhjIhhhhhKAubjH)}(hhh](jM)}(hSee Alsoh]hSee Also}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jLhj hhhhhKubj])}(hGhttp://opendlm.sourceforge.net/cvsmirror/opendlm/docs/dlmbook_final.pdfh]j)}(hj h]hGhttp://opendlm.sourceforge.net/cvsmirror/opendlm/docs/dlmbook_final.pdf}(hj hhhNhNubah}(h]h ]h"]h$]h&]refurij uh1jhj ubah}(h]h ]h"]h$]h&]uh1j\hhhKhj hhubj])}(h8For more information on the VMS distributed locking API.h]h8For more information on the VMS distributed locking API.}(hj) hhhNhNubah}(h]h ]h"]h$]h&]uh1j\hhhKhj hhubeh}(h]see-alsoah ]h"]see alsoah$]h&]uh1jGhjIhhhhhKubeh}(h]dlmfsah ]h"]dlmfsah$]h&]uh1jGhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(jLN generatorN datestampN source_linkN source_urlN toc_backlinksj;footnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerji error_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}(hhhhhhj jjjj*jj9j-jHj<jWjKjfjZjujijjxjjjjjjjjjjjjjjjjj jjjj)jj8j,jGj;jVjJjejYjtjhjjwjjjjjjjjjjjjjjjjj jjj j(jj7j+jFj:jUjIjdjXjsjgjjvjjjjjjjjjjjjjjjjj jjj j'jj6j*jEj9jTjHjcjWjrjfjjujjjjjjjjjjjjjjjjjjjj j&jj5j)jDj8usubstitution_names}(amphߌaposhasthbrvbarj bsoljcentj*colonj9commajHcommatjWcopyjfcurrenjudarrjdegjdividejdollarjequalsjexcljfrac12jfrac14jfrac18jfrac34j frac38jfrac58j)frac78j8gtjGhalfjVhorbarjehyphenjtiexcljiquestjlaquojlarrjlcubjldquojlowbarjlparjlsqbjlsquoj ltjmicroj(middotj7nbspjFnotjUnumjdohmjsordfjordmjparajpercntjperiodjplusjplusmnjpoundjquestjquotj raquojrarrj'rcubj6rdquojEregjTrparjcrsqbjrrsquojsectjsemijshyjsoljsungjsup1jsup2jsup3jtimesjtradejuarrj&verbarj5yenjDurefnames}refids}nameids}(jD jA jjjjjjj jjqjnj j j< j9 u nametypes}(jD jjjj jqj j< uh}(jA jIjjDjjjjjjjnj#j jtj9 j u footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages] transformerN include_log]#Documentation/filesystems/dlmfs.rst(NNNNta decorationNhhub.