forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
docs: filesystems: convert hpfs.txt to ReST
- Add a SPDX header; - Adjust document and section titles; - Some whitespace fixes and new line breaks; - Mark literal blocks as such; - Add table markups; - Add it to filesystems/index.rst. Signed-off-by: Mauro Carvalho Chehab <[email protected]> Link: https://lore.kernel.org/r/581019c3120938118aa55ba28902b62083c3f37a.1581955849.git.mchehab+huawei@kernel.org Signed-off-by: Jonathan Corbet <[email protected]>
- Loading branch information
Showing
2 changed files
with
149 additions
and
91 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,13 +1,21 @@ | ||
.. SPDX-License-Identifier: GPL-2.0 | ||
==================== | ||
Read/Write HPFS 2.09 | ||
==================== | ||
|
||
1998-2004, Mikulas Patocka | ||
|
||
email: [email protected] | ||
homepage: http://artax.karlin.mff.cuni.cz/~mikulas/vyplody/hpfs/index-e.cgi | ||
:email: [email protected] | ||
:homepage: http://artax.karlin.mff.cuni.cz/~mikulas/vyplody/hpfs/index-e.cgi | ||
|
||
CREDITS: | ||
Credits | ||
======= | ||
Chris Smith, 1993, original read-only HPFS, some code and hpfs structures file | ||
is taken from it | ||
|
||
Jacques Gelinas, MSDos mmap, Inspired by fs/nfs/mmap.c (Jon Tombs 15 Aug 1993) | ||
|
||
Werner Almesberger, 1992, 1993, MSDos option parser & CR/LF conversion | ||
|
||
Mount options | ||
|
@@ -50,6 +58,7 @@ timeshift=(-)nnn (default 0) | |
|
||
|
||
File names | ||
========== | ||
|
||
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 | ||
|
@@ -64,6 +73,7 @@ access it under names 'a.', 'a..', 'a . . . ' etc. | |
|
||
|
||
Extended attributes | ||
=================== | ||
|
||
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 | ||
|
@@ -88,6 +98,7 @@ values doesn't work. | |
|
||
|
||
Symlinks | ||
======== | ||
|
||
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 | ||
|
@@ -101,6 +112,7 @@ to analyze or change OS2SYS.INI. | |
|
||
|
||
Codepages | ||
========= | ||
|
||
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 | ||
|
@@ -128,6 +140,7 @@ this codepage - if you don't try to do what I described above :-) | |
|
||
|
||
Known bugs | ||
========== | ||
|
||
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 | ||
|
@@ -152,7 +165,8 @@ 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. | ||
preallocated directory band is full i.e.:: | ||
|
||
number_of_directories / size_of_filesystem_in_mb > 4. | ||
|
||
You can't delete open directories. | ||
|
@@ -174,6 +188,7 @@ anybody know what does it mean? | |
|
||
|
||
What does "unbalanced tree" message mean? | ||
========================================= | ||
|
||
Old versions of this driver created sometimes unbalanced dnode trees. OS/2 | ||
chkdsk doesn't scream if the tree is unbalanced (and sometimes creates | ||
|
@@ -187,6 +202,7 @@ whole created by this driver, it is BUG - let me know about it. | |
|
||
|
||
Bugs in OS/2 | ||
============ | ||
|
||
When you have two (or more) lost directories pointing each to other, chkdsk | ||
locks up when repairing filesystem. | ||
|
@@ -199,98 +215,139 @@ 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. | ||
|
||
Codepage bugs described above. | ||
Codepage bugs described above | ||
============================= | ||
|
||
If you don't install fixpacks, there are many, many more... | ||
|
||
|
||
History | ||
======= | ||
|
||
====== ========================================================================= | ||
0.90 First public release | ||
0.91 Fixed bug that caused shooting to memory when write_inode was called on | ||
open inode (rarely happened) | ||
0.92 Fixed a little memory leak in freeing directory inodes | ||
0.93 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 | ||
0.94 Fixed a little memory leak when trying to delete busy file or directory | ||
0.95 Fixed a bug that i_hpfs_parent_dir was not updated when moving files | ||
1.90 First version for 2.1.1xx kernels | ||
1.91 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. | ||
|
||
Rewritten locking to avoid race-conditions | ||
|
||
Mount option 'eas' now works | ||
|
||
Fsync no longer returns error | ||
|
||
Files beginning with '.' are marked hidden | ||
|
||
Remount support added | ||
|
||
Alloc is not so slow when filesystem becomes full | ||
|
||
Atimes are no more updated because it slows down operation | ||
|
||
Code cleanup (removed all commented debug prints) | ||
1.92 Corrected a bug when sync was called just before closing file | ||
1.93 Modified, so that it works with kernels >= 2.1.131, I don't know if it | ||
works with previous versions | ||
|
||
Fixed a possible problem with disks > 64G (but I don't have one, so I can't | ||
test it) | ||
|
||
Fixed a file overflow at 2G | ||
|
||
Added new option 'timeshift' | ||
|
||
Changed behaviour on HPFS386: It is now possible to operate on HPFS386 in | ||
read-only mode | ||
|
||
Fixed a bug that slowed down alloc and prevented allocating 100% space | ||
(this bug was not destructive) | ||
1.94 Added workaround for one bug in Linux | ||
|
||
Fixed one buffer leak | ||
|
||
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) | ||
|
||
Rewritten allocation | ||
|
||
0.90 First public release | ||
0.91 Fixed bug that caused shooting to memory when write_inode was called on | ||
open inode (rarely happened) | ||
0.92 Fixed a little memory leak in freeing directory inodes | ||
0.93 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 | ||
0.94 Fixed a little memory leak when trying to delete busy file or directory | ||
0.95 Fixed a bug that i_hpfs_parent_dir was not updated when moving files | ||
1.90 First version for 2.1.1xx kernels | ||
1.91 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 | ||
Rewritten locking to avoid race-conditions | ||
Mount option 'eas' now works | ||
Fsync no longer returns error | ||
Files beginning with '.' are marked hidden | ||
Remount support added | ||
Alloc is not so slow when filesystem becomes full | ||
Atimes are no more updated because it slows down operation | ||
Code cleanup (removed all commented debug prints) | ||
1.92 Corrected a bug when sync was called just before closing file | ||
1.93 Modified, so that it works with kernels >= 2.1.131, I don't know if it | ||
works with previous versions | ||
Fixed a possible problem with disks > 64G (but I don't have one, so I can't | ||
test it) | ||
Fixed a file overflow at 2G | ||
Added new option 'timeshift' | ||
Changed behaviour on HPFS386: It is now possible to operate on HPFS386 in | ||
read-only mode | ||
Fixed a bug that slowed down alloc and prevented allocating 100% space | ||
(this bug was not destructive) | ||
1.94 Added workaround for one bug in Linux | ||
Fixed one buffer leak | ||
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) | ||
Rewritten allocation | ||
Fixed a bug with i_blocks (du sometimes didn't display correct values) | ||
Directories have no longer archive attribute set (some programs don't like | ||
it) | ||
Fixed a bug that it set badly one flag in large anode tree (it was not | ||
destructive) | ||
1.95 Fixed one buffer leak, that could happen on corrupted filesystem | ||
Fixed one bug in allocation in 1.94 | ||
1.96 Added workaround for one bug in OS/2 (HPFS locked up, HPFS386 reported | ||
error sometimes when opening directories in PMSHELL) | ||
Fixed a possible bitmap race | ||
Fixed possible problem on large disks | ||
You can now delete open files | ||
Fixed a nondestructive race in rename | ||
1.97 Support for HPFS v3 (on large partitions) | ||
Fixed a bug that it didn't allow creation of files > 128M (it should be 2G) | ||
Fixed a bug with i_blocks (du sometimes didn't display correct values) | ||
|
||
Directories have no longer archive attribute set (some programs don't like | ||
it) | ||
|
||
Fixed a bug that it set badly one flag in large anode tree (it was not | ||
destructive) | ||
1.95 Fixed one buffer leak, that could happen on corrupted filesystem | ||
|
||
Fixed one bug in allocation in 1.94 | ||
1.96 Added workaround for one bug in OS/2 (HPFS locked up, HPFS386 reported | ||
error sometimes when opening directories in PMSHELL) | ||
|
||
Fixed a possible bitmap race | ||
|
||
Fixed possible problem on large disks | ||
|
||
You can now delete open files | ||
|
||
Fixed a nondestructive race in rename | ||
1.97 Support for HPFS v3 (on large partitions) | ||
|
||
ZFixed a bug that it didn't allow creation of files > 128M | ||
(it should be 2G) | ||
1.97.1 Changed names of global symbols | ||
|
||
Fixed a bug when chmoding or chowning root directory | ||
1.98 Fixed a deadlock when using old_readdir | ||
Better directory handling; workaround for "unbalanced tree" bug in OS/2 | ||
1.99 Corrected a possible problem when there's not enough space while deleting | ||
file | ||
Now it tries to truncate the file if there's not enough space when deleting | ||
Removed a lot of redundant code | ||
2.00 Fixed a bug in rename (it was there since 1.96) | ||
Better anti-fragmentation strategy | ||
2.01 Fixed problem with directory listing over NFS | ||
Directory lseek now checks for proper parameters | ||
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 | ||
2.02 Workaround for bug in breada in Linux. breada could cause accesses beyond | ||
end of partition | ||
2.03 Char, block devices and pipes are correctly created | ||
Fixed non-crashing race in unlink (Alexander Viro) | ||
Now it works with Japanese version of OS/2 | ||
2.04 Fixed error when ftruncate used to extend file | ||
2.05 Fixed crash when got mount parameters without = | ||
Fixed crash when allocation of anode failed due to full disk | ||
Fixed some crashes when block io or inode allocation failed | ||
2.06 Fixed some crash on corrupted disk structures | ||
Better allocation strategy | ||
Reschedule points added so that it doesn't lock CPU long time | ||
It should work in read-only mode on Warp Server | ||
2.07 More fixes for Warp Server. Now it really works | ||
2.08 Creating new files is not so slow on large disks | ||
An attempt to sync deleted file does not generate filesystem error | ||
2.09 Fixed error on extremely fragmented files | ||
|
||
|
||
vim: set textwidth=80: | ||
1.98 Fixed a deadlock when using old_readdir | ||
Better directory handling; workaround for "unbalanced tree" bug in OS/2 | ||
1.99 Corrected a possible problem when there's not enough space while deleting | ||
file | ||
|
||
Now it tries to truncate the file if there's not enough space when | ||
deleting | ||
|
||
Removed a lot of redundant code | ||
2.00 Fixed a bug in rename (it was there since 1.96) | ||
Better anti-fragmentation strategy | ||
2.01 Fixed problem with directory listing over NFS | ||
|
||
Directory lseek now checks for proper parameters | ||
|
||
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 | ||
2.02 Workaround for bug in breada in Linux. breada could cause accesses beyond | ||
end of partition | ||
2.03 Char, block devices and pipes are correctly created | ||
|
||
Fixed non-crashing race in unlink (Alexander Viro) | ||
|
||
Now it works with Japanese version of OS/2 | ||
2.04 Fixed error when ftruncate used to extend file | ||
2.05 Fixed crash when got mount parameters without = | ||
|
||
Fixed crash when allocation of anode failed due to full disk | ||
|
||
Fixed some crashes when block io or inode allocation failed | ||
2.06 Fixed some crash on corrupted disk structures | ||
|
||
Better allocation strategy | ||
|
||
Reschedule points added so that it doesn't lock CPU long time | ||
|
||
It should work in read-only mode on Warp Server | ||
2.07 More fixes for Warp Server. Now it really works | ||
2.08 Creating new files is not so slow on large disks | ||
|
||
An attempt to sync deleted file does not generate filesystem error | ||
2.09 Fixed error on extremely fragmented files | ||
====== ========================================================================= |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -69,6 +69,7 @@ Documentation for filesystem implementations. | |
gfs2-uevents | ||
hfs | ||
hfsplus | ||
hpfs | ||
fuse | ||
overlayfs | ||
virtiofs | ||
|