Accepting request 542710 from home:jeff_mahoney:branches:filesystems

- Fix building on SLE11
- Added xfs_io-stat-fix-typo-in-statfs-f_flags.patch
- Added xfs_io-stat-treat-statfs.f_flags-as-optional.patch

- Update to 4.13.1
  * mkfs: don't overflow the subopts array
- Update to 4.13.0
  * xfs_repair: handle missing extent states
  * mkfs: pass a custom cowextsize into the created filesystem
  * xfs_db: version command misses RMAPBT feature string
  * xfs_repair: don't use do_warn for normal log message
  * libxfs: remove getcwd/chdir dance from initialization
  * xfs_repair: take the ag_lock before recording rmap for a bmbt record
  * mkfs.xfs: Don't stagger AG for a single disk
  * xfs: fix inobt inode allocation search optimization
  * xfs_io: clarify the fsmap documentation
  * fiemap: Fix semantics of max_extents (-n arguments)
  * xfs_repair: fix thread creation failure recovery
  * xfs_repair: add prefetch trace calls to debug thread creation failures
  * xfs_repair: clear pthread_t when pthread_create fails
  * xfs_io: add seek consistency checks
  * fsr: fix uninitialized fs usage after timeout
  * xfs_db: bit fuzzing should read the right bit when flipping
  * xfs_db: make write/fuzz -c and -d work on non-crc filesystems
  * xfs_db: free field list when failing out of fuzz
  * xfs_db: reset metadump output flag
  * xfs_db: btdump should avoid eval for push and pop of cursor
  * xfs_db: use TYP_F_CRC_FUNC for inodes & dquots
  * xfs_db: introduce fuzz command
  * xfs_db: write values into dir/attr blocks and recalculate CRCs

OBS-URL: https://build.opensuse.org/request/show/542710
OBS-URL: https://build.opensuse.org/package/show/filesystems/xfsprogs?expand=0&rev=54
This commit is contained in:
Jeff Mahoney 2017-11-17 20:03:23 +00:00 committed by Git OBS Bridge
parent 837ae4c306
commit a04b221ec2
12 changed files with 348 additions and 317 deletions

View File

@ -1,39 +0,0 @@
From: Jeff Mahoney <jeffm@suse.com>
Date: Fri, 2 Jun 2017 14:15:41 -0400
Subject: fsr: fix uninitialized fs usage after timeout
Patch-mainline: Submitted to linux-xfs, 2 Jun 2017
References: bsc#1002699
In the main loop of fsrallfs, we exit when we've hit the timeout but
we increment fs before we get there. If we're operating on the last
file system in the array, we'll hit an uninitialized fsdesc and
crash in fsrall_cleanup.
Signed-off-by: Jeff Mahoney <jeffm@suse.com>
---
fsr/xfs_fsr.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/fsr/xfs_fsr.c b/fsr/xfs_fsr.c
index 517b75f0..e695c243 100644
--- a/fsr/xfs_fsr.c
+++ b/fsr/xfs_fsr.c
@@ -598,7 +598,7 @@ fsrallfs(char *mtab, int howlong, char *leftofffile)
signal(SIGTERM, aborter);
/* reorg for 'howlong' -- checked in 'fsrfs' */
- while (endtime > time(0)) {
+ for (; endtime > time(0); fs->npass++, fs++) {
pid_t pid;
if (fs == fsend)
fs = fsbase;
@@ -629,8 +629,6 @@ fsrallfs(char *mtab, int howlong, char *leftofffile)
break;
}
startino = 0; /* reset after the first time through */
- fs->npass++;
- fs++;
}
fsrall_cleanup(endtime <= time(0));
}

View File

@ -0,0 +1,28 @@
From 00f71e74694f14eb4fdceafea1f16c984c70c7e8 Mon Sep 17 00:00:00 2001
From: Jeff Mahoney <jeffm@suse.com>
Date: Fri, 17 Nov 2017 14:24:01 -0500
Subject: [PATCH] xfs_io: stat: fix typo in statfs->f_flags
The field name is f_flags.
Signed-off-by: Jeff Mahoney <jeffm@suse.com>
---
io/stat.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/io/stat.c b/io/stat.c
index 060ff833..6ab10abf 100644
--- a/io/stat.c
+++ b/io/stat.c
@@ -199,7 +199,7 @@ statfs_f(
printf(_("statfs.f_bavail = %lld\n"), (long long) st.f_bavail);
printf(_("statfs.f_files = %lld\n"), (long long) st.f_files);
printf(_("statfs.f_ffree = %lld\n"), (long long) st.f_ffree);
- printf(_("statfs.f_fflags = 0x%llx\n"), (long long) st.f_flags);
+ printf(_("statfs.f_flags = 0x%llx\n"), (long long) st.f_flags);
}
if (file->flags & IO_FOREIGN)
return 0;
--
2.14.2

View File

@ -0,0 +1,81 @@
From 1c2113fd2f67bad534d75900ca5db0a7826cb8d7 Mon Sep 17 00:00:00 2001
From: Jeff Mahoney <jeffm@suse.com>
Date: Fri, 17 Nov 2017 14:39:52 -0500
Subject: [PATCH] xfs_io: stat: treat statfs.f_flags as optional
Kernels prior to 2.6.36 didn't contain statfs.f_flags. Distros with
initial releases with kernels prior to this may not have updated
headers with this member. Only attempt to print it if we have the
header with the member defined.
Signed-off-by: Jeff Mahoney <jeffm@suse.com>
---
configure.ac | 1 +
include/builddefs.in | 1 +
io/stat.c | 2 ++
m4/package_libcdev.m4 | 14 ++++++++++++++
4 files changed, 18 insertions(+)
diff --git a/configure.ac b/configure.ac
index 4161c3b4..939d802b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -143,6 +143,7 @@ AC_HAVE_FSETXATTR
AC_HAVE_MREMAP
AC_NEED_INTERNAL_FSXATTR
AC_HAVE_GETFSMAP
+AC_HAVE_STATFS_FLAGS
if test "$enable_blkid" = yes; then
AC_HAVE_BLKID_TOPO
diff --git a/include/builddefs.in b/include/builddefs.in
index ec630bd9..13756d79 100644
--- a/include/builddefs.in
+++ b/include/builddefs.in
@@ -113,6 +113,7 @@ HAVE_FSETXATTR = @have_fsetxattr@
HAVE_MREMAP = @have_mremap@
NEED_INTERNAL_FSXATTR = @need_internal_fsxattr@
HAVE_GETFSMAP = @have_getfsmap@
+HAVE_STATFS_FLAGS = @have_statfs_flags@
GCCFLAGS = -funsigned-char -fno-strict-aliasing -Wall
# -Wbitwise -Wno-transparent-union -Wno-old-initializer -Wno-decl
diff --git a/io/stat.c b/io/stat.c
index 6ab10abf..1ca5b0d6 100644
--- a/io/stat.c
+++ b/io/stat.c
@@ -199,7 +199,9 @@ statfs_f(
printf(_("statfs.f_bavail = %lld\n"), (long long) st.f_bavail);
printf(_("statfs.f_files = %lld\n"), (long long) st.f_files);
printf(_("statfs.f_ffree = %lld\n"), (long long) st.f_ffree);
+#ifdef HAVE_STATFS_FLAGS
printf(_("statfs.f_flags = 0x%llx\n"), (long long) st.f_flags);
+#endif
}
if (file->flags & IO_FOREIGN)
return 0;
diff --git a/m4/package_libcdev.m4 b/m4/package_libcdev.m4
index fa5b6397..bc395acd 100644
--- a/m4/package_libcdev.m4
+++ b/m4/package_libcdev.m4
@@ -297,3 +297,17 @@ AC_DEFUN([AC_HAVE_GETFSMAP],
AC_MSG_RESULT(no))
AC_SUBST(have_getfsmap)
])
+
+AC_DEFUN([AC_HAVE_STATFS_FLAGS],
+ [
+ AC_CHECK_TYPE(struct statfs,
+ [
+ AC_CHECK_MEMBER(struct statfs.f_flags,
+ have_statfs_flags=yes,,
+ [#include <sys/vfs.h>]
+ )
+ ],,
+ [#include <sys/vfs.h>]
+ )
+ AC_SUBST(have_statfs_flags)
+ ])
--
2.14.2

View File

@ -1,60 +0,0 @@
From: Jeff Mahoney <jeffm@suse.com>
Subject: xfs_repair: add prefetch trace calls to debug thread creation failures
Patch-mainline: Submitted, 16 Jan 2017
References: bsc#1019938
When debugging prefetch failures, it's useful to have thread creation
failure messages that are output as warnings on stderr in the trace
log as well. It's also helpful to see when an AG gets queued behind
another one rather than having the thread started directly, which
has a separate trace line.
Signed-off-by: Jeff Mahoney <jeffm@suse.com>
---
repair/prefetch.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/repair/prefetch.c b/repair/prefetch.c
index 044fab2..37d60d6 100644
--- a/repair/prefetch.c
+++ b/repair/prefetch.c
@@ -703,6 +703,8 @@ pf_queuing_worker(
if (err != 0) {
do_warn(_("failed to create prefetch thread: %s\n"),
strerror(err));
+ pftrace("failed to create prefetch thread for AG %d: %s",
+ args->agno, strerror(err));
args->io_threads[i] = 0;
if (i == 0) {
pf_start_processing(args);
@@ -817,6 +819,8 @@ pf_create_prefetch_thread(
if (err != 0) {
do_warn(_("failed to create prefetch thread: %s\n"),
strerror(err));
+ pftrace("failed to create prefetch thread for AG %d: %s",
+ args->agno, strerror(err));
args->queuing_thread = 0;
cleanup_inode_prefetch(args);
}
@@ -882,8 +886,11 @@ start_inode_prefetch(
if (prev_args->prefetch_done) {
if (!pf_create_prefetch_thread(args))
args = NULL;
- } else
+ } else {
prev_args->next_args = args;
+ pftrace("queued AG %d after AG %d",
+ args->agno, prev_args->agno);
+ }
pthread_mutex_unlock(&prev_args->lock);
}
--
2.7.1
--
To unsubscribe from this list: send the line "unsubscribe linux-xfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html

View File

@ -1,55 +0,0 @@
From: Jeff Mahoney <jeffm@suse.com>
Subject: xfs_repair: clear pthread_t when pthread_create fails
Patch-mainline: Submitted, 16 Jan 2017
References: bsc#1019938
pf_queuing_worker and pf_create_prefetch_thread both try to handle
thread creation failure gracefully, but assume that pthread_create
doesn't modify the pthread_t when it fails.
>From the pthread_create man page:
On success, pthread_create() returns 0; on error, it returns an error
number, and the contents of *thread are undefined.
In fact, glibc's pthread_create writes the pthread_t value before
calling clone(). When we join the created threads in
cleanup_inode_prefetch and the cleanup stage of pf_queuing_worker, we
assume that if the pthread_t is nonzero that it's a valid thread handle
and end up crashing in pthread_join.
This patch zeros out the handle after pthread_create failure.
Signed-off-by: Jeff Mahoney <jeffm@suse.com>
---
repair/prefetch.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/repair/prefetch.c b/repair/prefetch.c
index ff50606..044fab2 100644
--- a/repair/prefetch.c
+++ b/repair/prefetch.c
@@ -703,6 +703,7 @@ pf_queuing_worker(
if (err != 0) {
do_warn(_("failed to create prefetch thread: %s\n"),
strerror(err));
+ args->io_threads[i] = 0;
if (i == 0) {
pf_start_processing(args);
return NULL;
@@ -816,6 +817,7 @@ pf_create_prefetch_thread(
if (err != 0) {
do_warn(_("failed to create prefetch thread: %s\n"),
strerror(err));
+ args->queuing_thread = 0;
cleanup_inode_prefetch(args);
}
--
2.7.1
--
To unsubscribe from this list: send the line "unsubscribe linux-xfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html

View File

@ -1,136 +0,0 @@
From: Jeff Mahoney <jeffm@suse.com>
Subject: xfs_repair: fix thread creation failure recovery
Patch-mainline: Submitted, 16 Jan 2017
References: bsc#1019938
When pf_create_prefetch_thread fails, it tears down the args struct
and frees it. This causes a use-after-free in prefetch_ag_range, which
then passes the now-invalid pointer to start_inode_prefetch. The struct
is only freed when the queuing thread can't be started. When we can't
start even one worker thread, we mark the args ready for processing and
allow it to proceed single-threaded. Unfortunately, this only marks
the current args ready for processing and since we return immediately,
the call to pf_create_prefetch_thread at the end of pf_queuing_worker
never gets called and we wait forever for prefetch to start on the
next AG.
This patch factors out the cleanup into a new pf_skip_prefetch_thread
that is called when we fail to create either the queuing thread or
the first of the workers. It marks the args ready for processing, marks
it done so start_inode_prefetch doesn't add another AG to the list, and
tries to start a new thread for the next AG in the list. We also clear
->next_args and check for it in cleanup_inode_prefetch so this condition
is easier to catch should it arise again.
Signed-off-by: Jeff Mahoney <jeffm@suse.com>
---
repair/prefetch.c | 38 ++++++++++++++++++++++++++++++++------
1 file changed, 32 insertions(+), 6 deletions(-)
diff --git a/repair/prefetch.c b/repair/prefetch.c
index 37d60d6..4c74b6e 100644
--- a/repair/prefetch.c
+++ b/repair/prefetch.c
@@ -679,11 +679,32 @@ static int
pf_create_prefetch_thread(
prefetch_args_t *args);
+/*
+ * If we fail to create the queuing thread or can't create even one
+ * prefetch thread, we need to let processing continue without it.
+ */
+static void
+pf_skip_prefetch_thread(prefetch_args_t *args)
+{
+ prefetch_args_t *next;
+
+ pthread_mutex_lock(&args->lock);
+ args->prefetch_done = 1;
+ pf_start_processing(args);
+ next = args->next_args;
+ args->next_args = NULL;
+ pthread_mutex_unlock(&args->lock);
+
+ if (next)
+ pf_create_prefetch_thread(next);
+}
+
static void *
pf_queuing_worker(
void *param)
{
prefetch_args_t *args = param;
+ prefetch_args_t *next_args;
int num_inos;
ino_tree_node_t *irec;
ino_tree_node_t *cur_irec;
@@ -707,7 +728,7 @@ pf_queuing_worker(
args->agno, strerror(err));
args->io_threads[i] = 0;
if (i == 0) {
- pf_start_processing(args);
+ pf_skip_prefetch_thread(args);
return NULL;
}
/*
@@ -798,11 +819,13 @@ pf_queuing_worker(
ASSERT(btree_is_empty(args->io_queue));
args->prefetch_done = 1;
- if (args->next_args)
- pf_create_prefetch_thread(args->next_args);
-
+ next_args = args->next_args;
+ args->next_args = NULL;
pthread_mutex_unlock(&args->lock);
+ if (next_args)
+ pf_create_prefetch_thread(next_args);
+
return NULL;
}
@@ -822,7 +845,7 @@ pf_create_prefetch_thread(
pftrace("failed to create prefetch thread for AG %d: %s",
args->agno, strerror(err));
args->queuing_thread = 0;
- cleanup_inode_prefetch(args);
+ pf_skip_prefetch_thread(args);
}
return err == 0;
@@ -884,14 +907,15 @@ start_inode_prefetch(
} else {
pthread_mutex_lock(&prev_args->lock);
if (prev_args->prefetch_done) {
+ pthread_mutex_unlock(&prev_args->lock);
if (!pf_create_prefetch_thread(args))
args = NULL;
} else {
prev_args->next_args = args;
pftrace("queued AG %d after AG %d",
args->agno, prev_args->agno);
+ pthread_mutex_unlock(&prev_args->lock);
}
- pthread_mutex_unlock(&prev_args->lock);
}
return args;
@@ -1066,6 +1090,8 @@ cleanup_inode_prefetch(
pftrace("AG %d prefetch done", args->agno);
+ ASSERT(args->next_args == NULL);
+
pthread_mutex_destroy(&args->lock);
pthread_cond_destroy(&args->start_reading);
pthread_cond_destroy(&args->start_processing);
--
2.7.1
--
To unsubscribe from this list: send the line "unsubscribe linux-xfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html

17
xfsprogs-4.13.1.tar.sign Normal file
View File

@ -0,0 +1,17 @@
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.14 (GNU/Linux)
iQIcBAABAgAGBQJZywnKAAoJECCuFpLhPd7gIQUP/0LWah3X8XchXnPn1FlmVR5C
OL/hhPzwBfF7HmWd27hbn/GIBAEkSeIXc2QRJAkXg+Zpq2s6p4qM149SW6MmUgAy
F3xa/D0sVZez6jnO4vBvKJ2XeKeINaBlM/9IyWIPXzXm2LsvC9Z1AHe0w0TzQG8U
8HHXsXzqIQk4vyipldH22KRrXUPUn4Bdys3plQldGjke5QvoEDrNuRLTwOkxacAF
swuZaUIhQz4XSGTrnRGXbHRDA9QIcf3vwK9Vl3UeKnuMAJ/G9H6Bb7OuKH/Gdtin
8EzjfOU7HOvvWTWVzoy9WdCIfQNW0R/vchRS3ivY2VT5FnnH9wD72DC14qsMD1gB
QdawrYozk9gWR5FEF1FszUjNRkHMPAPm3HkXYFz0hOySabEWdqOJnN4NjIElMdTV
OAz9NtrKb2BjqD/hO6iI+h0f+0bAygMuB9RcLlWk2rYVbWUSwr1WBxLte3x7egN6
vAQM7pNBCgjDpaaHJFCQ7VE92uE4iTELiN514Q797TKD7z+UxiZs2ipZzdAaT4O1
wK2pkkdcVicV3XkILVHZl8szmF30sUb3WsTazUgZPRbqryw6t4qA2liow+qzLc+d
d3wKmD8yM8JTT0XcsVX+qyw1oNZtRYIuS4bIHep/4XKwAHx2zHVK8B3Dl7Aoscah
BTOvcClfvuDSVGD6/egX
=iocA
-----END PGP SIGNATURE-----

3
xfsprogs-4.13.1.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8c64d349d191e24c84eeb1611be767e4a11b81016bd5b73f3a20a0bf39dd3536
size 1133556

View File

@ -1,17 +0,0 @@
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.14 (GNU/Linux)
iQIcBAABAgAGBQJYbtG4AAoJECCuFpLhPd7gL8kP/3FIJk78XAEKwqlIgTqB1+Yz
macnqh7FYbJbYUPb+8xg99F8S6BfsxcI6w085DUeYUV2HW6F105iQu6dYtgRjIlu
leaS5bntPNxCbK7yQCkbvwSDipzb3gYZsm5GHoYB1hOYJhY/o3uMCJzipLDgCZtP
MlFn4OqNcON98REeTqn6An8gCrHLMbvqf4K1s/5mQ1JinbsgHDfz4kwIbESaChJT
BbanUa7pkhTadBvVy/dLvwzqOdJkJZDiuvZDqC25+deHakw3gL48tTAhHh5OWE3m
IyU24g8Ju/mdu3t0uiz3rIRqngCZ/bvY9STM2bT4/VyXA016SguMAWX/LrqIV64C
C402v9V2UJbxtCiNubJ6UUTbY/tIJf5gY3ASpvXfN9RGTN73YE1jq5KE9rjn0adz
rEPsoBrIBF0oeq2u49zJow/fH3h2DhsiGgRnFZogXbfz3ROqHiAyzUmkI7j+Rhx7
ky23wIRCvlavGojcW+9YUwcV5hjCxXqgWmRMWyCe83zLzAUMtfYOo6Bm+cDAlKYu
c+Wl20r1s+GCT82NIs2//hUP6+yXPZT9TNBLwKhXg5aeD8cZcsaXkefW8Di/658j
3UoCBQ0UsYe7caa4aNPa2C8SDlKpGm2BTUP6GEEdgYjFDBL6tak6EHbjD5w/mXNQ
yGpu9OXaOSeHJTL1sGL5
=SvzB
-----END PGP SIGNATURE-----

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f1e60a9a54583dba82fa506dd9b59bdec110a968f80f507bf5f93b263af7a4df
size 1087940

View File

@ -1,3 +1,214 @@
-------------------------------------------------------------------
Fri Nov 17 19:46:15 UTC 2017 - jeffm@suse.com
- Fix building on SLE11
- Added xfs_io-stat-fix-typo-in-statfs-f_flags.patch
- Added xfs_io-stat-treat-statfs.f_flags-as-optional.patch
-------------------------------------------------------------------
Fri Nov 17 18:58:47 UTC 2017 - jeffm@suse.com
- Update to 4.13.1
* mkfs: don't overflow the subopts array
- Update to 4.13.0
* xfs_repair: handle missing extent states
* mkfs: pass a custom cowextsize into the created filesystem
* xfs_db: version command misses RMAPBT feature string
* xfs_repair: don't use do_warn for normal log message
* libxfs: remove getcwd/chdir dance from initialization
* xfs_repair: take the ag_lock before recording rmap for a bmbt record
* mkfs.xfs: Don't stagger AG for a single disk
* xfs: fix inobt inode allocation search optimization
* xfs_io: clarify the fsmap documentation
* fiemap: Fix semantics of max_extents (-n arguments)
* xfs_repair: fix thread creation failure recovery
* xfs_repair: add prefetch trace calls to debug thread creation failures
* xfs_repair: clear pthread_t when pthread_create fails
* xfs_io: add seek consistency checks
* fsr: fix uninitialized fs usage after timeout
* xfs_db: bit fuzzing should read the right bit when flipping
* xfs_db: make write/fuzz -c and -d work on non-crc filesystems
* xfs_db: free field list when failing out of fuzz
* xfs_db: reset metadump output flag
* xfs_db: btdump should avoid eval for push and pop of cursor
* xfs_db: use TYP_F_CRC_FUNC for inodes & dquots
* xfs_db: introduce fuzz command
* xfs_db: write values into dir/attr blocks and recalculate CRCs
* xfs_db: print attribute remote value blocks
* xfs_db: dump dir/attr btrees
* xfs_db: fix metadump redirection (again)
* xfs_repair: fix symlink target length checks by changing MAXPATHLEN to XFS_SYMLINK_MAXLEN
* xfs_metadump: properly handle obfuscation of all remote attribute blocks
* xfs_io: allow lsattr & lsproj on foreign filesystems
* libxfs: init ->b_maps on contig buffers for uncached compatibility
* xfs_db: associate proper type with free inode btree root
* xfs_io: Print filesystem statfs flags in 'statfs' command
* xfs: fix multi-AG deadlock in xfs_bunmapi
* xfs: check that dir block entries don't off the end of the buffer
* xfs: check _alloc_read_agf buffer pointer before using
* xfs: set firstfsb to NULLFSBLOCK before feeding it to _bmapi_write
* xfs: check _btree_check_block value
* xfs: don't crash on unexpected holes in dir/attr btrees
* xfs: export _inobt_btrec_to_irec and _ialloc_cluster_alignment for scrub
* xfs: try to avoid blowing out the transaction reservation when bunmaping a shared extent
- Update to 4.12.0
* libxfs: propagate transaction block reservations
* xfs_db: properly set inode type
* xfs_db: redirect printfs when metadumping to stdout
* mkfs.xfs: allow specification of 0 data stripe width & unit
* mkfs: set inode alignment and cluster size for minimum log size estimation
* mkfs: set agblklog when we're verifying minimum log size
* libxfs: fix fsmap.h inclusion
* xfs_db: identify attr dabtree field types correctly
* xfs_spaceman: fix potential overflowing expression in trim_f()
* xfs_spaceman: close open file for error case in openfile()
* xfs_spaceman: fix potential memory leak by malloc in scan_ag
* xfs_db: improve argument naming in set_cur and set_iocur_type
* xfs_db: update buffer size when new type is set
* xfs_spaceman: add group summary mode
* xfs_spaceman: add a man page
* xfs_spaceman: Free space mapping command
* xfs_spaceman: add new speculative prealloc control
* xfs_spaceman: add FITRIM support
* xfs_spaceman: space management tool
* xfs_repair: replace rmap_compare with libxfs version
* xfs_io: support the new getfsmap ioctl
* xfs: introduce the XFS_IOC_GETFSMAP ioctl
* libxfs: use crc32c slice-by-8 variant by default
* libxcmd: add cvt{int, long} to convert strings to int and long
* metadump: warn about corruption if log is dirty
* xfs_metadump: tag metadump image with informational flags
* xfs_repair: handle reading superblock from image on larger sector size filesystem
* xfs_db: add alignment filter to freesp command
* xfs_growfs: ensure target path is an active xfs mountpoint
* libxfs: fix xfs_trans_alloc_empty namespace
* xfs: fix unaligned access in xfs_btree_visit_blocks
* xfs: avoid mount-time deadlock in CoW extent recovery
* xfs: fix indlen accounting error on partial delalloc conversion
* xfs: abstract PF_FSTRANS to PF_MEMALLOC_NOFS
* xfs: reserve enough blocks to handle btree splits when remapping
* xfs: simplify validation of the unwritten extent bit
* xfs: introduce xfs_bmapi_remap
* xfs: pass individual arguments to xfs_bmap_add_extent_hole_real
* xfs: fix integer truncation in xfs_bmap_remap_alloc
* xfs: simplify xfs_calc_dquots_per_chunk
* xfs: implement the GETFSMAP ioctl
* xfs: add a couple of queries to iterate free extents in the rtbitmap
* xfs: create a function to query all records in a btree
* xfs: provide a query_range function for freespace btrees
* xfs: plumb in needed functions for range querying of the freespace btrees
* xfs: fix up inode validation failure message
- Update to 4.11.0
* xfs_io: add missed quotation marks in man page
* xfs_io: add missed inode command into man page
* xfs_io: fix statx call for changed UAPI
* xfs_db: dump metadata btrees via 'btdump'
* xfs_db: use iocursor type to guess btree geometry if bad magic
* xfs_db: don't print arrays off the end of a buffer
* mkfs.xfs: Assign proper defaults to rmapbt and reflink flags
* xfs_io: Add statx support for PowerPC architecture
* xfs_io: fix statx definition for non-x86 architecture
* xfs_db: allow write -d to dqblks
* xfs_db: allow write -d to inodes
* xfs_io: hook up statx
* xfsprogs: fix build dep on configure.ac
* xfs_repair: pass btnum not magic to phase5 functions
* xfs_io: Fix "falloc -p" to pass KEEP_SIZE
* xfs_repair: warn about dirty log with -n option
* xfs_repair: detect invalid zero-sized symlink inodes
* xfs_io: support shutdown command on foreign fses
* libxfs: fix xfs_extent_busy_flush macro definition
* xfs: verify inline directory data forks
* xfs: try any AG when allocating the first btree block when reflinking
* xfs: use iomap new flag for newly allocated delalloc blocks
* xfs: tune down agno asserts in the bmap code
* xfs: Use xfs_icluster_size_fsb() to calculate inode chunk alignment
* xfs: split indlen reservations fairly when under reserved
* xfs: handle indlen shortage on delalloc extent merge
* xfs: improve handling of busy extents in the low-level allocator
* xfs: go straight to real allocations for direct I/O COW writes
* xfs: allow unwritten extents in the CoW fork
* xfs: verify free block header fields
* xfs: check for obviously bad level values in the bmbt root
* xfs: filter out obviously bad btree pointers
* xfs: fail _dir_open when readahead fails
* xfs: fix toctou race when locking an inode to access the data map
* xfs: glean crc status from mp not flags in xfs_btree_init_block_int
- Update to 4.10.0
* xfs_metadump: ignore attr leaf with 0 entries
* libxfs: sync up FSGETXATTR names and definitions with the kernel
* xfsprogs: Fix building xfsprogs on 32-bit platforms (again)
* xfs: extsize hints are not unlikely in xfs_bmap_btalloc
* xfs: use per-AG reservations for the finobt
* xfs: only update mount/resv fields on success in __xfs_ag_resv_init
* xfs: verify dirblocklog correctly
* xfs: fix COW writeback race
* xfs: fix xfs_mode_to_ftype() prototype
* xfs_db: Interpret inode's di_format field as unsigned
* xfs_repair: trash dirattr btrees that cycle to the root
* xfs_repair: strengthen geometry checks
* xfs_db: fix the 'source' command when passed as a -c option
* libxfs: sanitize agcount on load
* xfs_io: add DAX and CoW extent-size flags to chattr manpage
* xfs_io: fix missing syncfs command
* xfs_logprint: handle log operation split of inode item correctly
* xfs: sanity check inode di_mode
* xfs: sanity check directory inode di_size
* xfs_repair: update the manual content about xfs_repair exit status
* xfs_repair.8: document dirty log conditions
* xfs_io: implement 'utimes' command
* libxcmd: add non-iterating user commands
* xfs_io: make various commands one-shot only
* libxcmd: don't check generic library commands
* libxcmd: merge command() and iterate_command()
* libxcmd: rename args_command to command_iterator
* libxcmd: check CMD_FLAG_GLOBAL inside args_command()
* xfs_io: fix some documentation problems
* xfs_io: fix the minimum arguments to the reflink command
* xfs_io: prefix dedupe command error messages consistently
* xfs_io: Improvements to copy_range return code handling
* xfs_io: implement 'set_encpolicy' and 'get_encpolicy' commands
* xfs_logprint: di_gen is unsigned
* xfs_io: fix building with musl
* xfs: don't rely on ->total in xfs_alloc_space_available
* xfs: adjust allocation length in xfs_alloc_space_available
* xfs: fix bogus minleft manipulations
* xfs: bump up reserved blocks in xfs_alloc_set_aside
* xfs: use the actual AG length when reserving blocks
* xfs: use GPF_NOFS when allocating btree cursors
* xfs: ignore leaf attr ichdr.count in verifier during log replay
* xfs: optimise CRC updates
* xfs: make xfs btree stats less huge
* xfs: don't allow di_size with high bit set
* xfs: error out if trying to add attrs and anextents > 0
* xfs: don't crash if reading a directory results in an unexpected hole
* xfs: complain if we don't get nextents bmap records
* xfs: check for bogus values in btree block headers
* xfs: forbid AG btrees with level == 0
* xfs: several xattr functions can be void
* xfs: handle cow fork in xfs_bmap_trace_exlist
* xfs: pass state not whichfork to trace_xfs_extlist
* xfs: Move AGI buffer type setting to xfs_read_agi
* xfs: track preallocation separately in xfs_bmapi_reserve_delalloc()
* fs: xfs: libxfs: constify xfs_nameops structures
* repair: use new extent lookup helpers in bmap_next_offset
* xfs: use new extent lookup helpers in __xfs_bunmapi
* xfs: use new extent lookup helpers in xfs_bmapi_write
* xfs: use new extent lookup helpers in xfs_bmapi_read
* xfs: new inode extent list lookup helpers
* xfs: check minimum block size for CRC filesystems
* xfs: provide helper for counting extents from if_bytes
* xfs: check return value of _trans_reserve_quota_nblks
* xfs: set XFS_DA_OP_OKNOENT in xfs_attr_get
- Removed now-obsolete patches:
* Removed xfs_repair-clear-pthread_t-when-pthread_create-fails.patch
* Removed xfs_repair-add-prefetch-trace-calls-to-debug-thread-creation-failures.patch
* Removed xfs_repair-fix-thread-creation-failure-recovery.patch
------------------------------------------------------------------- -------------------------------------------------------------------
Mon Aug 28 13:42:33 UTC 2017 - mmarek@suse.com Mon Aug 28 13:42:33 UTC 2017 - mmarek@suse.com

View File

@ -19,7 +19,7 @@
%define _dracutmodulesdir %{_libexecdir}/dracut/modules.d %define _dracutmodulesdir %{_libexecdir}/dracut/modules.d
Name: xfsprogs Name: xfsprogs
Version: 4.9.0 Version: 4.13.1
Release: 0 Release: 0
Summary: Utilities for managing the XFS file system Summary: Utilities for managing the XFS file system
License: GPL-2.0+ License: GPL-2.0+
@ -31,10 +31,10 @@ Source2: %{name}.keyring
Source3: module-setup.sh.in Source3: module-setup.sh.in
Source4: dracut-fsck-help.txt Source4: dracut-fsck-help.txt
Patch0: xfsprogs-docdir.diff Patch0: xfsprogs-docdir.diff
Patch1: fsr-fix-uninitialized-fs-usage-after-timeout.patch Patch1: xfs_io-stat-fix-typo-in-statfs-f_flags.patch
Patch2: xfs_repair-clear-pthread_t-when-pthread_create-fails.patch Patch2: xfs_io-stat-treat-statfs.f_flags-as-optional.patch
Patch3: xfs_repair-add-prefetch-trace-calls-to-debug-thread-creation-failures.patch BuildRequires: autoconf
Patch4: xfs_repair-fix-thread-creation-failure-recovery.patch BuildRequires: automake
BuildRequires: libblkid-devel BuildRequires: libblkid-devel
BuildRequires: readline-devel BuildRequires: readline-devel
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
@ -83,10 +83,11 @@ want to install xfsprogs.
%endif %endif
%patch1 -p1 %patch1 -p1
%patch2 -p1 %patch2 -p1
%patch3 -p1
%patch4 -p1
%build %build
aclocal -I m4
autoconf
export OPTIMIZER="-fPIC" export OPTIMIZER="-fPIC"
export DEBUG=-DNDEBUG export DEBUG=-DNDEBUG
export LIBUUID=%{_libdir}/libuuid.a export LIBUUID=%{_libdir}/libuuid.a