€•-çŒsphinx.addnodes”Œdocument”“”)�”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)�”}”(hhh]”(hŒ pending_xref”“”)�”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…”�”}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ$/translations/zh_CN/filesystems/hpfs”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)�”}”(hhh]”hŒChinese (Traditional)”…”�”}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ$/translations/zh_TW/filesystems/hpfs”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ$/translations/it_IT/filesystems/hpfs”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ$/translations/ja_JP/filesystems/hpfs”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ$/translations/ko_KR/filesystems/hpfs”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒPortuguese (Brazilian)”…”�”}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ$/translations/pt_BR/filesystems/hpfs”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒSpanish”…”�”}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ$/translations/sp_SP/filesystems/hpfs”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)�”}”(hŒ SPDX-License-Identifier: GPL-2.0”h]”hŒ SPDX-License-Identifier: GPL-2.0”…”�”}”hh·sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1hµhhh²hh³Œ>/var/lib/git/docbuild/linux/Documentation/filesystems/hpfs.rst”h´KubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒRead/Write HPFS 2.09”h]”hŒRead/Write HPFS 2.09”…”�”}”(hhÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÊh²hh³hÇh´KubhŒ paragraph”“”)�”}”(hŒ1998-2004, Mikulas Patocka”h]”hŒ1998-2004, Mikulas Patocka”…”�”}”(hhßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhhÊh²hubhŒ field_list”“”)�”}”(hhh]”(hŒfield”“”)�”}”(hhh]”(hŒ field_name”“”)�”}”(hŒemail”h]”hŒemail”…”�”}”(hhùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h÷hhôh³hÇh´KubhŒ field_body”“”)�”}”(hŒ mikulas@artax.karlin.mff.cuni.cz”h]”hÞ)�”}”(hj h]”hŒ reference”“”)�”}”(hj h]”hŒ mikulas@artax.karlin.mff.cuni.cz”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”Œ'mailto:mikulas@artax.karlin.mff.cuni.cz”uh1jhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhhôubeh}”(h]”h ]”h"]”h$]”h&]”uh1hòh³hÇh´K hhïh²hubhó)�”}”(hhh]”(hø)�”}”(hŒhomepage”h]”hŒhomepage”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h÷hj3h³hÇh´Kubj)�”}”(hŒChttps://artax.karlin.mff.cuni.cz/~mikulas/vyplody/hpfs/index-e.cgi ”h]”hÞ)�”}”(hŒBhttps://artax.karlin.mff.cuni.cz/~mikulas/vyplody/hpfs/index-e.cgi”h]”j)�”}”(hjJh]”hŒBhttps://artax.karlin.mff.cuni.cz/~mikulas/vyplody/hpfs/index-e.cgi”…”�”}”(hjLh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”jJuh1jhjHubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K hjDubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj3ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hòh³hÇh´K hhïh²hubeh}”(h]”h ]”h"]”h$]”h&]”uh1híhhÊh²hh³hÇh´K ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒCredits”h]”hŒCredits”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjrh²hh³hÇh´K ubhŒdefinition_list”“”)�”}”(hhh]”hŒdefinition_list_item”“”)�”}”(hŒ`Chris Smith, 1993, original read-only HPFS, some code and hpfs structures file is taken from it ”h]”(hŒterm”“”)�”}”(hŒNChris Smith, 1993, original read-only HPFS, some code and hpfs structures file”h]”hŒNChris Smith, 1993, original read-only HPFS, some code and hpfs structures file”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŽh³hÇh´KhjŠubhŒ definition”“”)�”}”(hhh]”hÞ)�”}”(hŒis taken from it”h]”hŒis taken from it”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžhjŠubeh}”(h]”h ]”h"]”h$]”h&]”uh1jˆh³hÇh´Khj…ubah}”(h]”h ]”h"]”h$]”h&]”uh1jƒhjrh²hh³hÇh´NubhÞ)�”}”(hŒNJacques Gelinas, MSDos mmap, Inspired by fs/nfs/mmap.c (Jon Tombs 15 Aug 1993)”h]”hŒNJacques Gelinas, MSDos mmap, Inspired by fs/nfs/mmap.c (Jon Tombs 15 Aug 1993)”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khjrh²hubhÞ)�”}”(hŒFWerner Almesberger, 1992, 1993, MSDos option parser & CR/LF conversion”h]”hŒFWerner Almesberger, 1992, 1993, MSDos option parser & CR/LF conversion”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khjrh²hubhÞ)�”}”(hŒ Mount options”h]”hŒ Mount options”…”�”}”(hjßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khjrh²hubj„)�”}”(hhh]”(j‰)�”}”(hX�uid=xxx,gid=xxx,umask=xxx (default uid=gid=0 umask=default_system_umask) Set owner/group/mode for files that do not have it specified in extended attributes. Mode is inverted umask - for example umask 027 gives owner all permission, group read permission and anybody else no access. Note that for files mode is anded with 0666. If you want files to have 'x' rights, you must use extended attributes.”h]”(j�)�”}”(hŒHuid=xxx,gid=xxx,umask=xxx (default uid=gid=0 umask=default_system_umask)”h]”hŒHuid=xxx,gid=xxx,umask=xxx (default uid=gid=0 umask=default_system_umask)”…”�”}”(hjôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŽh³hÇh´KhjðubjŸ)�”}”(hhh]”hÞ)�”}”(hXFSet owner/group/mode for files that do not have it specified in extended attributes. Mode is inverted umask - for example umask 027 gives owner all permission, group read permission and anybody else no access. Note that for files mode is anded with 0666. If you want files to have 'x' rights, you must use extended attributes.”h]”hXJSet owner/group/mode for files that do not have it specified in extended attributes. Mode is inverted umask - for example umask 027 gives owner all permission, group read permission and anybody else no access. Note that for files mode is anded with 0666. If you want files to have ‘x’ rights, you must use extended attributes.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khjubah}”(h]”h ]”h"]”h$]”h&]”uh1jžhjðubeh}”(h]”h ]”h"]”h$]”h&]”uh1jˆh³hÇh´Khjíubj‰)�”}”(hŒ@case=lower,asis (default asis) File name lowercasing in readdir.”h]”(j�)�”}”(hŒcase=lower,asis (default asis)”h]”hŒcase=lower,asis (default asis)”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŽh³hÇh´KhjubjŸ)�”}”(hhh]”hÞ)�”}”(hŒ!File name lowercasing in readdir.”h]”hŒ!File name lowercasing in readdir.”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khj1ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jˆh³hÇh´Khjíh²hubj‰)�”}”(hXHconv=binary,text,auto (default binary) CR/LF -> LF conversion, if auto, decision is made according to extension - there is a list of text extensions (I thing it's better to not convert text file than to damage binary file). If you want to change that list, change it in the source. Original readonly HPFS contained some strange heuristic algorithm that I removed. I thing it's danger to let the computer decide whether file is text or binary. For example, DJGPP binaries contain small text message at the beginning and they could be misidentified and damaged under some circumstances.”h]”(j�)�”}”(hŒ&conv=binary,text,auto (default binary)”h]”hŒ&conv=binary,text,auto (default binary)”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŽh³hÇh´K&hjNubjŸ)�”}”(hhh]”hÞ)�”}”(hX!CR/LF -> LF conversion, if auto, decision is made according to extension - there is a list of text extensions (I thing it's better to not convert text file than to damage binary file). If you want to change that list, change it in the source. Original readonly HPFS contained some strange heuristic algorithm that I removed. I thing it's danger to let the computer decide whether file is text or binary. For example, DJGPP binaries contain small text message at the beginning and they could be misidentified and damaged under some circumstances.”h]”hX%CR/LF -> LF conversion, if auto, decision is made according to extension - there is a list of text extensions (I thing it’s better to not convert text file than to damage binary file). If you want to change that list, change it in the source. Original readonly HPFS contained some strange heuristic algorithm that I removed. I thing it’s danger to let the computer decide whether file is text or binary. For example, DJGPP binaries contain small text message at the beginning and they could be misidentified and damaged under some circumstances.”…”�”}”(hjch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K hj`ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžhjNubeh}”(h]”h ]”h"]”h$]”h&]”uh1jˆh³hÇh´K&hjíh²hubj‰)�”}”(hXTcheck=none,normal,strict (default normal) Check level. Selecting none will cause only little speedup and big danger. I tried to write it so that it won't crash if check=normal on corrupted filesystems. check=strict means many superfluous checks - used for debugging (for example it checks if file is allocated in bitmaps when accessing it).”h]”(j�)�”}”(hŒ)check=none,normal,strict (default normal)”h]”hŒ)check=none,normal,strict (default normal)”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŽh³hÇh´K,hj}ubjŸ)�”}”(hhh]”hÞ)�”}”(hX*Check level. Selecting none will cause only little speedup and big danger. I tried to write it so that it won't crash if check=normal on corrupted filesystems. check=strict means many superfluous checks - used for debugging (for example it checks if file is allocated in bitmaps when accessing it).”h]”hX,Check level. Selecting none will cause only little speedup and big danger. I tried to write it so that it won’t crash if check=normal on corrupted filesystems. check=strict means many superfluous checks - used for debugging (for example it checks if file is allocated in bitmaps when accessing it).”…”�”}”(hj’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K)hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžhj}ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jˆh³hÇh´K,hjíh²hubj‰)�”}”(hŒ]errors=continue,remount-ro,panic (default remount-ro) Behaviour when filesystem errors found.”h]”(j�)�”}”(hŒ5errors=continue,remount-ro,panic (default remount-ro)”h]”hŒ5errors=continue,remount-ro,panic (default remount-ro)”…”�”}”(hj°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŽh³hÇh´K.hj¬ubjŸ)�”}”(hhh]”hÞ)�”}”(hŒ'Behaviour when filesystem errors found.”h]”hŒ'Behaviour when filesystem errors found.”…”�”}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K/hj¾ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžhj¬ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jˆh³hÇh´K.hjíh²hubj‰)�”}”(hŒ^chkdsk=no,errors,always (default errors) When to mark filesystem dirty so that OS/2 checks it.”h]”(j�)�”}”(hŒ(chkdsk=no,errors,always (default errors)”h]”hŒ(chkdsk=no,errors,always (default errors)”…”�”}”(hjßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŽh³hÇh´K0hjÛubjŸ)�”}”(hhh]”hÞ)�”}”(hŒ5When to mark filesystem dirty so that OS/2 checks it.”h]”hŒ5When to mark filesystem dirty so that OS/2 checks it.”…”�”}”(hjðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K1hjíubah}”(h]”h ]”h"]”h$]”h&]”uh1jžhjÛubeh}”(h]”h ]”h"]”h$]”h&]”uh1jˆh³hÇh´K0hjíh²hubj‰)�”}”(hX"eas=no,ro,rw (default rw) What to do with extended attributes. 'no' - ignore them and use always values specified in uid/gid/mode options. 'ro' - read extended attributes but do not create them. 'rw' - create extended attributes when you use chmod/chown/chgrp/mknod/ln -s on the filesystem.”h]”(j�)�”}”(hŒeas=no,ro,rw (default rw)”h]”hŒeas=no,ro,rw (default rw)”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŽh³hÇh´K5hj ubjŸ)�”}”(hhh]”hÞ)�”}”(hXWhat to do with extended attributes. 'no' - ignore them and use always values specified in uid/gid/mode options. 'ro' - read extended attributes but do not create them. 'rw' - create extended attributes when you use chmod/chown/chgrp/mknod/ln -s on the filesystem.”h]”hXWhat to do with extended attributes. ‘no’ - ignore them and use always values specified in uid/gid/mode options. ‘ro’ - read extended attributes but do not create them. ‘rw’ - create extended attributes when you use chmod/chown/chgrp/mknod/ln -s on the filesystem.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K3hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jžhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jˆh³hÇh´K5hjíh²hubj‰)�”}”(hŒ—timeshift=(-)nnn (default 0) Shifts the time by nnn seconds. For example, if you see under linux one hour more, than under os/2, use timeshift=-3600. ”h]”(j�)�”}”(hŒtimeshift=(-)nnn (default 0)”h]”hŒtimeshift=(-)nnn (default 0)”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jŽh³hÇh´K:hj9ubjŸ)�”}”(hhh]”hÞ)�”}”(hŒxShifts the time by nnn seconds. For example, if you see under linux one hour more, than under os/2, use timeshift=-3600.”h]”hŒxShifts the time by nnn seconds. For example, if you see under linux one hour more, than under os/2, use timeshift=-3600.”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K8hjKubah}”(h]”h ]”h"]”h$]”h&]”uh1jžhj9ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jˆh³hÇh´K:hjíh²hubeh}”(h]”h ]”h"]”h$]”h&]”uh1jƒhjrh²hh³hÇh´Nubeh}”(h]”Œcredits”ah ]”h"]”Œcredits”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ File names”h]”hŒ File names”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjvh²hh³hÇh´K=ubhÞ)�”}”(hX«As in OS/2, filenames are case insensitive. However, shell thinks that names are case sensitive, so for example when you create a file FOO, you can use 'cat FOO', 'cat Foo', 'cat foo' or 'cat F*' but not 'cat f*'. Note, that you also won't be able to compile linux kernel (and maybe other things) on HPFS because kernel creates different files with names like bootsect.S and bootsect.s. When searching for file whose name has characters >= 128, codepages are used - see below. OS/2 ignores dots and spaces at the end of file name, so this driver does as well. If you create 'a. ...', the file 'a' will be created, but you can still access it under names 'a.', 'a..', 'a . . . ' etc.”h]”hXÕAs in OS/2, filenames are case insensitive. However, shell thinks that names are case sensitive, so for example when you create a file FOO, you can use ‘cat FOO’, ‘cat Foo’, ‘cat foo’ or ‘cat F*’ but not ‘cat f*’. Note, that you also won’t be able to compile linux kernel (and maybe other things) on HPFS because kernel creates different files with names like bootsect.S and bootsect.s. When searching for file whose name has characters >= 128, codepages are used - see below. OS/2 ignores dots and spaces at the end of file name, so this driver does as well. If you create ‘a. ...’, the file ‘a’ will be created, but you can still access it under names ‘a.’, ‘a..’, ‘a . . . ‘ etc.”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K?hjvh²hubeh}”(h]”Œ file-names”ah ]”h"]”Œ file names”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K=ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒExtended attributes”h]”hŒExtended attributes”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj�h²hh³hÇh´KLubhÞ)�”}”(hXÎOn HPFS partitions, OS/2 can associate to each file a special information called extended attributes. Extended attributes are pairs of (key,value) where key is an ascii string identifying that attribute and value is any string of bytes of variable length. OS/2 stores window and icon positions and file types there. So why not use it for unix-specific info like file owner or access rights? This driver can do it. If you chown/chgrp/chmod on a hpfs partition, extended attributes with keys "UID", "GID" or "MODE" and 2-byte values are created. Only that extended attributes those value differs from defaults specified in mount options are created. Once created, the extended attributes are never deleted, they're just changed. It means that when your default uid=0 and you type something like 'chown luser file; chown root file' the file will contain extended attribute UID=0. And when you umount the fs and mount it again with uid=luser_uid, the file will be still owned by root! If you chmod file to 444, extended attribute "MODE" will not be set, this special case is done by setting read-only flag. When you mknod a block or char device, besides "MODE", the special 4-byte extended attribute "DEV" will be created containing the device number. Currently this driver cannot resize extended attributes - it means that if somebody (I don't know who?) has set "UID", "GID", "MODE" or "DEV" attributes with different sizes, they won't be rewritten and changing these values doesn't work.”h]”hXOn HPFS partitions, OS/2 can associate to each file a special information called extended attributes. Extended attributes are pairs of (key,value) where key is an ascii string identifying that attribute and value is any string of bytes of variable length. OS/2 stores window and icon positions and file types there. So why not use it for unix-specific info like file owner or access rights? This driver can do it. If you chown/chgrp/chmod on a hpfs partition, extended attributes with keys “UIDâ€�, “GIDâ€� or “MODEâ€� and 2-byte values are created. Only that extended attributes those value differs from defaults specified in mount options are created. Once created, the extended attributes are never deleted, they’re just changed. It means that when your default uid=0 and you type something like ‘chown luser file; chown root file’ the file will contain extended attribute UID=0. And when you umount the fs and mount it again with uid=luser_uid, the file will be still owned by root! If you chmod file to 444, extended attribute “MODEâ€� will not be set, this special case is done by setting read-only flag. When you mknod a block or char device, besides “MODEâ€�, the special 4-byte extended attribute “DEVâ€� will be created containing the device number. Currently this driver cannot resize extended attributes - it means that if somebody (I don’t know who?) has set “UIDâ€�, “GIDâ€�, “MODEâ€� or “DEVâ€� attributes with different sizes, they won’t be rewritten and changing these values doesn’t work.”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KNhj�h²hubeh}”(h]”Œextended-attributes”ah ]”h"]”Œextended attributes”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KLubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒSymlinks”h]”hŒSymlinks”…”�”}”(hjÇh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjÄh²hh³hÇh´KeubhÞ)�”}”(hX˜You can do symlinks on HPFS partition, symlinks are achieved by setting extended attribute named "SYMLINK" with symlink value. Like on ext2, you can chown and chgrp symlinks but I don't know what is it good for. chmoding symlink results in chmoding file where symlink points. These symlinks are just for Linux use and incompatible with OS/2. OS/2 PmShell symlinks are not supported because they are stored in very crazy way. They tried to do it so that link changes when file is moved ... sometimes it works. But the link is partly stored in directory extended attributes and partly in OS2SYS.INI. I don't want (and don't know how) to analyze or change OS2SYS.INI.”h]”hX¢You can do symlinks on HPFS partition, symlinks are achieved by setting extended attribute named “SYMLINKâ€� with symlink value. Like on ext2, you can chown and chgrp symlinks but I don’t know what is it good for. chmoding symlink results in chmoding file where symlink points. These symlinks are just for Linux use and incompatible with OS/2. OS/2 PmShell symlinks are not supported because they are stored in very crazy way. They tried to do it so that link changes when file is moved ... sometimes it works. But the link is partly stored in directory extended attributes and partly in OS2SYS.INI. I don’t want (and don’t know how) to analyze or change OS2SYS.INI.”…”�”}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KghjÄh²hubeh}”(h]”Œsymlinks”ah ]”h"]”Œsymlinks”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KeubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ Codepages”h]”hŒ Codepages”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjëh²hh³hÇh´KsubhÞ)�”}”(hXÄHPFS can contain several uppercasing tables for several codepages and each file has a pointer to codepage its name is in. However OS/2 was created in America where people don't care much about codepages and so multiple codepages support is quite buggy. I have Czech OS/2 working in codepage 852 on my disk. Once I booted English OS/2 working in cp 850 and I created a file on my 852 partition. It marked file name codepage as 850 - good. But when I again booted Czech OS/2, the file was completely inaccessible under any name. It seems that OS/2 uppercases the search pattern with its system code page (852) and file name it's comparing to with its code page (850). These could never match. Is it really what IBM developers wanted? But problems continued. When I created in Czech OS/2 another file in that directory, that file was inaccessible too. OS/2 probably uses different uppercasing method when searching where to place a file (note, that files in HPFS directory must be sorted) and when searching for a file. Finally when I opened this directory in PmShell, PmShell crashed (the funny thing was that, when rebooted, PmShell tried to reopen this directory again :-). chkdsk happily ignores these errors and only low-level disk modification saved me. Never mix different language versions of OS/2 on one system although HPFS was designed to allow that. OK, I could implement complex codepage support to this driver but I think it would cause more problems than benefit with such buggy implementation in OS/2. So this driver simply uses first codepage it finds for uppercasing and lowercasing no matter what's file codepage index. Usually all file names are in this codepage - if you don't try to do what I described above :-)”h]”hXÌHPFS can contain several uppercasing tables for several codepages and each file has a pointer to codepage its name is in. However OS/2 was created in America where people don’t care much about codepages and so multiple codepages support is quite buggy. I have Czech OS/2 working in codepage 852 on my disk. Once I booted English OS/2 working in cp 850 and I created a file on my 852 partition. It marked file name codepage as 850 - good. But when I again booted Czech OS/2, the file was completely inaccessible under any name. It seems that OS/2 uppercases the search pattern with its system code page (852) and file name it’s comparing to with its code page (850). These could never match. Is it really what IBM developers wanted? But problems continued. When I created in Czech OS/2 another file in that directory, that file was inaccessible too. OS/2 probably uses different uppercasing method when searching where to place a file (note, that files in HPFS directory must be sorted) and when searching for a file. Finally when I opened this directory in PmShell, PmShell crashed (the funny thing was that, when rebooted, PmShell tried to reopen this directory again :-). chkdsk happily ignores these errors and only low-level disk modification saved me. Never mix different language versions of OS/2 on one system although HPFS was designed to allow that. OK, I could implement complex codepage support to this driver but I think it would cause more problems than benefit with such buggy implementation in OS/2. So this driver simply uses first codepage it finds for uppercasing and lowercasing no matter what’s file codepage index. Usually all file names are in this codepage - if you don’t try to do what I described above :-)”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kuhjëh²hubeh}”(h]”Œ codepages”ah ]”h"]”Œ codepages”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KsubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ Known bugs”h]”hŒ Known bugs”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjh²hh³hÇh´K�ubhÞ)�”}”(hX HPFS386 on OS/2 server is not supported. HPFS386 installed on normal OS/2 client should work. If you have OS/2 server, use only read-only mode. I don't know how to handle some HPFS386 structures like access control list or extended perm list, I don't know how to delete them when file is deleted and how to not overwrite them with extended attributes. Send me some info on these structures and I'll make it. However, this driver should detect presence of HPFS386 structures, remount read-only and not destroy them (I hope).”h]”hXHPFS386 on OS/2 server is not supported. HPFS386 installed on normal OS/2 client should work. If you have OS/2 server, use only read-only mode. I don’t know how to handle some HPFS386 structures like access control list or extended perm list, I don’t know how to delete them when file is deleted and how to not overwrite them with extended attributes. Send me some info on these structures and I’ll make it. However, this driver should detect presence of HPFS386 structures, remount read-only and not destroy them (I hope).”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K‘hjh²hubhÞ)�”}”(hŒgWhen there's not enough space for extended attributes, they will be truncated and no error is returned.”h]”hŒiWhen there’s not enough space for extended attributes, they will be truncated and no error is returned.”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K™hjh²hubhÞ)�”}”(hŒƒOS/2 can't access files if the path is longer than about 256 chars but this driver allows you to do it. chkdsk ignores such errors.”h]”hŒ…OS/2 can’t access files if the path is longer than about 256 chars but this driver allows you to do it. chkdsk ignores such errors.”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kœhjh²hubhÞ)�”}”(hXÉSometimes you won't be able to delete some files on a very full filesystem (returning error ENOSPC). That's because file in non-leaf node in directory tree (one directory, if it's large, has dirents in tree on HPFS) must be replaced with another node when deleted. And that new file might have larger name than the old one so the new name doesn't fit in directory node (dnode). And that would result in directory tree splitting, that takes disk space. Workaround is to delete other files that are leaf (probability that the file is non-leaf is about 1/50) or to truncate file first to make some space. You encounter this problem only if you have many directories so that preallocated directory band is full i.e.::”h]”hXÐSometimes you won’t be able to delete some files on a very full filesystem (returning error ENOSPC). That’s because file in non-leaf node in directory tree (one directory, if it’s large, has dirents in tree on HPFS) must be replaced with another node when deleted. And that new file might have larger name than the old one so the new name doesn’t fit in directory node (dnode). And that would result in directory tree splitting, that takes disk space. Workaround is to delete other files that are leaf (probability that the file is non-leaf is about 1/50) or to truncate file first to make some space. You encounter this problem only if you have many directories so that preallocated directory band is full i.e.:”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KŸhjh²hubhŒ literal_block”“”)�”}”(hŒ5number_of_directories / size_of_filesystem_in_mb > 4.”h]”hŒ5number_of_directories / size_of_filesystem_in_mb > 4.”…”�”}”hj]sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j[h³hÇh´Kªhjh²hubhÞ)�”}”(hŒ"You can't delete open directories.”h]”hŒ$You can’t delete open directories.”…”�”}”(hjkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K¬hjh²hubhÞ)�”}”(hŒ9You can't rename over directories (what is it good for?).”h]”hŒ;You can’t rename over directories (what is it good for?).”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K®hjh²hubhÞ)�”}”(hŒ‰Renaming files so that only case changes doesn't work. This driver supports it but vfs doesn't. Something like 'mv file FILE' won't work.”h]”hŒ“Renaming files so that only case changes doesn’t work. This driver supports it but vfs doesn’t. Something like ‘mv file FILE’ won’t work.”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K°hjh²hubhÞ)�”}”(hŒ¯All atimes and directory mtimes are not updated. That's because of performance reasons. If you extremely wish to update them, let me know, I'll write it (but it will be slow).”h]”hŒ³All atimes and directory mtimes are not updated. That’s because of performance reasons. If you extremely wish to update them, let me know, I’ll write it (but it will be slow).”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K³hjh²hubhÞ)�”}”(hŒ—When the system is out of memory and swap, it may slightly corrupt filesystem (lost files, unbalanced directories). (I guess all filesystem may do it).”h]”hŒ—When the system is out of memory and swap, it may slightly corrupt filesystem (lost files, unbalanced directories). (I guess all filesystem may do it).”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K·hjh²hubhÞ)�”}”(hŒlWhen compiled, you get warning: function declaration isn't a prototype. Does anybody know what does it mean?”h]”hŒnWhen compiled, you get warning: function declaration isn’t a prototype. Does anybody know what does it mean?”…”�”}”(hj±h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kºhjh²hubeh}”(h]”Œ known-bugs”ah ]”h"]”Œ known bugs”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K�ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ)What does "unbalanced tree" message mean?”h]”hŒ-What does “unbalanced treeâ€� message mean?”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjÇh²hh³hÇh´K¿ubhÞ)�”}”(hXŸOld versions of this driver created sometimes unbalanced dnode trees. OS/2 chkdsk doesn't scream if the tree is unbalanced (and sometimes creates unbalanced trees too :-) but both HPFS and HPFS386 contain bug that it rarely crashes when the tree is not balanced. This driver handles unbalanced trees correctly and writes warning if it finds them. If you see this message, this is probably because of directories created with old version of this driver. Workaround is to move all files from that directory to another and then back again. Do it in Linux, not OS/2! If you see this message in directory that is whole created by this driver, it is BUG - let me know about it.”h]”hX¡Old versions of this driver created sometimes unbalanced dnode trees. OS/2 chkdsk doesn’t scream if the tree is unbalanced (and sometimes creates unbalanced trees too :-) but both HPFS and HPFS386 contain bug that it rarely crashes when the tree is not balanced. This driver handles unbalanced trees correctly and writes warning if it finds them. If you see this message, this is probably because of directories created with old version of this driver. Workaround is to move all files from that directory to another and then back again. Do it in Linux, not OS/2! If you see this message in directory that is whole created by this driver, it is BUG - let me know about it.”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KÁhjÇh²hubeh}”(h]”Œ&what-does-unbalanced-tree-message-mean”ah ]”h"]”Œ)what does "unbalanced tree" message mean?”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K¿ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ Bugs in OS/2”h]”hŒ Bugs in OS/2”…”�”}”(hjñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjîh²hh³hÇh´KÍubhÞ)�”}”(hŒoWhen you have two (or more) lost directories pointing each to other, chkdsk locks up when repairing filesystem.”h]”hŒoWhen you have two (or more) lost directories pointing each to other, chkdsk locks up when repairing filesystem.”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KÏhjîh²hubhÞ)�”}”(hŒ¯Sometimes (I think it's random) when you create a file with one-char name under OS/2, OS/2 marks it as 'long'. chkdsk then removes this flag saying "Minor fs error corrected".”h]”hŒ¹Sometimes (I think it’s random) when you create a file with one-char name under OS/2, OS/2 marks it as ‘long’. chkdsk then removes this flag saying “Minor fs error correctedâ€�.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KÒhjîh²hubhÞ)�”}”(hŒ©File names like "a .b" are marked as 'long' by OS/2 but chkdsk "corrects" it and marks them as short (and writes "minor fs error corrected"). This bug is not in HPFS386.”h]”hŒ¹File names like “a .bâ€� are marked as ‘long’ by OS/2 but chkdsk “correctsâ€� it and marks them as short (and writes “minor fs error correctedâ€�). This bug is not in HPFS386.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KÖhjîh²hubeh}”(h]”Œ bugs-in-os-2”ah ]”h"]”Œ bugs in os/2”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KÍubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒCodepage bugs described above”h]”hŒCodepage bugs described above”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj1h²hh³hÇh´KÛubhÞ)�”}”(hŒ;If you don't install fixpacks, there are many, many more...”h]”hŒ=If you don’t install fixpacks, there are many, many more...”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KÝhj1h²hubeh}”(h]”Œcodepage-bugs-described-above”ah ]”h"]”Œcodepage bugs described above”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KÛubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒHistory”h]”hŒHistory”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjXh²hh³hÇh´KáubhŒtable”“”)�”}”(hhh]”hŒtgroup”“”)�”}”(hhh]”(hŒcolspec”“”)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1jshjpubjt)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”KKuh1jshjpubhŒtbody”“”)�”}”(hhh]”(hŒrow”“”)�”}”(hhh]”(hŒentry”“”)�”}”(hhh]”hÞ)�”}”(hŒ0.90”h]”hŒ0.90”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kähj•ubah}”(h]”h ]”h"]”h$]”h&]”uh1j“hj�ubj”)�”}”(hhh]”hÞ)�”}”(hŒFirst public release”h]”hŒFirst public release”…”�”}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kähj¬ubah}”(h]”h ]”h"]”h$]”h&]”uh1j“hj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jŽhj‹ubj�)�”}”(hhh]”(j”)�”}”(hhh]”hÞ)�”}”(hŒ0.91”h]”hŒ0.91”…”�”}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KåhjÌubah}”(h]”h ]”h"]”h$]”h&]”uh1j“hjÉubj”)�”}”(hhh]”hÞ)�”}”(hŒdFixed bug that caused shooting to memory when write_inode was called on open inode (rarely happened)”h]”hŒdFixed bug that caused shooting to memory when write_inode was called on open inode (rarely happened)”…”�”}”(hjæh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kåhjãubah}”(h]”h ]”h"]”h$]”h&]”uh1j“hjÉubeh}”(h]”h ]”h"]”h$]”h&]”uh1jŽhj‹ubj�)�”}”(hhh]”(j”)�”}”(hhh]”hÞ)�”}”(hŒ0.92”h]”hŒ0.92”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kçhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j“hjubj”)�”}”(hhh]”hÞ)�”}”(hŒ6Fixed a little memory leak in freeing directory inodes”h]”hŒ6Fixed a little memory leak in freeing directory inodes”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kçhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j“hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jŽhj‹ubj�)�”}”(hhh]”(j”)�”}”(hhh]”hÞ)�”}”(hŒ0.93”h]”hŒ0.93”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kèhj:ubah}”(h]”h ]”h"]”h$]”h&]”uh1j“hj7ubj”)�”}”(hhh]”hÞ)�”}”(hŒ Fixed bug that locked up the machine when there were too many filenames with first 15 characters same Fixed write_file to zero file when writing behind file end”h]”hŒ Fixed bug that locked up the machine when there were too many filenames with first 15 characters same Fixed write_file to zero file when writing behind file end”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KèhjQubah}”(h]”h ]”h"]”h$]”h&]”uh1j“hj7ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jŽhj‹ubj�)�”}”(hhh]”(j”)�”}”(hhh]”hÞ)�”}”(hŒ0.94”h]”hŒ0.94”…”�”}”(hjth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Këhjqubah}”(h]”h ]”h"]”h$]”h&]”uh1j“hjnubj”)�”}”(hhh]”hÞ)�”}”(hŒGFixed a little memory leak when trying to delete busy file or directory”h]”hŒGFixed a little memory leak when trying to delete busy file or directory”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Këhjˆubah}”(h]”h ]”h"]”h$]”h&]”uh1j“hjnubeh}”(h]”h ]”h"]”h$]”h&]”uh1jŽhj‹ubj�)�”}”(hhh]”(j”)�”}”(hhh]”hÞ)�”}”(hŒ0.95”h]”hŒ0.95”…”�”}”(hj«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kìhj¨ubah}”(h]”h ]”h"]”h$]”h&]”uh1j“hj¥ubj”)�”}”(hhh]”hÞ)�”}”(hŒDFixed a bug that i_hpfs_parent_dir was not updated when moving files”h]”hŒDFixed a bug that i_hpfs_parent_dir was not updated when moving files”…”�”}”(hjÂh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kìhj¿ubah}”(h]”h ]”h"]”h$]”h&]”uh1j“hj¥ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jŽhj‹ubj�)�”}”(hhh]”(j”)�”}”(hhh]”hÞ)�”}”(hŒ1.90”h]”hŒ1.90”…”�”}”(hjâh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kíhjßubah}”(h]”h ]”h"]”h$]”h&]”uh1j“hjÜubj”)�”}”(hhh]”hÞ)�”}”(hŒ!First version for 2.1.1xx kernels”h]”hŒ!First version for 2.1.1xx kernels”…”�”}”(hjùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kíhjöubah}”(h]”h ]”h"]”h$]”h&]”uh1j“hjÜubeh}”(h]”h ]”h"]”h$]”h&]”uh1jŽhj‹ubj�)�”}”(hhh]”(j”)�”}”(hhh]”hÞ)�”}”(hŒ1.91”h]”hŒ1.91”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kîhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j“hjubj”)�”}”(hhh]”(hÞ)�”}”(hŒïFixed a bug that chk_sectors failed when sectors were at the end of disk Fixed a race-condition when write_inode is called while deleting file Fixed a bug that could possibly happen (with very low probability) when using 0xff in filenames.”h]”hŒïFixed a bug that chk_sectors failed when sectors were at the end of disk Fixed a race-condition when write_inode is called while deleting file Fixed a bug that could possibly happen (with very low probability) when using 0xff in filenames.”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kîhj-ubhÞ)�”}”(hŒ*Rewritten locking to avoid race-conditions”h]”hŒ*Rewritten locking to avoid race-conditions”…”�”}”(hj>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kóhj-ubhÞ)�”}”(hŒMount option 'eas' now works”h]”hŒ Mount option ‘eas’ now works”…”�”}”(hjLh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kõhj-ubhÞ)�”}”(hŒFsync no longer returns error”h]”hŒFsync no longer returns error”…”�”}”(hjZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K÷hj-ubhÞ)�”}”(hŒ*Files beginning with '.' are marked hidden”h]”hŒ.Files beginning with ‘.’ are marked hidden”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kùhj-ubhÞ)�”}”(hŒRemount support added”h]”hŒRemount support added”…”�”}”(hjvh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kûhj-ubhÞ)�”}”(hŒ1Alloc is not so slow when filesystem becomes full”h]”hŒ1Alloc is not so slow when filesystem becomes full”…”�”}”(hj„h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kýhj-ubhÞ)�”}”(hŒ:Atimes are no more updated because it slows down operation”h]”hŒ:Atimes are no more updated because it slows down operation”…”�”}”(hj’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kÿhj-ubhÞ)�”}”(hŒ1Code cleanup (removed all commented debug prints)”h]”hŒ1Code cleanup (removed all commented debug prints)”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mhj-ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j“hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jŽhj‹ubj�)�”}”(hhh]”(j”)�”}”(hhh]”hÞ)�”}”(hŒ1.92”h]”hŒ1.92”…”�”}”(hjÀh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mhj½ubah}”(h]”h ]”h"]”h$]”h&]”uh1j“hjºubj”)�”}”(hhh]”hÞ)�”}”(hŒ=Corrected a bug when sync was called just before closing file”h]”hŒ=Corrected a bug when sync was called just before closing file”…”�”}”(hj×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MhjÔubah}”(h]”h ]”h"]”h$]”h&]”uh1j“hjºubeh}”(h]”h ]”h"]”h$]”h&]”uh1jŽhj‹ubj�)�”}”(hhh]”(j”)�”}”(hhh]”hÞ)�”}”(hŒ1.93”h]”hŒ1.93”…”�”}”(hj÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mhjôubah}”(h]”h ]”h"]”h$]”h&]”uh1j“hjñubj”)�”}”(hhh]”(hÞ)�”}”(hŒcModified, so that it works with kernels >= 2.1.131, I don't know if it works with previous versions”h]”hŒeModified, so that it works with kernels >= 2.1.131, I don’t know if it works with previous versions”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mhj ubhÞ)�”}”(hŒTFixed a possible problem with disks > 64G (but I don't have one, so I can't test it)”h]”hŒXFixed a possible problem with disks > 64G (but I don’t have one, so I can’t test it)”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mhj ubhÞ)�”}”(hŒFixed a file overflow at 2G”h]”hŒFixed a file overflow at 2G”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M hj ubhÞ)�”}”(hŒAdded new option 'timeshift'”h]”hŒ Added new option ‘timeshift’”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M hj ubhÞ)�”}”(hŒXChanged behaviour on HPFS386: It is now possible to operate on HPFS386 in read-only mode”h]”hŒXChanged behaviour on HPFS386: It is now possible to operate on HPFS386 in read-only mode”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M hj ubhÞ)�”}”(hŒeFixed a bug that slowed down alloc and prevented allocating 100% space (this bug was not destructive)”h]”hŒeFixed a bug that slowed down alloc and prevented allocating 100% space (this bug was not destructive)”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j“hjñubeh}”(h]”h ]”h"]”h$]”h&]”uh1jŽhj‹ubj�)�”}”(hhh]”(j”)�”}”(hhh]”hÞ)�”}”(hŒ1.94”h]”hŒ1.94”…”�”}”(hjth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Mhjqubah}”(h]”h ]”h"]”h$]”h&]”uh1j“hjnubj”)�”}”(hhh]”(hÞ)�”}”(hŒ%Added workaround for one bug in Linux”h]”hŒ%Added workaround for one bug in Linux”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MhjˆubhÞ)�”}”(hŒFixed one buffer leak”h]”hŒFixed one buffer leak”…”�”}”(hj™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MhjˆubhÞ)�”}”(hŒ“Fixed some incompatibilities with large extended attributes (but it's still not 100% ok, I have no info on it and OS/2 doesn't want to create them)”h]”hŒ—Fixed some incompatibilities with large extended attributes (but it’s still not 100% ok, I have no info on it and OS/2 doesn’t want to create them)”…”�”}”(hj§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MhjˆubhÞ)�”}”(hŒRewritten allocation”h]”hŒRewritten allocation”…”�”}”(hjµh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MhjˆubhÞ)�”}”(hŒFFixed a bug with i_blocks (du sometimes didn't display correct values)”h]”hŒHFixed a bug with i_blocks (du sometimes didn’t display correct values)”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MhjˆubhÞ)�”}”(hŒNDirectories have no longer archive attribute set (some programs don't like it)”h]”hŒPDirectories have no longer archive attribute set (some programs don’t like it)”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MhjˆubhÞ)�”}”(hŒSFixed a bug that it set badly one flag in large anode tree (it was not destructive)”h]”hŒSFixed a bug that it set badly one flag in large anode tree (it was not destructive)”…”�”}”(hjßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M hjˆubeh}”(h]”h ]”h"]”h$]”h&]”uh1j“hjnubeh}”(h]”h ]”h"]”h$]”h&]”uh1jŽhj‹ubj�)�”}”(hhh]”(j”)�”}”(hhh]”hÞ)�”}”(hŒ1.95”h]”hŒ1.95”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M"hjüubah}”(h]”h ]”h"]”h$]”h&]”uh1j“hjùubj”)�”}”(hhh]”(hÞ)�”}”(hŒ@Fixed one buffer leak, that could happen on corrupted filesystem”h]”hŒ@Fixed one buffer leak, that could happen on corrupted filesystem”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M"hj ubhÞ)�”}”(hŒ#Fixed one bug in allocation in 1.94”h]”hŒ#Fixed one bug in allocation in 1.94”…”�”}”(hj$ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M$hj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j“hjùubeh}”(h]”h ]”h"]”h$]”h&]”uh1jŽhj‹ubj�)�”}”(hhh]”(j”)�”}”(hhh]”hÞ)�”}”(hŒ1.96”h]”hŒ1.96”…”�”}”(hjD h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M%hjA ubah}”(h]”h ]”h"]”h$]”h&]”uh1j“hj> ubj”)�”}”(hhh]”(hÞ)�”}”(hŒ{Added workaround for one bug in OS/2 (HPFS locked up, HPFS386 reported error sometimes when opening directories in PMSHELL)”h]”hŒ{Added workaround for one bug in OS/2 (HPFS locked up, HPFS386 reported error sometimes when opening directories in PMSHELL)”…”�”}”(hj[ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M%hjX ubhÞ)�”}”(hŒFixed a possible bitmap race”h]”hŒFixed a possible bitmap race”…”�”}”(hji h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M(hjX ubhÞ)�”}”(hŒ%Fixed possible problem on large disks”h]”hŒ%Fixed possible problem on large disks”…”�”}”(hjw h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M*hjX ubhÞ)�”}”(hŒYou can now delete open files”h]”hŒYou can now delete open files”…”�”}”(hj… h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M,hjX ubhÞ)�”}”(hŒ%Fixed a nondestructive race in rename”h]”hŒ%Fixed a nondestructive race in rename”…”�”}”(hj“ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M.hjX ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j“hj> ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jŽhj‹ubj�)�”}”(hhh]”(j”)�”}”(hhh]”hÞ)�”}”(hŒ1.97”h]”hŒ1.97”…”�”}”(hj³ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M/hj° ubah}”(h]”h ]”h"]”h$]”h&]”uh1j“hj­ ubj”)�”}”(hhh]”(hÞ)�”}”(hŒ)Support for HPFS v3 (on large partitions)”h]”hŒ)Support for HPFS v3 (on large partitions)”…”�”}”(hjÊ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M/hjÇ ubhÞ)�”}”(hŒLZFixed a bug that it didn't allow creation of files > 128M (it should be 2G)”h]”hŒNZFixed a bug that it didn’t allow creation of files > 128M (it should be 2G)”…”�”}”(hjØ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M1hjÇ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j“hj­ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jŽhj‹ubj�)�”}”(hhh]”(j”)�”}”(hhh]”hÞ)�”}”(hŒ1.97.1”h]”hŒ1.97.1”…”�”}”(hjø h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M3hjõ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j“hjò ubj”)�”}”(hhh]”(hÞ)�”}”(hŒChanged names of global symbols”h]”hŒChanged names of global symbols”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M3hj ubhÞ)�”}”(hŒ4Fixed a bug when chmoding or chowning root directory”h]”hŒ4Fixed a bug when chmoding or chowning root directory”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M5hj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j“hjò ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jŽhj‹ubj�)�”}”(hhh]”(j”)�”}”(hhh]”hÞ)�”}”(hŒ1.98”h]”hŒ1.98”…”�”}”(hj= h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M6hj: ubah}”(h]”h ]”h"]”h$]”h&]”uh1j“hj7 ubj”)�”}”(hhh]”hÞ)�”}”(hŒoFixed a deadlock when using old_readdir Better directory handling; workaround for "unbalanced tree" bug in OS/2”h]”hŒsFixed a deadlock when using old_readdir Better directory handling; workaround for “unbalanced treeâ€� bug in OS/2”…”�”}”(hjT h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M6hjQ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j“hj7 ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jŽhj‹ubj�)�”}”(hhh]”(j”)�”}”(hhh]”hÞ)�”}”(hŒ1.99”h]”hŒ1.99”…”�”}”(hjt h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M8hjq ubah}”(h]”h ]”h"]”h$]”h&]”uh1j“hjn ubj”)�”}”(hhh]”(hÞ)�”}”(hŒNCorrected a possible problem when there's not enough space while deleting file”h]”hŒPCorrected a possible problem when there’s not enough space while deleting file”…”�”}”(hj‹ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M8hjˆ ubhÞ)�”}”(hŒKNow it tries to truncate the file if there's not enough space when deleting”h]”hŒMNow it tries to truncate the file if there’s not enough space when deleting”…”�”}”(hj™ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M;hjˆ ubhÞ)�”}”(hŒRemoved a lot of redundant code”h]”hŒRemoved a lot of redundant code”…”�”}”(hj§ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M>hjˆ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j“hjn ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jŽhj‹ubj�)�”}”(hhh]”(j”)�”}”(hhh]”hÞ)�”}”(hŒ2.00”h]”hŒ2.00”…”�”}”(hjÇ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M?hjÄ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j“hjÁ ubj”)�”}”(hhh]”hÞ)�”}”(hŒRFixed a bug in rename (it was there since 1.96) Better anti-fragmentation strategy”h]”hŒRFixed a bug in rename (it was there since 1.96) Better anti-fragmentation strategy”…”�”}”(hjÞ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´M?hjÛ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j“hjÁ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jŽhj‹ubj�)�”}”(hhh]”(j”)�”}”(hhh]”hÞ)�”}”(hŒ2.01”h]”hŒ2.01”…”�”}”(hjþ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MAhjû ubah}”(h]”h ]”h"]”h$]”h&]”uh1j“hjø ubj”)�”}”(hhh]”(hÞ)�”}”(hŒ-Fixed problem with directory listing over NFS”h]”hŒ-Fixed problem with directory listing over NFS”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MAhj ubhÞ)�”}”(hŒ0Directory lseek now checks for proper parameters”h]”hŒ0Directory lseek now checks for proper parameters”…”�”}”(hj# h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MChj ubhÞ)�”}”(hŒžFixed race-condition in buffer code - it is in all filesystems in Linux; when reading device (cat /dev/hda) while creating files on it, files could be damaged”h]”hŒžFixed race-condition in buffer code - it is in all filesystems in Linux; when reading device (cat /dev/hda) while creating files on it, files could be damaged”…”�”}”(hj1 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MEhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j“hjø ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jŽhj‹ubj�)�”}”(hhh]”(j”)�”}”(hhh]”hÞ)�”}”(hŒ2.02”h]”hŒ2.02”…”�”}”(hjQ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MHhjN ubah}”(h]”h ]”h"]”h$]”h&]”uh1j“hjK ubj”)�”}”(hhh]”hÞ)�”}”(hŒZWorkaround for bug in breada in Linux. breada could cause accesses beyond end of partition”h]”hŒZWorkaround for bug in breada in Linux. breada could cause accesses beyond end of partition”…”�”}”(hjh h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MHhje ubah}”(h]”h ]”h"]”h$]”h&]”uh1j“hjK ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jŽhj‹ubj�)�”}”(hhh]”(j”)�”}”(hhh]”hÞ)�”}”(hŒ2.03”h]”hŒ2.03”…”�”}”(hjˆ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MJhj… ubah}”(h]”h ]”h"]”h$]”h&]”uh1j“hj‚ ubj”)�”}”(hhh]”(hÞ)�”}”(hŒ3Char, block devices and pipes are correctly created”h]”hŒ3Char, block devices and pipes are correctly created”…”�”}”(hjŸ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MJhjœ ubhÞ)�”}”(hŒ2Fixed non-crashing race in unlink (Alexander Viro)”h]”hŒ2Fixed non-crashing race in unlink (Alexander Viro)”…”�”}”(hj­ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MLhjœ ubhÞ)�”}”(hŒ*Now it works with Japanese version of OS/2”h]”hŒ*Now it works with Japanese version of OS/2”…”�”}”(hj» h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MNhjœ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j“hj‚ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jŽhj‹ubj�)�”}”(hhh]”(j”)�”}”(hhh]”hÞ)�”}”(hŒ2.04”h]”hŒ2.04”…”�”}”(hjÛ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MOhjØ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j“hjÕ ubj”)�”}”(hhh]”hÞ)�”}”(hŒ.Fixed error when ftruncate used to extend file”h]”hŒ.Fixed error when ftruncate used to extend file”…”�”}”(hjò h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MOhjï ubah}”(h]”h ]”h"]”h$]”h&]”uh1j“hjÕ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jŽhj‹ubj�)�”}”(hhh]”(j”)�”}”(hhh]”hÞ)�”}”(hŒ2.05”h]”hŒ2.05”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MPhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j“hj ubj”)�”}”(hhh]”(hÞ)�”}”(hŒ/Fixed crash when got mount parameters without =”h]”hŒ/Fixed crash when got mount parameters without =”…”�”}”(hj) h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´MPhj& ubhÞ)�”}”(hŒ