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:
parent
837ae4c306
commit
a04b221ec2
@ -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));
|
|
||||||
}
|
|
||||||
|
|
28
xfs_io-stat-fix-typo-in-statfs-f_flags.patch
Normal file
28
xfs_io-stat-fix-typo-in-statfs-f_flags.patch
Normal 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
|
||||||
|
|
81
xfs_io-stat-treat-statfs.f_flags-as-optional.patch
Normal file
81
xfs_io-stat-treat-statfs.f_flags-as-optional.patch
Normal 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
|
||||||
|
|
@ -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
|
|
||||||
|
|
||||||
|
|
@ -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
|
|
||||||
|
|
||||||
|
|
@ -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
17
xfsprogs-4.13.1.tar.sign
Normal 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
3
xfsprogs-4.13.1.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:8c64d349d191e24c84eeb1611be767e4a11b81016bd5b73f3a20a0bf39dd3536
|
||||||
|
size 1133556
|
@ -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-----
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:f1e60a9a54583dba82fa506dd9b59bdec110a968f80f507bf5f93b263af7a4df
|
|
||||||
size 1087940
|
|
211
xfsprogs.changes
211
xfsprogs.changes
@ -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
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user