* Fri May 07 2010 Eric Sandeen <sandeen@redhat.com> 3.1.2-1
- New upstream release
This commit is contained in:
parent
8dc5a86ad0
commit
0765fcbe34
@ -1 +1 @@
|
||||
xfsprogs-3.1.1.tar.gz
|
||||
xfsprogs-3.1.2.tar.gz
|
||||
|
2
sources
2
sources
@ -1 +1 @@
|
||||
c2308b46ee707597ac50aae418d321b8 xfsprogs-3.1.1.tar.gz
|
||||
86d10178ee6897cb099c97303e6d9da0 xfsprogs-3.1.2.tar.gz
|
||||
|
@ -1,50 +0,0 @@
|
||||
From: Eric Sandeen <sandeen@sandeen.net>
|
||||
Date: Mon, 1 Feb 2010 16:13:36 +0000 (-0600)
|
||||
Subject: xfsprogs: fix build with latest glibc headers
|
||||
X-Git-Url: http://git.kernel.org/?p=fs%2Fxfs%2Fxfsprogs-dev.git;a=commitdiff_plain;h=66210ef2f6aa5821a4c9cebc28414a265ee16019
|
||||
|
||||
xfsprogs: fix build with latest glibc headers
|
||||
|
||||
glibc in rawhide has some changes...
|
||||
|
||||
* Tue Jan 12 2010 Andreas Schwab <schwab@redhat.com> - 2.11.90-8
|
||||
- Update from master.
|
||||
- More POSIX conformance fixes.
|
||||
|
||||
* Mon Jan 11 2010 Andreas Schwab <schwab@redhat.com> - 2.11.90-6
|
||||
- Update from master.
|
||||
- POSIX conformance fixes (BZ#11125).
|
||||
|
||||
which seem to break the xfsprogs build. I'm no feature test macro
|
||||
guru, but the following gets it going again for me.
|
||||
|
||||
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
|
||||
Reviewed-by: Christoph Hellwig <hch@lst.de>
|
||||
---
|
||||
|
||||
diff --git a/include/builddefs.in b/include/builddefs.in
|
||||
index ca8f172..cc75b5d 100644
|
||||
--- a/include/builddefs.in
|
||||
+++ b/include/builddefs.in
|
||||
@@ -102,7 +102,7 @@ GCCFLAGS = -funsigned-char -fno-strict-aliasing -Wall
|
||||
# -Wbitwise -Wno-transparent-union -Wno-old-initializer -Wno-decl
|
||||
|
||||
ifeq ($(PKG_PLATFORM),linux)
|
||||
-PCFLAGS = -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 $(GCCFLAGS)
|
||||
+PCFLAGS = -D_GNU_SOURCE -D_XOPEN_SOURCE=500 -D_FILE_OFFSET_BITS=64 $(GCCFLAGS)
|
||||
DEPENDFLAGS = -D__linux__
|
||||
endif
|
||||
ifeq ($(PKG_PLATFORM),darwin)
|
||||
diff --git a/include/linux.h b/include/linux.h
|
||||
index dbfb4cf..b342e55 100644
|
||||
--- a/include/linux.h
|
||||
+++ b/include/linux.h
|
||||
@@ -22,6 +22,7 @@
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/param.h>
|
||||
#include <sys/sysmacros.h>
|
||||
+#include <sys/stat.h>
|
||||
#include <malloc.h>
|
||||
#include <getopt.h>
|
||||
#include <endian.h>
|
||||
|
@ -1,108 +0,0 @@
|
||||
From: Dave Chinner <dchinner@redhat.com>
|
||||
Date: Sun, 14 Mar 2010 22:52:08 +0000 (+1100)
|
||||
Subject: xfsprogs: duplicate extent btrees in xfs_repair need locking
|
||||
X-Git-Url: http://git.kernel.org/?p=fs%2Fxfs%2Fxfsprogs-dev.git;a=commitdiff_plain;h=853a75b3b30b0556fb5f100d4087f1ce46769bd1
|
||||
|
||||
xfsprogs: duplicate extent btrees in xfs_repair need locking
|
||||
|
||||
The per-ag duplicate extent btrees can be search concurrently from multiple
|
||||
threads. This occurs when inode extent lists are being processed and inodes
|
||||
with extents in the same AG are checked concurrently. The btrees have an
|
||||
internal traversal cursor, so doing concurrent searches can result in the
|
||||
cursor being corrupted for both searches.
|
||||
|
||||
Add an external lock for each duplicate extent tree and use it for searches,
|
||||
inserts and deletes to ensure that we don't trash the state of any operation.
|
||||
|
||||
Signed-off-by: Dave Chinner <dchinner@redhat.com>
|
||||
Reviewed-by: Christoph Hellwig <hch@lst.de>
|
||||
---
|
||||
|
||||
diff --git a/repair/incore_ext.c b/repair/incore_ext.c
|
||||
index a362e5a..60dd4c4 100644
|
||||
--- a/repair/incore_ext.c
|
||||
+++ b/repair/incore_ext.c
|
||||
@@ -74,6 +74,7 @@ static rt_ext_flist_t rt_ext_flist;
|
||||
static avl64tree_desc_t *rt_ext_tree_ptr; /* dup extent tree for rt */
|
||||
|
||||
static struct btree_root **dup_extent_trees; /* per ag dup extent trees */
|
||||
+static pthread_mutex_t *dup_extent_tree_locks;
|
||||
|
||||
static avltree_desc_t **extent_bno_ptrs; /*
|
||||
* array of extent tree ptrs
|
||||
@@ -108,7 +109,9 @@ void
|
||||
release_dup_extent_tree(
|
||||
xfs_agnumber_t agno)
|
||||
{
|
||||
+ pthread_mutex_lock(&dup_extent_tree_locks[agno]);
|
||||
btree_clear(dup_extent_trees[agno]);
|
||||
+ pthread_mutex_unlock(&dup_extent_tree_locks[agno]);
|
||||
}
|
||||
|
||||
int
|
||||
@@ -117,12 +120,16 @@ add_dup_extent(
|
||||
xfs_agblock_t startblock,
|
||||
xfs_extlen_t blockcount)
|
||||
{
|
||||
+ int ret;
|
||||
#ifdef XR_DUP_TRACE
|
||||
fprintf(stderr, "Adding dup extent - %d/%d %d\n", agno, startblock,
|
||||
blockcount);
|
||||
#endif
|
||||
- return btree_insert(dup_extent_trees[agno], startblock,
|
||||
+ pthread_mutex_lock(&dup_extent_tree_locks[agno]);
|
||||
+ ret = btree_insert(dup_extent_trees[agno], startblock,
|
||||
(void *)(uintptr_t)(startblock + blockcount));
|
||||
+ pthread_mutex_unlock(&dup_extent_tree_locks[agno]);
|
||||
+ return ret;
|
||||
}
|
||||
|
||||
int
|
||||
@@ -132,13 +139,22 @@ search_dup_extent(
|
||||
xfs_agblock_t end_agbno)
|
||||
{
|
||||
unsigned long bno;
|
||||
+ int ret;
|
||||
|
||||
- if (!btree_find(dup_extent_trees[agno], start_agbno, &bno))
|
||||
- return 0; /* this really shouldn't happen */
|
||||
- if (bno < end_agbno)
|
||||
- return 1;
|
||||
- return (uintptr_t)btree_peek_prev(dup_extent_trees[agno], NULL) >
|
||||
+ pthread_mutex_lock(&dup_extent_tree_locks[agno]);
|
||||
+ if (!btree_find(dup_extent_trees[agno], start_agbno, &bno)) {
|
||||
+ ret = 0;
|
||||
+ goto out; /* this really shouldn't happen */
|
||||
+ }
|
||||
+ if (bno < end_agbno) {
|
||||
+ ret = 1;
|
||||
+ goto out;
|
||||
+ }
|
||||
+ ret = (uintptr_t)btree_peek_prev(dup_extent_trees[agno], NULL) >
|
||||
start_agbno;
|
||||
+out:
|
||||
+ pthread_mutex_unlock(&dup_extent_tree_locks[agno]);
|
||||
+ return ret;
|
||||
}
|
||||
|
||||
|
||||
@@ -856,6 +872,10 @@ incore_ext_init(xfs_mount_t *mp)
|
||||
if (!dup_extent_trees)
|
||||
do_error(_("couldn't malloc dup extent tree descriptor table\n"));
|
||||
|
||||
+ dup_extent_tree_locks = calloc(agcount, sizeof(pthread_mutex_t));
|
||||
+ if (!dup_extent_tree_locks)
|
||||
+ do_error(_("couldn't malloc dup extent tree descriptor table\n"));
|
||||
+
|
||||
if ((extent_bno_ptrs = malloc(agcount *
|
||||
sizeof(avltree_desc_t *))) == NULL)
|
||||
do_error(
|
||||
@@ -879,6 +899,7 @@ incore_ext_init(xfs_mount_t *mp)
|
||||
|
||||
for (i = 0; i < agcount; i++) {
|
||||
btree_init(&dup_extent_trees[i]);
|
||||
+ pthread_mutex_init(&dup_extent_tree_locks[i], NULL);
|
||||
avl_init_tree(extent_bno_ptrs[i], &avl_extent_tree_ops);
|
||||
avl_init_tree(extent_bcnt_ptrs[i], &avl_extent_bcnt_tree_ops);
|
||||
}
|
||||
|
@ -1,73 +0,0 @@
|
||||
From: Christoph Hellwig <hch@lst.de>
|
||||
Date: Fri, 5 Feb 2010 07:52:52 +0000 (+0100)
|
||||
Subject: mkfs.xfs: fix detection of empty devices
|
||||
X-Git-Url: http://git.kernel.org/?p=fs%2Fxfs%2Fxfsprogs-dev.git;a=commitdiff_plain;h=c2b707cf506c83ad4ab38c97c11cf358cc0bec88
|
||||
|
||||
mkfs.xfs: fix detection of empty devices
|
||||
|
||||
We currently fail to detect that a device does indeed not contain any
|
||||
signature and we are indeed fine to proceed with it due to mishandling
|
||||
the return value of blkid_do_fullprobe. Fix that up and add some
|
||||
better diagnostics of the blkid detection.
|
||||
|
||||
from RH bugzilla https://bugzilla.redhat.com/show_bug.cgi?id=561870
|
||||
|
||||
# dd if=/dev/zero of=k bs=1MB count=2 seek=20; mkfs.xfs k
|
||||
# mkfs.xfs: probe of k failed, cannot detect existing filesystem.
|
||||
# mkfs.xfs: Use the -f option to force overwrite
|
||||
|
||||
Signed-off-by: Christoph Hellwig <hch@lst.de>
|
||||
Reviewed-by: Eric Sandeen <sandeen@sandeen.net>
|
||||
---
|
||||
|
||||
diff --git a/mkfs/xfs_mkfs.c b/mkfs/xfs_mkfs.c
|
||||
index 9baf116..2d09e36 100644
|
||||
--- a/mkfs/xfs_mkfs.c
|
||||
+++ b/mkfs/xfs_mkfs.c
|
||||
@@ -322,24 +322,40 @@ check_overwrite(
|
||||
if (!pr)
|
||||
goto out;
|
||||
|
||||
- if (blkid_probe_enable_partitions(pr, 1))
|
||||
+ ret = blkid_probe_enable_partitions(pr, 1);
|
||||
+ if (ret < 0)
|
||||
goto out;
|
||||
|
||||
- if (blkid_do_fullprobe(pr))
|
||||
+ ret = blkid_do_fullprobe(pr);
|
||||
+ if (ret < 0)
|
||||
goto out;
|
||||
|
||||
- ret = 0;
|
||||
+ /*
|
||||
+ * Blkid returns 1 for nothing found and 0 when it finds a signature,
|
||||
+ * but we want the exact opposite, so reverse the return value here.
|
||||
+ *
|
||||
+ * In addition print some useful diagnostics about what actually is
|
||||
+ * on the device.
|
||||
+ */
|
||||
+ if (ret) {
|
||||
+ ret = 0;
|
||||
+ goto out;
|
||||
+ }
|
||||
+
|
||||
if (!blkid_probe_lookup_value(pr, "TYPE", &type, NULL)) {
|
||||
fprintf(stderr,
|
||||
_("%s: %s appears to contain an existing "
|
||||
"filesystem (%s).\n"), progname, device, type);
|
||||
- ret = 1;
|
||||
} else if (!blkid_probe_lookup_value(pr, "PTTYPE", &type, NULL)) {
|
||||
fprintf(stderr,
|
||||
_("%s: %s appears to contain a partition "
|
||||
"table (%s).\n"), progname, device, type);
|
||||
- ret = 1;
|
||||
+ } else {
|
||||
+ fprintf(stderr,
|
||||
+ _("%s: %s appears to contain something weird "
|
||||
+ "according to blkid\n"), progname, device);
|
||||
}
|
||||
+ ret = 1;
|
||||
|
||||
out:
|
||||
if (pr)
|
||||
|
@ -1,28 +0,0 @@
|
||||
From: Christoph Hellwig <hch@lst.de>
|
||||
Date: Sun, 31 Jan 2010 08:57:46 +0000 (+0100)
|
||||
Subject: mkfs.xfs: fix fd validity check in get_topology
|
||||
X-Git-Url: http://git.kernel.org/?p=fs%2Fxfs%2Fxfsprogs-dev.git;a=commitdiff_plain;h=85112c3a23927f299f04c193f5924249d7dd80bf
|
||||
|
||||
mkfs.xfs: fix fd validity check in get_topology
|
||||
|
||||
Only negatie return values from open mean we failed to open the device.
|
||||
Without this check we do not print the usage message when no device is
|
||||
specified. This leads to a weird failure in xfstests 122.
|
||||
|
||||
Reviewed-by: Eric Sandeen <sandeen@sandeen.ent>
|
||||
Signed-off-by: Christoph Hellwig <hch@lst.de>
|
||||
---
|
||||
|
||||
Index: xfsprogs-dev/mkfs/xfs_mkfs.c
|
||||
===================================================================
|
||||
--- xfsprogs-dev.orig/mkfs/xfs_mkfs.c 2010-01-30 20:44:03.505255109 +0100
|
||||
+++ xfsprogs-dev/mkfs/xfs_mkfs.c 2010-01-30 20:44:20.579255807 +0100
|
||||
@@ -455,7 +455,7 @@ static void get_topology(libxfs_init_t *
|
||||
&ft->dsunit, &ft->dswidth, &ft->sectoralign);
|
||||
fd = open(dfile, O_RDONLY);
|
||||
/* If this fails we just fall back to BBSIZE */
|
||||
- if (fd) {
|
||||
+ if (fd >= 0) {
|
||||
platform_findsizes(dfile, fd, &dummy, &bsz);
|
||||
close(fd);
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
Summary: Utilities for managing the XFS filesystem
|
||||
Name: xfsprogs
|
||||
Version: 3.1.1
|
||||
Release: 7%{?dist}
|
||||
Version: 3.1.2
|
||||
Release: 1%{?dist}
|
||||
# Licensing based on generic "GNU GENERAL PUBLIC LICENSE"
|
||||
# in source, with no mention of version.
|
||||
# doc/COPYING file specifies what is GPL and what is LGPL
|
||||
@ -18,11 +18,6 @@ Provides: xfs-cmds
|
||||
Obsoletes: xfs-cmds <= %{version}
|
||||
Conflicts: xfsdump < 3.0.1
|
||||
|
||||
Patch0: xfsprogs-3.1.0-glibc-fixes.patch
|
||||
Patch1: xfsprogs-3.1.1-fd-test-fix.patch
|
||||
Patch2: xfsprogs-3.1.1-empty-blkid-fix.patch
|
||||
Patch3: xfsprogs-3.1.1-btree-locking.patch
|
||||
|
||||
%description
|
||||
A set of commands to use the XFS filesystem, including mkfs.xfs.
|
||||
|
||||
@ -66,11 +61,6 @@ in building or running the xfstests QA suite.
|
||||
%prep
|
||||
%setup -q
|
||||
|
||||
%patch0 -p1
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
|
||||
%build
|
||||
export tagname=CC DEBUG=-DNDEBUG
|
||||
%configure \
|
||||
@ -195,6 +185,9 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%{_includedir}/xfs/xfs_types.h
|
||||
|
||||
%changelog
|
||||
* Fri May 07 2010 Eric Sandeen <sandeen@redhat.com> 3.1.2-1
|
||||
- New upstream release
|
||||
|
||||
* Thu Apr 01 2010 Eric Sandeen <sandeen@redhat.com> 3.1.1-7
|
||||
- make devel pkg require libuuid-devel (#576296)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user