[arch-commits] Commit in util-linux/trunk (3 files)
Dave Reisner
dreisner at nymeria.archlinux.org
Mon May 13 14:30:28 UTC 2013
Date: Monday, May 13, 2013 @ 16:30:27
Author: dreisner
Revision: 185342
upgpkg: util-linux 2.23-2
- backport fixes for loopdev regressions (FS#35193)
Added:
util-linux/trunk/0001-lib-loopdev-fix-loopcxt_check_size-to-work-with-blkd.patch
util-linux/trunk/0001-losetup-use-warn_size-for-regular-files-only.patch
Modified:
util-linux/trunk/PKGBUILD
-----------------------------------------------------------------+
0001-lib-loopdev-fix-loopcxt_check_size-to-work-with-blkd.patch | 57 ++++++++++
0001-losetup-use-warn_size-for-regular-files-only.patch | 26 ++++
PKGBUILD | 29 +++--
3 files changed, 103 insertions(+), 9 deletions(-)
Added: 0001-lib-loopdev-fix-loopcxt_check_size-to-work-with-blkd.patch
===================================================================
--- 0001-lib-loopdev-fix-loopcxt_check_size-to-work-with-blkd.patch (rev 0)
+++ 0001-lib-loopdev-fix-loopcxt_check_size-to-work-with-blkd.patch 2013-05-13 14:30:27 UTC (rev 185342)
@@ -0,0 +1,57 @@
+From e3b6cb87e0ba1304fa07ec316784de1c6243b28e Mon Sep 17 00:00:00 2001
+From: Karel Zak <kzak at redhat.com>
+Date: Mon, 13 May 2013 10:54:41 +0200
+Subject: [PATCH] lib/loopdev: fix loopcxt_check_size() to work with blkdevs
+
+The loopcxt_check_size() is workaround for kernels < v3.9, kernel has
+been fixed by commit 541c742a7559eb65f0e36d3e2338c2ca532a3e61.
+
+The function sets loopdev size according to backing file size. The
+problem is that the backing file could be a block device where
+stat.st_size is zero, so we have to use blkdev_get_size() for block
+devices.
+
+Addresses: https://bugs.archlinux.org/task/35193
+Reported-by: Dave Reisner <d at falconindy.com>
+Signed-off-by: Karel Zak <kzak at redhat.com>
+---
+ lib/loopdev.c | 16 +++++++++++++++-
+ 1 file changed, 15 insertions(+), 1 deletion(-)
+
+diff --git a/lib/loopdev.c b/lib/loopdev.c
+index c35e306..3b65b5d 100644
+--- a/lib/loopdev.c
++++ b/lib/loopdev.c
+@@ -1097,7 +1097,17 @@ static int loopcxt_check_size(struct loopdev_cxt *lc, int file_fd)
+ if (fstat(file_fd, &st))
+ return -errno;
+
+- expected_size = st.st_size;
++ if (S_ISBLK(st.st_mode)) {
++ if (blkdev_get_size(file_fd,
++ (unsigned long long *) &expected_size))
++ return -errno;
++ } else
++ expected_size = st.st_size;
++
++ if (expected_size == 0 || expected_size <= lc->info.lo_offset) {
++ DBG(lc, loopdev_debug("failed to determine expected size"));
++ return 0; /* ignore this error */
++ }
+
+ if (lc->info.lo_offset > 0)
+ expected_size -= lc->info.lo_offset;
+@@ -1113,6 +1123,10 @@ static int loopcxt_check_size(struct loopdev_cxt *lc, int file_fd)
+ return -errno;
+
+ if (expected_size != size) {
++ DBG(lc, loopdev_debug("warning: loopdev and expected "
++ "size dismatch (%ju/%ju)",
++ size, expected_size));
++
+ if (loopcxt_set_capacity(lc)) {
+ /* ioctl not available */
+ if (errno == ENOTTY || errno == EINVAL)
+--
+1.8.2.3
+
Added: 0001-losetup-use-warn_size-for-regular-files-only.patch
===================================================================
--- 0001-losetup-use-warn_size-for-regular-files-only.patch (rev 0)
+++ 0001-losetup-use-warn_size-for-regular-files-only.patch 2013-05-13 14:30:27 UTC (rev 185342)
@@ -0,0 +1,26 @@
+From b048b8af3a5568c90f6e0c2d56f6cb399dedb0d1 Mon Sep 17 00:00:00 2001
+From: Karel Zak <kzak at redhat.com>
+Date: Mon, 13 May 2013 11:00:47 +0200
+Subject: [PATCH] losetup: use warn_size() for regular files only
+
+Signed-off-by: Karel Zak <kzak at redhat.com>
+---
+ sys-utils/losetup.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/sys-utils/losetup.c b/sys-utils/losetup.c
+index ccf120e..b44c9e5 100644
+--- a/sys-utils/losetup.c
++++ b/sys-utils/losetup.c
+@@ -380,7 +380,7 @@ static void warn_size(const char *filename, uint64_t size)
+ struct stat st;
+
+ if (!size) {
+- if (stat(filename, &st))
++ if (stat(filename, &st) || S_ISBLK(st.st_mode))
+ return;
+ size = st.st_size;
+ }
+--
+1.8.2.3
+
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2013-05-13 13:52:12 UTC (rev 185341)
+++ PKGBUILD 2013-05-13 14:30:27 UTC (rev 185342)
@@ -4,7 +4,7 @@
pkgname=util-linux
pkgver=2.23
-pkgrel=1
+pkgrel=2
pkgdesc="Miscellaneous system utilities for Linux"
url="http://www.kernel.org/pub/linux/utils/util-linux/"
arch=('i686' 'x86_64')
@@ -13,10 +13,12 @@
makedepends=('systemd')
# checkdepends=('bc')
conflicts=('util-linux-ng' 'eject')
-provides=("util-linux-ng=${pkgver}" 'eject')
+provides=("util-linux-ng=$pkgver" 'eject')
license=('GPL2')
options=('!libtool')
-source=(ftp://ftp.kernel.org/pub/linux/utils/${pkgname}/v2.23/${pkgname}-${pkgver}.tar.xz
+source=("ftp://ftp.kernel.org/pub/linux/utils/$pkgname/v2.23/$pkgname-$pkgver.tar.xz"
+ 0001-lib-loopdev-fix-loopcxt_check_size-to-work-with-blkd.patch
+ 0001-losetup-use-warn_size-for-regular-files-only.patch
uuidd.tmpfiles
pam-login
pam-common
@@ -27,9 +29,23 @@
etc/pam.d/su
etc/pam.d/su-l)
install=util-linux.install
+md5sums=('cf5e9bb402371beaaffc3a5f276d5783'
+ 'fdb627fbb3d6a42e0b36978649b4c064'
+ 'de0ba450945a60f27c5df86e64523d57'
+ 'a39554bfd65cccfd8254bb46922f4a67'
+ '4368b3f98abd8a32662e094c54e7f9b1'
+ 'a31374fef2cba0ca34dfc7078e2969e4'
+ 'fa85e5cce5d723275b14365ba71a8aad')
+prepare() {
+ cd "$pkgname-$pkgver"
+
+ patch -Np1 <"$srcdir"/0001-lib-loopdev-fix-loopcxt_check_size-to-work-with-blkd.patch
+ patch -Np1 <"$srcdir"/0001-losetup-use-warn_size-for-regular-files-only.patch
+}
+
build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
+ cd "${pkgname}-${pkgver}"
./configure --prefix=/usr \
--libdir=/usr/lib \
@@ -76,8 +92,3 @@
# TODO(dreisner): offer this upstream?
install -Dm644 "$srcdir/uuidd.tmpfiles" "$pkgdir/usr/lib/tmpfiles.d/uuidd.conf"
}
-md5sums=('cf5e9bb402371beaaffc3a5f276d5783'
- 'a39554bfd65cccfd8254bb46922f4a67'
- '4368b3f98abd8a32662e094c54e7f9b1'
- 'a31374fef2cba0ca34dfc7078e2969e4'
- 'fa85e5cce5d723275b14365ba71a8aad')
More information about the arch-commits
mailing list