Commit a1ef4bcd authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab Committed by Jonathan Corbet

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: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Link: https://lore.kernel.org/r/581019c3120938118aa55ba28902b62083c3f37a.1581955849.git.mchehab+huawei@kernel.orgSigned-off-by: default avatarJonathan Corbet <corbet@lwn.net>
parent 5040a0ac
.. SPDX-License-Identifier: GPL-2.0
====================
Read/Write HPFS 2.09 Read/Write HPFS 2.09
====================
1998-2004, Mikulas Patocka 1998-2004, Mikulas Patocka
email: mikulas@artax.karlin.mff.cuni.cz :email: mikulas@artax.karlin.mff.cuni.cz
homepage: http://artax.karlin.mff.cuni.cz/~mikulas/vyplody/hpfs/index-e.cgi :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 Chris Smith, 1993, original read-only HPFS, some code and hpfs structures file
is taken from it is taken from it
Jacques Gelinas, MSDos mmap, Inspired by fs/nfs/mmap.c (Jon Tombs 15 Aug 1993) 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 Werner Almesberger, 1992, 1993, MSDos option parser & CR/LF conversion
Mount options Mount options
...@@ -50,6 +58,7 @@ timeshift=(-)nnn (default 0) ...@@ -50,6 +58,7 @@ timeshift=(-)nnn (default 0)
File names File names
==========
As in OS/2, filenames are case insensitive. However, shell thinks that 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 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. ...@@ -64,6 +73,7 @@ access it under names 'a.', 'a..', 'a . . . ' etc.
Extended attributes Extended attributes
===================
On HPFS partitions, OS/2 can associate to each file a special information called 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 extended attributes. Extended attributes are pairs of (key,value) where key is
...@@ -88,6 +98,7 @@ values doesn't work. ...@@ -88,6 +98,7 @@ values doesn't work.
Symlinks Symlinks
========
You can do symlinks on HPFS partition, symlinks are achieved by setting extended 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 attribute named "SYMLINK" with symlink value. Like on ext2, you can chown and
...@@ -101,6 +112,7 @@ to analyze or change OS2SYS.INI. ...@@ -101,6 +112,7 @@ to analyze or change OS2SYS.INI.
Codepages Codepages
=========
HPFS can contain several uppercasing tables for several codepages and each 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 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 :-) ...@@ -128,6 +140,7 @@ this codepage - if you don't try to do what I described above :-)
Known bugs Known bugs
==========
HPFS386 on OS/2 server is not supported. HPFS386 installed on normal OS/2 client 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 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 ...@@ -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 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. about 1/50) or to truncate file first to make some space.
You encounter this problem only if you have many directories so that 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. number_of_directories / size_of_filesystem_in_mb > 4.
You can't delete open directories. You can't delete open directories.
...@@ -174,6 +188,7 @@ anybody know what does it mean? ...@@ -174,6 +188,7 @@ anybody know what does it mean?
What does "unbalanced tree" message mean? What does "unbalanced tree" message mean?
=========================================
Old versions of this driver created sometimes unbalanced dnode trees. OS/2 Old versions of this driver created sometimes unbalanced dnode trees. OS/2
chkdsk doesn't scream if the tree is unbalanced (and sometimes creates 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. ...@@ -187,6 +202,7 @@ whole created by this driver, it is BUG - let me know about it.
Bugs in OS/2 Bugs in OS/2
============
When you have two (or more) lost directories pointing each to other, chkdsk When you have two (or more) lost directories pointing each to other, chkdsk
locks up when repairing filesystem. 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 ...@@ -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 marks them as short (and writes "minor fs error corrected"). This bug is not in
HPFS386. HPFS386.
Codepage bugs described above. Codepage bugs described above
=============================
If you don't install fixpacks, there are many, many more... If you don't install fixpacks, there are many, many more...
History 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 Fixed a bug with i_blocks (du sometimes didn't display correct values)
0.91 Fixed bug that caused shooting to memory when write_inode was called on
open inode (rarely happened) Directories have no longer archive attribute set (some programs don't like
0.92 Fixed a little memory leak in freeing directory inodes it)
0.93 Fixed bug that locked up the machine when there were too many filenames
with first 15 characters same Fixed a bug that it set badly one flag in large anode tree (it was not
Fixed write_file to zero file when writing behind file end destructive)
0.94 Fixed a little memory leak when trying to delete busy file or directory 1.95 Fixed one buffer leak, that could happen on corrupted filesystem
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 Fixed one bug in allocation in 1.94
1.91 Fixed a bug that chk_sectors failed when sectors were at the end of disk 1.96 Added workaround for one bug in OS/2 (HPFS locked up, HPFS386 reported
Fixed a race-condition when write_inode is called while deleting file error sometimes when opening directories in PMSHELL)
Fixed a bug that could possibly happen (with very low probability) when
using 0xff in filenames Fixed a possible bitmap race
Rewritten locking to avoid race-conditions
Mount option 'eas' now works Fixed possible problem on large disks
Fsync no longer returns error
Files beginning with '.' are marked hidden You can now delete open files
Remount support added
Alloc is not so slow when filesystem becomes full Fixed a nondestructive race in rename
Atimes are no more updated because it slows down operation 1.97 Support for HPFS v3 (on large partitions)
Code cleanup (removed all commented debug prints)
1.92 Corrected a bug when sync was called just before closing file ZFixed a bug that it didn't allow creation of files > 128M
1.93 Modified, so that it works with kernels >= 2.1.131, I don't know if it (it should be 2G)
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)
1.97.1 Changed names of global symbols 1.97.1 Changed names of global symbols
Fixed a bug when chmoding or chowning root directory Fixed a bug when chmoding or chowning root directory
1.98 Fixed a deadlock when using old_readdir 1.98 Fixed a deadlock when using old_readdir
Better directory handling; workaround for "unbalanced tree" bug in OS/2 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 1.99 Corrected a possible problem when there's not enough space while deleting
file file
Now it tries to truncate the file if there's not enough space when deleting
Removed a lot of redundant code Now it tries to truncate the file if there's not enough space when
2.00 Fixed a bug in rename (it was there since 1.96) deleting
Better anti-fragmentation strategy
2.01 Fixed problem with directory listing over NFS Removed a lot of redundant code
Directory lseek now checks for proper parameters 2.00 Fixed a bug in rename (it was there since 1.96)
Fixed race-condition in buffer code - it is in all filesystems in Linux; Better anti-fragmentation strategy
when reading device (cat /dev/hda) while creating files on it, files 2.01 Fixed problem with directory listing over NFS
could be damaged
2.02 Workaround for bug in breada in Linux. breada could cause accesses beyond Directory lseek now checks for proper parameters
end of partition
2.03 Char, block devices and pipes are correctly created Fixed race-condition in buffer code - it is in all filesystems in Linux;
Fixed non-crashing race in unlink (Alexander Viro) when reading device (cat /dev/hda) while creating files on it, files
Now it works with Japanese version of OS/2 could be damaged
2.04 Fixed error when ftruncate used to extend file 2.02 Workaround for bug in breada in Linux. breada could cause accesses beyond
2.05 Fixed crash when got mount parameters without = end of partition
Fixed crash when allocation of anode failed due to full disk 2.03 Char, block devices and pipes are correctly created
Fixed some crashes when block io or inode allocation failed
2.06 Fixed some crash on corrupted disk structures Fixed non-crashing race in unlink (Alexander Viro)
Better allocation strategy
Reschedule points added so that it doesn't lock CPU long time Now it works with Japanese version of OS/2
It should work in read-only mode on Warp Server 2.04 Fixed error when ftruncate used to extend file
2.07 More fixes for Warp Server. Now it really works 2.05 Fixed crash when got mount parameters without =
2.08 Creating new files is not so slow on large disks
An attempt to sync deleted file does not generate filesystem error Fixed crash when allocation of anode failed due to full disk
2.09 Fixed error on extremely fragmented files
Fixed some crashes when block io or inode allocation failed
2.06 Fixed some crash on corrupted disk structures
vim: set textwidth=80:
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
====== =========================================================================
...@@ -69,6 +69,7 @@ Documentation for filesystem implementations. ...@@ -69,6 +69,7 @@ Documentation for filesystem implementations.
gfs2-uevents gfs2-uevents
hfs hfs
hfsplus hfsplus
hpfs
fuse fuse
overlayfs overlayfs
virtiofs virtiofs
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment