* Wed Jan 13 2010 Eric Sandeen <sandeen@redhat.com> 3.1.0-1
- New upstream release - Minor fixups for new glibc headers
This commit is contained in:
parent
f90d136ad7
commit
e80d85ed04
|
@ -1,33 +0,0 @@
|
||||||
Not yet upstream but planned to be so.
|
|
||||||
|
|
||||||
Index: xfsprogs-2.10.2/mkfs/xfs_mkfs.c
|
|
||||||
===================================================================
|
|
||||||
--- xfsprogs-2.10.2.orig/mkfs/xfs_mkfs.c
|
|
||||||
+++ xfsprogs-2.10.2/mkfs/xfs_mkfs.c
|
|
||||||
@@ -733,7 +733,7 @@ main(
|
|
||||||
nodsflag = norsflag = 0;
|
|
||||||
force_overwrite = 0;
|
|
||||||
worst_freelist = 0;
|
|
||||||
- lazy_sb_counters = 0;
|
|
||||||
+ lazy_sb_counters = 1;
|
|
||||||
memset(&fsx, 0, sizeof(fsx));
|
|
||||||
|
|
||||||
memset(&xi, 0, sizeof(xi));
|
|
||||||
Index: xfsprogs-2.10.2/man/man8/mkfs.xfs.8
|
|
||||||
===================================================================
|
|
||||||
--- xfsprogs-2.10.2.orig/man/man8/mkfs.xfs.8
|
|
||||||
+++ xfsprogs-2.10.2/man/man8/mkfs.xfs.8
|
|
||||||
@@ -455,9 +455,10 @@ counter values without needed to keep th
|
|
||||||
This gives significant improvements in performance on some configurations.
|
|
||||||
The default
|
|
||||||
.I value
|
|
||||||
-is 0 (off) so you must specify
|
|
||||||
-.B lazy-count=1
|
|
||||||
-if you want to make use of this feature.
|
|
||||||
+is 1 (on) so you must specify
|
|
||||||
+.B lazy-count=0
|
|
||||||
+if you want to disable this feature for older kernels which don't support
|
|
||||||
+it.
|
|
||||||
.RE
|
|
||||||
.TP
|
|
||||||
.BI \-n " naming_options"
|
|
|
@ -1,431 +0,0 @@
|
||||||
From: Christoph Hellwig <hch@lst.de>
|
|
||||||
Date: Sat, 10 Oct 2009 21:05:32 +0000 (-0400)
|
|
||||||
Subject: allow linking against libblkid instead of libdisk
|
|
||||||
X-Git-Url: http://git.kernel.org/?p=fs%2Fxfs%2Fxfsprogs-dev.git;a=commitdiff_plain;h=e4da994184266c7f89da03a86a3f52dde478137b
|
|
||||||
|
|
||||||
allow linking against libblkid instead of libdisk
|
|
||||||
|
|
||||||
Add a new --enable-blkid switch to use libblkid from util-linux to detect
|
|
||||||
the device geometry and check for existing partitions or filesystem on a
|
|
||||||
device. Note that this requires the latest blkid from util-linux-ng git
|
|
||||||
for the topology calls, odler ones won't work. If I had a little more
|
|
||||||
autoconf fu we might be able to detect a too early one, but right now it
|
|
||||||
just fails if it's too old and --enable-blkid is specified. We also
|
|
||||||
stop building libdisk in the blkid case as it's an internal static library
|
|
||||||
not otherwise used.
|
|
||||||
|
|
||||||
For the actual checks I tried to stay as close as possible to the old
|
|
||||||
code, so we still don't check topology for external log devices. I hope
|
|
||||||
to add this at a later stage.
|
|
||||||
|
|
||||||
As a small addition we also print a warning if trying to create a filesystem
|
|
||||||
on a partition that is not properly aligned.
|
|
||||||
|
|
||||||
Signed-off-by: Christoph Hellwig <hch@lst.de>
|
|
||||||
Reviewed-by: Eric Sandeen <sandeen@sandeen.net>
|
|
||||||
---
|
|
||||||
|
|
||||||
Index: xfsprogs-3.0.3/Makefile
|
|
||||||
===================================================================
|
|
||||||
--- xfsprogs-3.0.3.orig/Makefile
|
|
||||||
+++ xfsprogs-3.0.3/Makefile
|
|
||||||
@@ -18,10 +18,14 @@ LDIRT = config.log .dep config.status co
|
|
||||||
Logs/* built .census install.* install-dev.* *.gz autom4te.cache/* \
|
|
||||||
libtool include/builddefs include/platform_defs.h
|
|
||||||
|
|
||||||
-LIB_SUBDIRS = libxfs libxlog libxcmd libhandle libdisk
|
|
||||||
+LIB_SUBDIRS = libxfs libxlog libxcmd libhandle $(LDISK)
|
|
||||||
TOOL_SUBDIRS = copy db estimate fsck fsr growfs io logprint mkfs quota \
|
|
||||||
mdrestore repair rtcp m4 man doc po debian build
|
|
||||||
|
|
||||||
+ifneq ($(ENABLE_BLKID), yes)
|
|
||||||
+LIB_SUBDIRS += libdisk
|
|
||||||
+endif
|
|
||||||
+
|
|
||||||
SUBDIRS = include $(LIB_SUBDIRS) $(TOOL_SUBDIRS)
|
|
||||||
|
|
||||||
default: include/builddefs include/platform_defs.h
|
|
||||||
@@ -38,10 +42,14 @@ db logprint: libxfs libxlog
|
|
||||||
fsr: libhandle
|
|
||||||
growfs: libxfs libxcmd
|
|
||||||
io: libxcmd libhandle
|
|
||||||
-mkfs: libxfs libdisk
|
|
||||||
+mkfs: libxfs
|
|
||||||
quota: libxcmd
|
|
||||||
repair: libxfs libxlog
|
|
||||||
|
|
||||||
+ifneq ($(ENABLE_BLKID), yes)
|
|
||||||
+mkfs: libdisk
|
|
||||||
+endif
|
|
||||||
+
|
|
||||||
ifeq ($(HAVE_BUILDDEFS), yes)
|
|
||||||
include $(BUILDRULES)
|
|
||||||
else
|
|
||||||
Index: xfsprogs-3.0.3/configure.in
|
|
||||||
===================================================================
|
|
||||||
--- xfsprogs-3.0.3.orig/configure.in
|
|
||||||
+++ xfsprogs-3.0.3/configure.in
|
|
||||||
@@ -35,6 +35,12 @@ AC_ARG_ENABLE(termcap,
|
|
||||||
test $enable_termcap = yes && libtermcap="-ltermcap",)
|
|
||||||
AC_SUBST(libtermcap)
|
|
||||||
|
|
||||||
+AC_ARG_ENABLE(blkid,
|
|
||||||
+[ --enable-blkid=[yes/no] Enable block device id library [default=no]],
|
|
||||||
+ test $enable_blkid = yes && libblkid="-lblkid",)
|
|
||||||
+AC_SUBST(libblkid)
|
|
||||||
+AC_SUBST(enable_blkid)
|
|
||||||
+
|
|
||||||
AC_ARG_ENABLE(lib64,
|
|
||||||
[ --enable-lib64=[yes/no] Enable lib64 support [default=no]],,
|
|
||||||
enable_lib64=no)
|
|
||||||
Index: xfsprogs-3.0.3/include/builddefs.in
|
|
||||||
===================================================================
|
|
||||||
--- xfsprogs-3.0.3.orig/include/builddefs.in
|
|
||||||
+++ xfsprogs-3.0.3/include/builddefs.in
|
|
||||||
@@ -31,6 +31,7 @@ LIBPTHREAD = @libpthread@
|
|
||||||
LIBTERMCAP = @libtermcap@
|
|
||||||
LIBEDITLINE = @libeditline@
|
|
||||||
LIBREADLINE = @libreadline@
|
|
||||||
+LIBBLKID = @libblkid@
|
|
||||||
LIBXFS = $(TOPDIR)/libxfs/libxfs.la
|
|
||||||
LIBXCMD = $(TOPDIR)/libxcmd/libxcmd.la
|
|
||||||
LIBXLOG = $(TOPDIR)/libxlog/libxlog.la
|
|
||||||
@@ -85,6 +86,7 @@ ENABLE_SHARED = @enable_shared@
|
|
||||||
ENABLE_GETTEXT = @enable_gettext@
|
|
||||||
ENABLE_EDITLINE = @enable_editline@
|
|
||||||
ENABLE_READLINE = @enable_readline@
|
|
||||||
+ENABLE_BLKID = @enable_blkid@
|
|
||||||
|
|
||||||
HAVE_ZIPPED_MANPAGES = @have_zipped_manpages@
|
|
||||||
|
|
||||||
Index: xfsprogs-3.0.3/mkfs/Makefile
|
|
||||||
===================================================================
|
|
||||||
--- xfsprogs-3.0.3.orig/mkfs/Makefile
|
|
||||||
+++ xfsprogs-3.0.3/mkfs/Makefile
|
|
||||||
@@ -11,14 +11,27 @@ FSTYP = fstyp
|
|
||||||
HFILES = xfs_mkfs.h
|
|
||||||
CFILES = maxtrres.c proto.c xfs_mkfs.c
|
|
||||||
|
|
||||||
-LLDLIBS = $(LIBXFS) $(LIBUUID) $(LIBDISK) $(LIBRT) $(LIBPTHREAD)
|
|
||||||
-LTDEPENDENCIES = $(LIBXFS) $(LIBDISK)
|
|
||||||
+LLDLIBS = $(LIBXFS) $(LIBUUID) $(LIBRT) $(LIBPTHREAD)
|
|
||||||
+LTDEPENDENCIES = $(LIBXFS)
|
|
||||||
LLDFLAGS = -static
|
|
||||||
|
|
||||||
+ifeq ($(ENABLE_BLKID),yes)
|
|
||||||
+LLDLIBS += $(LIBBLKID)
|
|
||||||
+CFLAGS += -DENABLE_BLKID
|
|
||||||
+else
|
|
||||||
+LLDLIBS += $(LIBDISK)
|
|
||||||
+LTDEPENDENCIES += $(LIBDISK)
|
|
||||||
+endif
|
|
||||||
+
|
|
||||||
+
|
|
||||||
LSRCFILES = $(FSTYP).c
|
|
||||||
LDIRT = $(FSTYP)
|
|
||||||
|
|
||||||
-default: $(FSTYP) $(LTCOMMAND)
|
|
||||||
+default: $(LTCOMMAND)
|
|
||||||
+
|
|
||||||
+ifneq ($(ENABLE_BLKID),yes)
|
|
||||||
+default: $(FSTYP)
|
|
||||||
+endif
|
|
||||||
|
|
||||||
include $(BUILDRULES)
|
|
||||||
|
|
||||||
Index: xfsprogs-3.0.3/mkfs/xfs_mkfs.c
|
|
||||||
===================================================================
|
|
||||||
--- xfsprogs-3.0.3.orig/mkfs/xfs_mkfs.c
|
|
||||||
+++ xfsprogs-3.0.3/mkfs/xfs_mkfs.c
|
|
||||||
@@ -17,12 +17,26 @@
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <xfs/libxfs.h>
|
|
||||||
+#include <ctype.h>
|
|
||||||
+#ifdef ENABLE_BLKID
|
|
||||||
+#include <blkid/blkid.h>
|
|
||||||
+#else
|
|
||||||
#include <disk/fstyp.h>
|
|
||||||
#include <disk/volume.h>
|
|
||||||
-#include <ctype.h>
|
|
||||||
+#endif
|
|
||||||
#include "xfs_mkfs.h"
|
|
||||||
|
|
||||||
/*
|
|
||||||
+ * Device topology information.
|
|
||||||
+ */
|
|
||||||
+struct fs_topology {
|
|
||||||
+ int dsunit; /* stripe unit - data subvolume */
|
|
||||||
+ int dswidth; /* stripe width - data subvolume */
|
|
||||||
+ int rtswidth; /* stripe width - rt subvolume */
|
|
||||||
+ int sectoralign;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+/*
|
|
||||||
* Prototypes for internal functions.
|
|
||||||
*/
|
|
||||||
static void conflict(char opt, char *tab[], int oldidx, int newidx);
|
|
||||||
@@ -266,6 +280,105 @@ calc_stripe_factors(
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+#ifdef ENABLE_BLKID
|
|
||||||
+static int
|
|
||||||
+check_overwrite(
|
|
||||||
+ char *device)
|
|
||||||
+{
|
|
||||||
+ const char *type;
|
|
||||||
+ blkid_probe pr;
|
|
||||||
+ int ret = 0;
|
|
||||||
+
|
|
||||||
+ if (!device || !*device)
|
|
||||||
+ return 0;
|
|
||||||
+
|
|
||||||
+ pr = blkid_new_probe_from_filename(device);
|
|
||||||
+ if (!pr)
|
|
||||||
+ return -1;
|
|
||||||
+
|
|
||||||
+ if (blkid_probe_enable_partitions(pr, 1))
|
|
||||||
+ goto out_free_probe;
|
|
||||||
+
|
|
||||||
+ if (blkid_do_fullprobe(pr))
|
|
||||||
+ goto out_free_probe;
|
|
||||||
+
|
|
||||||
+ 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;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+out_free_probe:
|
|
||||||
+ blkid_free_probe(pr);
|
|
||||||
+ return ret;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static void blkid_get_topology(const char *device, int *sunit, int *swidth)
|
|
||||||
+{
|
|
||||||
+ blkid_topology tp;
|
|
||||||
+ blkid_probe pr;
|
|
||||||
+ unsigned long val;
|
|
||||||
+
|
|
||||||
+ pr = blkid_new_probe_from_filename(device);
|
|
||||||
+ if (!pr)
|
|
||||||
+ return;
|
|
||||||
+
|
|
||||||
+ tp = blkid_probe_get_topology(pr);
|
|
||||||
+ if (!tp)
|
|
||||||
+ goto out_free_probe;
|
|
||||||
+
|
|
||||||
+ /*
|
|
||||||
+ * 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 just the normal 512 byte block size
|
|
||||||
+ * do not bother to report anything. It will just causes warnings
|
|
||||||
+ * if people specifier larger stripe units or widths manually.
|
|
||||||
+ */
|
|
||||||
+ val = blkid_topology_get_minimum_io_size(tp) >> 9;
|
|
||||||
+ if (val > 1)
|
|
||||||
+ *sunit = val;
|
|
||||||
+ val = blkid_topology_get_optimal_io_size(tp) >> 9;
|
|
||||||
+ if (val > 1)
|
|
||||||
+ *swidth = val;
|
|
||||||
+
|
|
||||||
+ if (blkid_topology_get_alignment_offset(tp) != 0) {
|
|
||||||
+ fprintf(stderr,
|
|
||||||
+ _("warning: device is not properly aligned %s\n"),
|
|
||||||
+ device);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ blkid_free_probe(pr);
|
|
||||||
+ return;
|
|
||||||
+
|
|
||||||
+out_free_probe:
|
|
||||||
+ blkid_free_probe(pr);
|
|
||||||
+ fprintf(stderr,
|
|
||||||
+ _("warning: unable to probe device toplology for device %s\n"),
|
|
||||||
+ device);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static void get_topology(libxfs_init_t *xi, struct fs_topology *ft)
|
|
||||||
+{
|
|
||||||
+ if (!xi->disfile) {
|
|
||||||
+ const char *dfile = xi->volname ? xi->volname : xi->dname;
|
|
||||||
+
|
|
||||||
+ blkid_get_topology(dfile, &ft->dsunit, &ft->dswidth);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (xi->rtname && !xi->risfile) {
|
|
||||||
+ int dummy;
|
|
||||||
+
|
|
||||||
+ blkid_get_topology(xi->rtname, &dummy, &ft->rtswidth);
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
+#else /* ENABLE_BLKID */
|
|
||||||
static int
|
|
||||||
check_overwrite(
|
|
||||||
char *device)
|
|
||||||
@@ -289,6 +402,24 @@ check_overwrite(
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
+static void get_topology(libxfs_init_t *xi, struct fs_topology *ft)
|
|
||||||
+{
|
|
||||||
+ char *dfile = xi->volname ? xi->volname : xi->dname;
|
|
||||||
+
|
|
||||||
+ if (!xi->disfile) {
|
|
||||||
+ get_subvol_stripe_wrapper(dfile, SVTYPE_DATA,
|
|
||||||
+ &ft->dsunit, &ft->dswidth, &ft->sectoralign);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (xi->rtname && !xi->risfile) {
|
|
||||||
+ int dummy1;
|
|
||||||
+
|
|
||||||
+ get_subvol_stripe_wrapper(dfile, SVTYPE_RT, &dummy1,
|
|
||||||
+ &ft->rtswidth, &dummy1);
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
+#endif /* ENABLE_BLKID */
|
|
||||||
+
|
|
||||||
static void
|
|
||||||
fixup_log_stripe_unit(
|
|
||||||
int lsflag,
|
|
||||||
@@ -691,7 +822,6 @@ main(
|
|
||||||
char *rtfile;
|
|
||||||
char *rtsize;
|
|
||||||
xfs_sb_t *sbp;
|
|
||||||
- int sectoralign;
|
|
||||||
int sectorlog;
|
|
||||||
unsigned int sectorsize;
|
|
||||||
__uint64_t sector_mask;
|
|
||||||
@@ -701,8 +831,7 @@ main(
|
|
||||||
uuid_t uuid;
|
|
||||||
int worst_freelist;
|
|
||||||
libxfs_init_t xi;
|
|
||||||
- int xlv_dsunit;
|
|
||||||
- int xlv_dswidth;
|
|
||||||
+ struct fs_topology ft;
|
|
||||||
int lazy_sb_counters;
|
|
||||||
|
|
||||||
progname = basename(argv[0]);
|
|
||||||
@@ -1392,12 +1521,10 @@ main(
|
|
||||||
usage();
|
|
||||||
}
|
|
||||||
|
|
||||||
- sectoralign = 0;
|
|
||||||
- xlv_dsunit = xlv_dswidth = 0;
|
|
||||||
- if (!xi.disfile)
|
|
||||||
- get_subvol_stripe_wrapper(dfile, SVTYPE_DATA,
|
|
||||||
- &xlv_dsunit, &xlv_dswidth, §oralign);
|
|
||||||
- if (sectoralign) {
|
|
||||||
+ memset(&ft, 0, sizeof(ft));
|
|
||||||
+ get_topology(&xi, &ft);
|
|
||||||
+
|
|
||||||
+ if (ft.sectoralign) {
|
|
||||||
sectorsize = blocksize;
|
|
||||||
sectorlog = libxfs_highbit32(sectorsize);
|
|
||||||
if (loginternal) {
|
|
||||||
@@ -1545,14 +1672,15 @@ main(
|
|
||||||
* and the underlying volume is striped, then set rtextblocks
|
|
||||||
* to the stripe width.
|
|
||||||
*/
|
|
||||||
- int dummy1, rswidth;
|
|
||||||
+ int rswidth;
|
|
||||||
__uint64_t rtextbytes;
|
|
||||||
|
|
||||||
- dummy1 = rswidth = 0;
|
|
||||||
+ rswidth = 0;
|
|
||||||
|
|
||||||
if (!norsflag && !xi.risfile && !(!rtsize && xi.disfile))
|
|
||||||
- get_subvol_stripe_wrapper(dfile, SVTYPE_RT, &dummy1,
|
|
||||||
- &rswidth, &dummy1);
|
|
||||||
+ rswidth = ft.rtswidth;
|
|
||||||
+ else
|
|
||||||
+ rswidth = 0;
|
|
||||||
|
|
||||||
/* check that rswidth is a multiple of fs blocksize */
|
|
||||||
if (!norsflag && rswidth && !(BBTOB(rswidth) % blocksize)) {
|
|
||||||
@@ -1793,27 +1921,27 @@ _("size %s specified for log subvolume i
|
|
||||||
agsize = dblocks / agcount + (dblocks % agcount != 0);
|
|
||||||
else
|
|
||||||
calc_default_ag_geometry(blocklog, dblocks,
|
|
||||||
- xlv_dsunit | xlv_dswidth, &agsize, &agcount);
|
|
||||||
+ ft.dsunit | ft.dswidth, &agsize, &agcount);
|
|
||||||
|
|
||||||
if (!nodsflag) {
|
|
||||||
if (dsunit) {
|
|
||||||
- if (xlv_dsunit && xlv_dsunit != dsunit) {
|
|
||||||
+ if (ft.dsunit && ft.dsunit != dsunit) {
|
|
||||||
fprintf(stderr,
|
|
||||||
_("%s: Specified data stripe unit %d "
|
|
||||||
"is not the same as the volume stripe "
|
|
||||||
"unit %d\n"),
|
|
||||||
- progname, dsunit, xlv_dsunit);
|
|
||||||
+ progname, dsunit, ft.dsunit);
|
|
||||||
}
|
|
||||||
- if (xlv_dswidth && xlv_dswidth != dswidth) {
|
|
||||||
+ if (ft.dswidth && ft.dswidth != dswidth) {
|
|
||||||
fprintf(stderr,
|
|
||||||
_("%s: Specified data stripe width %d "
|
|
||||||
"is not the same as the volume stripe "
|
|
||||||
"width %d\n"),
|
|
||||||
- progname, dswidth, xlv_dswidth);
|
|
||||||
+ progname, dswidth, ft.dswidth);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
- dsunit = xlv_dsunit;
|
|
||||||
- dswidth = xlv_dswidth;
|
|
||||||
+ dsunit = ft.dsunit;
|
|
||||||
+ dswidth = ft.dswidth;
|
|
||||||
nodsflag = 1;
|
|
||||||
}
|
|
||||||
} /* else dsunit & dswidth can't be set if nodsflag is set */
|
|
||||||
--- xfsprogs-3.0.3.orig/configure 2009-12-07 17:06:42.472972680 -0600
|
|
||||||
+++ xfsprogs-3.0.3/configure 2009-12-07 17:08:30.663973127 -0600
|
|
||||||
@@ -839,6 +839,8 @@
|
|
||||||
LOCALIZED_FILES
|
|
||||||
enable_lib64
|
|
||||||
libtermcap
|
|
||||||
+enable_blkid
|
|
||||||
+libblkid
|
|
||||||
enable_editline
|
|
||||||
libeditline
|
|
||||||
enable_readline
|
|
||||||
@@ -931,6 +933,7 @@
|
|
||||||
enable_readline
|
|
||||||
enable_editline
|
|
||||||
enable_termcap
|
|
||||||
+enable_blkid
|
|
||||||
enable_lib64
|
|
||||||
'
|
|
||||||
ac_precious_vars='build_alias
|
|
||||||
@@ -1574,6 +1577,7 @@
|
|
||||||
--enable-gettext=yes/no Enable alternate language support default=yes
|
|
||||||
--enable-readline=yes/no Enable readline command editing default=no
|
|
||||||
--enable-editline=yes/no Enable editline command editing default=no
|
|
||||||
+ --enable-blkid=yes/no Enable block device id library default=no
|
|
||||||
--enable-termcap=yes/no Enable terminal capabilities library default=no
|
|
||||||
--enable-lib64=yes/no Enable lib64 support default=no
|
|
||||||
|
|
||||||
@@ -10441,6 +10445,15 @@
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
+
|
|
||||||
+# Check whether --enable-blkid was given.
|
|
||||||
+if test "${enable_blkid+set}" = set; then
|
|
||||||
+ enableval=$enable_blkid; test $enable_blkid = yes && libblkid="-lblkid"
|
|
||||||
+fi
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+
|
|
||||||
# Check whether --enable-lib64 was given.
|
|
||||||
if test "${enable_lib64+set}" = set; then
|
|
||||||
enableval=$enable_lib64;
|
|
|
@ -1,200 +0,0 @@
|
||||||
From: Christoph Hellwig <hch@lst.de>
|
|
||||||
Date: Tue, 13 Oct 2009 22:28:52 +0000 (+0200)
|
|
||||||
Subject: mkfs: add discard support
|
|
||||||
X-Git-Url: http://git.kernel.org/?p=fs%2Fxfs%2Fxfsprogs-dev.git;a=commitdiff_plain;h=ad136b3382919e93cc692b54f735fad8b35e88fe
|
|
||||||
|
|
||||||
mkfs: add discard support
|
|
||||||
|
|
||||||
Call the BLKDISCARD ioctl to mark the whole disk as unused before creating
|
|
||||||
a new filesystem. This will allow SSDs, Arrays with thin provisioning support
|
|
||||||
and virtual machines to make smarter allocation decisions.
|
|
||||||
|
|
||||||
Add a new -K option to prevent mkfs from discarding blocks to aid
|
|
||||||
trouble-shooting or specialized requirements.
|
|
||||||
|
|
||||||
Signed-off-by: Christoph Hellwig <hch@lst.de>
|
|
||||||
Reviewed-by: Eric Sandeen <sandeen@sandeen.net>
|
|
||||||
Reviewed-by: Andi Kleen <andi@firstfloor.org>
|
|
||||||
---
|
|
||||||
|
|
||||||
From: Christoph Hellwig <hch@lst.de>
|
|
||||||
Date: Fri, 20 Nov 2009 09:55:15 +0000 (+0100)
|
|
||||||
Subject: xfsprogs: stop using off64_t in platform headers
|
|
||||||
X-Git-Url: http://git.kernel.org/?p=fs%2Fxfs%2Fxfsprogs-dev.git;a=commitdiff_plain;h=f96aff0c250ae8c70f50d5becb592723eb064f5d
|
|
||||||
|
|
||||||
xfsprogs: stop using off64_t in platform headers
|
|
||||||
|
|
||||||
Using off64_t may require special headers or compiler flags that aren't
|
|
||||||
always available, e.g. in the configure check in xfstests. Rever to a plain
|
|
||||||
uint64_t to make apps compile as before.
|
|
||||||
|
|
||||||
While we're at it also rename the second argument of platform_discard_blocks
|
|
||||||
from end to len as that's what the BLKDISCARD ioctl excepts - we currently
|
|
||||||
always discard the whole device so it doesn't matter in practice.
|
|
||||||
|
|
||||||
Signed-off-by: Christoph Hellwig <hch@lst.de>
|
|
||||||
Reviewed-by: Eric Sandeen <sandeen@sandeen.net>
|
|
||||||
---
|
|
||||||
|
|
||||||
Index: xfsprogs-3.0.3/include/darwin.h
|
|
||||||
===================================================================
|
|
||||||
--- xfsprogs-3.0.3.orig/include/darwin.h
|
|
||||||
+++ xfsprogs-3.0.3/include/darwin.h
|
|
||||||
@@ -154,4 +154,10 @@ typedef unsigned char uchar_t;
|
|
||||||
|
|
||||||
#define HAVE_FID 1
|
|
||||||
|
|
||||||
+static __inline__ int
|
|
||||||
+platform_discard_blocks(int fd, uint64_t start, uint64_t len)
|
|
||||||
+{
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
#endif /* __XFS_DARWIN_H__ */
|
|
||||||
Index: xfsprogs-3.0.3/include/freebsd.h
|
|
||||||
===================================================================
|
|
||||||
--- xfsprogs-3.0.3.orig/include/freebsd.h
|
|
||||||
+++ xfsprogs-3.0.3/include/freebsd.h
|
|
||||||
@@ -139,4 +139,10 @@ static __inline__ void platform_uuid_cop
|
|
||||||
memcpy(dst, src, sizeof(uuid_t));
|
|
||||||
}
|
|
||||||
|
|
||||||
+static __inline__ int
|
|
||||||
+platform_discard_blocks(int fd, uint64_t start, uint64_t len)
|
|
||||||
+{
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
#endif /* __XFS_FREEBSD_H__ */
|
|
||||||
Index: xfsprogs-3.0.3/include/irix.h
|
|
||||||
===================================================================
|
|
||||||
--- xfsprogs-3.0.3.orig/include/irix.h
|
|
||||||
+++ xfsprogs-3.0.3/include/irix.h
|
|
||||||
@@ -337,6 +337,12 @@ static __inline__ void platform_uuid_cop
|
|
||||||
memcpy(dst, src, sizeof(uuid_t));
|
|
||||||
}
|
|
||||||
|
|
||||||
+static __inline__ int
|
|
||||||
+platform_discard_blocks(int fd, uint64_t start, uint64_t len)
|
|
||||||
+{
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
static __inline__ char * strsep(char **s, const char *ct)
|
|
||||||
{
|
|
||||||
char *sbegin = *s, *end;
|
|
||||||
Index: xfsprogs-3.0.3/include/linux.h
|
|
||||||
===================================================================
|
|
||||||
--- xfsprogs-3.0.3.orig/include/linux.h
|
|
||||||
+++ xfsprogs-3.0.3/include/linux.h
|
|
||||||
@@ -93,6 +93,20 @@ static __inline__ void platform_uuid_cop
|
|
||||||
uuid_copy(*dst, *src);
|
|
||||||
}
|
|
||||||
|
|
||||||
+#ifndef BLKDISCARD
|
|
||||||
+#define BLKDISCARD _IO(0x12,119)
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+static __inline__ int
|
|
||||||
+platform_discard_blocks(int fd, uint64_t start, uint64_t len)
|
|
||||||
+{
|
|
||||||
+ __uint64_t range[2] = { start, len };
|
|
||||||
+
|
|
||||||
+ if (ioctl(fd, BLKDISCARD, &range) < 0)
|
|
||||||
+ return errno;
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
#if (__GLIBC__ < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ <= 1))
|
|
||||||
# define constpp const char * const *
|
|
||||||
#else
|
|
||||||
Index: xfsprogs-3.0.3/man/man8/mkfs.xfs.8
|
|
||||||
===================================================================
|
|
||||||
--- xfsprogs-3.0.3.orig/man/man8/mkfs.xfs.8
|
|
||||||
+++ xfsprogs-3.0.3/man/man8/mkfs.xfs.8
|
|
||||||
@@ -36,6 +36,8 @@ mkfs.xfs \- construct an XFS filesystem
|
|
||||||
.I label
|
|
||||||
] [
|
|
||||||
.B \-N
|
|
||||||
+] [
|
|
||||||
+.B \-K
|
|
||||||
]
|
|
||||||
.I device
|
|
||||||
.SH DESCRIPTION
|
|
||||||
@@ -714,6 +716,9 @@ manual entries for additional informatio
|
|
||||||
.B \-N
|
|
||||||
Causes the file system parameters to be printed out without really
|
|
||||||
creating the file system.
|
|
||||||
+.TP
|
|
||||||
+.B \-K
|
|
||||||
+Do not attempt to discard blocks at mkfs time.
|
|
||||||
.SH SEE ALSO
|
|
||||||
.BR xfs (5),
|
|
||||||
.BR mkfs (8),
|
|
||||||
Index: xfsprogs-3.0.3/mkfs/xfs_mkfs.c
|
|
||||||
===================================================================
|
|
||||||
--- xfsprogs-3.0.3.orig/mkfs/xfs_mkfs.c
|
|
||||||
+++ xfsprogs-3.0.3/mkfs/xfs_mkfs.c
|
|
||||||
@@ -604,6 +604,20 @@ done:
|
|
||||||
free(buf);
|
|
||||||
}
|
|
||||||
|
|
||||||
+static void
|
|
||||||
+discard_blocks(dev_t dev, __uint64_t nsectors)
|
|
||||||
+{
|
|
||||||
+ int fd;
|
|
||||||
+
|
|
||||||
+ /*
|
|
||||||
+ * We intentionally ignore errors from the discard ioctl. It is
|
|
||||||
+ * not necessary for the mkfs functionality but just an optimization.
|
|
||||||
+ */
|
|
||||||
+ fd = libxfs_device_to_fd(dev);
|
|
||||||
+ if (fd > 0)
|
|
||||||
+ platform_discard_blocks(fd, 0, nsectors << 9);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
int
|
|
||||||
main(
|
|
||||||
int argc,
|
|
||||||
@@ -680,6 +694,7 @@ main(
|
|
||||||
int nvflag;
|
|
||||||
int nci;
|
|
||||||
int Nflag;
|
|
||||||
+ int discard = 1;
|
|
||||||
char *p;
|
|
||||||
char *protofile;
|
|
||||||
char *protostring;
|
|
||||||
@@ -740,7 +755,7 @@ main(
|
|
||||||
xi.isdirect = LIBXFS_DIRECT;
|
|
||||||
xi.isreadonly = LIBXFS_EXCLUSIVELY;
|
|
||||||
|
|
||||||
- while ((c = getopt(argc, argv, "b:d:i:l:L:n:Np:qr:s:CfV")) != EOF) {
|
|
||||||
+ while ((c = getopt(argc, argv, "b:d:i:l:L:n:KNp:qr:s:CfV")) != EOF) {
|
|
||||||
switch (c) {
|
|
||||||
case 'C':
|
|
||||||
case 'f':
|
|
||||||
@@ -1256,6 +1271,9 @@ main(
|
|
||||||
case 'N':
|
|
||||||
Nflag = 1;
|
|
||||||
break;
|
|
||||||
+ case 'K':
|
|
||||||
+ discard = 0;
|
|
||||||
+ break;
|
|
||||||
case 'p':
|
|
||||||
if (protofile)
|
|
||||||
respec('p', NULL, 0);
|
|
||||||
@@ -1644,6 +1662,14 @@ main(
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+ if (discard) {
|
|
||||||
+ discard_blocks(xi.ddev, xi.dsize);
|
|
||||||
+ if (xi.rtdev)
|
|
||||||
+ discard_blocks(xi.rtdev, xi.rtsize);
|
|
||||||
+ if (xi.logdev && xi.logdev != xi.ddev)
|
|
||||||
+ discard_blocks(xi.logdev, xi.logBBsize);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
if (!liflag && !ldflag)
|
|
||||||
loginternal = xi.logdev == 0;
|
|
||||||
if (xi.logname)
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
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>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Summary: Utilities for managing the XFS filesystem
|
Summary: Utilities for managing the XFS filesystem
|
||||||
Name: xfsprogs
|
Name: xfsprogs
|
||||||
Version: 3.0.3
|
Version: 3.1.0
|
||||||
Release: 5%{?dist}
|
Release: 1%{?dist}
|
||||||
# Licensing based on generic "GNU GENERAL PUBLIC LICENSE"
|
# Licensing based on generic "GNU GENERAL PUBLIC LICENSE"
|
||||||
# in source, with no mention of version.
|
# in source, with no mention of version.
|
||||||
# doc/COPYING file specifies what is GPL and what is LGPL
|
# doc/COPYING file specifies what is GPL and what is LGPL
|
||||||
|
@ -18,12 +18,8 @@ Provides: xfs-cmds
|
||||||
Obsoletes: xfs-cmds <= %{version}
|
Obsoletes: xfs-cmds <= %{version}
|
||||||
Conflicts: xfsdump < 3.0.1
|
Conflicts: xfsdump < 3.0.1
|
||||||
|
|
||||||
# Upstream patches:
|
# Fix-ups for very latest glibc header posix conformance changes
|
||||||
Patch1: xfsprogs-3.0.3-trim.patch
|
Patch0: xfsprogs-3.1.0-glibc-fixes.patch
|
||||||
Patch2: xfsprogs-3.0.3-libblkid.patch
|
|
||||||
|
|
||||||
# Not-yet-upstream patches:
|
|
||||||
Patch10: xfsprogs-3.0.1-mkfs-lazy-count-default.patch
|
|
||||||
|
|
||||||
%description
|
%description
|
||||||
A set of commands to use the XFS filesystem, including mkfs.xfs.
|
A set of commands to use the XFS filesystem, including mkfs.xfs.
|
||||||
|
@ -68,19 +64,12 @@ in building or running the xfstests QA suite.
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
|
|
||||||
%patch1 -p1
|
%patch0 -p1
|
||||||
%patch2 -p1
|
|
||||||
|
|
||||||
%patch10 -p1
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
export tagname=CC DEBUG=-DNDEBUG
|
export tagname=CC DEBUG=-DNDEBUG
|
||||||
# xfsprogs abuses libexecdir
|
# xfsprogs abuses libexecdir
|
||||||
%configure \
|
%configure \
|
||||||
--sbindir=/sbin \
|
|
||||||
--libdir=/%{_lib} \
|
|
||||||
--libexecdir=%{_libdir} \
|
|
||||||
--bindir=%{_sbindir} \
|
|
||||||
--enable-readline=yes \
|
--enable-readline=yes \
|
||||||
--enable-blkid=yes
|
--enable-blkid=yes
|
||||||
|
|
||||||
|
@ -124,7 +113,7 @@ rm -rf $RPM_BUILD_ROOT
|
||||||
|
|
||||||
%files -f %{name}.lang
|
%files -f %{name}.lang
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
%doc doc/CHANGES doc/COPYING doc/CREDITS doc/PORTING README
|
%doc doc/CHANGES doc/COPYING doc/CREDITS README
|
||||||
/sbin/fsck.xfs
|
/sbin/fsck.xfs
|
||||||
/sbin/mkfs.xfs
|
/sbin/mkfs.xfs
|
||||||
/sbin/xfs_repair
|
/sbin/xfs_repair
|
||||||
|
@ -203,6 +192,10 @@ rm -rf $RPM_BUILD_ROOT
|
||||||
%{_includedir}/xfs/xfs_types.h
|
%{_includedir}/xfs/xfs_types.h
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Jan 13 2010 Eric Sandeen <sandeen@redhat.com> 3.1.0-1
|
||||||
|
- New upstream release
|
||||||
|
- Minor fixups for new glibc headers
|
||||||
|
|
||||||
* Tue Dec 08 2009 Eric Sandeen <sandeen@redhat.com> 3.0.3-5
|
* Tue Dec 08 2009 Eric Sandeen <sandeen@redhat.com> 3.0.3-5
|
||||||
- And finally, BuildRequire libblkid-devel
|
- And finally, BuildRequire libblkid-devel
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue