1 .. SPDX-License-Identifier: GPL-2.0 1 .. SPDX-License-Identifier: GPL-2.0 2 2 3 ==================== 3 ==================== 4 Read/Write HPFS 2.09 4 Read/Write HPFS 2.09 5 ==================== 5 ==================== 6 6 7 1998-2004, Mikulas Patocka 7 1998-2004, Mikulas Patocka 8 8 9 :email: mikulas@artax.karlin.mff.cuni.cz 9 :email: mikulas@artax.karlin.mff.cuni.cz 10 :homepage: https://artax.karlin.mff.cuni.cz/~m !! 10 :homepage: http://artax.karlin.mff.cuni.cz/~mikulas/vyplody/hpfs/index-e.cgi 11 11 12 Credits 12 Credits 13 ======= 13 ======= 14 Chris Smith, 1993, original read-only HPFS, so 14 Chris Smith, 1993, original read-only HPFS, some code and hpfs structures file 15 is taken from it 15 is taken from it 16 16 17 Jacques Gelinas, MSDos mmap, Inspired by fs/nf 17 Jacques Gelinas, MSDos mmap, Inspired by fs/nfs/mmap.c (Jon Tombs 15 Aug 1993) 18 18 19 Werner Almesberger, 1992, 1993, MSDos option p 19 Werner Almesberger, 1992, 1993, MSDos option parser & CR/LF conversion 20 20 21 Mount options 21 Mount options 22 22 23 uid=xxx,gid=xxx,umask=xxx (default uid=gid=0 u 23 uid=xxx,gid=xxx,umask=xxx (default uid=gid=0 umask=default_system_umask) 24 Set owner/group/mode for files that do 24 Set owner/group/mode for files that do not have it specified in extended 25 attributes. Mode is inverted umask - f 25 attributes. Mode is inverted umask - for example umask 027 gives owner 26 all permission, group read permission 26 all permission, group read permission and anybody else no access. Note 27 that for files mode is anded with 0666 27 that for files mode is anded with 0666. If you want files to have 'x' 28 rights, you must use extended attribut 28 rights, you must use extended attributes. 29 case=lower,asis (default asis) 29 case=lower,asis (default asis) 30 File name lowercasing in readdir. 30 File name lowercasing in readdir. 31 conv=binary,text,auto (default binary) 31 conv=binary,text,auto (default binary) 32 CR/LF -> LF conversion, if auto, decis 32 CR/LF -> LF conversion, if auto, decision is made according to extension 33 - there is a list of text extensions ( 33 - there is a list of text extensions (I thing it's better to not convert 34 text file than to damage binary file). 34 text file than to damage binary file). If you want to change that list, 35 change it in the source. Original read 35 change it in the source. Original readonly HPFS contained some strange 36 heuristic algorithm that I removed. I 36 heuristic algorithm that I removed. I thing it's danger to let the 37 computer decide whether file is text o 37 computer decide whether file is text or binary. For example, DJGPP 38 binaries contain small text message at 38 binaries contain small text message at the beginning and they could be 39 misidentified and damaged under some c 39 misidentified and damaged under some circumstances. 40 check=none,normal,strict (default normal) 40 check=none,normal,strict (default normal) 41 Check level. Selecting none will cause 41 Check level. Selecting none will cause only little speedup and big 42 danger. I tried to write it so that it 42 danger. I tried to write it so that it won't crash if check=normal on 43 corrupted filesystems. check=strict me 43 corrupted filesystems. check=strict means many superfluous checks - 44 used for debugging (for example it che 44 used for debugging (for example it checks if file is allocated in 45 bitmaps when accessing it). 45 bitmaps when accessing it). 46 errors=continue,remount-ro,panic (default remo 46 errors=continue,remount-ro,panic (default remount-ro) 47 Behaviour when filesystem errors found 47 Behaviour when filesystem errors found. 48 chkdsk=no,errors,always (default errors) 48 chkdsk=no,errors,always (default errors) 49 When to mark filesystem dirty so that 49 When to mark filesystem dirty so that OS/2 checks it. 50 eas=no,ro,rw (default rw) 50 eas=no,ro,rw (default rw) 51 What to do with extended attributes. ' 51 What to do with extended attributes. 'no' - ignore them and use always 52 values specified in uid/gid/mode optio 52 values specified in uid/gid/mode options. 'ro' - read extended 53 attributes but do not create them. 'rw 53 attributes but do not create them. 'rw' - create extended attributes 54 when you use chmod/chown/chgrp/mknod/l 54 when you use chmod/chown/chgrp/mknod/ln -s on the filesystem. 55 timeshift=(-)nnn (default 0) 55 timeshift=(-)nnn (default 0) 56 Shifts the time by nnn seconds. For ex 56 Shifts the time by nnn seconds. For example, if you see under linux 57 one hour more, than under os/2, use ti 57 one hour more, than under os/2, use timeshift=-3600. 58 58 59 59 60 File names 60 File names 61 ========== 61 ========== 62 62 63 As in OS/2, filenames are case insensitive. Ho 63 As in OS/2, filenames are case insensitive. However, shell thinks that names 64 are case sensitive, so for example when you cr 64 are case sensitive, so for example when you create a file FOO, you can use 65 'cat FOO', 'cat Foo', 'cat foo' or 'cat F*' bu 65 'cat FOO', 'cat Foo', 'cat foo' or 'cat F*' but not 'cat f*'. Note, that you 66 also won't be able to compile linux kernel (an 66 also won't be able to compile linux kernel (and maybe other things) on HPFS 67 because kernel creates different files with na 67 because kernel creates different files with names like bootsect.S and 68 bootsect.s. When searching for file thats name 68 bootsect.s. When searching for file thats name has characters >= 128, codepages 69 are used - see below. 69 are used - see below. 70 OS/2 ignores dots and spaces at the end of fil 70 OS/2 ignores dots and spaces at the end of file name, so this driver does as 71 well. If you create 'a. ...', the file 'a' wil 71 well. If you create 'a. ...', the file 'a' will be created, but you can still 72 access it under names 'a.', 'a..', 'a . . . ' 72 access it under names 'a.', 'a..', 'a . . . ' etc. 73 73 74 74 75 Extended attributes 75 Extended attributes 76 =================== 76 =================== 77 77 78 On HPFS partitions, OS/2 can associate to each 78 On HPFS partitions, OS/2 can associate to each file a special information called 79 extended attributes. Extended attributes are p 79 extended attributes. Extended attributes are pairs of (key,value) where key is 80 an ascii string identifying that attribute and 80 an ascii string identifying that attribute and value is any string of bytes of 81 variable length. OS/2 stores window and icon p 81 variable length. OS/2 stores window and icon positions and file types there. So 82 why not use it for unix-specific info like fil 82 why not use it for unix-specific info like file owner or access rights? This 83 driver can do it. If you chown/chgrp/chmod on 83 driver can do it. If you chown/chgrp/chmod on a hpfs partition, extended 84 attributes with keys "UID", "GID" or "MODE" an 84 attributes with keys "UID", "GID" or "MODE" and 2-byte values are created. Only 85 that extended attributes those value differs f 85 that extended attributes those value differs from defaults specified in mount 86 options are created. Once created, the extende 86 options are created. Once created, the extended attributes are never deleted, 87 they're just changed. It means that when your 87 they're just changed. It means that when your default uid=0 and you type 88 something like 'chown luser file; chown root f 88 something like 'chown luser file; chown root file' the file will contain 89 extended attribute UID=0. And when you umount 89 extended attribute UID=0. And when you umount the fs and mount it again with 90 uid=luser_uid, the file will be still owned by 90 uid=luser_uid, the file will be still owned by root! If you chmod file to 444, 91 extended attribute "MODE" will not be set, thi 91 extended attribute "MODE" will not be set, this special case is done by setting 92 read-only flag. When you mknod a block or char 92 read-only flag. When you mknod a block or char device, besides "MODE", the 93 special 4-byte extended attribute "DEV" will b 93 special 4-byte extended attribute "DEV" will be created containing the device 94 number. Currently this driver cannot resize ex 94 number. Currently this driver cannot resize extended attributes - it means 95 that if somebody (I don't know who?) has set " 95 that if somebody (I don't know who?) has set "UID", "GID", "MODE" or "DEV" 96 attributes with different sizes, they won't be 96 attributes with different sizes, they won't be rewritten and changing these 97 values doesn't work. 97 values doesn't work. 98 98 99 99 100 Symlinks 100 Symlinks 101 ======== 101 ======== 102 102 103 You can do symlinks on HPFS partition, symlink 103 You can do symlinks on HPFS partition, symlinks are achieved by setting extended 104 attribute named "SYMLINK" with symlink value. 104 attribute named "SYMLINK" with symlink value. Like on ext2, you can chown and 105 chgrp symlinks but I don't know what is it goo 105 chgrp symlinks but I don't know what is it good for. chmoding symlink results 106 in chmoding file where symlink points. These s 106 in chmoding file where symlink points. These symlinks are just for Linux use and 107 incompatible with OS/2. OS/2 PmShell symlinks 107 incompatible with OS/2. OS/2 PmShell symlinks are not supported because they are 108 stored in very crazy way. They tried to do it 108 stored in very crazy way. They tried to do it so that link changes when file is 109 moved ... sometimes it works. But the link is 109 moved ... sometimes it works. But the link is partly stored in directory 110 extended attributes and partly in OS2SYS.INI. 110 extended attributes and partly in OS2SYS.INI. I don't want (and don't know how) 111 to analyze or change OS2SYS.INI. 111 to analyze or change OS2SYS.INI. 112 112 113 113 114 Codepages 114 Codepages 115 ========= 115 ========= 116 116 117 HPFS can contain several uppercasing tables fo 117 HPFS can contain several uppercasing tables for several codepages and each 118 file has a pointer to codepage its name is in. 118 file has a pointer to codepage its name is in. However OS/2 was created in 119 America where people don't care much about cod 119 America where people don't care much about codepages and so multiple codepages 120 support is quite buggy. I have Czech OS/2 work 120 support is quite buggy. I have Czech OS/2 working in codepage 852 on my disk. 121 Once I booted English OS/2 working in cp 850 a 121 Once I booted English OS/2 working in cp 850 and I created a file on my 852 122 partition. It marked file name codepage as 850 122 partition. It marked file name codepage as 850 - good. But when I again booted 123 Czech OS/2, the file was completely inaccessib 123 Czech OS/2, the file was completely inaccessible under any name. It seems that 124 OS/2 uppercases the search pattern with its sy 124 OS/2 uppercases the search pattern with its system code page (852) and file 125 name it's comparing to with its code page (850 125 name it's comparing to with its code page (850). These could never match. Is it 126 really what IBM developers wanted? But problem 126 really what IBM developers wanted? But problems continued. When I created in 127 Czech OS/2 another file in that directory, tha 127 Czech OS/2 another file in that directory, that file was inaccessible too. OS/2 128 probably uses different uppercasing method whe 128 probably uses different uppercasing method when searching where to place a file 129 (note, that files in HPFS directory must be so 129 (note, that files in HPFS directory must be sorted) and when searching for 130 a file. Finally when I opened this directory i 130 a file. Finally when I opened this directory in PmShell, PmShell crashed (the 131 funny thing was that, when rebooted, PmShell t 131 funny thing was that, when rebooted, PmShell tried to reopen this directory 132 again :-). chkdsk happily ignores these errors 132 again :-). chkdsk happily ignores these errors and only low-level disk 133 modification saved me. Never mix different la 133 modification saved me. Never mix different language versions of OS/2 on one 134 system although HPFS was designed to allow tha 134 system although HPFS was designed to allow that. 135 OK, I could implement complex codepage support 135 OK, I could implement complex codepage support to this driver but I think it 136 would cause more problems than benefit with su 136 would cause more problems than benefit with such buggy implementation in OS/2. 137 So this driver simply uses first codepage it f 137 So this driver simply uses first codepage it finds for uppercasing and 138 lowercasing no matter what's file codepage ind 138 lowercasing no matter what's file codepage index. Usually all file names are in 139 this codepage - if you don't try to do what I 139 this codepage - if you don't try to do what I described above :-) 140 140 141 141 142 Known bugs 142 Known bugs 143 ========== 143 ========== 144 144 145 HPFS386 on OS/2 server is not supported. HPFS3 145 HPFS386 on OS/2 server is not supported. HPFS386 installed on normal OS/2 client 146 should work. If you have OS/2 server, use only 146 should work. If you have OS/2 server, use only read-only mode. I don't know how 147 to handle some HPFS386 structures like access 147 to handle some HPFS386 structures like access control list or extended perm 148 list, I don't know how to delete them when fil 148 list, I don't know how to delete them when file is deleted and how to not 149 overwrite them with extended attributes. Send 149 overwrite them with extended attributes. Send me some info on these structures 150 and I'll make it. However, this driver should 150 and I'll make it. However, this driver should detect presence of HPFS386 151 structures, remount read-only and not destroy 151 structures, remount read-only and not destroy them (I hope). 152 152 153 When there's not enough space for extended att 153 When there's not enough space for extended attributes, they will be truncated 154 and no error is returned. 154 and no error is returned. 155 155 156 OS/2 can't access files if the path is longer 156 OS/2 can't access files if the path is longer than about 256 chars but this 157 driver allows you to do it. chkdsk ignores suc 157 driver allows you to do it. chkdsk ignores such errors. 158 158 159 Sometimes you won't be able to delete some fil 159 Sometimes you won't be able to delete some files on a very full filesystem 160 (returning error ENOSPC). That's because file 160 (returning error ENOSPC). That's because file in non-leaf node in directory tree 161 (one directory, if it's large, has dirents in 161 (one directory, if it's large, has dirents in tree on HPFS) must be replaced 162 with another node when deleted. And that new f 162 with another node when deleted. And that new file might have larger name than 163 the old one so the new name doesn't fit in dir 163 the old one so the new name doesn't fit in directory node (dnode). And that 164 would result in directory tree splitting, that 164 would result in directory tree splitting, that takes disk space. Workaround is 165 to delete other files that are leaf (probabili 165 to delete other files that are leaf (probability that the file is non-leaf is 166 about 1/50) or to truncate file first to make 166 about 1/50) or to truncate file first to make some space. 167 You encounter this problem only if you have ma 167 You encounter this problem only if you have many directories so that 168 preallocated directory band is full i.e.:: 168 preallocated directory band is full i.e.:: 169 169 170 number_of_directories / size_of_filesy 170 number_of_directories / size_of_filesystem_in_mb > 4. 171 171 172 You can't delete open directories. 172 You can't delete open directories. 173 173 174 You can't rename over directories (what is it 174 You can't rename over directories (what is it good for?). 175 175 176 Renaming files so that only case changes doesn 176 Renaming files so that only case changes doesn't work. This driver supports it 177 but vfs doesn't. Something like 'mv file FILE' 177 but vfs doesn't. Something like 'mv file FILE' won't work. 178 178 179 All atimes and directory mtimes are not update 179 All atimes and directory mtimes are not updated. That's because of performance 180 reasons. If you extremely wish to update them, 180 reasons. If you extremely wish to update them, let me know, I'll write it (but 181 it will be slow). 181 it will be slow). 182 182 183 When the system is out of memory and swap, it 183 When the system is out of memory and swap, it may slightly corrupt filesystem 184 (lost files, unbalanced directories). (I guess 184 (lost files, unbalanced directories). (I guess all filesystem may do it). 185 185 186 When compiled, you get warning: function decla 186 When compiled, you get warning: function declaration isn't a prototype. Does 187 anybody know what does it mean? 187 anybody know what does it mean? 188 188 189 189 190 What does "unbalanced tree" message mean? 190 What does "unbalanced tree" message mean? 191 ========================================= 191 ========================================= 192 192 193 Old versions of this driver created sometimes 193 Old versions of this driver created sometimes unbalanced dnode trees. OS/2 194 chkdsk doesn't scream if the tree is unbalance 194 chkdsk doesn't scream if the tree is unbalanced (and sometimes creates 195 unbalanced trees too :-) but both HPFS and HPF 195 unbalanced trees too :-) but both HPFS and HPFS386 contain bug that it rarely 196 crashes when the tree is not balanced. This dr 196 crashes when the tree is not balanced. This driver handles unbalanced trees 197 correctly and writes warning if it finds them. 197 correctly and writes warning if it finds them. If you see this message, this is 198 probably because of directories created with o 198 probably because of directories created with old version of this driver. 199 Workaround is to move all files from that dire 199 Workaround is to move all files from that directory to another and then back 200 again. Do it in Linux, not OS/2! If you see th 200 again. Do it in Linux, not OS/2! If you see this message in directory that is 201 whole created by this driver, it is BUG - let 201 whole created by this driver, it is BUG - let me know about it. 202 202 203 203 204 Bugs in OS/2 204 Bugs in OS/2 205 ============ 205 ============ 206 206 207 When you have two (or more) lost directories p 207 When you have two (or more) lost directories pointing each to other, chkdsk 208 locks up when repairing filesystem. 208 locks up when repairing filesystem. 209 209 210 Sometimes (I think it's random) when you creat 210 Sometimes (I think it's random) when you create a file with one-char name under 211 OS/2, OS/2 marks it as 'long'. chkdsk then rem 211 OS/2, OS/2 marks it as 'long'. chkdsk then removes this flag saying "Minor fs 212 error corrected". 212 error corrected". 213 213 214 File names like "a .b" are marked as 'long' by 214 File names like "a .b" are marked as 'long' by OS/2 but chkdsk "corrects" it and 215 marks them as short (and writes "minor fs erro 215 marks them as short (and writes "minor fs error corrected"). This bug is not in 216 HPFS386. 216 HPFS386. 217 217 218 Codepage bugs described above 218 Codepage bugs described above 219 ============================= 219 ============================= 220 220 221 If you don't install fixpacks, there are many, 221 If you don't install fixpacks, there are many, many more... 222 222 223 223 224 History 224 History 225 ======= 225 ======= 226 226 227 ====== ======================================= 227 ====== ========================================================================= 228 0.90 First public release 228 0.90 First public release 229 0.91 Fixed bug that caused shooting to memor 229 0.91 Fixed bug that caused shooting to memory when write_inode was called on 230 open inode (rarely happened) 230 open inode (rarely happened) 231 0.92 Fixed a little memory leak in freeing d 231 0.92 Fixed a little memory leak in freeing directory inodes 232 0.93 Fixed bug that locked up the machine wh 232 0.93 Fixed bug that locked up the machine when there were too many filenames 233 with first 15 characters same 233 with first 15 characters same 234 Fixed write_file to zero file when writ 234 Fixed write_file to zero file when writing behind file end 235 0.94 Fixed a little memory leak when trying 235 0.94 Fixed a little memory leak when trying to delete busy file or directory 236 0.95 Fixed a bug that i_hpfs_parent_dir was 236 0.95 Fixed a bug that i_hpfs_parent_dir was not updated when moving files 237 1.90 First version for 2.1.1xx kernels 237 1.90 First version for 2.1.1xx kernels 238 1.91 Fixed a bug that chk_sectors failed whe 238 1.91 Fixed a bug that chk_sectors failed when sectors were at the end of disk 239 Fixed a race-condition when write_inode 239 Fixed a race-condition when write_inode is called while deleting file 240 Fixed a bug that could possibly happen 240 Fixed a bug that could possibly happen (with very low probability) when 241 using 0xff in filenames. 241 using 0xff in filenames. 242 242 243 Rewritten locking to avoid race-conditi 243 Rewritten locking to avoid race-conditions 244 244 245 Mount option 'eas' now works 245 Mount option 'eas' now works 246 246 247 Fsync no longer returns error 247 Fsync no longer returns error 248 248 249 Files beginning with '.' are marked hid 249 Files beginning with '.' are marked hidden 250 250 251 Remount support added 251 Remount support added 252 252 253 Alloc is not so slow when filesystem be 253 Alloc is not so slow when filesystem becomes full 254 254 255 Atimes are no more updated because it s 255 Atimes are no more updated because it slows down operation 256 256 257 Code cleanup (removed all commented deb 257 Code cleanup (removed all commented debug prints) 258 1.92 Corrected a bug when sync was called ju 258 1.92 Corrected a bug when sync was called just before closing file 259 1.93 Modified, so that it works with kernels 259 1.93 Modified, so that it works with kernels >= 2.1.131, I don't know if it 260 works with previous versions 260 works with previous versions 261 261 262 Fixed a possible problem with disks > 6 262 Fixed a possible problem with disks > 64G (but I don't have one, so I can't 263 test it) 263 test it) 264 264 265 Fixed a file overflow at 2G 265 Fixed a file overflow at 2G 266 266 267 Added new option 'timeshift' 267 Added new option 'timeshift' 268 268 269 Changed behaviour on HPFS386: It is now 269 Changed behaviour on HPFS386: It is now possible to operate on HPFS386 in 270 read-only mode 270 read-only mode 271 271 272 Fixed a bug that slowed down alloc and 272 Fixed a bug that slowed down alloc and prevented allocating 100% space 273 (this bug was not destructive) 273 (this bug was not destructive) 274 1.94 Added workaround for one bug in Linux 274 1.94 Added workaround for one bug in Linux 275 275 276 Fixed one buffer leak 276 Fixed one buffer leak 277 277 278 Fixed some incompatibilities with large 278 Fixed some incompatibilities with large extended attributes (but it's still 279 not 100% ok, I have no info on it and O 279 not 100% ok, I have no info on it and OS/2 doesn't want to create them) 280 280 281 Rewritten allocation 281 Rewritten allocation 282 282 283 Fixed a bug with i_blocks (du sometimes 283 Fixed a bug with i_blocks (du sometimes didn't display correct values) 284 284 285 Directories have no longer archive attr 285 Directories have no longer archive attribute set (some programs don't like 286 it) 286 it) 287 287 288 Fixed a bug that it set badly one flag 288 Fixed a bug that it set badly one flag in large anode tree (it was not 289 destructive) 289 destructive) 290 1.95 Fixed one buffer leak, that could happe 290 1.95 Fixed one buffer leak, that could happen on corrupted filesystem 291 291 292 Fixed one bug in allocation in 1.94 292 Fixed one bug in allocation in 1.94 293 1.96 Added workaround for one bug in OS/2 (H 293 1.96 Added workaround for one bug in OS/2 (HPFS locked up, HPFS386 reported 294 error sometimes when opening directorie 294 error sometimes when opening directories in PMSHELL) 295 295 296 Fixed a possible bitmap race 296 Fixed a possible bitmap race 297 297 298 Fixed possible problem on large disks 298 Fixed possible problem on large disks 299 299 300 You can now delete open files 300 You can now delete open files 301 301 302 Fixed a nondestructive race in rename 302 Fixed a nondestructive race in rename 303 1.97 Support for HPFS v3 (on large partition 303 1.97 Support for HPFS v3 (on large partitions) 304 304 305 ZFixed a bug that it didn't allow creat 305 ZFixed a bug that it didn't allow creation of files > 128M 306 (it should be 2G) 306 (it should be 2G) 307 1.97.1 Changed names of global symbols 307 1.97.1 Changed names of global symbols 308 308 309 Fixed a bug when chmoding or chowning r 309 Fixed a bug when chmoding or chowning root directory 310 1.98 Fixed a deadlock when using old_readdir 310 1.98 Fixed a deadlock when using old_readdir 311 Better directory handling; workaround f 311 Better directory handling; workaround for "unbalanced tree" bug in OS/2 312 1.99 Corrected a possible problem when there 312 1.99 Corrected a possible problem when there's not enough space while deleting 313 file 313 file 314 314 315 Now it tries to truncate the file if th 315 Now it tries to truncate the file if there's not enough space when 316 deleting 316 deleting 317 317 318 Removed a lot of redundant code 318 Removed a lot of redundant code 319 2.00 Fixed a bug in rename (it was there sin 319 2.00 Fixed a bug in rename (it was there since 1.96) 320 Better anti-fragmentation strategy 320 Better anti-fragmentation strategy 321 2.01 Fixed problem with directory listing ov 321 2.01 Fixed problem with directory listing over NFS 322 322 323 Directory lseek now checks for proper p 323 Directory lseek now checks for proper parameters 324 324 325 Fixed race-condition in buffer code - i 325 Fixed race-condition in buffer code - it is in all filesystems in Linux; 326 when reading device (cat /dev/hda) whil 326 when reading device (cat /dev/hda) while creating files on it, files 327 could be damaged 327 could be damaged 328 2.02 Workaround for bug in breada in Linux. 328 2.02 Workaround for bug in breada in Linux. breada could cause accesses beyond 329 end of partition 329 end of partition 330 2.03 Char, block devices and pipes are corre 330 2.03 Char, block devices and pipes are correctly created 331 331 332 Fixed non-crashing race in unlink (Alex 332 Fixed non-crashing race in unlink (Alexander Viro) 333 333 334 Now it works with Japanese version of O 334 Now it works with Japanese version of OS/2 335 2.04 Fixed error when ftruncate used to exte 335 2.04 Fixed error when ftruncate used to extend file 336 2.05 Fixed crash when got mount parameters w 336 2.05 Fixed crash when got mount parameters without = 337 337 338 Fixed crash when allocation of anode fa 338 Fixed crash when allocation of anode failed due to full disk 339 339 340 Fixed some crashes when block io or ino 340 Fixed some crashes when block io or inode allocation failed 341 2.06 Fixed some crash on corrupted disk stru 341 2.06 Fixed some crash on corrupted disk structures 342 342 343 Better allocation strategy 343 Better allocation strategy 344 344 345 Reschedule points added so that it does 345 Reschedule points added so that it doesn't lock CPU long time 346 346 347 It should work in read-only mode on War 347 It should work in read-only mode on Warp Server 348 2.07 More fixes for Warp Server. Now it real 348 2.07 More fixes for Warp Server. Now it really works 349 2.08 Creating new files is not so slow on la 349 2.08 Creating new files is not so slow on large disks 350 350 351 An attempt to sync deleted file does no 351 An attempt to sync deleted file does not generate filesystem error 352 2.09 Fixed error on extremely fragmented fil 352 2.09 Fixed error on extremely fragmented files 353 ====== ======================================= 353 ====== =========================================================================
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.