mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-23 12:43:29 +02:00
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 <mchehab+huawei@kernel.org> Link: https://lore.kernel.org/r/581019c3120938118aa55ba28902b62083c3f37a.1581955849.git.mchehab+huawei@kernel.org Signed-off-by: Jonathan Corbet <corbet@lwn.net>
This commit is contained in:
committed by
Jonathan Corbet
parent
5040a0acc8
commit
a1ef4bcd16
@@ -1,13 +1,21 @@
|
|||||||
|
.. 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)
|
|||||||
|
|
||||||
|
|
||||||
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.
|
|||||||
|
|
||||||
|
|
||||||
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.
|
|||||||
|
|
||||||
|
|
||||||
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.
|
|||||||
|
|
||||||
|
|
||||||
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 :-)
|
|||||||
|
|
||||||
|
|
||||||
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
|
|||||||
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?
|
|||||||
|
|
||||||
|
|
||||||
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.
|
|||||||
|
|
||||||
|
|
||||||
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
|
|||||||
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
|
0.90 First public release
|
||||||
open inode (rarely happened)
|
0.91 Fixed bug that caused shooting to memory when write_inode was called on
|
||||||
0.92 Fixed a little memory leak in freeing directory inodes
|
open inode (rarely happened)
|
||||||
0.93 Fixed bug that locked up the machine when there were too many filenames
|
0.92 Fixed a little memory leak in freeing directory inodes
|
||||||
with first 15 characters same
|
0.93 Fixed bug that locked up the machine when there were too many filenames
|
||||||
Fixed write_file to zero file when writing behind file end
|
with first 15 characters same
|
||||||
0.94 Fixed a little memory leak when trying to delete busy file or directory
|
Fixed write_file to zero file when writing behind file end
|
||||||
0.95 Fixed a bug that i_hpfs_parent_dir was not updated when moving files
|
0.94 Fixed a little memory leak when trying to delete busy file or directory
|
||||||
1.90 First version for 2.1.1xx kernels
|
0.95 Fixed a bug that i_hpfs_parent_dir was not updated when moving files
|
||||||
1.91 Fixed a bug that chk_sectors failed when sectors were at the end of disk
|
1.90 First version for 2.1.1xx kernels
|
||||||
Fixed a race-condition when write_inode is called while deleting file
|
1.91 Fixed a bug that chk_sectors failed when sectors were at the end of disk
|
||||||
Fixed a bug that could possibly happen (with very low probability) when
|
Fixed a race-condition when write_inode is called while deleting file
|
||||||
using 0xff in filenames
|
Fixed a bug that could possibly happen (with very low probability) when
|
||||||
Rewritten locking to avoid race-conditions
|
using 0xff in filenames.
|
||||||
Mount option 'eas' now works
|
|
||||||
Fsync no longer returns error
|
Rewritten locking to avoid race-conditions
|
||||||
Files beginning with '.' are marked hidden
|
|
||||||
Remount support added
|
Mount option 'eas' now works
|
||||||
Alloc is not so slow when filesystem becomes full
|
|
||||||
Atimes are no more updated because it slows down operation
|
Fsync no longer returns error
|
||||||
Code cleanup (removed all commented debug prints)
|
|
||||||
1.92 Corrected a bug when sync was called just before closing file
|
Files beginning with '.' are marked hidden
|
||||||
1.93 Modified, so that it works with kernels >= 2.1.131, I don't know if it
|
|
||||||
works with previous versions
|
Remount support added
|
||||||
Fixed a possible problem with disks > 64G (but I don't have one, so I can't
|
|
||||||
test it)
|
Alloc is not so slow when filesystem becomes full
|
||||||
Fixed a file overflow at 2G
|
|
||||||
Added new option 'timeshift'
|
Atimes are no more updated because it slows down operation
|
||||||
Changed behaviour on HPFS386: It is now possible to operate on HPFS386 in
|
|
||||||
read-only mode
|
Code cleanup (removed all commented debug prints)
|
||||||
Fixed a bug that slowed down alloc and prevented allocating 100% space
|
1.92 Corrected a bug when sync was called just before closing file
|
||||||
(this bug was not destructive)
|
1.93 Modified, so that it works with kernels >= 2.1.131, I don't know if it
|
||||||
1.94 Added workaround for one bug in Linux
|
works with previous versions
|
||||||
Fixed one buffer leak
|
|
||||||
Fixed some incompatibilities with large extended attributes (but it's still
|
Fixed a possible problem with disks > 64G (but I don't have one, so I can't
|
||||||
not 100% ok, I have no info on it and OS/2 doesn't want to create them)
|
test it)
|
||||||
Rewritten allocation
|
|
||||||
Fixed a bug with i_blocks (du sometimes didn't display correct values)
|
Fixed a file overflow at 2G
|
||||||
Directories have no longer archive attribute set (some programs don't like
|
|
||||||
it)
|
Added new option 'timeshift'
|
||||||
Fixed a bug that it set badly one flag in large anode tree (it was not
|
|
||||||
destructive)
|
Changed behaviour on HPFS386: It is now possible to operate on HPFS386 in
|
||||||
1.95 Fixed one buffer leak, that could happen on corrupted filesystem
|
read-only mode
|
||||||
Fixed one bug in allocation in 1.94
|
|
||||||
1.96 Added workaround for one bug in OS/2 (HPFS locked up, HPFS386 reported
|
Fixed a bug that slowed down alloc and prevented allocating 100% space
|
||||||
error sometimes when opening directories in PMSHELL)
|
(this bug was not destructive)
|
||||||
Fixed a possible bitmap race
|
1.94 Added workaround for one bug in Linux
|
||||||
Fixed possible problem on large disks
|
|
||||||
You can now delete open files
|
Fixed one buffer leak
|
||||||
Fixed a nondestructive race in rename
|
|
||||||
1.97 Support for HPFS v3 (on large partitions)
|
Fixed some incompatibilities with large extended attributes (but it's still
|
||||||
Fixed a bug that it didn't allow creation of files > 128M (it should be 2G)
|
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)
|
||||||
|
|
||||||
|
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
|
|
||||||
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
|
|
||||||
|
|
||||||
|
Now it tries to truncate the file if there's not enough space when
|
||||||
|
deleting
|
||||||
|
|
||||||
vim: set textwidth=80:
|
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
|
||||||
|
====== =========================================================================
|
@@ -69,6 +69,7 @@ Documentation for filesystem implementations.
|
|||||||
gfs2-uevents
|
gfs2-uevents
|
||||||
hfs
|
hfs
|
||||||
hfsplus
|
hfsplus
|
||||||
|
hpfs
|
||||||
fuse
|
fuse
|
||||||
overlayfs
|
overlayfs
|
||||||
virtiofs
|
virtiofs
|
||||||
|
Reference in New Issue
Block a user