Hello community, here is the log from the commit of package xfsprogs for openSUSE:Factory checked in at 2014-07-23 22:06:08 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/xfsprogs (Old) and /work/SRC/openSUSE:Factory/.xfsprogs.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xfsprogs" Changes: -------- --- /work/SRC/openSUSE:Factory/xfsprogs/xfsprogs.changes 2014-05-23 08:05:21.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.xfsprogs.new/xfsprogs.changes 2014-07-23 22:06:11.000000000 +0200 @@ -1,0 +2,13 @@ +Tue Jul 22 09:59:46 UTC 2014 - j...@suse.cz + +- Updated to 3.2.1 + - fix xfs_mdrestore so that non-crc filesystem is properly restored as non-crc + - minor xfs_fsr fixes to be more robust + - various fixes to xfs_repair to properly fix filesystems with v5 superblock + - fix data corruption when using xfs_copy + - fix adding extended attributes using xfs_db + - add support for free inode btree feature +logprint-Fix-printing-of-AGF-and-AGI-buffers.patch: + - fix printing of AGF and AGI buffers in xfs_logprint + +------------------------------------------------------------------- Old: ---- xfsprogs-3.2.0.tar.gz New: ---- logprint-Fix-printing-of-AGF-and-AGI-buffers.patch xfsprogs-3.2.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xfsprogs.spec ++++++ --- /var/tmp/diff_new_pack.tw550m/_old 2014-07-23 22:06:13.000000000 +0200 +++ /var/tmp/diff_new_pack.tw550m/_new 2014-07-23 22:06:13.000000000 +0200 @@ -27,7 +27,7 @@ %else BuildRequires: libuuid-devel %endif -Version: 3.2.0 +Version: 3.2.1 Release: 0 %if 0%{?suse_version} >= 1010 # hint for ZYPP @@ -40,6 +40,7 @@ Source0: xfsprogs-%{version}.tar.gz Patch0: xfsprogs-docdir.diff Patch1: xfsprogs-ppc64.diff +Patch2: logprint-Fix-printing-of-AGF-and-AGI-buffers.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -75,6 +76,7 @@ %patch0 %endif %patch1 +%patch2 -p1 %build export OPTIMIZER="-fPIC" ++++++ logprint-Fix-printing-of-AGF-and-AGI-buffers.patch ++++++ >From 655b1e99f115f13f93143b69fe1a56d11f8651ee Mon Sep 17 00:00:00 2001 From: Jan Kara <j...@suse.cz> Date: Mon, 14 Jul 2014 16:39:42 +0200 Subject: [PATCH] logprint: Fix printing of AGF and AGI buffers Currently xfs_logprint doesn't show detailed data about AGF and AGI buffers and instead always shows "Out of space". This is because xfs_agf_t has additional fields and padding which we never read from disk and thus buffer length is always smaller than the size of xfs_agf_t or xfs_agi_t respectively. Fix the problem by only making sure we have enough data in the buffer to contain all the information we want to print. Signed-off-by: Jan Kara <j...@suse.cz> --- logprint/log_misc.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/logprint/log_misc.c b/logprint/log_misc.c index d482cf3fba57..c9286c67b913 100644 --- a/logprint/log_misc.c +++ b/logprint/log_misc.c @@ -325,7 +325,15 @@ xlog_print_trans_buffer(xfs_caddr_t *ptr, int len, int *i, int num_ops) } else if (be32_to_cpu(*(__be32 *)(*ptr)) == XFS_AGI_MAGIC) { agi = (xfs_agi_t *)(*ptr); printf(_("AGI Buffer: XAGI ")); - if (be32_to_cpu(head->oh_len) < sizeof(xfs_agi_t) - + /* + * v4 filesystems only contain the fields before the uuid. + * Even v5 filesystems don't log any field beneath it. That + * means that the size that is logged is almost always going to + * be smaller than the structure itself. Hence we need to make + * sure that the buffer contains all the data we want to print + * rather than just check against the structure size. + */ + if (be32_to_cpu(head->oh_len) < offsetof(xfs_agi_t, agi_uuid) - XFS_AGI_UNLINKED_BUCKETS*sizeof(xfs_agino_t)) { printf(_("out of space\n")); } else { @@ -367,7 +375,15 @@ xlog_print_trans_buffer(xfs_caddr_t *ptr, int len, int *i, int num_ops) } else if (be32_to_cpu(*(__be32 *)(*ptr)) == XFS_AGF_MAGIC) { agf = (xfs_agf_t *)(*ptr); printf(_("AGF Buffer: XAGF ")); - if (be32_to_cpu(head->oh_len) < sizeof(xfs_agf_t)) { + /* + * v4 filesystems only contain the fields before the uuid. + * Even v5 filesystems don't log any field beneath it. That + * means that the size that is logged is almost always going to + * be smaller than the structure itself. Hence we need to make + * sure that the buffer contains all the data we want to print + * rather than just check against the structure size. + */ + if (be32_to_cpu(head->oh_len) < offsetof(xfs_agf_t, agf_uuid)) { printf(_("Out of space\n")); } else { printf("\n"); -- 1.8.1.4 ++++++ xfsprogs-3.2.0.tar.gz -> xfsprogs-3.2.1.tar.gz ++++++ ++++ 32266 lines of diff (skipped) -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org