Compare commits

...
Sign in to create a new pull request.

6 commits

Author SHA1 Message Date
Fedora Release Engineering
0dcd13e80a dist-git conversion 2010-07-29 14:50:17 +00:00
Bill Nottingham
1c0240aae1 Fix typo that causes a failure to update the common directory. (releng
#2781)
2009-11-26 01:16:35 +00:00
kzak
208356187e - fix #501350 - there's no way to turn off the relatime filesystem mount
misfeature.
2009-09-17 10:39:40 +00:00
kzak
0758c79dc1 - fix #522718 - sfdisk -d /dev/xxx | sfdisk --force /dev/yyy fails when
LANG is set
2009-09-11 12:27:08 +00:00
kzak
6436e0def3 - #498984 - should man page for "mount" mention ext4? 2009-06-01 12:27:12 +00:00
Jesse Keating
0dae9adee6 Initialize branch F-11 for util-linux-ng 2009-04-15 07:22:03 +00:00
6 changed files with 279 additions and 22 deletions

View file

View file

@ -1,21 +0,0 @@
# Makefile for source rpm: util-linux-ng
# $Id$
NAME := util-linux-ng
SPECFILE = $(firstword $(wildcard *.spec))
define find-makefile-common
for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
endef
MAKEFILE_COMMON := $(shell $(find-makefile-common))
ifeq ($(MAKEFILE_COMMON),)
# attept a checkout
define checkout-makefile-common
test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2
endef
MAKEFILE_COMMON := $(shell $(checkout-makefile-common))
endif
include $(MAKEFILE_COMMON)

View file

@ -0,0 +1,127 @@
diff -up util-linux-ng-2.14.2/mount/mount.8.kzak util-linux-ng-2.14.2/mount/mount.8
--- util-linux-ng-2.14.2/mount/mount.8.kzak 2009-02-09 11:08:11.000000000 +0100
+++ util-linux-ng-2.14.2/mount/mount.8 2009-06-01 14:19:00.000000000 +0200
@@ -411,10 +411,12 @@ Mount the file system read-only. A synon
.BR "\-o ro" .
Note that, depending on the filesystem type, state and kernel behavior, the
-system may still write to the device. For example, Ext3 will replay its journal
-if the filesystem is dirty. To prevent this kind of write access, you may want
-to set the block device to read-only mode, see command
-.BR blockdev (8).
+system may still write to the device. For example, Ext3 or ext4 will replay its
+journal if the filesystem is dirty. To prevent this kind of write access, you
+may want to mount ext3 or ext4 filesystem with "ro,noload" mount options or
+set the block device to read-only mode, see command
+.BR blockdev (8)
+.
.TP
.B \-w
Mount the file system read/write. This is the default. A synonym is
@@ -1160,7 +1162,105 @@ manual page.
Enable POSIX Access Control Lists. See the
.BR acl (5)
manual page.
-
+
+.SH "Mount options for ext4"
+The `ext4' is an an advanced level of the ext3 filesystem which incorporates
+scalability and reliability enhancements for supporting large filesystem.
+
+The options
+.B journal_dev, noload, data, commit, orlov, oldalloc, [no]user_xattr
+.B [no]acl, bsddf, minixdf, debug, errors, data_err, grpid, bsdgroups, nogrpid
+.B sysvgroups, resgid, resuid, sb, quota, noquota, grpquota, usrquota
+and
+.B [no]bh
+are backwardly compatible with ext3 or ext2.
+.TP
+.BR journal_checksum
+Enable checksumming of the journal transactions. This will allow the recovery
+code in e2fsck and the kernel to detect corruption in the kernel. It is a
+compatible change and will be ignored by older kernels.
+.TP
+.BR journal_async_commit
+Commit block can be written to disk without waiting for descriptor blocks. If
+enabled older kernels cannot mount the device. This will enable
+'journal_checksum' internally.
+.TP
+.BR journal=update
+Update the ext4 file system's journal to the current format.
+.TP
+.BR barrier=0 " / " barrier=1 " / " barrier " / " nobarrier
+This enables/disables the use of write barriers in the jbd code. barrier=0
+disables, barrier=1 enables. This also requires an IO stack which can support
+barriers, and if jbd gets an error on a barrier write, it will disable again
+with a warning. Write barriers enforce proper on-disk ordering of journal
+commits, making volatile disk write caches safe to use, at some performance
+penalty. If your disks are battery-backed in one way or another, disabling
+barriers may safely improve performance. The mount options "barrier" and
+"nobarrier" can also be used to enable or disable barriers, for consistency
+with other ext4 mount options.
+.TP
+.BI inode_readahead= n
+This tuning parameter controls the maximum number of inode table blocks that
+ext4's inode table readahead algorithm will pre-read into the buffer cache.
+The default value is 32 blocks.
+.TP
+.BI stripe= n
+Number of filesystem blocks that mballoc will try to use for allocation size
+and alignment. For RAID5/6 systems this should be the number of data disks *
+RAID chunk size in file system blocks.
+.TP
+.BR delalloc
+Deferring block allocation until write-out time.
+.TP
+.BR nodelalloc
+Disable delayed allocation. Blocks are allocation when data is copied from user
+to page cache.
+.TP
+.BI max_batch_time= usec
+Maximum amount of time ext4 should wait for additional filesystem operations to
+be batch together with a synchronous write operation. Since a synchronous
+write operation is going to force a commit and then a wait for the I/O
+complete, it doesn't cost much, and can be a huge throughput win, we wait for a
+small amount of time to see if any other transactions can piggyback on the
+synchronous write. The algorithm used is designed to automatically tune for
+the speed of the disk, by measuring the amount of time (on average) that it
+takes to finish committing a transaction. Call this time the "commit time".
+If the time that the transactoin has been running is less than the commit time,
+ext4 will try sleeping for the commit time to see if other operations will join
+the transaction. The commit time is capped by the max_batch_time, which
+defaults to 15000us (15ms). This optimization can be turned off entirely by
+setting max_batch_time to 0.
+.TP
+.BI min_batch_time= usec
+This parameter sets the commit time (as described above) to be at least
+min_batch_time. It defaults to zero microseconds. Increasing this parameter
+may improve the throughput of multi-threaded, synchronous workloads on very
+fast disks, at the cost of increasing latency.
+.TP
+.BI journal_ioprio= prio
+The I/O priority (from 0 to 7, where 0 is the highest priorty) which should be
+used for I/O operations submitted by kjournald2 during a commit operation.
+This defaults to 3, which is a slightly higher priority than the default I/O
+priority.
+.TP
+.BR auto_da_alloc " / " noauto_da_alloc
+Many broken applications don't use fsync() when noauto_da_alloc
+replacing existing files via patterns such as
+
+fd = open("foo.new")/write(fd,..)/close(fd)/ rename("foo.new", "foo")
+
+or worse yet
+
+fd = open("foo", O_TRUNC)/write(fd,..)/close(fd).
+
+If auto_da_alloc is enabled, ext4 will detect the replace-via-rename and
+replace-via-truncate patterns and force that any delayed allocation blocks are
+allocated such that at the next journal commit, in the default data=ordered
+mode, the data blocks of the new file are forced to disk before the rename()
+operation is commited. This provides roughly the same level of guarantees as
+ext3, and avoids the "zero-length" problem that can happen when a system
+crashes before the delayed allocation blocks are forced to disk.
+
.SH "Mount options for fat"
(Note:
.I fat

View file

@ -0,0 +1,79 @@
This is backport of upstream patches:
From 96f3bfbc7cbe4a96be60337bb58c361042b6df68 Mon Sep 17 00:00:00 2001
From: Karel Zak <kzak@redhat.com>
Date: Fri, 11 Sep 2009 14:08:40 +0200
Subject: [PATCH] mount: more explicitly explain 'strictatime' in mount.
From ed64b8d0fc945ce49041f313c453b6b21d68b832 Mon Sep 17 00:00:00 2001
From: Matthew Garrett <mjg59@srcf.ucam.org>
Date: Fri, 27 Mar 2009 00:47:22 +0000
Subject: [PATCH] mount: Add strictatime support
diff -up util-linux-ng-2.14.2/mount/mount.8.kzak util-linux-ng-2.14.2/mount/mount.8
--- util-linux-ng-2.14.2/mount/mount.8.kzak 2009-09-17 12:30:54.000000000 +0200
+++ util-linux-ng-2.14.2/mount/mount.8 2009-09-17 12:33:32.000000000 +0200
@@ -658,7 +658,9 @@ All I/O to the file system should be don
option.)
.TP
.B atime
-Update inode access time for each access. This is the default.
+Update inode access time for each access. See also the
+.B strictatime
+mount option.
.TP
.B noatime
Do not update inode access times on this file system (e.g, for faster
@@ -794,8 +796,21 @@ since the last time it was modified.)
.B norelatime
Do not use
.B relatime
-feature (e.g, for systems where the feature is enabled by default, for
-more details see mount options in /proc/mounts).
+feature. See also the
+.B strictatime
+mount option.
+.TP
+.B strictatime
+Allows to explicitly requesting full atime updates. This makes it
+possible for kernel to defaults to
+.B relatime
+or
+.B noatime
+but still allow userspace to override it. For more details about the default
+system mount options see /proc/mounts.
+.TP
+.B nostrictatime
+Use the kernel's default behaviour for inode access time updates.
.TP
.B suid
Allow set-user-identifier or set-group-identifier bits to take
diff -up util-linux-ng-2.14.2/mount/mount.c.kzak util-linux-ng-2.14.2/mount/mount.c
--- util-linux-ng-2.14.2/mount/mount.c.kzak 2009-09-17 12:30:54.000000000 +0200
+++ util-linux-ng-2.14.2/mount/mount.c 2009-09-17 12:32:06.000000000 +0200
@@ -180,6 +180,10 @@ static const struct opt_map opt_map[] =
{ "norelatime", 0, 1, MS_RELATIME }, /* Update access time without regard
to mtime/ctime */
#endif
+#ifdef MS_STRICTATIME
+ { "strictatime", 0, 0, MS_STRICTATIME }, /* Strict atime semantics */
+ { "nostrictatime", 0, 1, MS_STRICTATIME }, /* kernel default atime */
+#endif
{ "kudzu", 0, 0, MS_COMMENT }, /* Silently remove this option (backwards compat use only - deprecated) */
{ "managed", 0, 0, MS_COMMENT }, /* Silently remove this option */
{ "nofail", 0, 0, MS_COMMENT}, /* Do not fail if ENOENT on dev */
diff -up util-linux-ng-2.14.2/mount/mount_constants.h.kzak util-linux-ng-2.14.2/mount/mount_constants.h
--- util-linux-ng-2.14.2/mount/mount_constants.h.kzak 2009-01-09 11:01:34.000000000 +0100
+++ util-linux-ng-2.14.2/mount/mount_constants.h 2009-09-17 12:31:21.000000000 +0200
@@ -59,6 +59,9 @@
#ifndef MS_I_VERSION
#define MS_I_VERSION (1<<23) /* update inode I_version field */
#endif
+#ifndef MS_STRICTATIME
+#define MS_STRICTATIME (1<<24) /* strict atime semantics */
+#endif
/*
* Magic mount flag number. Had to be or-ed to the flag values.
*/

View file

@ -0,0 +1,54 @@
From 1f1614f6a89de4b06e1843d0fadbca3f8a5521fe Mon Sep 17 00:00:00 2001
From: Karel Zak <kzak@redhat.com>
Date: Fri, 11 Sep 2009 14:00:50 +0200
Subject: [PATCH 1/2] sfdisk: dump has to be $LANG insensitive
This stupid bug has been introduced by:
commit add5133f4ad5136aac3ce7627e615d14893d0aeb
Author: Pedro Ribeiro <p.m42.ribeiro@gmail.com>
Date: Fri Oct 3 08:52:35 2008 +0200
fdisk: several strings without gettext calls
... so it shows that we need to improve our review process... :-(
Address-Red-Hat-Bug: #522718
Signed-off-by: Karel Zak <kzak@redhat.com>
---
fdisk/sfdisk.c | 10 +++++-----
1 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/fdisk/sfdisk.c b/fdisk/sfdisk.c
index 8fae5bb..427cb40 100644
--- a/fdisk/sfdisk.c
+++ b/fdisk/sfdisk.c
@@ -930,8 +930,8 @@ get_disksize(int format) {
static void
out_partition_header(char *dev, int format, struct geometry G) {
if (dump) {
- printf(_("# partition table of %s\n"), dev);
- printf(_("unit: sectors\n\n"));
+ printf("# partition table of %s\n", dev);
+ printf("unit: sectors\n\n");
return;
}
@@ -1059,12 +1059,12 @@ out_partition(char *dev, int format, struct part_desc *p,
size = p->size;
if (dump) {
- printf(_(" start=%9lu"), start);
- printf(_(", size=%9lu"), size);
+ printf(" start=%9lu", start);
+ printf(", size=%9lu", size);
if (p->ptype == DOS_TYPE) {
printf(", Id=%2x", p->p.sys_type);
if (p->p.bootable == 0x80)
- printf(_(", bootable"));
+ printf(", bootable");
}
printf("\n");
return;
--
1.6.2.5

View file

@ -2,7 +2,7 @@
Summary: A collection of basic system utilities
Name: util-linux-ng
Version: 2.14.2
Release: 8%{?dist}
Release: 11%{?dist}
License: GPLv2 and GPLv2+ and BSD with advertising and Public Domain
Group: System Environment/Base
URL: ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng
@ -118,6 +118,12 @@ Patch12: util-linux-ng-2.14-dmesg-r.patch
Patch13: util-linux-ng-2.14-flock-segfaults.patch
# 477303 - renice doesn't support -n option
Patch14: util-linux-ng-2.14-renice-n.patch
# 498984 - should man page for "mount" mention ext4?
Patch15: util-linux-ng-2.14-mount-man-ext4.patch
# 522718 - sfdisk -d /dev/xxx | sfdisk --force /dev/yyy fails when LANG is set
Patch16: util-linux-ng-2.14-sfdisk-dump.patch
# 501350 - There's no way to turn off the relatime filesystem mount misfeature.
Patch17: util-linux-ng-2.14-mount-strictatime.patch
%description
The util-linux-ng package contains a large variety of low-level system
@ -143,6 +149,9 @@ cp %{SOURCE8} %{SOURCE9} .
%patch12 -p1
%patch13 -p1
%patch14 -p1
%patch15 -p1
%patch16 -p1
%patch17 -p1
%build
unset LINGUAS || :
@ -544,6 +553,15 @@ exit 0
/sbin/losetup
%changelog
* Thu Sep 17 2009 Karel Zak <kzak@redhat.com> 2.14.2-11
- fix #501350 - there's no way to turn off the relatime filesystem mount misfeature.
* Fri Sep 11 2009 Karel Zak <kzak@redhat.com> 2.14.2-10
- fix #522718 - sfdisk -d /dev/xxx | sfdisk --force /dev/yyy fails when LANG is set
* Mon Jun 1 2009 Karel Zak <kzak@redhat.com> 2.14.2-9
- fix #498984 - should man page for "mount" mention ext4?
* Thu Apr 2 2009 Karel Zak <kzak@redhat.com> 2.14.2-8
- fix #490769 - %post scriptlet failed (thanks to Dan Horak)