--- /dev/null
+commit c2b707cf506c83ad4ab38c97c11cf358cc0bec88
+Author: Christoph Hellwig <hch@lst.de>
+Date: Fri Feb 5 08:52:52 2010 +0100
+
+ mkfs.xfs: fix detection of empty devices
+
+ We currently fail to detect that a device does indeed not contain any
+ signature and we are indeed fine to proceed with it due to mishandling
+ the return value of blkid_do_fullprobe. Fix that up and add some
+ better diagnostics of the blkid detection.
+
+ from RH bugzilla https://bugzilla.redhat.com/show_bug.cgi?id=561870
+
+ # dd if=/dev/zero of=k bs=1MB count=2 seek=20; mkfs.xfs k
+ # mkfs.xfs: probe of k failed, cannot detect existing filesystem.
+ # mkfs.xfs: Use the -f option to force overwrite
+
+ Signed-off-by: Christoph Hellwig <hch@lst.de>
+ Reviewed-by: Eric Sandeen <sandeen@sandeen.net>
+
+diff --git a/mkfs/xfs_mkfs.c b/mkfs/xfs_mkfs.c
+index 9baf116..2d09e36 100644
+--- a/mkfs/xfs_mkfs.c
++++ b/mkfs/xfs_mkfs.c
+@@ -322,24 +322,40 @@ check_overwrite(
+ if (!pr)
+ goto out;
+
+- if (blkid_probe_enable_partitions(pr, 1))
++ ret = blkid_probe_enable_partitions(pr, 1);
++ if (ret < 0)
+ goto out;
+
+- if (blkid_do_fullprobe(pr))
++ ret = blkid_do_fullprobe(pr);
++ if (ret < 0)
+ goto out;
+
+- ret = 0;
++ /*
++ * Blkid returns 1 for nothing found and 0 when it finds a signature,
++ * but we want the exact opposite, so reverse the return value here.
++ *
++ * In addition print some useful diagnostics about what actually is
++ * on the device.
++ */
++ if (ret) {
++ ret = 0;
++ goto out;
++ }
++
+ if (!blkid_probe_lookup_value(pr, "TYPE", &type, NULL)) {
+ fprintf(stderr,
+ _("%s: %s appears to contain an existing "
+ "filesystem (%s).\n"), progname, device, type);
+- ret = 1;
+ } else if (!blkid_probe_lookup_value(pr, "PTTYPE", &type, NULL)) {
+ fprintf(stderr,
+ _("%s: %s appears to contain a partition "
+ "table (%s).\n"), progname, device, type);
+- ret = 1;
++ } else {
++ fprintf(stderr,
++ _("%s: %s appears to contain something weird "
++ "according to blkid\n"), progname, device);
+ }
++ ret = 1;
+
+ out:
+ if (pr)
+commit 66210ef2f6aa5821a4c9cebc28414a265ee16019
+Author: Eric Sandeen <sandeen@sandeen.net>
+Date: Mon Feb 1 10:13:36 2010 -0600
+
+ xfsprogs: fix build with latest glibc headers
+
+ glibc in rawhide has some changes...
+
+ * Tue Jan 12 2010 Andreas Schwab <schwab@redhat.com> - 2.11.90-8
+ - Update from master.
+ - More POSIX conformance fixes.
+
+ * Mon Jan 11 2010 Andreas Schwab <schwab@redhat.com> - 2.11.90-6
+ - Update from master.
+ - POSIX conformance fixes (BZ#11125).
+
+ which seem to break the xfsprogs build. I'm no feature test macro
+ guru, but the following gets it going again for me.
+
+ Signed-off-by: Eric Sandeen <sandeen@redhat.com>
+ Reviewed-by: Christoph Hellwig <hch@lst.de>
+
+diff --git a/include/builddefs.in b/include/builddefs.in
+index ca8f172..cc75b5d 100644
+--- a/include/builddefs.in
++++ b/include/builddefs.in
+@@ -102,7 +102,7 @@ GCCFLAGS = -funsigned-char -fno-strict-aliasing -Wall
+ # -Wbitwise -Wno-transparent-union -Wno-old-initializer -Wno-decl
+
+ ifeq ($(PKG_PLATFORM),linux)
+-PCFLAGS = -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 $(GCCFLAGS)
++PCFLAGS = -D_GNU_SOURCE -D_XOPEN_SOURCE=500 -D_FILE_OFFSET_BITS=64 $(GCCFLAGS)
+ DEPENDFLAGS = -D__linux__
+ endif
+ ifeq ($(PKG_PLATFORM),darwin)
+diff --git a/include/linux.h b/include/linux.h
+index dbfb4cf..b342e55 100644
+--- a/include/linux.h
++++ b/include/linux.h
+@@ -22,6 +22,7 @@
+ #include <sys/ioctl.h>
+ #include <sys/param.h>
+ #include <sys/sysmacros.h>
++#include <sys/stat.h>
+ #include <malloc.h>
+ #include <getopt.h>
+ #include <endian.h>