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