3
0
forked from pool/util-linux

Updating link to change in openSUSE:Factory/util-linux revision 93.0

OBS-URL: https://build.opensuse.org/package/show/Base:System/util-linux?expand=0&rev=708116f85071b8fa4e516a49235b9086
This commit is contained in:
OBS User buildservice-autocommit 2010-06-25 18:44:47 +00:00 committed by Git OBS Bridge
parent 308c0a2ee7
commit f443f8a63f
3 changed files with 57 additions and 3 deletions

View File

@ -0,0 +1,42 @@
From: Jeff Mahoney <jeffm@suse.com>
Subject: swapon: Document btrfs limitation with swapfiles
References: bnc#616617
Btrfs, as of 2.6.35, is unable to allow swapfiles to be used on its
filesystems. This is due to the swapfile implementation wanting to build
an extent map of each block in the file and expecting it to be static
for the life of the swapfile.
Btrfs can't guarantee this and refuses to return the mapping. The swapfile
implementation just makes a comment about there being holes in the file -
but that's how btrfs denies the mapping.
This patch adds a section to the swapon manpage to document it.
Signed-off-by: Jeff Mahoney <jeffm@suse.com>
---
mount/swapon.8 | 12 ++++++++++++
1 file changed, 12 insertions(+)
--- a/mount/swapon.8
+++ b/mount/swapon.8
@@ -167,6 +167,18 @@ automatically detects and rewrites swap
suspend data (e.g S1SUSPEND, S2SUSPEND, ...). The problem is that if we don't
do it, then we get data corruption the next time an attempt at unsuspending is
made.
+.PP
+.B swapon
+may not work correctly when using a swap file with some versions of btrfs.
+This is due to the swap file implementation in the kernel expecting to be able
+to write to the file directly, without the assistance of the file system.
+Since btrfs is a copy-on-write file system, the file location may not be
+static and corruption can result. Btrfs actively disallows the use of files
+on its file systems by refusing to map the file. This can be seen in the system
+log as "swapon: swapfile has holes." One possible workaround is to map the
+file to a loopback device. This will allow the file system to determine the
+mapping properly but may come with a performance impact.
+
.SH SEE ALSO
.BR swapon (2),
.BR swapoff (2),

View File

@ -1,3 +1,13 @@
-------------------------------------------------------------------
Thu Jun 24 23:24:41 CEST 2010 - jeffm@suse.de
- document btrfs limitation with swapfiles (bnc#616617)
-------------------------------------------------------------------
Tue Jun 22 16:48:29 UTC 2010 - bg@novell.com
- hppa specific binaries are parisc{,32,64}
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Jun 1 14:23:23 UTC 2010 - puzel@novell.com Tue Jun 1 14:23:23 UTC 2010 - puzel@novell.com

View File

@ -27,7 +27,7 @@ License: GPLv2+
Group: System/Base Group: System/Base
AutoReqProv: on AutoReqProv: on
Version: 2.17.2 Version: 2.17.2
Release: 4 Release: 5
Recommends: %name-lang = %{version} Recommends: %name-lang = %{version}
Summary: A collection of basic system utilities Summary: A collection of basic system utilities
Source: ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/v%{version}/%name-ng-%{version}.tar.bz2 Source: ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/v%{version}/%name-ng-%{version}.tar.bz2
@ -75,6 +75,7 @@ Patch4: util-linux-2.17.1-losetup-honor-documented-c-option
Patch5: util-linux-addpart-use-atoll.patch Patch5: util-linux-addpart-use-atoll.patch
# bnc#481123 # bnc#481123
Patch6: util-linux-mount-detect-ro-mount.patch Patch6: util-linux-mount-detect-ro-mount.patch
Patch7: util-linux-swapon-btrfs-limitations
## ##
## adjtimex ## adjtimex
## ##
@ -165,6 +166,7 @@ unique IDs (UUIDs).
%patch4 -p1 %patch4 -p1
%patch5 -p1 %patch5 -p1
%patch6 -p1 %patch6 -p1
%patch7 -p1
# #
cd adjtimex-* cd adjtimex-*
%patch50 -p1 %patch50 -p1
@ -349,10 +351,10 @@ rm -f $RPM_BUILD_ROOT%{_mandir}/man8/fdisk.8*
%find_lang %{name}-ng %{name}.lang %find_lang %{name}-ng %{name}.lang
# create list of setarch(8) symlinks # create list of setarch(8) symlinks
find $RPM_BUILD_ROOT%{_bindir}/ -regextype posix-egrep -type l \ find $RPM_BUILD_ROOT%{_bindir}/ -regextype posix-egrep -type l \
-regex ".*(linux32|linux64|s390|s390x|i386|ppc|ppc64|ppc32|sparc|sparc64|sparc32|sparc32bash|mips|mips64|mips32|ia64|x86_64)$" \ -regex ".*(linux32|linux64|s390|s390x|i386|ppc|ppc64|ppc32|sparc|sparc64|sparc32|sparc32bash|mips|mips64|mips32|ia64|x86_64|parisc|parisc32|parisc64)$" \
-printf "%{_bindir}/%f\n" >> %{name}.files -printf "%{_bindir}/%f\n" >> %{name}.files
find $RPM_BUILD_ROOT%{_mandir}/man8 -regextype posix-egrep \ find $RPM_BUILD_ROOT%{_mandir}/man8 -regextype posix-egrep \
-regex ".*(linux32|linux64|s390|s390x|i386|ppc|ppc64|ppc32|sparc|sparc64|sparc32|sparc32bash|mips|mips64|mips32|ia64|x86_64)\.8.*" \ -regex ".*(linux32|linux64|s390|s390x|i386|ppc|ppc64|ppc32|sparc|sparc64|sparc32|sparc32bash|mips|mips64|mips32|ia64|x86_64|parisc|parisc32|parisc64)\.8.*" \
-printf "%{_mandir}/man8/%f*\n" >> %{name}.files -printf "%{_mandir}/man8/%f*\n" >> %{name}.files
%clean %clean