Hello community,

here is the log from the commit of package xfsprogs for openSUSE:Factory 
checked in at 2014-12-16 14:50:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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-07-23 
22:06:11.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.xfsprogs.new/xfsprogs.changes   2014-12-16 
14:50:45.000000000 +0100
@@ -1,0 +2,19 @@
+Thu Dec 11 10:06:01 UTC 2014 - j...@suse.cz
+
+- Updated to 3.2.2
+   - xfs_repair, mkfs.xfs stripe geometry fixes
+   - libxcmd path handling fixes
+   - xfs_crash crash fix
+   - xfs_logprint AGI/AGF handling improvements
+   - libhandle support for symlinked /usr
+   - fix multiple Coverity and sparse reported issues
+   - new mremap, sync, syncfs commands for xfs_io
+   - man page updates
+   - xfs_repair sets ftype in lost+found dirents
+   - xfs_repair handles bad inodes better
+   - xfs_repair freelist rebuild improvements
+   - xfs_repair finobt crash fixes
+   - xfs_copy handles 4k sector devices better
+logprint-Fix-printing-of-AGF-and-AGI-buffers.patch: Removed (merged upstream)
+
+-------------------------------------------------------------------

Old:
----
  logprint-Fix-printing-of-AGF-and-AGI-buffers.patch
  xfsprogs-3.2.1.tar.gz

New:
----
  xfsprogs-3.2.2.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ xfsprogs.spec ++++++
--- /var/tmp/diff_new_pack.EjxhMS/_old  2014-12-16 14:50:47.000000000 +0100
+++ /var/tmp/diff_new_pack.EjxhMS/_new  2014-12-16 14:50:47.000000000 +0100
@@ -27,7 +27,7 @@
 %else
 BuildRequires:  libuuid-devel
 %endif
-Version:        3.2.1
+Version:        3.2.2
 Release:        0
 %if 0%{?suse_version} >= 1010
 # hint for ZYPP
@@ -40,7 +40,6 @@
 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
@@ -76,7 +75,6 @@
 %patch0
 %endif
 %patch1
-%patch2 -p1
 
 %build
 export OPTIMIZER="-fPIC"
@@ -90,8 +88,7 @@
 /usr/bin/make install
 /usr/bin/make install-dev
 # remove devel stuff from /lib
-rm $RPM_BUILD_ROOT/%_lib/libhandle.{so,a,la}
-rm $RPM_BUILD_ROOT/%_libdir/libhandle.so
+rm $RPM_BUILD_ROOT/%_lib/libhandle.so
 # move things to usr
 mv $RPM_BUILD_ROOT/sbin/* $RPM_BUILD_ROOT%{_sbindir}
 mv $RPM_BUILD_ROOT/%_lib/* $RPM_BUILD_ROOT%{_libdir}

++++++ xfsprogs-3.2.1.tar.gz -> xfsprogs-3.2.2.tar.gz ++++++
++++ 3931 lines of diff (skipped)
++++    retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xfsprogs-3.2.1/.gitcensus new/xfsprogs-3.2.2/.gitcensus
--- old/xfsprogs-3.2.1/.gitcensus       2014-07-15 06:30:47.000000000 +0200
+++ new/xfsprogs-3.2.2/.gitcensus       2014-12-03 22:14:02.000000000 +0100
@@ -104,6 +104,7 @@
 debian/control
 debian/copyright
 debian/rules
+debian/watch
 doc/CHANGES
 doc/COPYING
 doc/CREDITS
@@ -214,6 +215,7 @@
 io/seek.c
 io/sendfile.c
 io/shutdown.c
+io/sync.c
 io/sync_file_range.c
 io/truncate.c
 io/xfs_bmap.sh
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xfsprogs-3.2.1/VERSION new/xfsprogs-3.2.2/VERSION
--- old/xfsprogs-3.2.1/VERSION  2014-07-15 06:20:11.000000000 +0200
+++ new/xfsprogs-3.2.2/VERSION  2014-12-03 21:38:41.000000000 +0100
@@ -3,5 +3,5 @@
 #
 PKG_MAJOR=3
 PKG_MINOR=2
-PKG_REVISION=1
+PKG_REVISION=2
 PKG_BUILD=1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xfsprogs-3.2.1/copy/xfs_copy.c new/xfsprogs-3.2.2/copy/xfs_copy.c
--- old/xfsprogs-3.2.1/copy/xfs_copy.c  2014-07-08 02:28:47.000000000 +0200
+++ new/xfsprogs-3.2.2/copy/xfs_copy.c  2014-12-02 03:31:11.000000000 +0100
@@ -475,7 +475,7 @@
        int             open_flags;
        xfs_off_t       pos, end_pos;
        size_t          length;
-       int             c, first_residue, tmp_residue;
+       int             c;
        __uint64_t      size, sizeb;
        __uint64_t      numblocks = 0;
        int             wblocks = 0;
@@ -697,27 +697,13 @@
        ASSERT(source_blocksize % source_sectorsize == 0);
        ASSERT(source_sectorsize % BBSIZE == 0);
 
-       if (source_blocksize > source_sectorsize)  {
-               /* get number of leftover sectors in last block of ag header */
-
-               tmp_residue = ((XFS_AGFL_DADDR(mp) + 1) * BBSIZE)
-                                       % source_blocksize;
-               first_residue = (tmp_residue == 0) ? 0 :
-                       source_blocksize - tmp_residue;
-               ASSERT(first_residue % source_sectorsize == 0);
-       } else if (source_blocksize == source_sectorsize)  {
-               first_residue = 0;
-       } else  {
+       if (source_blocksize < source_sectorsize)  {
                do_log(_("Error:  filesystem block size is smaller than the"
                        " disk sectorsize.\nAborting XFS copy now.\n"));
                exit(1);
        }
 
-       first_agbno = (((XFS_AGFL_DADDR(mp) + 1) * BBSIZE)
-                               + first_residue) / source_blocksize;
-       ASSERT(first_agbno != 0);
-       ASSERT(((((XFS_AGFL_DADDR(mp) + 1) * BBSIZE)
-                               + first_residue) % source_blocksize) == 0);
+       first_agbno = XFS_AGFL_BLOCK(mp) + 1;
 
        /* now open targets */
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xfsprogs-3.2.1/db/write.c new/xfsprogs-3.2.2/db/write.c
--- old/xfsprogs-3.2.1/db/write.c       2014-07-09 03:00:54.000000000 +0200
+++ new/xfsprogs-3.2.2/db/write.c       2014-12-02 03:31:11.000000000 +0100
@@ -652,6 +652,7 @@
        buf = convert_arg(argv[1], bit_length);
        if (!buf) {
                dbprintf(_("unable to convert value '%s'.\n"), argv[1]);
+               flist_free(fl);
                return;
        }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xfsprogs-3.2.1/debian/Makefile new/xfsprogs-3.2.2/debian/Makefile
--- old/xfsprogs-3.2.1/debian/Makefile  2009-12-30 23:30:13.000000000 +0100
+++ new/xfsprogs-3.2.2/debian/Makefile  2014-12-02 03:31:11.000000000 +0100
@@ -5,7 +5,7 @@
 TOPDIR = ..
 include $(TOPDIR)/include/builddefs
 
-LSRCFILES = changelog compat control copyright rules
+LSRCFILES = changelog compat control copyright rules watch
 DEV_DOC_DIR = $(PKG_DOC_DIR)/../xfslibs-dev
 BOOT_MKFS_BIN = $(TOPDIR)/mkfs/mkfs.xfs-xfsprogs-udeb
 LDIRDIRT = xfslibs-dev xfsprogs xfsprogs-udeb
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xfsprogs-3.2.1/debian/changelog new/xfsprogs-3.2.2/debian/changelog
--- old/xfsprogs-3.2.1/debian/changelog 2014-05-09 00:53:19.000000000 +0200
+++ new/xfsprogs-3.2.2/debian/changelog 2014-12-02 03:31:11.000000000 +0100
@@ -1,3 +1,18 @@
+xfsprogs (3.2.2) unstable; urgency=low
+
+  * New upstream release
+  * Rework dh-autoreconf invocation (closes: #757455)
+  * Update licensing words for headers (closes: #751511)
+
+ -- Nathan Scott <nath...@debian.org>  Mon, 10 Nov 2014 20:35:27 +1100
+
+xfsprogs (3.2.1) unstable; urgency=low
+
+  * New upstream release (closes: #747080)
+  * Add a watch file (closes: #748483)
+
+ -- Nathan Scott <nath...@debian.org>  Wed, 16 Jul 2014 13:47:49 +1000
+
 xfsprogs (3.2.0) unstable; urgency=low
 
   * New upstream release
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xfsprogs-3.2.1/debian/control new/xfsprogs-3.2.2/debian/control
--- old/xfsprogs-3.2.1/debian/control   2014-01-20 23:47:46.000000000 +0100
+++ new/xfsprogs-3.2.2/debian/control   2014-12-02 03:31:11.000000000 +0100
@@ -3,7 +3,7 @@
 Priority: optional
 Maintainer: XFS Development Team <x...@oss.sgi.com>
 Uploaders: Nathan Scott <nath...@debian.org>, Anibal Monsalve Salazar 
<ani...@debian.org>
-Build-Depends: uuid-dev, autoconf, debhelper (>= 5), gettext, libtool, 
libreadline-gplv2-dev | libreadline5-dev, libblkid-dev (>= 2.17), 
linux-libc-dev, autotools-dev
+Build-Depends: uuid-dev, dh-autoreconf, debhelper (>= 5), gettext, libtool, 
libreadline-gplv2-dev | libreadline5-dev, libblkid-dev (>= 2.17), linux-libc-dev
 Standards-Version: 3.9.1
 Homepage: http://oss.sgi.com/projects/xfs/
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xfsprogs-3.2.1/debian/copyright new/xfsprogs-3.2.2/debian/copyright
--- old/xfsprogs-3.2.1/debian/copyright 2009-12-30 23:30:13.000000000 +0100
+++ new/xfsprogs-3.2.2/debian/copyright 2014-12-02 03:31:11.000000000 +0100
@@ -12,8 +12,8 @@
 On Debian systems, the complete text of the GNU General Public
 License can be found in /usr/share/common-licenses/GPL file.
 
-The library named "libhandle" is licensed under Version 2.1
-of the GNU Lesser General Public License.
+The library named "libhandle" and the headers in "xfslibs-dev" are
+licensed under Version 2.1 of the GNU Lesser General Public License.
 On Debian systems, refer to /usr/share/common-licenses/LGPL-2.1
 for the complete text of the GNU Lesser General Public License.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xfsprogs-3.2.1/debian/rules new/xfsprogs-3.2.2/debian/rules
--- old/xfsprogs-3.2.1/debian/rules     2014-01-20 23:47:46.000000000 +0100
+++ new/xfsprogs-3.2.2/debian/rules     2014-12-02 03:31:11.000000000 +0100
@@ -35,7 +35,7 @@
 .census:
        @echo "== dpkg-buildpackage: configure" 1>&2
        $(checkdir)
-       dh_autotools-dev_updateconfig
+       AUTOHEADER=/bin/true dh_autoreconf
        $(options) $(MAKE) include/platform_defs.h
        touch .census
 
@@ -58,7 +58,7 @@
        $(MAKE) distclean
        -rm -rf $(dirme) $(dirdev) $(dirdi)
        -rm -f debian/*substvars debian/files* debian/*.debhelper
-       dh_autotools-dev_restoreconfig
+       dh_autoreconf_clean
        dh_clean
 
 binary-indep:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xfsprogs-3.2.1/debian/watch new/xfsprogs-3.2.2/debian/watch
--- old/xfsprogs-3.2.1/debian/watch     1970-01-01 01:00:00.000000000 +0100
+++ new/xfsprogs-3.2.2/debian/watch     2014-12-02 03:31:11.000000000 +0100
@@ -0,0 +1,3 @@
+version=3
+opts=uversionmangle=s/(\d)[_\.\-\+]?((RC|rc|pre|dev|beta|alpha)\d*)$/$1~$2/ \
+ftp://oss.sgi.com/projects/xfs/cmd_tars/xfsprogs-(.+)\.tar\.gz
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xfsprogs-3.2.1/doc/CHANGES new/xfsprogs-3.2.2/doc/CHANGES
--- old/xfsprogs-3.2.1/doc/CHANGES      2014-07-15 06:20:11.000000000 +0200
+++ new/xfsprogs-3.2.2/doc/CHANGES      2014-12-03 21:56:43.000000000 +0100
@@ -1,3 +1,19 @@
+xfsprogs-3.2.2 (4 December 2014)
+       - Debian packaging updates (Nathan Scott)
+       - xfs_repair, mkfs.xfs stripe geometry fixes (Eric Sandeen)
+       - libxcmd path handling fixes (Eric Sandeen)
+       - xfs_crash crash fix (Jie Liu)
+       - xfs_logprint AGI/AGF handling improvements (Jan Kara)
+       - libhandle support for symlinked /usr (Jan Tulak)
+       - fix multiple Coverity and sparse reported issues (Eric Sandeen)
+       - new mremap, sync, syncfs commands for xfs_io (Eric Sandeen)
+       - man page updates (Eric Sandeen, Mark Tinguely)
+       - xfs_repair sets ftype in lost+found dirents (Jan Kara)
+       - xfs_repair handles bad inodes better (Eric Sandeen)
+       - xfs_repair freelist rebuild improvements
+       - xfs_repair finobt crash fixes (Brian Foster)
+       - xfs_copy handles 4k sector devices better (Eric Sandeen)
+
 xfsprogs-3.2.1 (15 July 2014)
        - Added support for new on-disk free inode btree (Brian Foster)
        - libxfs inode use-after free fixes (Mark Tinguely)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xfsprogs-3.2.1/fsr/xfs_fsr.c new/xfsprogs-3.2.2/fsr/xfs_fsr.c
--- old/xfsprogs-3.2.1/fsr/xfs_fsr.c    2014-07-08 02:28:47.000000000 +0200
+++ new/xfsprogs-3.2.2/fsr/xfs_fsr.c    2014-12-02 03:31:11.000000000 +0100
@@ -702,6 +702,7 @@
        if ((fsfd = open(mntdir, O_RDONLY)) < 0) {
                fsrprintf(_("unable to open: %s: %s\n"),
                          mntdir, strerror( errno ));
+               free(fshandlep);
                return -1;
        }
 
@@ -709,6 +710,7 @@
                fsrprintf(_("Skipping %s: could not get XFS geometry\n"),
                          mntdir);
                close(fsfd);
+               free(fshandlep);
                return -1;
        }
 
@@ -774,6 +776,7 @@
 out0:
        tmp_close(mntdir);
        close(fsfd);
+       free(fshandlep);
        return 0;
 }
 
@@ -809,15 +812,15 @@
 {
        xfs_bstat_t     statbuf;
        jdm_fshandle_t  *fshandlep;
-       int     fd, fsfd;
-       int     error = 0;
+       int     fd = -1, fsfd = -1;
+       int     error = -1;
        char    *tname;
 
        fshandlep = jdm_getfshandle(getparent (fname) );
-       if (! fshandlep) {
+       if (!fshandlep) {
                fsrprintf(_("unable to construct sys handle for %s: %s\n"),
                        fname, strerror(errno));
-               return -1;
+               goto out;
        }
 
        /*
@@ -828,39 +831,39 @@
        if (fsfd < 0) {
                fsrprintf(_("unable to open sys handle for %s: %s\n"),
                        fname, strerror(errno));
-               return -1;
+               goto out;
        }
 
        if ((xfs_bulkstat_single(fsfd, &ino, &statbuf)) < 0) {
                fsrprintf(_("unable to get bstat on %s: %s\n"),
                        fname, strerror(errno));
-               close(fsfd);
-               return -1;
+               goto out;
        }
 
        fd = jdm_open(fshandlep, &statbuf, O_RDWR|O_DIRECT);
        if (fd < 0) {
                fsrprintf(_("unable to open handle %s: %s\n"),
                        fname, strerror(errno));
-               close(fsfd);
-               return -1;
+               goto out;
        }
 
        /* Get the fs geometry */
        if (xfs_getgeom(fsfd, &fsgeom) < 0 ) {
                fsrprintf(_("Unable to get geom on fs for: %s\n"), fname);
-               close(fsfd);
-               return -1;
+               goto out;
        }
 
-       close(fsfd);
-
        tname = gettmpname(fname);
 
        if (tname)
                error = fsrfile_common(fname, tname, NULL, fd, &statbuf);
 
-       close(fd);
+out:
+       if (fsfd >= 0)
+               close(fsfd);
+       if (fd >= 0)
+               close(fd);
+       free(fshandlep);
 
        return error;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xfsprogs-3.2.1/include/buildmacros new/xfsprogs-3.2.2/include/buildmacros
--- old/xfsprogs-3.2.1/include/buildmacros      2014-01-20 23:47:46.000000000 
+0100
+++ new/xfsprogs-3.2.2/include/buildmacros      2014-12-02 03:31:11.000000000 
+0100
@@ -76,10 +76,11 @@
        ../$(INSTALL) -m 644 $(LIBNAME).lai $(PKG_LIB_DIR)/$(LIBNAME).la ; \
        ../$(INSTALL) -m 755 -d $(PKG_ROOT_LIB_DIR); \
        ../$(INSTALL) -T so_base $(LIBNAME).lai $(PKG_ROOT_LIB_DIR); \
-       if test "x$(PKG_LIB_DIR)" != "x$(PKG_ROOT_LIB_DIR)" ; then \
-       ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).a 
$(PKG_ROOT_LIB_DIR)/$(LIBNAME).a; \
-       ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).la 
$(PKG_ROOT_LIB_DIR)/$(LIBNAME).la; \
-       ../$(INSTALL) -S $(PKG_ROOT_LIB_DIR)/$(LIBNAME).so 
$(PKG_LIB_DIR)/$(LIBNAME).so; \
+       if [ "x$(shell readlink -f $(PKG_LIB_DIR))" != \
+            "x$(shell readlink -f $(PKG_ROOT_LIB_DIR))"; ]; then \
+               ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).a 
$(PKG_ROOT_LIB_DIR)/$(LIBNAME).a; \
+               ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).la 
$(PKG_ROOT_LIB_DIR)/$(LIBNAME).la; \
+               ../$(INSTALL) -S $(PKG_ROOT_LIB_DIR)/$(LIBNAME).so 
$(PKG_LIB_DIR)/$(LIBNAME).so; \
        fi
 else
 INSTALL_LTLIB_DEV = $(INSTALL_LTLIB_STATIC)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xfsprogs-3.2.1/io/Makefile new/xfsprogs-3.2.2/io/Makefile
--- old/xfsprogs-3.2.1/io/Makefile      2014-05-05 00:54:30.000000000 +0200
+++ new/xfsprogs-3.2.2/io/Makefile      2014-12-02 03:31:11.000000000 +0100
@@ -11,7 +11,7 @@
 CFILES = init.c \
        attr.c bmap.c file.c freeze.c fsync.c getrusage.c imap.c link.c \
        mmap.c open.c parent.c pread.c prealloc.c pwrite.c seek.c shutdown.c \
-       truncate.c
+       sync.c truncate.c
 
 LLDLIBS = $(LIBXCMD) $(LIBHANDLE)
 LTDEPENDENCIES = $(LIBXCMD) $(LIBHANDLE)
@@ -64,6 +64,10 @@
 LCFLAGS += -DHAVE_SYNC_FILE_RANGE
 endif
 
+ifeq ($(HAVE_SYNCFS),yes)
+LCFLAGS += -DHAVE_SYNCFS
+endif
+
 ifeq ($(ENABLE_READLINE),yes)
 LLDLIBS += $(LIBREADLINE) $(LIBTERMCAP)
 endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xfsprogs-3.2.1/io/init.c new/xfsprogs-3.2.2/io/init.c
--- old/xfsprogs-3.2.1/io/init.c        2014-05-05 00:54:30.000000000 +0200
+++ new/xfsprogs-3.2.2/io/init.c        2014-12-02 03:31:11.000000000 +0100
@@ -80,8 +80,9 @@
        resblks_init();
        sendfile_init();
        shutdown_init();
-       truncate_init();
+       sync_init();
        sync_range_init();
+       truncate_init();
 }
 
 static int
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xfsprogs-3.2.1/io/io.h new/xfsprogs-3.2.2/io/io.h
--- old/xfsprogs-3.2.1/io/io.h  2014-05-05 00:54:30.000000000 +0200
+++ new/xfsprogs-3.2.2/io/io.h  2014-12-02 03:31:11.000000000 +0100
@@ -109,6 +109,7 @@
 extern void            quit_init(void);
 extern void            seek_init(void);
 extern void            shutdown_init(void);
+extern void            sync_init(void);
 extern void            truncate_init(void);
 
 #ifdef HAVE_FADVISE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xfsprogs-3.2.1/io/mmap.c new/xfsprogs-3.2.2/io/mmap.c
--- old/xfsprogs-3.2.1/io/mmap.c        2014-01-20 23:47:46.000000000 +0100
+++ new/xfsprogs-3.2.2/io/mmap.c        2014-12-02 03:31:11.000000000 +0100
@@ -29,6 +29,7 @@
 static cmdinfo_t msync_cmd;
 static cmdinfo_t munmap_cmd;
 static cmdinfo_t mwrite_cmd;
+static cmdinfo_t mremap_cmd;
 
 mmap_region_t  *maptable;
 int            mapcount;
@@ -574,6 +575,66 @@
        return 0;
 }
 
+static void
+mremap_help(void)
+{
+       printf(_(
+"\n"
+" resizes the current memory mapping\n"
+"\n"
+" Examples:\n"
+" 'mremap 8192' - resizes the current mapping to 8192 bytes.\n"
+"\n"
+" Resizes the mappping, growing or shrinking from the current size.\n"
+" The default stored value is 'X', repeated to fill the range specified.\n"
+" -f -- use the MREMAP_FIXED flag\n"
+" -m -- use the MREMAP_MAYMOVE flag\n"
+"\n"));
+}
+
+int
+mremap_f(
+       int             argc,
+       char            **argv)
+{
+       ssize_t         new_length;
+       void            *new_addr;
+       int             flags = 0;
+       int             c;
+       size_t          blocksize, sectsize;
+
+       while ((c = getopt(argc, argv, "fm")) != EOF) {
+               switch (c) {
+               case 'f':
+                       flags = MREMAP_FIXED|MREMAP_MAYMOVE;
+                       break;
+               case 'm':
+                       flags = MREMAP_MAYMOVE;
+                       break;
+               default:
+                       return command_usage(&mremap_cmd);
+               }
+       }
+
+       init_cvtnum(&blocksize, &sectsize);
+       new_length = cvtnum(blocksize, sectsize, argv[optind]);
+       if (new_length < 0) {
+               printf(_("non-numeric offset argument -- %s\n"),
+                       argv[optind]);
+               return 0;
+       }
+
+       new_addr = mremap(mapping->addr, mapping->length, new_length, flags);
+       if (new_addr == MAP_FAILED)
+               perror("mremap");
+       else {
+               mapping->addr = new_addr;
+               mapping->length = new_length;
+       }
+
+       return 0;
+}
+
 void
 mmap_init(void)
 {
@@ -628,9 +689,21 @@
                _("writes data into a region in the current memory mapping");
        mwrite_cmd.help = mwrite_help;
 
+       mremap_cmd.name = "mremap";
+       mremap_cmd.altname = "mrm";
+       mremap_cmd.cfunc = mremap_f;
+       mremap_cmd.argmin = 1;
+       mremap_cmd.argmax = 2;
+       mremap_cmd.flags = CMD_NOFILE_OK | CMD_FOREIGN_OK;
+       mremap_cmd.args = _("[-m|-f] newsize");
+       mremap_cmd.oneline =
+               _("alters the size of the current memory mapping");
+       mremap_cmd.help = mremap_help;
+
        add_command(&mmap_cmd);
        add_command(&mread_cmd);
        add_command(&msync_cmd);
        add_command(&munmap_cmd);
        add_command(&mwrite_cmd);
+       add_command(&mremap_cmd);
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xfsprogs-3.2.1/io/parent.c new/xfsprogs-3.2.2/io/parent.c
--- old/xfsprogs-3.2.1/io/parent.c      2014-05-05 00:54:30.000000000 +0200
+++ new/xfsprogs-3.2.2/io/parent.c      2014-12-02 03:31:11.000000000 +0100
@@ -258,9 +258,8 @@
        if (!bstatbuf || !parentbuf) {
                fprintf(stderr, _("unable to allocate buffers: %s\n"),
                        strerror(errno));
-               free(bstatbuf);
-               free(parentbuf);
-               return 1;
+               err_status = 1;
+               goto out;
        }
 
        if (do_bulkstat(parentbuf, &parentbuf_size, bstatbuf, fsfd, fshandlep) 
!= 0)
@@ -272,8 +271,10 @@
                printf(_("succeeded checking %llu inodes\n"),
                        (unsigned long long) inodes_checked);
 
+out:
        free(bstatbuf);
        free(parentbuf);
+       free(fshandlep);
        return err_status;
 }
 
@@ -292,7 +293,7 @@
 static int
 parent_list(int fullpath)
 {
-       void *handlep;
+       void *handlep = NULL;
        size_t handlen;
        int error, i;
        int retval = 1;
@@ -312,6 +313,7 @@
                                progname, path, strerror(errno));
                        goto error;
                }
+               free_handle(fshandle, fshlen);
        }
 
        if (path_to_handle(path, &handlep, &handlen) != 0) {
@@ -324,7 +326,7 @@
                if (!parentbuf) {
                        fprintf(stderr, _("%s: unable to allocate parent 
buffer: %s\n"),
                                progname, strerror(errno));
-                       return 1;
+                       goto error;
                }
 
                if (fullpath) {
@@ -364,6 +366,7 @@
 
        retval = 0;
 error:
+       free(handlep);
        free(parentbuf);
        return retval;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xfsprogs-3.2.1/io/sync.c new/xfsprogs-3.2.2/io/sync.c
--- old/xfsprogs-3.2.1/io/sync.c        1970-01-01 01:00:00.000000000 +0100
+++ new/xfsprogs-3.2.2/io/sync.c        2014-12-02 03:31:11.000000000 +0100
@@ -0,0 +1,70 @@
+/*
+ * Copyright (c) 2014 Red Hat, Inc.
+ * All Rights Reserved.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it would be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write the Free Software Foundation,
+ * Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+#include <xfs/xfs.h>
+#include <xfs/command.h>
+#include "init.h"
+#include "io.h"
+
+static cmdinfo_t sync_cmd;
+
+static int
+sync_f(
+       int                     argc,
+       char                    **argv)
+{
+       /* sync can't fail */
+       sync();
+       return 0;
+}
+
+#ifdef HAVE_SYNCFS
+static cmdinfo_t syncfs_cmd;
+
+static int
+syncfs_f(
+       int                     argc,
+       char                    **argv)
+{
+       /* syncfs can't fail */
+       syncfs(file->fd);
+       return 0;
+}
+#endif
+
+void
+sync_init(void)
+{
+       sync_cmd.name = "sync";
+       sync_cmd.cfunc = sync_f;
+       sync_cmd.flags = CMD_NOMAP_OK | CMD_NOFILE_OK | CMD_FOREIGN_OK;
+       sync_cmd.oneline =
+               _("calls sync(2) to flush all in-core filesystem state to 
disk");
+
+       add_command(&sync_cmd);
+
+#ifdef HAVE_SYNCFS
+       syncfs_cmd.name = "syncfs";
+       syncfs_cmd.cfunc = syncfs_f;
+       syncfs_cmd.flags = CMD_NOMAP_OK | CMD_FOREIGN_OK;
+       syncfs_cmd.oneline =
+               _("calls syncfs(2) to flush all in-core filesystem state to 
disk");
+
+       add_command(&syncfs_cmd);
+#endif
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xfsprogs-3.2.1/libhandle/handle.c new/xfsprogs-3.2.2/libhandle/handle.c
--- old/xfsprogs-3.2.1/libhandle/handle.c       2014-05-05 00:54:30.000000000 
+0200
+++ new/xfsprogs-3.2.2/libhandle/handle.c       2014-12-02 03:31:11.000000000 
+0100
@@ -97,6 +97,7 @@
                /* new filesystem. add it to the cache */
                fdhp = malloc(sizeof(struct fdhash));
                if (fdhp == NULL) {
+                       free(*fshanp);
                        close(fd);
                        errno = ENOMEM;
                        return -1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xfsprogs-3.2.1/libxcmd/paths.c new/xfsprogs-3.2.2/libxcmd/paths.c
--- old/xfsprogs-3.2.1/libxcmd/paths.c  2014-01-20 23:47:46.000000000 +0100
+++ new/xfsprogs-3.2.2/libxcmd/paths.c  2014-12-02 03:31:11.000000000 +0100
@@ -269,6 +269,9 @@
 /*
  * If *path is NULL, initialize the fs table with all xfs mount points in mtab
  * If *path is specified, search for that path in mtab
+ *
+ * Everything - path, devices, and mountpoints - are boiled down to realpath()
+ * for comparison, but fs_table is populated with what comes from getmntent.
  */
 static int
 fs_table_initialise_mounts(
@@ -278,7 +281,7 @@
        FILE            *mtp;
        char            *fslog, *fsrt;
        int             error, found;
-       char            *rpath = NULL;
+       char            rpath[PATH_MAX], rmnt_fsname[PATH_MAX], 
rmnt_dir[PATH_MAX];
 
        error = found = 0;
        fslog = fsrt = NULL;
@@ -294,17 +297,20 @@
 
        /* Use realpath to resolve symlinks, relative paths, etc */
        if (path)
-               if ((rpath = realpath(path, NULL)) == NULL)
-                       return ENOENT;
+               if (!realpath(path, rpath))
+                       return errno;
 
        while ((mnt = getmntent(mtp)) != NULL) {
                if (strcmp(mnt->mnt_type, "xfs") != 0)
                        continue;
+               if (!realpath(mnt->mnt_dir, rmnt_dir))
+                       continue;
+               if (!realpath(mnt->mnt_fsname, rmnt_fsname))
+                       continue;
+
                if (path &&
-                   ((strcmp(path, mnt->mnt_dir) != 0) &&
-                    (strcmp(path, mnt->mnt_fsname) != 0) &&
-                    (strcmp(rpath, mnt->mnt_dir) != 0) &&
-                    (strcmp(rpath, mnt->mnt_fsname) != 0)))
+                   ((strcmp(rpath, rmnt_dir) != 0) &&
+                    (strcmp(rpath, rmnt_fsname) != 0)))
                        continue;
                if (fs_extract_mount_options(mnt, &fslog, &fsrt))
                        continue;
@@ -316,7 +322,6 @@
                }
        }
        endmntent(mtp);
-       free(rpath);
 
        if (path && !found)
                error = ENXIO;
@@ -330,6 +335,9 @@
 /*
  * If *path is NULL, initialize the fs table with all xfs mount points in mtab
  * If *path is specified, search for that path in mtab
+ *
+ * Everything - path, devices, and mountpoints - are boiled down to realpath()
+ * for comparison, but fs_table is populated with what comes from getmntinfo.
  */
 static int
 fs_table_initialise_mounts(
@@ -337,7 +345,7 @@
 {
        struct statfs   *stats;
        int             i, count, error, found;
-       char            *rpath = NULL;
+       char            rpath[PATH_MAX], rmntfromname[PATH_MAX], 
rmntonname[PATH_MAX];
 
        error = found = 0;
        if ((count = getmntinfo(&stats, 0)) < 0) {
@@ -348,17 +356,20 @@
 
        /* Use realpath to resolve symlinks, relative paths, etc */
        if (path)
-               if ((rpath = realpath(path, NULL)) == NULL)
-                       return ENOENT;
+               if (!realpath(path, rpath))
+                       return errno;
 
        for (i = 0; i < count; i++) {
                if (strcmp(stats[i].f_fstypename, "xfs") != 0)
                        continue;
+               if (!realpath(stats[i].f_mntfromname, rmntfromname))
+                       continue;
+               if (!realpath(stats[i].f_mntonname, rmnttomname)))
+                       continue;
+
                if (path &&
-                   ((strcmp(path, stats[i].f_mntonname) != 0) &&
-                    (strcmp(path, stats[i].f_mntfromname) != 0) &&
-                    (strcmp(rpath, stats[i].f_mntonname) != 0) &&
-                    (strcmp(rpath, stats[i].f_mntfromname) != 0)))
+                   ((strcmp(rpath, rmntonname) != 0) &&
+                    (strcmp(rpath, rmntfromname) != 0)))
                        continue;
                /* TODO: external log and realtime device? */
                (void) fs_table_insert(stats[i].f_mntonname, 0,
@@ -369,7 +380,6 @@
                        break;
                }
        }
-       free(rpath);
        if (path && !found)
                error = ENXIO;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xfsprogs-3.2.1/libxfs/rdwr.c new/xfsprogs-3.2.2/libxfs/rdwr.c
--- old/xfsprogs-3.2.1/libxfs/rdwr.c    2014-07-15 06:04:31.000000000 +0200
+++ new/xfsprogs-3.2.2/libxfs/rdwr.c    2014-12-03 21:36:27.000000000 +0100
@@ -187,7 +187,7 @@
                head->h_len = cpu_to_be32(sunit - BBSIZE);
        else
                head->h_len = cpu_to_be32(20);
-       head->h_crc = cpu_to_be32(0);
+       head->h_crc = cpu_to_le32(0);
        head->h_prev_block = cpu_to_be32(-1);
        head->h_num_logops = cpu_to_be32(1);
        head->h_cycle_data[0] = cpu_to_be32(0xb0c0d0d0);
@@ -1088,12 +1088,12 @@
 }
 
 struct cache_operations libxfs_bcache_operations = {
-       /* .hash */     libxfs_bhash,
-       /* .alloc */    libxfs_balloc,
-       /* .flush */    libxfs_bflush,
-       /* .relse */    libxfs_brelse,
-       /* .compare */  libxfs_bcompare,
-       /* .bulkrelse */libxfs_bulkrelse
+       .hash           = libxfs_bhash,
+       .alloc          = libxfs_balloc,
+       .flush          = libxfs_bflush,
+       .relse          = libxfs_brelse,
+       .compare        = libxfs_bcompare,
+       .bulkrelse      = libxfs_bulkrelse
 };
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xfsprogs-3.2.1/libxfs/xfs_ialloc.c new/xfsprogs-3.2.2/libxfs/xfs_ialloc.c
--- old/xfsprogs-3.2.1/libxfs/xfs_ialloc.c      2014-06-10 06:42:53.000000000 
+0200
+++ new/xfsprogs-3.2.2/libxfs/xfs_ialloc.c      2014-12-03 21:36:27.000000000 
+0100
@@ -1057,7 +1057,8 @@
                 * most recently allocated inode.
                 */
                if (agi->agi_newino != cpu_to_be32(NULLAGINO)) {
-                       error = xfs_inobt_lookup(cur, agi->agi_newino,
+                       error = xfs_inobt_lookup(cur,
+                                                be32_to_cpu(agi->agi_newino),
                                                 XFS_LOOKUP_EQ, &i);
                        if (error)
                                goto error_cur;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xfsprogs-3.2.1/logprint/log_misc.c new/xfsprogs-3.2.2/logprint/log_misc.c
--- old/xfsprogs-3.2.1/logprint/log_misc.c      2014-05-05 00:54:30.000000000 
+0200
+++ new/xfsprogs-3.2.2/logprint/log_misc.c      2014-12-03 21:36:27.000000000 
+0100
@@ -325,7 +325,15 @@
        } 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 @@
        } 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");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xfsprogs-3.2.1/m4/package_libcdev.m4 
new/xfsprogs-3.2.2/m4/package_libcdev.m4
--- old/xfsprogs-3.2.1/m4/package_libcdev.m4    2014-01-28 07:19:44.000000000 
+0100
+++ new/xfsprogs-3.2.2/m4/package_libcdev.m4    2014-12-02 03:31:11.000000000 
+0100
@@ -171,6 +171,23 @@
   ])
 
 #
+# Check if we have a syncfs libc call (Linux)
+#
+AC_DEFUN([AC_HAVE_SYNCFS],
+  [ AC_MSG_CHECKING([for syncfs])
+    AC_TRY_LINK([
+#define _GNU_SOURCE
+#define _FILE_OFFSET_BITS 64
+#include <unistd.h>
+    ], [
+         syncfs(0);
+    ], have_sync_fs=yes
+       AC_MSG_RESULT(yes),
+       AC_MSG_RESULT(no))
+    AC_SUBST(have_syncfs)
+  ])
+
+#
 # Check if we have a readdir libc call
 #
 AC_DEFUN([AC_HAVE_READDIR],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xfsprogs-3.2.1/man/man3/xfsctl.3 new/xfsprogs-3.2.2/man/man3/xfsctl.3
--- old/xfsprogs-3.2.1/man/man3/xfsctl.3        2014-01-20 23:47:46.000000000 
+0100
+++ new/xfsprogs-3.2.2/man/man3/xfsctl.3        2014-12-02 03:31:11.000000000 
+0100
@@ -245,9 +245,10 @@
 The final argument points to a variable of type
 .BR "struct fsxattr" ,
 but only the following fields are used in this call:
-.B fsx_xflags
+.BR fsx_xflags ,
+.B fsx_extsize
 and
-.BR fsx_extsize .
+.BR fsx_projid .
 The
 .B fsx_xflags
 realtime file bit and the file's extent size may be changed only
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xfsprogs-3.2.1/man/man5/xfs.5 new/xfsprogs-3.2.2/man/man5/xfs.5
--- old/xfsprogs-3.2.1/man/man5/xfs.5   2014-07-08 02:28:47.000000000 +0200
+++ new/xfsprogs-3.2.2/man/man5/xfs.5   2014-12-02 03:31:11.000000000 +0100
@@ -1,6 +1,6 @@
 .TH xfs 5
 .SH NAME
-xfs \- layout and mount options for the XFS filesystem
+xfs \- layout, mount options, and supported file attributes for the XFS 
filesystem
 .SH DESCRIPTION
 An XFS filesystem can reside on a regular disk partition or on a
 logical volume.
@@ -302,7 +302,27 @@
 where failover must not result in clients seeing
 inconsistent namespace presentation during or after a
 failover event.
+.SH FILE ATTRIBUTES
+The XFS filesystem supports setting the following file
+attributes on Linux systems using the
+.BR chattr (1)
+utility:
+.sp
+.BR a " - append only"
+.sp
+.BR A " - no atime updates"
+.sp
+.BR d " - no dump"
+.sp
+.BR i " - immutable"
+.sp
+.BR S " - synchronous updates"
+.sp
+For descriptions of these attribute flags, please refer to the
+.BR chattr (1)
+man page.
 .SH SEE ALSO
+.BR chattr (1),
 .BR xfsctl (3),
 .BR mount (8),
 .BR mkfs.xfs (8),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xfsprogs-3.2.1/man/man8/xfs_io.8 new/xfsprogs-3.2.2/man/man8/xfs_io.8
--- old/xfsprogs-3.2.1/man/man8/xfs_io.8        2014-05-05 00:54:30.000000000 
+0200
+++ new/xfsprogs-3.2.2/man/man8/xfs_io.8        2014-12-02 03:31:11.000000000 
+0100
@@ -362,6 +362,16 @@
 .RE
 .PD
 .TP
+.B sync
+Calls
+.BR sync (2)
+to flush all filesystems' in-core data to disk.
+.TP
+.B syncfs
+Calls
+.BR syncfs (2)
+to flush this filesystem's in-core data to disk.
+.TP
 .BI resvsp " offset length"
 Allocates reserved, unwritten space for part of a file using the
 XFS_IOC_RESVSP system call described in the
@@ -501,6 +511,20 @@
 .B mmap
 command.
 .TP
+.BI "mremap [ \-f ] [ \-m ] " new_length
+Changes the current mapping size to
+.IR new_length .
+Whether the mapping may be moved is controlled by the flags passed;
+MREMAP_FIXED
+.RB ( \-f ),
+or MREMAP_MAYMOVE
+.RB ( \-m ).
+.TP
+.B mrm
+See the
+.B mremap
+command.
+.TP
 .B munmap
 Unmaps the current memory mapping.
 .TP
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xfsprogs-3.2.1/mkfs/xfs_mkfs.c new/xfsprogs-3.2.2/mkfs/xfs_mkfs.c
--- old/xfsprogs-3.2.1/mkfs/xfs_mkfs.c  2014-07-09 06:29:49.000000000 +0200
+++ new/xfsprogs-3.2.2/mkfs/xfs_mkfs.c  2014-12-03 21:36:27.000000000 +0100
@@ -410,21 +410,27 @@
        *lsectorsize = val;
        val = blkid_topology_get_physical_sector_size(tp);
        *psectorsize = val;
+       val = blkid_topology_get_minimum_io_size(tp);
+       *sunit = val;
+       val = blkid_topology_get_optimal_io_size(tp);
+       *swidth = val;
 
        /*
-        * Blkid reports the information in terms of bytes, but we want it in
-        * terms of 512 bytes blocks (just to convert it to bytes later..)
-        *
         * If the reported values are the same as the physical sector size
-        * do not bother to report anything.  It will just cause warnings
+        * do not bother to report anything.  It will only cause warnings
         * if people specify larger stripe units or widths manually.
         */
-       val = blkid_topology_get_minimum_io_size(tp);
-       if (val > *psectorsize)
-               *sunit = val >> 9;
-       val = blkid_topology_get_optimal_io_size(tp);
-       if (val > *psectorsize)
-               *swidth = val >> 9;
+       if (*sunit == *psectorsize || *swidth == *psectorsize) {
+               *sunit = 0;
+               *swidth = 0;
+       }
+
+       /*
+        * Blkid reports the information in terms of bytes, but we want it in
+        * terms of 512 bytes blocks (only to convert it to bytes later..)
+        */
+       *sunit = *sunit >> 9;
+       *swidth = *swidth >> 9; 
 
        if (blkid_topology_get_alignment_offset(tp) != 0) {
                fprintf(stderr,
@@ -447,7 +453,7 @@
 out_free_probe:
        blkid_free_probe(pr);
        fprintf(stderr,
-               _("warning: unable to probe device toplology for device %s\n"),
+               _("warning: unable to probe device topology for device %s\n"),
                device);
 }
 
@@ -484,10 +490,10 @@
        }
 
        if (xi->rtname && !xi->risfile) {
-               int dummy;
+               int sunit, lsectorsize, psectorsize;
 
-               blkid_get_topology(xi->rtname, &dummy, &ft->rtswidth,
-                                  &dummy, &dummy, force_overwrite);
+               blkid_get_topology(xi->rtname, &sunit, &ft->rtswidth,
+                                  &lsectorsize, &psectorsize, force_overwrite);
        }
 }
 #else /* ENABLE_BLKID */
@@ -940,6 +946,8 @@
        int                     logversion;
        int                     lvflag;
        int                     lsflag;
+       int                     lsuflag;
+       int                     lsunitflag;
        int                     lsectorlog;
        int                     lsectorsize;
        int                     lslflag;
@@ -998,7 +1006,7 @@
        sectorsize = lsectorsize = XFS_MIN_SECTORSIZE;
        agsize = daflag = dasize = dblocks = 0;
        ilflag = imflag = ipflag = isflag = 0;
-       liflag = laflag = lsflag = ldflag = lvflag = 0;
+       liflag = laflag = lsflag = lsuflag = lsunitflag = ldflag = lvflag = 0;
        loginternal = 1;
        logversion = 2;
        logagno = logblocks = rtblocks = rtextblocks = 0;
@@ -1394,6 +1402,7 @@
                                                respec('l', lopts, L_SU);
                                        lsu = cvtnum(
                                                blocksize, sectorsize, value);
+                                       lsuflag = 1;
                                        break;
                                case L_SUNIT:
                                        if (!value || *value == '\0')
@@ -1406,6 +1415,7 @@
                                                usage();
                                        }
                                        lsunit = cvtnum(0, 0, value);
+                                       lsunitflag = 1;
                                        break;
                                case L_NAME:
                                case L_DEV:
@@ -2373,11 +2383,15 @@
        }
 
        if (logversion == 2 && (lsunit * blocksize) > 256 * 1024) {
-               fprintf(stderr,
+               /* Warn only if specified on commandline */
+               if (lsuflag || lsunitflag) {
+                       fprintf(stderr,
        _("log stripe unit (%d bytes) is too large (maximum is 256KiB)\n"),
-                       (lsunit * blocksize));
+                               (lsunit * blocksize));
+                       fprintf(stderr,
+       _("log stripe unit adjusted to 32KiB\n"));
+               }
                lsunit = (32 * 1024) >> blocklog;
-               fprintf(stderr, _("log stripe unit adjusted to 32KiB\n"));
        }
 
        min_logblocks = max_trans_res(crcs_enabled, dirversion,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xfsprogs-3.2.1/po/pl.po new/xfsprogs-3.2.2/po/pl.po
--- old/xfsprogs-3.2.1/po/pl.po 2014-07-15 06:18:05.000000000 +0200
+++ new/xfsprogs-3.2.2/po/pl.po 2014-12-02 03:31:11.000000000 +0100
@@ -7171,7 +7171,7 @@
 
 #: .././mkfs/xfs_mkfs.c:450
 #, c-format
-msgid "warning: unable to probe device toplology for device %s\n"
+msgid "warning: unable to probe device topology for device %s\n"
 msgstr "uwaga: nie udało się odczytać topologii urządzenia %s\n"
 
 #: .././mkfs/xfs_mkfs.c:578
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xfsprogs-3.2.1/quota/report.c new/xfsprogs-3.2.2/quota/report.c
--- old/xfsprogs-3.2.1/quota/report.c   2014-01-20 23:47:46.000000000 +0100
+++ new/xfsprogs-3.2.2/quota/report.c   2014-12-02 03:31:11.000000000 +0100
@@ -624,7 +624,7 @@
                if (flags & ALL_MOUNTS_FLAG)
                        report_any_type(fp, form, type, NULL,
                                        lower, upper, flags);
-               else if (fs_path->fs_flags & FS_MOUNT_POINT)
+               else if (fs_path && (fs_path->fs_flags & FS_MOUNT_POINT))
                        report_any_type(fp, form, type, fs_path->fs_dir,
                                        lower, upper, flags);
        } else while (argc > optind) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xfsprogs-3.2.1/repair/attr_repair.c new/xfsprogs-3.2.2/repair/attr_repair.c
--- old/xfsprogs-3.2.1/repair/attr_repair.c     2014-07-09 03:00:54.000000000 
+0200
+++ new/xfsprogs-3.2.2/repair/attr_repair.c     2014-12-03 21:36:27.000000000 
+0100
@@ -914,7 +914,8 @@
 
                /* Only check values for root security attributes */
                if (currententry->flags & XFS_ATTR_ROOT)
-                      junkit = valuecheck(mp, (char 
*)&currententry->nameval[0],
+                      junkit |= valuecheck(mp,
+                                       (char *)&currententry->nameval[0],
                                        NULL, currententry->namelen, 
                                        currententry->valuelen);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xfsprogs-3.2.1/repair/dinode.c new/xfsprogs-3.2.2/repair/dinode.c
--- old/xfsprogs-3.2.1/repair/dinode.c  2014-07-14 01:41:07.000000000 +0200
+++ new/xfsprogs-3.2.2/repair/dinode.c  2014-12-03 21:36:27.000000000 +0100
@@ -2456,7 +2456,7 @@
        _("Bad flags set in inode %" PRIu64 "\n"),
                                        lino);
                        }
-                       flags &= ~XFS_DIFLAG_ANY;
+                       flags &= XFS_DIFLAG_ANY;
                }
 
                if (flags & (XFS_DIFLAG_REALTIME | XFS_DIFLAG_RTINHERIT)) {
@@ -2513,11 +2513,11 @@
                }
                if (!verify_mode && flags != be16_to_cpu(dino->di_flags)) {
                        if (!no_modify) {
-                               do_warn(_(", fixing bad flags.\n"));
+                               do_warn(_("fixing bad flags.\n"));
                                dino->di_flags = cpu_to_be16(flags);
                                *dirty = 1;
                        } else
-                               do_warn(_(", would fix bad flags.\n"));
+                               do_warn(_("would fix bad flags.\n"));
                }
        }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xfsprogs-3.2.1/repair/globals.h new/xfsprogs-3.2.2/repair/globals.h
--- old/xfsprogs-3.2.1/repair/globals.h 2014-07-14 01:41:07.000000000 +0200
+++ new/xfsprogs-3.2.2/repair/globals.h 2014-12-03 21:36:27.000000000 +0100
@@ -124,7 +124,7 @@
 
 EXTERN int             primary_sb_modified;
 EXTERN int             bad_ino_btree;
-EXTERN int             clear_sunit;
+EXTERN int             copied_sunit;
 EXTERN int             fs_is_dirty;
 
 /* for hunting down the root inode */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xfsprogs-3.2.1/repair/phase5.c new/xfsprogs-3.2.2/repair/phase5.c
--- old/xfsprogs-3.2.1/repair/phase5.c  2014-06-10 06:42:53.000000000 +0200
+++ new/xfsprogs-3.2.2/repair/phase5.c  2014-12-03 21:36:49.000000000 +0100
@@ -335,11 +335,22 @@
 }
 
 /*
+ * We need to leave some free records in the tree for the corner case of
+ * setting up the AGFL. This may require allocation of blocks, and as
+ * such can require insertion of new records into the tree (e.g. moving
+ * a record in the by-count tree when a long extent is shortened). If we
+ * pack the records into the leaves with no slack space, this requires a
+ * leaf split to occur and a block to be allocated from the free list.
+ * If we don't have any blocks on the free list (because we are setting
+ * it up!), then we fail, and the filesystem will fail with the same
+ * failure at runtime. Hence leave a couple of records slack space in
+ * each block to allow immediate modification of the tree without
+ * requiring splits to be done.
+ *
  * XXX(hch): any reason we don't just look at mp->m_alloc_mxr?
  */
 #define XR_ALLOC_BLOCK_MAXRECS(mp, level) \
-                       xfs_allocbt_maxrecs((mp), (mp)->m_sb.sb_blocksize, \
-                                               (level) == 0)
+       (xfs_allocbt_maxrecs((mp), (mp)->m_sb.sb_blocksize, (level) == 0) - 2)
 
 /*
  * this calculates a freespace cursor for an ag.
@@ -361,14 +372,6 @@
        bt_stat_level_t         *p_lptr;
        extent_tree_node_t      *ext_ptr;
        int                     level;
-#ifdef XR_BLD_FREE_TRACE
-       int                     old_state;
-       int                     state = XR_E_BAD_STATE;
-#endif
-#ifdef XR_BLD_FREE_TRACE
-       fprintf(stderr,
-               "in init_freespace_cursor, agno = %d\n", agno);
-#endif
 
        num_extents = *extents;
        extents_used = 0;
@@ -389,6 +392,13 @@
        lptr->num_recs_tot = num_extents;
        level = 1;
 
+#ifdef XR_BLD_FREE_TRACE
+       fprintf(stderr, "%s 0 %d %d %d %d\n", __func__,
+                       lptr->num_blocks,
+                       lptr->num_recs_pb,
+                       lptr->modulo,
+                       lptr->num_recs_tot);
+#endif
        /*
         * if we need more levels, set them up.  # of records
         * per level is the # of blocks in the level below it
@@ -406,6 +416,14 @@
                        lptr->num_recs_pb = p_lptr->num_blocks
                                        / lptr->num_blocks;
                        lptr->num_recs_tot = p_lptr->num_blocks;
+#ifdef XR_BLD_FREE_TRACE
+                       fprintf(stderr, "%s %d %d %d %d %d\n", __func__,
+                                       level,
+                                       lptr->num_blocks,
+                                       lptr->num_recs_pb,
+                                       lptr->modulo,
+                                       lptr->num_recs_tot);
+#endif
                }
        }
 
@@ -550,8 +568,7 @@
                                lptr = &btree_curs->level[level];
                                p_lptr = &btree_curs->level[level-1];
                                lptr->num_blocks = howmany(p_lptr->num_blocks,
-                                               XR_ALLOC_BLOCK_MAXRECS(mp,
-                                                               level));
+                                       XR_ALLOC_BLOCK_MAXRECS(mp, level));
                                lptr->modulo = p_lptr->num_blocks
                                                % lptr->num_blocks;
                                lptr->num_recs_pb = p_lptr->num_blocks
@@ -897,26 +914,10 @@
        lptr = &btree_curs->level[0];
        btree_curs->init = 1;
 
-       if ((ino_rec = findfirst_inode_rec(agno)) == NULL)  {
-               /*
-                * easy corner-case -- no inode records
-                */
-               lptr->num_blocks = 1;
-               lptr->modulo = 0;
-               lptr->num_recs_pb = 0;
-               lptr->num_recs_tot = 0;
-
-               btree_curs->num_levels = 1;
-               btree_curs->num_tot_blocks = btree_curs->num_free_blocks = 1;
-
-               setup_cursor(mp, agno, btree_curs);
-
-               return;
-       }
-
        /*
         * build up statistics
         */
+       ino_rec = findfirst_inode_rec(agno);
        for (num_recs = 0; ino_rec != NULL; ino_rec = next_ino_rec(ino_rec))  {
                rec_nfinos = 0;
                for (i = 0; i < XFS_INODES_PER_CHUNK; i++)  {
@@ -936,6 +937,23 @@
                num_recs++;
        }
 
+       if (num_recs == 0) {
+               /*
+                * easy corner-case -- no inode records
+                */
+               lptr->num_blocks = 1;
+               lptr->modulo = 0;
+               lptr->num_recs_pb = 0;
+               lptr->num_recs_tot = 0;
+
+               btree_curs->num_levels = 1;
+               btree_curs->num_tot_blocks = btree_curs->num_free_blocks = 1;
+
+               setup_cursor(mp, agno, btree_curs);
+
+               return;
+       }
+
        blocks_allocated = lptr->num_blocks = howmany(num_recs,
                                        XR_INOBT_BLOCK_MAXRECS(mp, 0));
 
@@ -1292,8 +1310,8 @@
        memset(agf, 0, mp->m_sb.sb_sectsize);
 
 #ifdef XR_BLD_FREE_TRACE
-       fprintf(stderr, "agf = 0x%x, agf_buf->b_un.b_addr = 0x%x\n",
-               (__psint_t) agf, (__psint_t) agf_buf->b_un.b_addr);
+       fprintf(stderr, "agf = 0x%p, agf_buf->b_addr = 0x%p\n",
+               agf, agf_buf->b_addr);
 #endif
 
        /*
@@ -1438,6 +1456,7 @@
                xfs_alloc_arg_t args;
                xfs_trans_t     *tp;
                struct xfs_trans_res tres = {0};
+               int             error;
 
                memset(&args, 0, sizeof(args));
                args.tp = tp = libxfs_trans_alloc(mp, 0);
@@ -1446,13 +1465,17 @@
                args.alignment = 1;
                args.pag = xfs_perag_get(mp,agno);
                libxfs_trans_reserve(tp, &tres, XFS_MIN_FREELIST(agf, mp), 0);
-               libxfs_alloc_fix_freelist(&args, 0);
+               error = libxfs_alloc_fix_freelist(&args, 0);
                xfs_perag_put(args.pag);
+               if (error) {
+                       do_error(_("failed to fix AGFL on AG %d, error %d\n"),
+                                       agno, error);
+               }
                libxfs_trans_commit(tp, 0);
        }
 
 #ifdef XR_BLD_FREE_TRACE
-       fprintf(stderr, "wrote agf for ag %u, error = %d\n", agno, error);
+       fprintf(stderr, "wrote agf for ag %u\n", agno);
 #endif
 }
 
@@ -1707,11 +1730,10 @@
 #ifdef XR_BLD_FREE_TRACE
        fprintf(stderr, "inobt level 1, maxrec = %d, minrec = %d\n",
                xfs_inobt_maxrecs(mp, mp->m_sb.sb_blocksize, 0),
-               xfs_inobt_maxrecs(mp->m_sb.sb_blocksize, 0) / 2
-               );
+               xfs_inobt_maxrecs(mp, mp->m_sb.sb_blocksize, 0) / 2);
        fprintf(stderr, "inobt level 0 (leaf), maxrec = %d, minrec = %d\n",
-               xfs_inobt_maxrecs(mp, mp->m_sb.sb_blocksize, xfs_inobt, 1),
-               xfs_inobt_maxrecs(mp, mp->m_sb.sb_blocksize, xfs_inobt, 1) / 2);
+               xfs_inobt_maxrecs(mp, mp->m_sb.sb_blocksize, 1),
+               xfs_inobt_maxrecs(mp, mp->m_sb.sb_blocksize, 1) / 2);
        fprintf(stderr, "xr inobt level 0 (leaf), maxrec = %d\n",
                XR_INOBT_BLOCK_MAXRECS(mp, 0));
        fprintf(stderr, "xr inobt level 1 (int), maxrec = %d\n",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xfsprogs-3.2.1/repair/phase6.c new/xfsprogs-3.2.2/repair/phase6.c
--- old/xfsprogs-3.2.1/repair/phase6.c  2014-07-14 01:41:07.000000000 +0200
+++ new/xfsprogs-3.2.2/repair/phase6.c  2014-12-03 21:36:27.000000000 +0100
@@ -1097,8 +1097,6 @@
        xname.name = fname;
        xname.len = snprintf((char *)fname, sizeof(fname), "%llu",
                                (unsigned long long)ino);
-       /* XXX use xfs_mode_to_ftype[] when userspace gains it */
-       xname.type = XFS_DIR3_FT_UNKNOWN;
 
        err = libxfs_iget(mp, NULL, orphanage_ino, 0, &orphanage_ip, 0);
        if (err)
@@ -1117,6 +1115,8 @@
        if ((err = libxfs_iget(mp, NULL, ino, 0, &ino_p, 0)))
                do_error(_("%d - couldn't iget disconnected inode\n"), err);
 
+       xname.type = xfs_mode_to_ftype[(ino_p->i_d.di_mode & S_IFMT)>>S_SHIFT];
+
        if (isa_dir)  {
                irec = find_inode_rec(mp, XFS_INO_TO_AGNO(mp, orphanage_ino),
                                XFS_INO_TO_AGINO(mp, orphanage_ino));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xfsprogs-3.2.1/repair/prefetch.c new/xfsprogs-3.2.2/repair/prefetch.c
--- old/xfsprogs-3.2.1/repair/prefetch.c        2014-06-10 06:42:53.000000000 
+0200
+++ new/xfsprogs-3.2.2/repair/prefetch.c        2014-12-03 21:36:27.000000000 
+0100
@@ -171,7 +171,7 @@
        struct xfs_buf_map      map_array[MAP_ARRAY_SZ];
        struct xfs_buf_map      *map = map_array;
        int                     max_extents = MAP_ARRAY_SZ;
-       int                     nmaps = 0;;
+       int                     nmaps = 0;
        unsigned int            len = 0;
        int                     ret = 0;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xfsprogs-3.2.1/repair/sb.c new/xfsprogs-3.2.2/repair/sb.c
--- old/xfsprogs-3.2.1/repair/sb.c      2014-07-14 01:41:07.000000000 +0200
+++ new/xfsprogs-3.2.2/repair/sb.c      2014-12-03 21:36:27.000000000 +0100
@@ -151,7 +151,7 @@
                         */
                        memmove(rsb, &bufsb, sizeof(xfs_sb_t));
                        rsb->sb_inprogress = 0;
-                       clear_sunit = 1;
+                       copied_sunit = 1;
 
                        if (verify_set_primary_sb(rsb, 0, &dirty) == XR_OK)  {
                                do_warn(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xfsprogs-3.2.1/repair/xfs_repair.c new/xfsprogs-3.2.2/repair/xfs_repair.c
--- old/xfsprogs-3.2.1/repair/xfs_repair.c      2014-07-14 01:41:07.000000000 
+0200
+++ new/xfsprogs-3.2.2/repair/xfs_repair.c      2014-12-03 21:36:27.000000000 
+0100
@@ -193,7 +193,7 @@
        delete_attr_ok = 1;
        force_geo = 0;
        assume_xfs = 0;
-       clear_sunit = 0;
+       copied_sunit = 0;
        sb_inoalignmt = 0;
        sb_unit = 0;
        sb_width = 0;
@@ -898,13 +898,11 @@
                dsb->sb_qflags &= cpu_to_be16(~XFS_ALL_QUOTA_CHKD);
        }
 
-       if (clear_sunit) {
+       if (copied_sunit) {
                do_warn(
-_("Note - stripe unit (%d) and width (%d) fields have been reset.\n"
-  "Please set with mount -o sunit=<value>,swidth=<value>\n"),
+_("Note - stripe unit (%d) and width (%d) were copied from a backup 
superblock.\n"
+  "Please reset with mount -o sunit=<value>,swidth=<value> if necessary\n"),
                        be32_to_cpu(dsb->sb_unit), be32_to_cpu(dsb->sb_width));
-               dsb->sb_unit = 0;
-               dsb->sb_width = 0;
        }
 
        libxfs_writebuf(sbp, 0);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/xfsprogs-3.2.1/rtcp/xfs_rtcp.c new/xfsprogs-3.2.2/rtcp/xfs_rtcp.c
--- old/xfsprogs-3.2.1/rtcp/xfs_rtcp.c  2014-05-05 00:54:30.000000000 +0200
+++ new/xfsprogs-3.2.2/rtcp/xfs_rtcp.c  2014-12-02 03:31:11.000000000 +0100
@@ -25,7 +25,7 @@
 char *progname;
 
 void
-usage()
+usage(void)
 {
        fprintf(stderr, _("%s [-e extsize] [-p] [-V] source target\n"), 
progname);
        exit(2);

-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to