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

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.org


Signed-off-by: default avatarJonathan Corbet <corbet@lwn.net>
parent 5040a0ac
Loading
Loading
Loading
Loading
+148 −91
Original line number Diff line number Diff line
.. SPDX-License-Identifier: GPL-2.0

====================
Read/Write HPFS 2.09
====================

1998-2004, Mikulas Patocka

email: mikulas@artax.karlin.mff.cuni.cz
homepage: http://artax.karlin.mff.cuni.cz/~mikulas/vyplody/hpfs/index-e.cgi
:email: mikulas@artax.karlin.mff.cuni.cz
: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,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
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)
@@ -219,78 +238,116 @@ History
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
       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)

       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

       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 −0
Original line number Diff line number Diff line
@@ -69,6 +69,7 @@ Documentation for filesystem implementations.
   gfs2-uevents
   hfs
   hfsplus
   hpfs
   fuse
   overlayfs
   virtiofs