diff options
| author | Mauro Carvalho Chehab <mchehab+huawei@kernel.org> | 2020-02-17 17:12:25 +0100 | 
|---|---|---|
| committer | Jonathan Corbet <corbet@lwn.net> | 2020-03-02 14:04:41 -0700 | 
| commit | 826a613d3f81695022f324a5cb84fe73ec09e51d (patch) | |
| tree | 2b0c939e2a91db5aa7049c8cce4f760b5a96331c | |
| parent | 86beb976700b26576fe522a94a0b3a4e3d5ce424 (diff) | |
docs: filesystems: convert sysv-fs.txt to ReST
- Add a SPDX header;
- Add a document title;
- 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/5b96a6efba95773af439ab25a7dbe4d0edf8c867.1581955849.git.mchehab+huawei@kernel.org
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
| -rw-r--r-- | Documentation/filesystems/index.rst | 1 | ||||
| -rw-r--r-- | Documentation/filesystems/sysv-fs.rst (renamed from Documentation/filesystems/sysv-fs.txt) | 153 | 
2 files changed, 111 insertions, 43 deletions
| diff --git a/Documentation/filesystems/index.rst b/Documentation/filesystems/index.rst index bafe92c72433..d583b8b35196 100644 --- a/Documentation/filesystems/index.rst +++ b/Documentation/filesystems/index.rst @@ -88,5 +88,6 @@ Documentation for filesystem implementations.     romfs     squashfs     sysfs +   sysv-fs     virtiofs     vfat diff --git a/Documentation/filesystems/sysv-fs.txt b/Documentation/filesystems/sysv-fs.rst index 253b50d1328e..89e40911ad7c 100644 --- a/Documentation/filesystems/sysv-fs.txt +++ b/Documentation/filesystems/sysv-fs.rst @@ -1,25 +1,40 @@ +.. SPDX-License-Identifier: GPL-2.0 + +================== +SystemV Filesystem +================== +  It implements all of    - Xenix FS,    - SystemV/386 FS,    - Coherent FS.  To install: +  * Answer the 'System V and Coherent filesystem support' question with 'y'    when configuring the kernel. -* To mount a disk or a partition, use +* To mount a disk or a partition, use:: +      mount [-r] -t sysv device mountpoint -  The file system type names + +  The file system type names:: +                 -t sysv                 -t xenix                 -t coherent +    may be used interchangeably, but the last two will eventually disappear.  Bugs in the present implementation: +  - Coherent FS: +    - The "free list interleave" n:m is currently ignored.    - Only file systems with no filesystem name and no pack name are recognized. -  (See Coherent "man mkfs" for a description of these features.) +    (See Coherent "man mkfs" for a description of these features.) +  - SystemV Release 2 FS: +    The superblock is only searched in the blocks 9, 15, 18, which    corresponds to the beginning of track 1 on floppy disks. No support    for this FS on hard disk yet. @@ -28,12 +43,14 @@ Bugs in the present implementation:  These filesystems are rather similar. Here is a comparison with Minix FS:  * Linux fdisk reports on partitions +    - Minix FS     0x81 Linux/Minix    - Xenix FS     ??    - SystemV FS   ??    - Coherent FS  0x08 AIX bootable  * Size of a block or zone (data allocation unit on disk) +    - Minix FS     1024    - Xenix FS     1024 (also 512 ??)    - SystemV FS   1024 (also 512 and 2048) @@ -45,37 +62,51 @@ These filesystems are rather similar. Here is a comparison with Minix FS:    all the block numbers (including the super block) are offset by one track.  * Byte ordering of "short" (16 bit entities) on disk: +    - Minix FS     little endian  0 1    - Xenix FS     little endian  0 1    - SystemV FS   little endian  0 1    - Coherent FS  little endian  0 1 +    Of course, this affects only the file system, not the data of files on it!  * Byte ordering of "long" (32 bit entities) on disk: +    - Minix FS     little endian  0 1 2 3    - Xenix FS     little endian  0 1 2 3    - SystemV FS   little endian  0 1 2 3    - Coherent FS  PDP-11         2 3 0 1 +    Of course, this affects only the file system, not the data of files on it!  * Inode on disk: "short", 0 means non-existent, the root dir ino is: -  - Minix FS                            1 -  - Xenix FS, SystemV FS, Coherent FS   2 + +  =================================  == +  Minix FS                            1 +  Xenix FS, SystemV FS, Coherent FS   2 +  =================================  ==  * Maximum number of hard links to a file: -  - Minix FS     250 -  - Xenix FS     ?? -  - SystemV FS   ?? -  - Coherent FS  >=10000 + +  ===========  ========= +  Minix FS     250 +  Xenix FS     ?? +  SystemV FS   ?? +  Coherent FS  >=10000 +  ===========  =========  * Free inode management: -  - Minix FS                             a bitmap + +  - Minix FS +      a bitmap    - Xenix FS, SystemV FS, Coherent FS        There is a cache of a certain number of free inodes in the super-block.        When it is exhausted, new free inodes are found using a linear search.  * Free block management: -  - Minix FS                             a bitmap + +  - Minix FS +      a bitmap    - Xenix FS, SystemV FS, Coherent FS        Free blocks are organized in a "free list". Maybe a misleading term,        since it is not true that every free block contains a pointer to @@ -86,13 +117,18 @@ These filesystems are rather similar. Here is a comparison with Minix FS:        0 on Xenix FS and SystemV FS, with a block zeroed out on Coherent FS.  * Super-block location: -  - Minix FS     block 1 = bytes 1024..2047 -  - Xenix FS     block 1 = bytes 1024..2047 -  - SystemV FS   bytes 512..1023 -  - Coherent FS  block 1 = bytes 512..1023 + +  ===========  ========================== +  Minix FS     block 1 = bytes 1024..2047 +  Xenix FS     block 1 = bytes 1024..2047 +  SystemV FS   bytes 512..1023 +  Coherent FS  block 1 = bytes 512..1023 +  ===========  ==========================  * Super-block layout: -  - Minix FS + +  - Minix FS:: +                      unsigned short s_ninodes;                      unsigned short s_nzones;                      unsigned short s_imap_blocks; @@ -101,7 +137,9 @@ These filesystems are rather similar. Here is a comparison with Minix FS:                      unsigned short s_log_zone_size;                      unsigned long s_max_size;                      unsigned short s_magic; -  - Xenix FS, SystemV FS, Coherent FS + +  - Xenix FS, SystemV FS, Coherent FS:: +                      unsigned short s_firstdatazone;                      unsigned long  s_nzones;                      unsigned short s_fzone_count; @@ -120,23 +158,33 @@ These filesystems are rather similar. Here is a comparison with Minix FS:                      unsigned short s_interleave_m,s_interleave_n; -- Coherent FS only                      char           s_fname[6];                      char           s_fpack[6]; +      then they differ considerably: -        Xenix FS + +        Xenix FS:: +                      char           s_clean;                      char           s_fill[371];                      long           s_magic;                      long           s_type; -        SystemV FS + +        SystemV FS:: +                      long           s_fill[12 or 14];                      long           s_state;                      long           s_magic;                      long           s_type; -        Coherent FS + +        Coherent FS:: +                      unsigned long  s_unique; +      Note that Coherent FS has no magic.  * Inode layout: -  - Minix FS + +  - Minix FS:: +                      unsigned short i_mode;                      unsigned short i_uid;                      unsigned long  i_size; @@ -144,7 +192,9 @@ These filesystems are rather similar. Here is a comparison with Minix FS:                      unsigned char  i_gid;                      unsigned char  i_nlinks;                      unsigned short i_zone[7+1+1]; -  - Xenix FS, SystemV FS, Coherent FS + +  - Xenix FS, SystemV FS, Coherent FS:: +                      unsigned short i_mode;                      unsigned short i_nlink;                      unsigned short i_uid; @@ -155,38 +205,55 @@ These filesystems are rather similar. Here is a comparison with Minix FS:                      unsigned long  i_mtime;                      unsigned long  i_ctime; +  * Regular file data blocks are organized as -  - Minix FS -               7 direct blocks -               1 indirect block (pointers to blocks) -               1 double-indirect block (pointer to pointers to blocks) -  - Xenix FS, SystemV FS, Coherent FS -              10 direct blocks -               1 indirect block (pointers to blocks) -               1 double-indirect block (pointer to pointers to blocks) -               1 triple-indirect block (pointer to pointers to pointers to blocks) -* Inode size, inodes per block -  - Minix FS        32   32 -  - Xenix FS        64   16 -  - SystemV FS      64   16 -  - Coherent FS     64    8 +  - Minix FS: + +             - 7 direct blocks +	     - 1 indirect block (pointers to blocks) +             - 1 double-indirect block (pointer to pointers to blocks) + +  - Xenix FS, SystemV FS, Coherent FS: + +             - 10 direct blocks +             -  1 indirect block (pointers to blocks) +             -  1 double-indirect block (pointer to pointers to blocks) +             -  1 triple-indirect block (pointer to pointers to pointers to blocks) + + +  ===========  ==========   ================ +               Inode size   inodes per block +  ===========  ==========   ================ +  Minix FS        32        32 +  Xenix FS        64        16 +  SystemV FS      64        16 +  Coherent FS     64        8 +  ===========  ==========   ================  * Directory entry on disk -  - Minix FS + +  - Minix FS:: +                      unsigned short inode;                      char name[14/30]; -  - Xenix FS, SystemV FS, Coherent FS + +  - Xenix FS, SystemV FS, Coherent FS:: +                      unsigned short inode;                      char name[14]; -* Dir entry size, dir entries per block -  - Minix FS     16/32    64/32 -  - Xenix FS     16       64 -  - SystemV FS   16       64 -  - Coherent FS  16       32 +  ===========    ==============    ===================== +                 Dir entry size    dir entries per block +  ===========    ==============    ===================== +  Minix FS       16/32             64/32 +  Xenix FS       16                64 +  SystemV FS     16                64 +  Coherent FS    16                32 +  ===========    ==============    =====================  * How to implement symbolic links such that the host fsck doesn't scream: +    - Minix FS     normal    - Xenix FS     kludge: as regular files with  chmod 1000    - SystemV FS   ?? | 
