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,13 +215,16 @@ File names like "a .b" are marked as 'long' by OS/2 but chkdsk "corrects" it and ...@@ -199,13 +215,16 @@ 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.90 First public release
0.91 Fixed bug that caused shooting to memory when write_inode was called on 0.91 Fixed bug that caused shooting to memory when write_inode was called on
open inode (rarely happened) open inode (rarely happened)
...@@ -219,78 +238,116 @@ History ...@@ -219,78 +238,116 @@ History
1.91 Fixed a bug that chk_sectors failed when sectors were at the end of disk 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 race-condition when write_inode is called while deleting file
Fixed a bug that could possibly happen (with very low probability) when Fixed a bug that could possibly happen (with very low probability) when
using 0xff in filenames using 0xff in filenames.
Rewritten locking to avoid race-conditions Rewritten locking to avoid race-conditions
Mount option 'eas' now works Mount option 'eas' now works
Fsync no longer returns error Fsync no longer returns error
Files beginning with '.' are marked hidden Files beginning with '.' are marked hidden
Remount support added Remount support added
Alloc is not so slow when filesystem becomes full Alloc is not so slow when filesystem becomes full
Atimes are no more updated because it slows down operation Atimes are no more updated because it slows down operation
Code cleanup (removed all commented debug prints) Code cleanup (removed all commented debug prints)
1.92 Corrected a bug when sync was called just before closing file 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 1.93 Modified, so that it works with kernels >= 2.1.131, I don't know if it
works with previous versions works with previous versions
Fixed a possible problem with disks > 64G (but I don't have one, so I can't Fixed a possible problem with disks > 64G (but I don't have one, so I can't
test it) test it)
Fixed a file overflow at 2G Fixed a file overflow at 2G
Added new option 'timeshift' Added new option 'timeshift'
Changed behaviour on HPFS386: It is now possible to operate on HPFS386 in Changed behaviour on HPFS386: It is now possible to operate on HPFS386 in
read-only mode read-only mode
Fixed a bug that slowed down alloc and prevented allocating 100% space Fixed a bug that slowed down alloc and prevented allocating 100% space
(this bug was not destructive) (this bug was not destructive)
1.94 Added workaround for one bug in Linux 1.94 Added workaround for one bug in Linux
Fixed one buffer leak Fixed one buffer leak
Fixed some incompatibilities with large extended attributes (but it's still 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) not 100% ok, I have no info on it and OS/2 doesn't want to create them)
Rewritten allocation Rewritten allocation
Fixed a bug with i_blocks (du sometimes didn't display correct values) 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 Directories have no longer archive attribute set (some programs don't like
it) it)
Fixed a bug that it set badly one flag in large anode tree (it was not Fixed a bug that it set badly one flag in large anode tree (it was not
destructive) destructive)
1.95 Fixed one buffer leak, that could happen on corrupted filesystem 1.95 Fixed one buffer leak, that could happen on corrupted filesystem
Fixed one bug in allocation in 1.94 Fixed one bug in allocation in 1.94
1.96 Added workaround for one bug in OS/2 (HPFS locked up, HPFS386 reported 1.96 Added workaround for one bug in OS/2 (HPFS locked up, HPFS386 reported
error sometimes when opening directories in PMSHELL) error sometimes when opening directories in PMSHELL)
Fixed a possible bitmap race Fixed a possible bitmap race
Fixed possible problem on large disks Fixed possible problem on large disks
You can now delete open files You can now delete open files
Fixed a nondestructive race in rename Fixed a nondestructive race in rename
1.97 Support for HPFS v3 (on large partitions) 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)
ZFixed 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
Now it tries to truncate the file if there's not enough space when
deleting
Removed a lot of redundant code Removed a lot of redundant code
2.00 Fixed a bug in rename (it was there since 1.96) 2.00 Fixed a bug in rename (it was there since 1.96)
Better anti-fragmentation strategy Better anti-fragmentation strategy
2.01 Fixed problem with directory listing over NFS 2.01 Fixed problem with directory listing over NFS
Directory lseek now checks for proper parameters Directory lseek now checks for proper parameters
Fixed race-condition in buffer code - it is in all filesystems in Linux; 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 when reading device (cat /dev/hda) while creating files on it, files
could be damaged could be damaged
2.02 Workaround for bug in breada in Linux. breada could cause accesses beyond 2.02 Workaround for bug in breada in Linux. breada could cause accesses beyond
end of partition end of partition
2.03 Char, block devices and pipes are correctly created 2.03 Char, block devices and pipes are correctly created
Fixed non-crashing race in unlink (Alexander Viro) Fixed non-crashing race in unlink (Alexander Viro)
Now it works with Japanese version of OS/2 Now it works with Japanese version of OS/2
2.04 Fixed error when ftruncate used to extend file 2.04 Fixed error when ftruncate used to extend file
2.05 Fixed crash when got mount parameters without = 2.05 Fixed crash when got mount parameters without =
Fixed crash when allocation of anode failed due to full disk Fixed crash when allocation of anode failed due to full disk
Fixed some crashes when block io or inode allocation failed Fixed some crashes when block io or inode allocation failed
2.06 Fixed some crash on corrupted disk structures 2.06 Fixed some crash on corrupted disk structures
Better allocation strategy Better allocation strategy
Reschedule points added so that it doesn't lock CPU long time Reschedule points added so that it doesn't lock CPU long time
It should work in read-only mode on Warp Server It should work in read-only mode on Warp Server
2.07 More fixes for Warp Server. Now it really works 2.07 More fixes for Warp Server. Now it really works
2.08 Creating new files is not so slow on large disks 2.08 Creating new files is not so slow on large disks
An attempt to sync deleted file does not generate filesystem error An attempt to sync deleted file does not generate filesystem error
2.09 Fixed error on extremely fragmented files 2.09 Fixed error on extremely fragmented files
====== =========================================================================
vim: set textwidth=80:
...@@ -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