Blame SOURCES/e2fsprogs-1.42.9-ext4-manpage-add-mountopts.patch

0ef434
commit 3e500a8f116b0515d1507fe0ab4bf617664a6cdc
0ef434
Author: Eric Sandeen <sandeen@redhat.com>
0ef434
Date:   Fri Jul 4 23:07:36 2014 -0400
0ef434
0ef434
    e2fsprogs: add mount options to ext4.5
0ef434
    
0ef434
    This is a straight cut and paste from the util-linux
0ef434
    mount manpage to ext4.5 (with commented-out lines
0ef434
    removed).
0ef434
    
0ef434
    It's pretty much impossible for util-linux to keep up
0ef434
    with every filesystem out there, and Karel has more than
0ef434
    once expressed a wish that mount options move into fs-specific
0ef434
    manpages.
0ef434
    
0ef434
    So, here we go.
0ef434
    
0ef434
    Signed-off-by: Eric Sandeen <sandeen@redhat.com>
0ef434
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
0ef434
0ef434
diff --git a/misc/ext4.5.in b/misc/ext4.5.in
0ef434
index 134c19f..9112b3d 100644
0ef434
--- a/misc/ext4.5.in
0ef434
+++ b/misc/ext4.5.in
0ef434
@@ -251,10 +251,368 @@ and it also speeds up the time required for
0ef434
 .BR mke2fs (8)
0ef434
 to create the file system.
0ef434
 .RE
0ef434
+.SH MOUNT OPTIONS
0ef434
+This section describes mount options which are specific to ext2, ext3,
0ef434
+and ext4.  Other generic mount options may be used as well; see
0ef434
+.BR mount (8)
0ef434
+for details.
0ef434
+.SH "Mount options for ext2"
0ef434
+The `ext2' filesystem is the standard Linux filesystem.
0ef434
+Since Linux 2.5.46, for most mount options the default
0ef434
+is determined by the filesystem superblock. Set them with
0ef434
+.BR tune2fs (8).
0ef434
+.TP
0ef434
+.BR acl | noacl
0ef434
+Support POSIX Access Control Lists (or not).
0ef434
+.TP
0ef434
+.BR bsddf | minixdf
0ef434
+Set the behavior for the
0ef434
+.I statfs
0ef434
+system call. The
0ef434
+.B minixdf
0ef434
+behavior is to return in the
0ef434
+.I f_blocks
0ef434
+field the total number of blocks of the filesystem, while the
0ef434
+.B bsddf
0ef434
+behavior (which is the default) is to subtract the overhead blocks
0ef434
+used by the ext2 filesystem and not available for file storage. Thus
0ef434
+.sp 1
0ef434
+% mount /k \-o minixdf; df /k; umount /k
0ef434
+.TS
0ef434
+tab(#);
0ef434
+l2 l2 r2 l2 l2 l
0ef434
+l c r c c l.
0ef434
+Filesystem#1024-blocks#Used#Available#Capacity#Mounted on
0ef434
+/dev/sda6#2630655#86954#2412169#3%#/k
0ef434
+.TE
0ef434
+.sp 1
0ef434
+% mount /k \-o bsddf; df /k; umount /k
0ef434
+.TS
0ef434
+tab(#);
0ef434
+l2 l2 r2 l2 l2 l
0ef434
+l c r c c l.
0ef434
+Filesystem#1024-blocks#Used#Available#Capacity#Mounted on
0ef434
+/dev/sda6#2543714#13#2412169#0%#/k
0ef434
+.TE
0ef434
+.sp 1
0ef434
+(Note that this example shows that one can add command line options
0ef434
+to the options given in
0ef434
+.IR /etc/fstab .)
0ef434
+.TP
0ef434
+.BR check=none " or " nocheck
0ef434
+No checking is done at mount time. This is the default. This is fast.
0ef434
+It is wise to invoke
0ef434
+.BR e2fsck (8)
0ef434
+every now and then, e.g.\& at boot time. The non-default behavior is unsupported
0ef434
+(check=normal and check=strict options have been removed). Note that these mount options
0ef434
+don't have to be supported if ext4 kernel driver is used for ext2 and ext3 filesystems.
0ef434
+.TP
0ef434
+.B debug
0ef434
+Print debugging info upon each (re)mount.
0ef434
+.TP
0ef434
+.BR errors= { continue | remount-ro | panic }
0ef434
+Define the behavior when an error is encountered.
0ef434
+(Either ignore errors and just mark the filesystem erroneous and continue,
0ef434
+or remount the filesystem read-only, or panic and halt the system.)
0ef434
+The default is set in the filesystem superblock, and can be
0ef434
+changed using
0ef434
+.BR tune2fs (8).
0ef434
+.TP
0ef434
+.BR grpid | bsdgroups " and " nogrpid | sysvgroups
0ef434
+These options define what group id a newly created file gets.
0ef434
+When
0ef434
+.B grpid
0ef434
+is set, it takes the group id of the directory in which it is created;
0ef434
+otherwise (the default) it takes the fsgid of the current process, unless
0ef434
+the directory has the setgid bit set, in which case it takes the gid
0ef434
+from the parent directory, and also gets the setgid bit set
0ef434
+if it is a directory itself.
0ef434
+.TP
0ef434
+.BR grpquota | noquota | quota | usrquota
0ef434
+The usrquota (same as quota) mount option enables user quota support on the
0ef434
+filesystem. grpquota enables group quotas support. You need the quota utilities
0ef434
+to actually enable and manage the quota system.
0ef434
+.TP
0ef434
+.B nouid32
0ef434
+Disables 32-bit UIDs and GIDs.  This is for interoperability with older
0ef434
+kernels which only store and expect 16-bit values.
0ef434
+.TP
0ef434
+.BR oldalloc " or " orlov
0ef434
+Use old allocator or Orlov allocator for new inodes. Orlov is default.
0ef434
+.TP
0ef434
+\fBresgid=\fP\,\fIn\fP and \fBresuid=\fP\,\fIn\fP
0ef434
+The ext2 filesystem reserves a certain percentage of the available
0ef434
+space (by default 5%, see
0ef434
+.BR mke2fs (8)
0ef434
+and
0ef434
+.BR tune2fs (8)).
0ef434
+These options determine who can use the reserved blocks.
0ef434
+(Roughly: whoever has the specified uid, or belongs to the specified group.)
0ef434
+.TP
0ef434
+.BI sb= n
0ef434
+Instead of block 1, use block
0ef434
+.I n
0ef434
+as superblock. This could be useful when the filesystem has been damaged.
0ef434
+(Earlier, copies of the superblock would be made every 8192 blocks: in
0ef434
+block 1, 8193, 16385, \&...\& (and one got thousands of copies on
0ef434
+a big filesystem). Since version 1.08,
0ef434
+.B mke2fs
0ef434
+has a \-s (sparse superblock) option to reduce the number of backup
0ef434
+superblocks, and since version 1.15 this is the default. Note
0ef434
+that this may mean that ext2 filesystems created by a recent
0ef434
+.B mke2fs
0ef434
+cannot be mounted r/w under Linux 2.0.*.)
0ef434
+The block number here uses 1\ k units. Thus, if you want to use logical
0ef434
+block 32768 on a filesystem with 4\ k blocks, use "sb=131072".
0ef434
+.TP
0ef434
+.BR user_xattr | nouser_xattr
0ef434
+Support "user." extended attributes (or not).
0ef434
+
0ef434
+
0ef434
+.SH "Mount options for ext3"
0ef434
+The ext3 filesystem is a version of the ext2 filesystem which has been
0ef434
+enhanced with journaling.  It supports the same options as ext2 as
0ef434
+well as the following additions:
0ef434
+.TP
0ef434
+.B journal=update
0ef434
+Update the ext3 filesystem's journal to the current format.
0ef434
+.TP
0ef434
+.B journal=inum
0ef434
+When a journal already exists, this option is ignored. Otherwise, it
0ef434
+specifies the number of the inode which will represent the ext3 filesystem's
0ef434
+journal file; ext3 will create a new journal, overwriting the old contents
0ef434
+of the file whose inode number is
0ef434
+.IR inum .
0ef434
+.TP
0ef434
+.BR journal_dev=devnum / journal_path=path
0ef434
+When the external journal device's major/minor numbers
0ef434
+have changed, these options allow the user to specify
0ef434
+the new journal location.  The journal device is
0ef434
+identified either through its new major/minor numbers encoded
0ef434
+in devnum, or via a path to the device.
0ef434
+.TP
0ef434
+.BR norecovery / noload
0ef434
+Don't load the journal on mounting.  Note that
0ef434
+if the filesystem was not unmounted cleanly,
0ef434
+skipping the journal replay will lead to the
0ef434
+filesystem containing inconsistencies that can
0ef434
+lead to any number of problems.
0ef434
+.TP
0ef434
+.BR data= { journal | ordered | writeback }
0ef434
+Specifies the journaling mode for file data.  Metadata is always journaled.
0ef434
+To use modes other than
0ef434
+.B ordered
0ef434
+on the root filesystem, pass the mode to the kernel as boot parameter, e.g.\&
0ef434
+.IR rootflags=data=journal .
0ef434
+.RS
0ef434
+.TP
0ef434
+.B journal
0ef434
+All data is committed into the journal prior to being written into the
0ef434
+main filesystem.
0ef434
+.TP
0ef434
+.B ordered
0ef434
+This is the default mode.  All data is forced directly out to the main file
0ef434
+system prior to its metadata being committed to the journal.
0ef434
+.TP
0ef434
+.B writeback
0ef434
+Data ordering is not preserved \(en data may be written into the main
0ef434
+filesystem after its metadata has been committed to the journal.
0ef434
+This is rumoured to be the highest-throughput option.  It guarantees
0ef434
+internal filesystem integrity, however it can allow old data to appear
0ef434
+in files after a crash and journal recovery.
0ef434
+.RE
0ef434
+.TP
0ef434
+.B data_err=ignore
0ef434
+Just print an error message if an error occurs in a file data buffer in
0ef434
+ordered mode.
0ef434
+.TP
0ef434
+.B data_err=abort
0ef434
+Abort the journal if an error occurs in a file data buffer in ordered mode.
0ef434
+.TP
0ef434
+.BR barrier=0 " / " barrier=1 "
0ef434
+This disables / enables the use of write barriers in the jbd code.  barrier=0
0ef434
+disables, barrier=1 enables (default). This also requires an IO stack which can
0ef434
+support barriers, and if jbd gets an error on a barrier write, it will disable
0ef434
+barriers again with a warning.  Write barriers enforce proper on-disk ordering
0ef434
+of journal commits, making volatile disk write caches safe to use, at some
0ef434
+performance penalty.  If your disks are battery-backed in one way or another,
0ef434
+disabling barriers may safely improve performance.
0ef434
+.TP
0ef434
+.BI commit= nrsec
0ef434
+Sync all data and metadata every
0ef434
+.I nrsec
0ef434
+seconds. The default value is 5 seconds. Zero means default.
0ef434
+.TP
0ef434
+.B user_xattr
0ef434
+Enable Extended User Attributes. See the
0ef434
+.BR attr (5)
0ef434
+manual page.
0ef434
+.TP
0ef434
+.B acl
0ef434
+Enable POSIX Access Control Lists. See the
0ef434
+.BR acl (5)
0ef434
+manual page.
0ef434
+.TP
0ef434
+.BR usrjquota=aquota.user | grpjquota=aquota.group | jqfmt=vfsv0
0ef434
+Apart from the old quota system (as in ext2, jqfmt=vfsold aka version 1 quota)
0ef434
+ext3 also supports journaled quotas (version 2 quota). jqfmt=vfsv0
0ef434
+enables journaled quotas. For journaled quotas the mount options
0ef434
+usrjquota=aquota.user and grpjquota=aquota.group are required to tell the
0ef434
+quota system which quota database files to use. Journaled quotas have the
0ef434
+advantage that even after a crash no quota check is required.
0ef434
+
0ef434
+.SH "Mount options for ext4"
0ef434
+The ext4 filesystem is an advanced level of the ext3 filesystem which
0ef434
+incorporates scalability and reliability enhancements for supporting large
0ef434
+filesystem.
0ef434
+
0ef434
+The options
0ef434
+.B journal_dev, norecovery, noload, data, commit, orlov, oldalloc, [no]user_xattr
0ef434
+.B [no]acl, bsddf, minixdf, debug, errors, data_err, grpid, bsdgroups, nogrpid
0ef434
+.B sysvgroups, resgid, resuid, sb, quota, noquota, grpquota, usrquota
0ef434
+.B usrjquota, grpjquota and jqfmt
0ef434
+are backwardly compatible with ext3 or ext2.
0ef434
+.TP
0ef434
+.B journal_checksum
0ef434
+Enable checksumming of the journal transactions.  This will allow the recovery
0ef434
+code in e2fsck and the kernel to detect corruption in the kernel.  It is a
0ef434
+compatible change and will be ignored by older kernels.
0ef434
+.TP
0ef434
+.B journal_async_commit
0ef434
+Commit block can be written to disk without waiting for descriptor blocks. If
0ef434
+enabled older kernels cannot mount the device.
0ef434
+This will enable 'journal_checksum' internally.
0ef434
+.TP
0ef434
+.BR barrier=0 " / " barrier=1 " / " barrier " / " nobarrier
0ef434
+These mount options have the same effect as in ext3.  The mount options
0ef434
+"barrier" and "nobarrier" are added for consistency with other ext4 mount
0ef434
+options.
0ef434
+
0ef434
+The ext4 filesystem enables write barriers by default.
0ef434
+.TP
0ef434
+.BI inode_readahead_blks= n
0ef434
+This tuning parameter controls the maximum number of inode table blocks that
0ef434
+ext4's inode table readahead algorithm will pre-read into the buffer cache.
0ef434
+The value must be a power of 2. The default value is 32 blocks.
0ef434
+.TP
0ef434
+.BI stripe= n
0ef434
+Number of filesystem blocks that mballoc will try to use for allocation size
0ef434
+and alignment. For RAID5/6 systems this should be the number of data disks *
0ef434
+RAID chunk size in filesystem blocks.
0ef434
+.TP
0ef434
+.B delalloc
0ef434
+Deferring block allocation until write-out time.
0ef434
+.TP
0ef434
+.B nodelalloc
0ef434
+Disable delayed allocation. Blocks are allocated when data is copied from user
0ef434
+to page cache.
0ef434
+.TP
0ef434
+.BI max_batch_time= usec
0ef434
+Maximum amount of time ext4 should wait for additional filesystem operations to
0ef434
+be batch together with a synchronous write operation. Since a synchronous
0ef434
+write operation is going to force a commit and then a wait for the I/O
0ef434
+complete, it doesn't cost much, and can be a huge throughput win, we wait for a
0ef434
+small amount of time to see if any other transactions can piggyback on the
0ef434
+synchronous write. The algorithm used is designed to automatically tune for
0ef434
+the speed of the disk, by measuring the amount of time (on average) that it
0ef434
+takes to finish committing a transaction. Call this time the "commit time".
0ef434
+If the time that the transaction has been running is less than the commit time,
0ef434
+ext4 will try sleeping for the commit time to see if other operations will join
0ef434
+the transaction. The commit time is capped by the max_batch_time, which
0ef434
+defaults to 15000\ \[mc]s (15\ ms). This optimization can be turned off entirely by
0ef434
+setting max_batch_time to 0.
0ef434
+.TP
0ef434
+.BI min_batch_time= usec
0ef434
+This parameter sets the commit time (as described above) to be at least
0ef434
+min_batch_time. It defaults to zero microseconds. Increasing this parameter
0ef434
+may improve the throughput of multi-threaded, synchronous workloads on very
0ef434
+fast disks, at the cost of increasing latency.
0ef434
+.TP
0ef434
+.BI journal_ioprio= prio
0ef434
+The I/O priority (from 0 to 7, where 0 is the highest priority) which should be
0ef434
+used for I/O operations submitted by kjournald2 during a commit operation.
0ef434
+This defaults to 3, which is a slightly higher priority than the default I/O
0ef434
+priority.
0ef434
+.TP
0ef434
+.B abort
0ef434
+Simulate the effects of calling ext4_abort() for
0ef434
+debugging purposes.  This is normally used while
0ef434
+remounting a filesystem which is already mounted.
0ef434
+.TP
0ef434
+.BR auto_da_alloc | noauto_da_alloc
0ef434
+Many broken applications don't use fsync() when
0ef434
+replacing existing files via patterns such as
0ef434
+
0ef434
+fd = open("foo.new")/write(fd,...)/close(fd)/ rename("foo.new", "foo")
0ef434
+
0ef434
+or worse yet
0ef434
+
0ef434
+fd = open("foo", O_TRUNC)/write(fd,...)/close(fd).
0ef434
+
0ef434
+If auto_da_alloc is enabled, ext4 will detect the replace-via-rename and
0ef434
+replace-via-truncate patterns and force that any delayed allocation blocks are
0ef434
+allocated such that at the next journal commit, in the default data=ordered
0ef434
+mode, the data blocks of the new file are forced to disk before the rename()
0ef434
+operation is committed.  This provides roughly the same level of guarantees as
0ef434
+ext3, and avoids the "zero-length" problem that can happen when a system
0ef434
+crashes before the delayed allocation blocks are forced to disk.
0ef434
+.TP
0ef434
+.B noinit_itable
0ef434
+Do not initialize any uninitialized inode table blocks in the background. This
0ef434
+feature may be used by installation CD's so that the install process can
0ef434
+complete as quickly as possible; the inode table initialization process would
0ef434
+then be deferred until the next time the filesystem is mounted.
0ef434
+.TP
0ef434
+.B init_itable=n
0ef434
+The lazy itable init code will wait n times the number of milliseconds it took
0ef434
+to zero out the previous block group's inode table. This minimizes the impact on
0ef434
+system performance while the filesystem's inode table is being initialized.
0ef434
+.TP
0ef434
+.BR discard / nodiscard
0ef434
+Controls whether ext4 should issue discard/TRIM commands to the underlying
0ef434
+block device when blocks are freed.  This is useful for SSD devices and
0ef434
+sparse/thinly-provisioned LUNs, but it is off by default until sufficient
0ef434
+testing has been done.
0ef434
+.TP
0ef434
+.B nouid32
0ef434
+Disables 32-bit UIDs and GIDs.  This is for
0ef434
+interoperability  with  older kernels which only
0ef434
+store and expect 16-bit values.
0ef434
+.TP
0ef434
+.BR block_validity / noblock_validity
0ef434
+This options allows to enables/disables the in-kernel facility for tracking
0ef434
+filesystem metadata blocks within internal data structures. This allows multi-\c
0ef434
+block allocator and other routines to quickly locate extents which might
0ef434
+overlap with filesystem metadata blocks. This option is intended for debugging
0ef434
+purposes and since it negatively affects the performance, it is off by default.
0ef434
+.TP
0ef434
+.BR dioread_lock / dioread_nolock
0ef434
+Controls whether or not ext4 should use the DIO read locking. If the
0ef434
+dioread_nolock option is specified ext4 will allocate uninitialized extent
0ef434
+before buffer write and convert the extent to initialized after IO completes.
0ef434
+This approach allows ext4 code to avoid using inode mutex, which improves
0ef434
+scalability on high speed storages. However this does not work with data
0ef434
+journaling and dioread_nolock option will be ignored with kernel warning.
0ef434
+Note that dioread_nolock code path is only used for extent-based files.
0ef434
+Because of the restrictions this options comprises it is off by default
0ef434
+(e.g.\& dioread_lock).
0ef434
+.TP
0ef434
+.B max_dir_size_kb=n
0ef434
+This limits the size of the directories so that any attempt to expand them
0ef434
+beyond the specified limit in kilobytes will cause an ENOSPC error. This is
0ef434
+useful in memory-constrained environments, where a very large directory can
0ef434
+cause severe performance problems or even provoke the Out Of Memory killer. (For
0ef434
+example, if there is only 512\ MB memory available, a 176\ MB directory may
0ef434
+seriously cramp the system's style.)
0ef434
+.TP
0ef434
+.B i_version
0ef434
+Enable 64-bit inode version support. This option is off by default.
0ef434
+
0ef434
 .SH SEE ALSO
0ef434
 .BR mke2fs (8),
0ef434
 .BR mke2fs.conf (5),
0ef434
 .BR e2fsck (8),
0ef434
 .BR dumpe2fs (8),
0ef434
 .BR tune2fs (8),
0ef434
-.BR debugfs (8)
0ef434
+.BR debugfs (8),
0ef434
+.BR mount (8)