rpms/xfsprogs/devel xfsprogs-3.1.0-mkfs-fixes.patch, NONE, 1.1 xfsprogs.spec, 1.71, 1.72
Eric Sandeen
sandeen at fedoraproject.org
Sun Jan 17 17:46:31 UTC 2010
Author: sandeen
Update of /cvs/pkgs/rpms/xfsprogs/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv21389
Modified Files:
xfsprogs.spec
Added Files:
xfsprogs-3.1.0-mkfs-fixes.patch
Log Message:
* Sun Jan 17 2010 Eric Sandeen <sandeen at redhat.com> 3.1.0-2
- Post-release mkfs fixes (#555847)
xfsprogs-3.1.0-mkfs-fixes.patch:
xfs_mkfs.c | 46 ++++++++++++++++++++++++++++++++++++++--------
1 file changed, 38 insertions(+), 8 deletions(-)
--- NEW FILE xfsprogs-3.1.0-mkfs-fixes.patch ---
From: Eric Sandeen <sandeen at sandeen.net>
Date: Fri, 15 Jan 2010 17:45:10 +0000 (-0600)
Subject: mkfs: fix mkfs sectorsize setting when blkid fails
X-Git-Url: http://git.kernel.org/?p=fs%2Fxfs%2Fxfsprogs-dev.git;a=commitdiff_plain;h=7355966f018edd0d56b47dc5d7bac7950ed49683
mkfs: fix mkfs sectorsize setting when blkid fails
When trying to mkfs something that blkid doesn't grok:
# mkfs.xfs fsfile
warning: unable to probe device toplology for device fsfile
illegal sector size 0
Usage: mkfs.xfs
...
mkfs fails. :(
Signed-off-by: Eric Sandeen <sandeen at sandeen.net>
Reviewed-by: Alex Elder <aelder at sgi.com>
---
From: Eric Sandeen <sandeen at sandeen.net>
Date: Fri, 15 Jan 2010 19:25:20 +0000 (-0600)
Subject: mkfs: fix mkfs.xfs -dfile,name=$NAME for new files
X-Git-Url: http://git.kernel.org/?p=fs%2Fxfs%2Fxfsprogs-dev.git;a=commitdiff_plain;h=063aab8b3b597d4714fee03a657c58906900cf8e
mkfs: fix mkfs.xfs -dfile,name=$NAME for new files
# /sbin/mkfs.xfs -dfile,name=grrr,size=100g
mkfs.xfs: Use the -f option to force overwrite.
check_overwrite is failing, because blkid_new_probe_from_filename()
is failing, because the (new) image file is 0 length.
It's easy to test for 0 length, and if found, there is
nothing to overwrite so return 0.
Also, if testing itself failed for some reason, print
a message to that effect:
# mkfs/mkfs.xfs -dfile,name=newfile,size=1g
mkfs.xfs: probe of newfile failed, cannot detect existing filesystem.
mkfs.xfs: Use the -f option to force overwrite.
Signed-off-by: Eric Sandeen <sandeen at sandeen.net>
Reviewed-by: Alex Elder <aelder at sgi.com>
---
From: Eric Sandeen <sandeen at sandeen.net>
Date: Sun, 17 Jan 2010 16:31:58 +0000 (-0600)
Subject: mkfs: get size of device properly
X-Git-Url: http://git.kernel.org/?p=fs%2Fxfs%2Fxfsprogs-dev.git;a=commitdiff_plain;h=d943b1140e566223bfd424ca4e24b3c1f3781037
mkfs: get size of device properly
Test device node size properly in check_overwrite, st_size
is only valid for regular files.
Signed-off-by: Eric Sandeen <sandeen at sandeen.net>
Reviewed-by: Christoph Hellwig <hch at lst.de>
---
Index: xfsprogs-3.1.0/mkfs/xfs_mkfs.c
===================================================================
--- xfsprogs-3.1.0.orig/mkfs/xfs_mkfs.c
+++ xfsprogs-3.1.0/mkfs/xfs_mkfs.c
@@ -283,27 +283,52 @@ calc_stripe_factors(
}
#ifdef ENABLE_BLKID
+/*
+ * Check for existing filesystem or partition table on device.
+ * Returns:
+ * 1 for existing fs or partition
+ * 0 for nothing found
+ * -1 for internal error
+ */
static int
check_overwrite(
char *device)
{
const char *type;
- blkid_probe pr;
- int ret = 0;
+ blkid_probe pr = NULL;
+ int ret;
+ int fd;
+ long long size;
+ int bsz;
if (!device || !*device)
return 0;
+ ret = -1; /* will reset on success of all setup calls */
+
+ fd = open(device, O_RDONLY);
+ if (fd < 0)
+ goto out;
+ platform_findsizes(device, fd, &size, &bsz);
+ close(fd);
+
+ /* nothing to overwrite on a 0-length device */
+ if (size == 0) {
+ ret = 0;
+ goto out;
+ }
+
pr = blkid_new_probe_from_filename(device);
if (!pr)
- return -1;
+ goto out;
if (blkid_probe_enable_partitions(pr, 1))
- goto out_free_probe;
+ goto out;
if (blkid_do_fullprobe(pr))
- goto out_free_probe;
+ goto out;
+ ret = 0;
if (!blkid_probe_lookup_value(pr, "TYPE", &type, NULL)) {
fprintf(stderr,
_("%s: %s appears to contain an existing "
@@ -316,8 +341,13 @@ check_overwrite(
ret = 1;
}
-out_free_probe:
- blkid_free_probe(pr);
+out:
+ if (pr)
+ blkid_free_probe(pr);
+ if (ret == -1)
+ fprintf(stderr,
+ _("%s: probe of %s failed, cannot detect "
+ "existing filesystem.\n"), progname, device);
return ret;
}
@@ -1574,7 +1604,7 @@ main(
* Unless specified manually on the command line use the
* advertised sector size of the device.
*/
- sectorsize = ft.sectorsize;
+ sectorsize = ft.sectorsize ? ft.sectorsize : XFS_MIN_SECTORSIZE;
}
if (ft.sectoralign || !ssflag) {
Index: xfsprogs.spec
===================================================================
RCS file: /cvs/pkgs/rpms/xfsprogs/devel/xfsprogs.spec,v
retrieving revision 1.71
retrieving revision 1.72
diff -u -p -r1.71 -r1.72
--- xfsprogs.spec 13 Jan 2010 21:21:11 -0000 1.71
+++ xfsprogs.spec 17 Jan 2010 17:46:31 -0000 1.72
@@ -1,7 +1,7 @@
Summary: Utilities for managing the XFS filesystem
Name: xfsprogs
Version: 3.1.0
-Release: 1%{?dist}
+Release: 2%{?dist}
# Licensing based on generic "GNU GENERAL PUBLIC LICENSE"
# in source, with no mention of version.
# doc/COPYING file specifies what is GPL and what is LGPL
@@ -18,8 +18,7 @@ Provides: xfs-cmds
Obsoletes: xfs-cmds <= %{version}
Conflicts: xfsdump < 3.0.1
-# Fix-ups for very latest glibc header posix conformance changes
-Patch0: xfsprogs-3.1.0-glibc-fixes.patch
+Patch0: xfsprogs-3.1.0-mkfs-fixes.patch
%description
A set of commands to use the XFS filesystem, including mkfs.xfs.
@@ -192,9 +191,12 @@ rm -rf $RPM_BUILD_ROOT
%{_includedir}/xfs/xfs_types.h
%changelog
+* Sun Jan 17 2010 Eric Sandeen <sandeen at redhat.com> 3.1.0-2
+- Post-release mkfs fixes (#555847)
+
* Wed Jan 13 2010 Eric Sandeen <sandeen at redhat.com> 3.1.0-1
- New upstream release
-- Minor fixups for new glibc headers
+- Fixes default mkfs.xfs on 4k sector device (#539553)
* Tue Dec 08 2009 Eric Sandeen <sandeen at redhat.com> 3.0.3-5
- And finally, BuildRequire libblkid-devel
More information about the scm-commits
mailing list