Hello community,
here is the log from the commit of package xfsprogs for openSUSE:Factory
checked in at Wed Dec 29 00:35:56 CET 2010.
--------
--- xfsprogs/xfsprogs.changes 2010-06-29 22:18:57.000000000 +0200
+++ /mounts/work_src_done/STABLE/xfsprogs/xfsprogs.changes 2010-12-15 01:37:55.000000000 +0100
@@ -1,0 +2,15 @@
+Wed Dec 15 01:36:53 CET 2010 - ro@suse.de
+
+- update to xfsprogs-3.1.4 (9 November 2010)
+ - Add projid32bit handling to userspace, resolving type
+ sizing issues when dealing with 32 bit project ids.
+ - Make xfs_fsr use /proc/mounts if available.
+
+- update to xfsprogs-3.1.3 (26 August 2010)
+ - Add xfs_io support for XFS_IOC_ZERO_RANGE
+ - Allow xfs_io resvsp command for foreign filesystems.
+ - Make xfs_db check for valid inode data pointer before dereferencing.
+ - Validate btree block magic in the xfs_db freesp command,
+ - Fix linking of libxfs and librt detection (needs pthread),
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
xfsprogs-3.1.2.tar.bz2
New:
----
xfsprogs-3.1.4.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xfsprogs.spec ++++++
--- /var/tmp/diff_new_pack.L3UtR7/_old 2010-12-29 00:35:33.000000000 +0100
+++ /var/tmp/diff_new_pack.L3UtR7/_new 2010-12-29 00:35:33.000000000 +0100
@@ -1,5 +1,5 @@
#
-# spec file for package xfsprogs (Version 3.1.2)
+# spec file for package xfsprogs (Version 3.1.4)
#
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -20,7 +20,7 @@
Name: xfsprogs
BuildRequires: e2fsprogs-devel
-Version: 3.1.2
+Version: 3.1.4
Release: 1
%if 0%{?suse_version} >= 1010
# hint for ZYPP
++++++ xfsprogs-3.1.2.tar.bz2 -> xfsprogs-3.1.4.tar.bz2 ++++++
++++ 3818 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.1.2/Makefile new/xfsprogs-3.1.4/Makefile
--- old/xfsprogs-3.1.2/Makefile 2010-05-07 21:38:10.000000000 +0200
+++ new/xfsprogs-3.1.4/Makefile 2010-08-26 21:14:49.000000000 +0200
@@ -30,23 +30,19 @@
CONFIGURE = aclocal.m4 configure config.guess config.sub install-sh ltmain.sh
LSRCFILES = configure.in release.sh README VERSION $(CONFIGURE)
-LDIRT = config.log .dep config.status config.cache confdefs.h conftest* \
- built .census install.* install-dev.* *.gz autom4te.cache/* libtool \
- include/builddefs include/platform_defs.h
+LDIRT = config.log .ltdep .dep config.status config.cache confdefs.h \
+ conftest* built .census install.* install-dev.* *.gz \
+ autom4te.cache/* libtool include/builddefs include/platform_defs.h
ifeq ($(HAVE_BUILDDEFS), yes)
LDIRDIRT = $(SRCDIR)
LDIRT += $(SRCTAR)
endif
-LIB_SUBDIRS = libxfs libxlog libxcmd libhandle $(LDISK)
+LIB_SUBDIRS = libxfs libxlog libxcmd libhandle libdisk
TOOL_SUBDIRS = copy db estimate fsck fsr growfs io logprint mkfs quota \
mdrestore repair rtcp m4 man doc po debian
-ifneq ($(ENABLE_BLKID), yes)
-LIB_SUBDIRS += libdisk
-endif
-
SUBDIRS = include $(LIB_SUBDIRS) $(TOOL_SUBDIRS)
default: include/builddefs include/platform_defs.h
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.1.2/VERSION new/xfsprogs-3.1.4/VERSION
--- old/xfsprogs-3.1.2/VERSION 2010-05-07 21:38:17.000000000 +0200
+++ new/xfsprogs-3.1.4/VERSION 2010-11-11 16:44:12.000000000 +0100
@@ -3,5 +3,5 @@
#
PKG_MAJOR=3
PKG_MINOR=1
-PKG_REVISION=2
+PKG_REVISION=4
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.1.2/configure.in new/xfsprogs-3.1.4/configure.in
--- old/xfsprogs-3.1.2/configure.in 2010-01-29 20:46:13.000000000 +0100
+++ new/xfsprogs-3.1.4/configure.in 2010-07-22 21:24:53.000000000 +0200
@@ -65,12 +65,17 @@
case $exec_prefix:$prefix in
NONE:NONE | NONE:/usr | /usr:*)
root_sbindir='/sbin'
- AC_SUBST([root_sbindir])
-
root_libdir="/${base_libdir}"
- AC_SUBST([root_libdir])
+ ;;
+*)
+ root_sbindir="${sbindir}"
+ root_libdir="${libdir}"
+ ;;
esac
+AC_SUBST([root_sbindir])
+AC_SUBST([root_libdir])
+
# Find localized files
LOCALIZED_FILES=""
for lfile in `find ${srcdir} -name '*.c' -type f || exit 1`; do
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.1.2/db/check.c new/xfsprogs-3.1.4/db/check.c
--- old/xfsprogs-3.1.2/db/check.c 2010-05-07 21:38:17.000000000 +0200
+++ new/xfsprogs-3.1.4/db/check.c 2010-10-09 20:28:03.000000000 +0200
@@ -2619,6 +2619,7 @@
xfs_qcnt_t ic = 0;
xfs_qcnt_t rc = 0;
xfs_dqid_t dqprid;
+ int v = 0;
static char okfmts[] = {
0, /* type 0 unused */
1 << XFS_DINODE_FMT_DEV, /* FIFO */
@@ -2653,15 +2654,16 @@
bno = XFS_INO_TO_FSB(mp, ino);
blkmap = NULL;
}
+ v = (!sflag || (id && id->ilist) || CHECK_BLIST(bno));
if (idic.di_magic != XFS_DINODE_MAGIC) {
- if (!sflag || isfree || id->ilist || CHECK_BLIST(bno))
+ if (isfree || v)
dbprintf(_("bad magic number %#x for inode %lld\n"),
idic.di_magic, ino);
error++;
return;
}
if (!XFS_DINODE_GOOD_VERSION(idic.di_version)) {
- if (!sflag || isfree || id->ilist || CHECK_BLIST(bno))
+ if (isfree || v)
dbprintf(_("bad version number %#x for inode %lld\n"),
idic.di_version, ino);
error++;
@@ -2669,7 +2671,7 @@
}
if (isfree) {
if (idic.di_nblocks != 0) {
- if (!sflag || id->ilist || CHECK_BLIST(bno))
+ if (v)
dbprintf(_("bad nblocks %lld for free inode "
"%lld\n"),
idic.di_nblocks, ino);
@@ -2680,21 +2682,22 @@
else
nlink = idic.di_nlink;
if (nlink != 0) {
- if (!sflag || id->ilist || CHECK_BLIST(bno))
+ if (v)
dbprintf(_("bad nlink %d for free inode %lld\n"),
nlink, ino);
error++;
}
if (idic.di_mode != 0) {
- if (!sflag || id->ilist || CHECK_BLIST(bno))
+ if (v)
dbprintf(_("bad mode %#o for free inode %lld\n"),
idic.di_mode, ino);
error++;
}
return;
}
+
if (be32_to_cpu(dip->di_next_unlinked) != NULLAGINO) {
- if (!sflag || isfree || id->ilist || CHECK_BLIST(bno))
+ if (v)
dbprintf(_("bad next unlinked %#x for inode %lld\n"),
be32_to_cpu(dip->di_next_unlinked), ino);
error++;
@@ -2704,27 +2707,27 @@
*/
if ((((idic.di_mode & S_IFMT) >> 12) > 15) ||
(!(okfmts[(idic.di_mode & S_IFMT) >> 12] & (1 << idic.di_format)))) {
- if (!sflag || id->ilist || CHECK_BLIST(bno))
+ if (v)
dbprintf(_("bad format %d for inode %lld type %#o\n"),
idic.di_format, id->ino, idic.di_mode & S_IFMT);
error++;
return;
}
if ((unsigned int)XFS_DFORK_ASIZE(dip, mp) >= XFS_LITINO(mp)) {
- if (!sflag || id->ilist)
+ if (v)
dbprintf(_("bad fork offset %d for inode %lld\n"),
idic.di_forkoff, id->ino);
error++;
return;
}
if ((unsigned int)idic.di_aformat > XFS_DINODE_FMT_BTREE) {
- if (!sflag || id->ilist)
+ if (v)
dbprintf(_("bad attribute format %d for inode %lld\n"),
idic.di_aformat, id->ino);
error++;
return;
}
- if (verbose || id->ilist || CHECK_BLIST(bno))
+ if (verbose || (id && id->ilist) || CHECK_BLIST(bno))
dbprintf(_("inode %lld mode %#o fmt %s "
"afmt %s "
"nex %d anex %d nblk %lld sz %lld%s%s%s%s%s%s%s\n"),
@@ -2837,27 +2840,27 @@
break;
}
if (ic) {
- dqprid = idic.di_projid; /* dquot ID is u32 */
+ dqprid = xfs_get_projid(idic); /* dquot ID is u32 */
quota_add(&dqprid, &idic.di_gid, &idic.di_uid,
0, bc, ic, rc);
}
}
totblocks = totdblocks + totiblocks + atotdblocks + atotiblocks;
if (totblocks != idic.di_nblocks) {
- if (!sflag || id->ilist || CHECK_BLIST(bno))
+ if (v)
dbprintf(_("bad nblocks %lld for inode %lld, counted "
"%lld\n"),
idic.di_nblocks, id->ino, totblocks);
error++;
}
if (nextents != idic.di_nextents) {
- if (!sflag || id->ilist || CHECK_BLIST(bno))
+ if (v)
dbprintf(_("bad nextents %d for inode %lld, counted %d\n"),
idic.di_nextents, id->ino, nextents);
error++;
}
if (anextents != idic.di_anextents) {
- if (!sflag || id->ilist || CHECK_BLIST(bno))
+ if (v)
dbprintf(_("bad anextents %d for inode %lld, counted "
"%d\n"),
idic.di_anextents, id->ino, anextents);
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.1.2/db/freesp.c new/xfsprogs-3.1.4/db/freesp.c
--- old/xfsprogs-3.1.2/db/freesp.c 2010-01-29 20:46:13.000000000 +0100
+++ new/xfsprogs-3.1.4/db/freesp.c 2010-07-21 19:05:57.000000000 +0200
@@ -286,6 +286,9 @@
xfs_alloc_ptr_t *pp;
xfs_alloc_rec_t *rp;
+ if (be32_to_cpu(block->bb_magic) != XFS_ABTB_MAGIC)
+ return;
+
if (level == 0) {
rp = XFS_ALLOC_REC_ADDR(mp, block, 1);
for (i = 0; i < be16_to_cpu(block->bb_numrecs); i++)
@@ -310,6 +313,9 @@
xfs_alloc_ptr_t *pp;
xfs_alloc_rec_t *rp;
+ if (be32_to_cpu(block->bb_magic) != XFS_ABTC_MAGIC)
+ return;
+
if (level == 0) {
rp = XFS_ALLOC_REC_ADDR(mp, block, 1);
for (i = 0; i < be16_to_cpu(block->bb_numrecs); i++)
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.1.2/db/inode.c new/xfsprogs-3.1.4/db/inode.c
--- old/xfsprogs-3.1.2/db/inode.c 2010-01-29 20:46:13.000000000 +0100
+++ new/xfsprogs-3.1.4/db/inode.c 2010-10-09 20:28:03.000000000 +0200
@@ -81,8 +81,10 @@
FLD_COUNT, TYP_NONE },
{ "onlink", FLDT_UINT16D, OI(COFF(onlink)), inode_core_onlink_count,
FLD_COUNT, TYP_NONE },
- { "projid", FLDT_UINT16D, OI(COFF(projid)), inode_core_projid_count,
- FLD_COUNT, TYP_NONE },
+ { "projid_lo", FLDT_UINT16D, OI(COFF(projid_lo)),
+ inode_core_projid_count, FLD_COUNT, TYP_NONE },
+ { "projid_hi", FLDT_UINT16D, OI(COFF(projid_hi)),
+ inode_core_projid_count, FLD_COUNT, TYP_NONE },
{ "uid", FLDT_UINT32D, OI(COFF(uid)), C1, 0, TYP_NONE },
{ "gid", FLDT_UINT32D, OI(COFF(gid)), C1, 0, TYP_NONE },
{ "flushiter", FLDT_UINT16D, OI(COFF(flushiter)), C1, 0, TYP_NONE },
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.1.2/db/sb.c new/xfsprogs-3.1.4/db/sb.c
--- old/xfsprogs-3.1.2/db/sb.c 2010-01-29 20:46:13.000000000 +0100
+++ new/xfsprogs-3.1.4/db/sb.c 2010-10-09 20:28:03.000000000 +0200
@@ -620,6 +620,8 @@
strcat(s, ",ATTR2");
if (xfs_sb_version_haslazysbcount(sbp))
strcat(s, ",LAZYSBCOUNT");
+ if (xfs_sb_version_hasprojid32bit(sbp))
+ strcat(s, ",PROJID32BIT");
return s;
}
@@ -696,6 +698,10 @@
xfs_sb_version_addattr2(&mp->m_sb);
version = mp->m_sb.sb_versionnum;
features = mp->m_sb.sb_features2;
+ } else if (!strcasecmp(argv[1], "projid32bit")) {
+ xfs_sb_version_addprojid32bit(&mp->m_sb);
+ version = mp->m_sb.sb_versionnum;
+ features = mp->m_sb.sb_features2;
} else {
dbprintf(_("%s: invalid version change command \"%s\"\n"),
progname, argv[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.1.2/db/xfs_admin.sh new/xfsprogs-3.1.4/db/xfs_admin.sh
--- old/xfsprogs-3.1.2/db/xfs_admin.sh 2010-01-29 20:46:13.000000000 +0100
+++ new/xfsprogs-3.1.4/db/xfs_admin.sh 2010-10-09 20:28:03.000000000 +0200
@@ -6,9 +6,9 @@
status=0
DB_OPTS=""
REPAIR_OPTS=""
-USAGE="Usage: xfs_admin [-efjluV] [-c 0|1] [-L label] [-U uuid] device"
+USAGE="Usage: xfs_admin [-efjlpuV] [-c 0|1] [-L label] [-U uuid] device"
-while getopts "efjluc:L:U:V" c
+while getopts "efjlpuc:L:U:V" c
do
case $c in
c) REPAIR_OPTS=$REPAIR_OPTS" -c lazycount="$OPTARG;;
@@ -17,6 +17,7 @@
j) DB_OPTS=$DB_OPTS" -c 'version log2'";;
l) DB_OPTS=$DB_OPTS" -r -c label";;
L) DB_OPTS=$DB_OPTS" -c 'label "$OPTARG"'";;
+ p) DB_OPTS=$DB_OPTS" -c 'version projid32bit'";;
u) DB_OPTS=$DB_OPTS" -r -c uuid";;
U) DB_OPTS=$DB_OPTS" -c 'uuid "$OPTARG"'";;
V) xfs_db -p xfs_admin -V
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.1.2/debian/changelog new/xfsprogs-3.1.4/debian/changelog
--- old/xfsprogs-3.1.2/debian/changelog 2010-05-07 21:38:17.000000000 +0200
+++ new/xfsprogs-3.1.4/debian/changelog 2010-11-11 16:44:12.000000000 +0100
@@ -1,3 +1,18 @@
+xfsprogs (3.1.4) unstable; urgency=low
+
+ * New upstream release (32 projid resolution, fsr uses /proc/mounts)
+ * Annotate Debian packages as being team maintained now.
+ * Resolve Lenny upgrade issue with xfsdump (closes: #601988, #601710)
+
+ -- Nathan Scott Tue, 09 Nov 2010 22:39:04 +1100
+
+xfsprogs (3.1.3) unstable; urgency=low
+
+ * New upstream release
+ * Enforce building with libblkid (closes: #593320)
+
+ -- Nathan Scott Thu, 26 Aug 2010 23:06:46 +1000
+
xfsprogs (3.1.2) 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.1.2/debian/control new/xfsprogs-3.1.4/debian/control
--- old/xfsprogs-3.1.2/debian/control 2010-01-29 22:19:13.000000000 +0100
+++ new/xfsprogs-3.1.4/debian/control 2010-11-11 16:44:12.000000000 +0100
@@ -1,17 +1,18 @@
Source: xfsprogs
Section: admin
Priority: optional
-Maintainer: Nathan Scott
-Uploaders: Anibal Monsalve Salazar
-Build-Depends: uuid-dev, autoconf, debhelper (>= 5), gettext, libtool, libreadline5-dev
-Standards-Version: 3.8.1
+Maintainer: XFS Development Team
+Uploaders: Nathan Scott , Anibal Monsalve Salazar
+Build-Depends: uuid-dev, autoconf, debhelper (>= 5), gettext, libtool, libreadline5-dev, libblkid-dev (>= 2.17)
+Standards-Version: 3.9.1
Homepage: http://oss.sgi.com/projects/xfs/
Package: xfsprogs
Depends: ${shlibs:Depends}, ${misc:Depends}
Provides: fsck-backend
Suggests: xfsdump, acl, attr, quota
-Conflicts: xfsdump (<< 3.0.0)
+Breaks: xfsdump (<< 3.0.0)
+Replaces: xfsdump (<< 3.0.0)
Architecture: any
Description: Utilities for managing the XFS filesystem
A set of commands to use the XFS filesystem, including mkfs.xfs.
@@ -29,8 +30,8 @@
Package: xfslibs-dev
Section: libdevel
Priority: extra
-Depends: libc6-dev | libc-dev, uuid-dev, xfsprogs (>= 3.0.0)
-Conflicts: xfsprogs (<< 3.0.0)
+Depends: libc6-dev | libc-dev, uuid-dev, xfsprogs (>= 3.0.0), ${misc:Depends}
+Breaks: xfsprogs (<< 3.0.0)
Architecture: any
Description: XFS filesystem-specific static libraries and headers
xfslibs-dev contains the libraries and header files needed to
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.1.2/debian/rules new/xfsprogs-3.1.4/debian/rules
--- old/xfsprogs-3.1.2/debian/rules 2010-01-29 20:46:13.000000000 +0100
+++ new/xfsprogs-3.1.4/debian/rules 2010-08-26 21:14:49.000000000 +0200
@@ -20,7 +20,7 @@
options = export DEBUG=-DNDEBUG DISTRIBUTION=debian \
INSTALL_USER=root INSTALL_GROUP=root \
- LOCAL_CONFIGURE_OPTIONS=--enable-readline=yes ;
+ LOCAL_CONFIGURE_OPTIONS="--enable-readline=yes --enable-blkid=yes" ;
diopts = $(options) \
export OPTIMIZER=-Os LOCAL_CONFIGURE_OPTIONS="--enable-gettext=no" ;
checkdir = test -f debian/rules
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.1.2/doc/CHANGES new/xfsprogs-3.1.4/doc/CHANGES
--- old/xfsprogs-3.1.2/doc/CHANGES 2010-05-07 21:38:17.000000000 +0200
+++ new/xfsprogs-3.1.4/doc/CHANGES 2010-11-11 16:44:12.000000000 +0100
@@ -1,3 +1,24 @@
+xfsprogs-3.1.4 (9 November 2010)
+ - Add projid32bit handling to userspace, resolving type
+ sizing issues when dealing with 32 bit project ids.
+ - Make xfs_fsr use /proc/mounts if available.
+ - Annotate that Debian packages are group maintained.
+ - Fix a Debian packaging issue causing upgrade pain.
+
+xfsprogs-3.1.3 (26 August 2010)
+ - Add xfs_io support for XFS_IOC_ZERO_RANGE
+ - Fix depend targets.
+ - Allow xfs_io resvsp command for foreign filesystems.
+ - Fix configure --prefix.
+ - Make xfs_db check for valid inode data pointer before dereferencing.
+ - Validate btree block magic in the xfs_db freesp command,
+ thanks to Peter Watkins.
+ - Unbreak make update-po, permissions problem,
+ thanks to Arkadiusz Miśkiewicz.
+ - Fix linking of libxfs and librt detection (needs pthread),
+ thanks to Arkadiusz Miśkiewicz.
+ - Add a platform_discard_blocks stub for GNU/kFreebsd.
+
xfsprogs-3.1.2 (6 May 2010)
- Fix missing thread synchronization in xfs_repair duplicate
extent tracking.
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.1.2/fsr/xfs_fsr.c new/xfsprogs-3.1.4/fsr/xfs_fsr.c
--- old/xfsprogs-3.1.2/fsr/xfs_fsr.c 2010-05-07 21:38:17.000000000 +0200
+++ new/xfsprogs-3.1.4/fsr/xfs_fsr.c 2010-10-01 19:33:38.000000000 +0200
@@ -42,7 +42,9 @@
#define XFS_XFLAG_NODEFRAG 0x00002000 /* src dependancy, remove later */
#endif
-#define _PATH_FSRLAST "/var/tmp/.fsrlast_xfs"
+#define _PATH_FSRLAST "/var/tmp/.fsrlast_xfs"
+#define _PATH_PROC_MOUNTS "/proc/mounts"
+
char *progname;
@@ -79,7 +81,6 @@
static time_t howlong = 7200; /* default seconds of reorganizing */
static char *leftofffile = _PATH_FSRLAST; /* where we left off last */
-static char *mtab = MOUNTED;
static time_t endtime;
static time_t starttime;
static xfs_ino_t leftoffino = 0;
@@ -94,7 +95,7 @@
static void fsrdir(char *dirname);
static int fsrfs(char *mntdir, xfs_ino_t ino, int targetrange);
static void initallfs(char *mtab);
-static void fsrallfs(int howlong, char *leftofffile);
+static void fsrallfs(char *mtab, int howlong, char *leftofffile);
static void fsrall_cleanup(int timeout);
static int getnextents(int);
int xfsrtextsize(int fd);
@@ -187,6 +188,7 @@
struct mntent mntpref;
register struct mntent *mntp;
struct mntent ment;
+ char *mtab = NULL;
register FILE *mtabp;
setlinebuf(stdout);
@@ -198,7 +200,7 @@
gflag = ! isatty(0);
- while ((c = getopt(argc, argv, "C:p:e:MgsdnvTt:f:m:b:N:FV")) != -1 )
+ while ((c = getopt(argc, argv, "C:p:e:MgsdnvTt:f:m:b:N:FV")) != -1) {
switch (c) {
case 'M':
Mflag = 1;
@@ -250,6 +252,22 @@
default:
usage(1);
}
+ }
+
+ /*
+ * If the user did not specify an explicit mount table, try to use
+ * /proc/mounts if it is available, else /etc/mtab. We prefer
+ * /proc/mounts because it is kernel controlled, while /etc/mtab
+ * may contain garbage that userspace tools like pam_mounts wrote
+ * into it.
+ */
+ if (!mtab) {
+ if (access(_PATH_PROC_MOUNTS, R_OK) == 0)
+ mtab = _PATH_PROC_MOUNTS;
+ else
+ mtab = _PATH_MOUNTED;
+ }
+
if (vflag)
setbuf(stdout, NULL);
@@ -330,7 +348,7 @@
}
} else {
initallfs(mtab);
- fsrallfs(howlong, leftofffile);
+ fsrallfs(mtab, howlong, leftofffile);
}
return 0;
}
@@ -447,7 +465,7 @@
}
static void
-fsrallfs(int howlong, char *leftofffile)
+fsrallfs(char *mtab, int howlong, char *leftofffile)
{
int fd;
int 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.1.2/include/builddefs.in new/xfsprogs-3.1.4/include/builddefs.in
--- old/xfsprogs-3.1.2/include/builddefs.in 2010-03-25 17:22:49.000000000 +0100
+++ new/xfsprogs-3.1.4/include/builddefs.in 2010-05-28 16:55:38.000000000 +0200
@@ -24,6 +24,7 @@
OPTIMIZER = @opt_build@
MALLOCLIB = @malloc_lib@
LOADERFLAGS = @LDFLAGS@
+LTLDFLAGS = @LDFLAGS@
LIBRT = @librt@
LIBUUID = @libuuid@
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.1.2/include/buildrules new/xfsprogs-3.1.4/include/buildrules
--- old/xfsprogs-3.1.2/include/buildrules 2010-05-07 21:38:10.000000000 +0200
+++ new/xfsprogs-3.1.4/include/buildrules 2010-08-03 16:31:22.000000000 +0200
@@ -7,7 +7,7 @@
include $(TOPDIR)/include/builddefs
clean clobber : $(addsuffix -clean,$(SUBDIRS))
- @rm -f $(DIRT) .dep
+ @rm -f $(DIRT) .ltdep .dep
@rm -fr $(DIRDIRT)
%-clean:
@echo "Cleaning $*"
@@ -66,7 +66,7 @@
# Update translations
update-po: $(POTHEAD) $(wildcard $(TOPDIR)/po/*.po)
- catalogs=$(wildcard $(TOPDIR)/po/*.po); \
+ catalogs="$(wildcard $(TOPDIR)/po/*.po)"; \
for cat in $$catalogs; do \
lang=`basename $$cat .po`; \
mv $$lang.po $$lang.old.po; \
@@ -94,10 +94,14 @@
MAKEDEP := $(MAKEDEPEND) $(CFLAGS)
-ltdepend: $(CFILES) $(HFILES)
- @echo " [DEP]"
- $(Q)$(MAKEDEP) $(CFILES) | $(SED) -e 's,^\([^:]*\)\.o,\1.lo,' > .dep
+ltdepend: .ltdep
+
+.ltdep: $(CFILES) $(HFILES)
+ @echo " [LTDEP]"
+ $(Q)$(MAKEDEP) $(CFILES) | $(SED) -e 's,^\([^:]*\)\.o,\1.lo,' > .ltdep
+
+depend: .dep
-depend: $(CFILES) $(HFILES)
+.dep: $(CFILES) $(HFILES)
@echo " [DEP]"
$(Q)$(MAKEDEP) $(CFILES) > .dep
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.1.2/include/gnukfreebsd.h new/xfsprogs-3.1.4/include/gnukfreebsd.h
--- old/xfsprogs-3.1.2/include/gnukfreebsd.h 2010-03-25 17:22:49.000000000 +0100
+++ new/xfsprogs-3.1.4/include/gnukfreebsd.h 2010-05-28 16:55:38.000000000 +0200
@@ -119,4 +119,10 @@
uuid_copy(*dst, *src);
}
+static __inline__ int
+platform_discard_blocks(int fd, uint64_t start, uint64_t len)
+{
+ return 0;
+}
+
#endif /* __XFS_KFREEBSD_H__ */
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.1.2/include/xfs_dinode.h new/xfsprogs-3.1.4/include/xfs_dinode.h
--- old/xfsprogs-3.1.2/include/xfs_dinode.h 2010-01-29 20:46:13.000000000 +0100
+++ new/xfsprogs-3.1.4/include/xfs_dinode.h 2010-10-09 20:28:03.000000000 +0200
@@ -52,8 +52,9 @@
__be32 di_uid; /* owner's user id */
__be32 di_gid; /* owner's group id */
__be32 di_nlink; /* number of links to file */
- __be16 di_projid; /* owner's project id */
- __u8 di_pad[8]; /* unused, zeroed space */
+ __be16 di_projid_lo; /* lower part of owner's project id */
+ __be16 di_projid_hi; /* higher part owner's project id */
+ __u8 di_pad[6]; /* unused, zeroed space */
__be16 di_flushiter; /* incremented on flush */
xfs_timestamp_t di_atime; /* time last accessed */
xfs_timestamp_t di_mtime; /* time last modified */
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.1.2/include/xfs_fs.h new/xfsprogs-3.1.4/include/xfs_fs.h
--- old/xfsprogs-3.1.2/include/xfs_fs.h 2010-05-07 21:38:17.000000000 +0200
+++ new/xfsprogs-3.1.4/include/xfs_fs.h 2010-10-09 20:28:04.000000000 +0200
@@ -299,9 +299,11 @@
__s32 bs_extsize; /* extent size */
__s32 bs_extents; /* number of extents */
__u32 bs_gen; /* generation count */
- __u16 bs_projid; /* project id */
+ __u16 bs_projid_lo; /* lower part of project id */
+#define bs_projid bs_projid_lo
__u16 bs_forkoff; /* inode fork offset in bytes */
- unsigned char bs_pad[12]; /* pad space, unused */
+ __u16 bs_projid_hi; /* higher part of project id */
+ unsigned char bs_pad[10]; /* pad space, unused */
__u32 bs_dmevmask; /* DMIG event mask */
__u16 bs_dmstate; /* DMIG state info */
__u16 bs_aextents; /* attribute number of extents */
@@ -458,6 +460,7 @@
/* XFS_IOC_SETBIOSIZE ---- deprecated 46 */
/* XFS_IOC_GETBIOSIZE ---- deprecated 47 */
#define XFS_IOC_GETBMAPX _IOWR('X', 56, struct getbmap)
+#define XFS_IOC_ZERO_RANGE _IOW ('X', 57, struct xfs_flock64)
/*
* ioctl commands that replace IRIX syssgi()'s
@@ -505,4 +508,15 @@
#define BBTOB(bbs) ((bbs) << BBSHIFT)
#endif
+/*
+ * Project quota id helpers (previously projid was 16bit only
+ * and using two 16bit values to hold new 32bit projid was choosen
+ * to retain compatibility with "old" filesystems).
+ */
+static inline __uint32_t
+bstat_get_projid(struct xfs_bstat *bs)
+{
+ return (__uint32_t)bs->bs_projid_hi << 16 | bs->bs_projid_lo;
+}
+
#endif /* __XFS_FS_H__ */
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.1.2/include/xfs_inode.h new/xfsprogs-3.1.4/include/xfs_inode.h
--- old/xfsprogs-3.1.2/include/xfs_inode.h 2010-01-29 20:46:13.000000000 +0100
+++ new/xfsprogs-3.1.4/include/xfs_inode.h 2010-10-09 20:28:04.000000000 +0200
@@ -124,8 +124,9 @@
__uint32_t di_uid; /* owner's user id */
__uint32_t di_gid; /* owner's group id */
__uint32_t di_nlink; /* number of links to file */
- __uint16_t di_projid; /* owner's project id */
- __uint8_t di_pad[8]; /* unused, zeroed space */
+ __uint16_t di_projid_lo; /* lower part of owner's project id */
+ __uint16_t di_projid_hi; /* higher part of owner's project id */
+ __uint8_t di_pad[6]; /* unused, zeroed space */
__uint16_t di_flushiter; /* incremented on flush */
xfs_ictimestamp_t di_atime; /* time last accessed */
xfs_ictimestamp_t di_mtime; /* time last modified */
@@ -204,6 +205,24 @@
((ip)->i_d.di_anextents = (n)))
+/*
+ * Project quota id helpers (previously projid was 16bit only
+ * and using two 16bit values to hold new 32bit projid was choosen
+ * to retain compatibility with "old" filesystems).
+ */
+static inline __uint32_t
+xfs_get_projid(struct xfs_icdinode i_d)
+{
+ return (__uint32_t)i_d.di_projid_hi << 16 | i_d.di_projid_lo;
+}
+
+static inline void
+xfs_set_projid(struct xfs_icdinode *i_d,
+ __uint32_t projid)
+{
+ i_d->di_projid_hi = (__uint16_t) (projid >> 16);
+ i_d->di_projid_lo = (__uint16_t) (projid & 0xffff);
+}
#ifdef __KERNEL__
@@ -510,7 +529,7 @@
int xfs_iread(struct xfs_mount *, struct xfs_trans *, xfs_ino_t,
xfs_inode_t **, xfs_daddr_t, uint);
int xfs_ialloc(struct xfs_trans *, xfs_inode_t *, mode_t,
- xfs_nlink_t, xfs_dev_t, struct cred *, xfs_prid_t,
+ xfs_nlink_t, xfs_dev_t, struct cred *, prid_t,
int, struct xfs_buf **, boolean_t *, xfs_inode_t **);
uint xfs_ip2xflags(struct xfs_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.1.2/include/xfs_sb.h new/xfsprogs-3.1.4/include/xfs_sb.h
--- old/xfsprogs-3.1.2/include/xfs_sb.h 2010-01-29 20:46:13.000000000 +0100
+++ new/xfsprogs-3.1.4/include/xfs_sb.h 2010-10-09 20:28:04.000000000 +0200
@@ -80,10 +80,12 @@
#define XFS_SB_VERSION2_RESERVED4BIT 0x00000004
#define XFS_SB_VERSION2_ATTR2BIT 0x00000008 /* Inline attr rework */
#define XFS_SB_VERSION2_PARENTBIT 0x00000010 /* parent pointers */
+#define XFS_SB_VERSION2_PROJID32BIT 0x00000080 /* 32 bit project id */
#define XFS_SB_VERSION2_OKREALFBITS \
(XFS_SB_VERSION2_LAZYSBCOUNTBIT | \
- XFS_SB_VERSION2_ATTR2BIT)
+ XFS_SB_VERSION2_ATTR2BIT | \
+ XFS_SB_VERSION2_PROJID32BIT)
#define XFS_SB_VERSION2_OKSASHFBITS \
(0)
#define XFS_SB_VERSION2_OKREALBITS \
@@ -489,6 +491,19 @@
sbp->sb_versionnum &= ~XFS_SB_VERSION_MOREBITSBIT;
}
+static inline int xfs_sb_version_hasprojid32bit(xfs_sb_t *sbp)
+{
+ return xfs_sb_version_hasmorebits(sbp) &&
+ (sbp->sb_features2 & XFS_SB_VERSION2_PROJID32BIT);
+}
+
+static inline void xfs_sb_version_addprojid32bit(xfs_sb_t *sbp)
+{
+ sbp->sb_versionnum |= XFS_SB_VERSION_MOREBITSBIT;
+ sbp->sb_features2 |= XFS_SB_VERSION2_PROJID32BIT;
+ sbp->sb_bad_features2 |= XFS_SB_VERSION2_PROJID32BIT;
+}
+
/*
* end of superblock version macros
*/
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.1.2/include/xfs_types.h new/xfsprogs-3.1.4/include/xfs_types.h
--- old/xfsprogs-3.1.2/include/xfs_types.h 2010-05-07 21:38:10.000000000 +0200
+++ new/xfsprogs-3.1.4/include/xfs_types.h 2010-10-21 19:41:39.000000000 +0200
@@ -81,8 +81,6 @@
typedef __uint32_t xfs_dablk_t; /* dir/attr block number (in file) */
typedef __uint32_t xfs_dahash_t; /* dir/attr hash value */
-typedef __uint16_t xfs_prid_t; /* prid_t truncated to 16bits in XFS */
-
/*
* These types are 64 bits on disk but are either 32 or 64 bits in memory.
* Disk based types:
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.1.2/io/prealloc.c new/xfsprogs-3.1.4/io/prealloc.c
--- old/xfsprogs-3.1.2/io/prealloc.c 2010-01-29 20:46:13.000000000 +0100
+++ new/xfsprogs-3.1.4/io/prealloc.c 2010-08-23 20:30:43.000000000 +0200
@@ -29,6 +29,7 @@
static cmdinfo_t freesp_cmd;
static cmdinfo_t resvsp_cmd;
static cmdinfo_t unresvsp_cmd;
+static cmdinfo_t zero_cmd;
#if defined(HAVE_FALLOCATE)
static cmdinfo_t falloc_cmd;
#endif
@@ -125,6 +126,24 @@
return 0;
}
+static int
+zero_f(
+ int argc,
+ char **argv)
+{
+ xfs_flock64_t segment;
+
+ if (!offset_length(argv[1], argv[2], &segment))
+ return 0;
+
+ if (xfsctl(file->name, file->fd, XFS_IOC_ZERO_RANGE, &segment) < 0) {
+ perror("XFS_IOC_ZERO_RANGE");
+ return 0;
+ }
+ return 0;
+}
+
+
#if defined (HAVE_FALLOCATE)
static int
fallocate_f(
@@ -182,7 +201,7 @@
resvsp_cmd.cfunc = resvsp_f;
resvsp_cmd.argmin = 2;
resvsp_cmd.argmax = 2;
- resvsp_cmd.flags = CMD_NOMAP_OK;
+ resvsp_cmd.flags = CMD_NOMAP_OK | CMD_FOREIGN_OK;
resvsp_cmd.args = _("off len");
resvsp_cmd.oneline =
_("reserves space associated with part of a file");
@@ -196,10 +215,20 @@
unresvsp_cmd.oneline =
_("frees reserved space associated with part of a file");
+ zero_cmd.name = _("zero");
+ zero_cmd.cfunc = zero_f;
+ zero_cmd.argmin = 2;
+ zero_cmd.argmax = 2;
+ zero_cmd.flags = CMD_NOMAP_OK;
+ zero_cmd.args = _("off len");
+ zero_cmd.oneline =
+ _("Converts the given range of a file to allocated zeros");
+
add_command(&allocsp_cmd);
add_command(&freesp_cmd);
add_command(&resvsp_cmd);
add_command(&unresvsp_cmd);
+ add_command(&zero_cmd);
#if defined (HAVE_FALLOCATE)
falloc_cmd.name = _("falloc");
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.1.2/libdisk/Makefile new/xfsprogs-3.1.4/libdisk/Makefile
--- old/xfsprogs-3.1.2/libdisk/Makefile 2010-05-07 21:38:10.000000000 +0200
+++ new/xfsprogs-3.1.4/libdisk/Makefile 2010-08-26 21:14:49.000000000 +0200
@@ -20,7 +20,11 @@
LSRCFILES = $(LINUX_DRIVERS)
endif
+ifneq ($(ENABLE_BLKID), yes)
default: ltdepend $(LTLIBRARY)
+else
+default:
+endif
include $(BUILDRULES)
@@ -30,4 +34,4 @@
install-qa: install-dev
--include .dep
+-include .ltdep
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.1.2/libhandle/Makefile new/xfsprogs-3.1.4/libhandle/Makefile
--- old/xfsprogs-3.1.2/libhandle/Makefile 2010-05-07 21:38:10.000000000 +0200
+++ new/xfsprogs-3.1.4/libhandle/Makefile 2010-08-03 16:31:22.000000000 +0200
@@ -27,4 +27,4 @@
install-qa: install-dev
--include .dep
+-include .ltdep
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.1.2/libxcmd/Makefile new/xfsprogs-3.1.4/libxcmd/Makefile
--- old/xfsprogs-3.1.2/libxcmd/Makefile 2010-05-07 21:38:10.000000000 +0200
+++ new/xfsprogs-3.1.4/libxcmd/Makefile 2010-08-03 16:31:22.000000000 +0200
@@ -34,4 +34,4 @@
install install-dev install-qa: default
--include .dep
+-include .ltdep
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.1.2/libxcmd/input.c new/xfsprogs-3.1.4/libxcmd/input.c
--- old/xfsprogs-3.1.2/libxcmd/input.c 2010-01-29 20:46:13.000000000 +0100
+++ new/xfsprogs-3.1.4/libxcmd/input.c 2010-08-30 17:00:29.000000000 +0200
@@ -336,16 +336,20 @@
char *project)
{
fs_project_t *prj;
- prid_t prid;
+ unsigned long prid_long;
char *sp;
/*
* Allow either a full numeric or a valid projectname, even
* if it starts with a digit.
*/
- prid = (prid_t)strtoul(project, &sp, 10);
- if (*project != '\0' && *sp == '\0')
- return prid;
+ prid_long = strtoul(project, &sp, 10);
+ if (*project != '\0' && *sp == '\0') {
+ if ((prid_long == ULONG_MAX && errno == ERANGE)
+ || (prid_long > (prid_t)-1))
+ return -1;
+ return (prid_t)prid_long;
+ }
prj = getprnam(project);
if (prj)
return prj->pr_prid;
@@ -357,12 +361,16 @@
char *user)
{
struct passwd *pwd;
- uid_t uid;
+ unsigned long uid_long;
char *sp;
- uid = (uid_t)strtoul(user, &sp, 10);
- if (sp != user)
- return uid;
+ uid_long = strtoul(user, &sp, 10);
+ if (sp != user) {
+ if ((uid_long == ULONG_MAX && errno == ERANGE)
+ || (uid_long > (uid_t)-1))
+ return -1;
+ return (uid_t)uid_long;
+ }
pwd = getpwnam(user);
if (pwd)
return pwd->pw_uid;
@@ -374,12 +382,16 @@
char *group)
{
struct group *grp;
- gid_t gid;
+ unsigned long gid_long;
char *sp;
- gid = (gid_t)strtoul(group, &sp, 10);
- if (sp != group)
- return gid;
+ gid_long = strtoul(group, &sp, 10);
+ if (sp != group) {
+ if ((gid_long == ULONG_MAX && errno == ERANGE)
+ || (gid_long > (gid_t)-1))
+ return -1;
+ return (gid_t)gid_long;
+ }
grp = getgrnam(group);
if (grp)
return grp->gr_gid;
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.1.2/libxfs/Makefile new/xfsprogs-3.1.4/libxfs/Makefile
--- old/xfsprogs-3.1.2/libxfs/Makefile 2010-05-07 21:38:10.000000000 +0200
+++ new/xfsprogs-3.1.4/libxfs/Makefile 2010-08-03 16:31:22.000000000 +0200
@@ -33,6 +33,8 @@
FCFLAGS = -I.
+LTLIBS = $(LIBPTHREAD) $(LIBRT)
+
# don't try linking xfs_repair with a debug libxfs.
DEBUG = -DNDEBUG
@@ -46,4 +48,4 @@
install-qa: default
--include .dep
+-include .ltdep
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.1.2/libxfs/util.c new/xfsprogs-3.1.4/libxfs/util.c
--- old/xfsprogs-3.1.2/libxfs/util.c 2010-01-29 20:46:13.000000000 +0100
+++ new/xfsprogs-3.1.4/libxfs/util.c 2010-10-09 20:28:04.000000000 +0200
@@ -134,7 +134,7 @@
* made it 32 bits long. If this is an old format inode,
* convert it in memory to look like a new one. If it gets
* flushed to disk we will convert back before flushing or
- * logging it. We zero out the new projid field and the old link
+ * logging it. We zero out the new projid_lo/hi field and the old link
* count field. We'll handle clearing the pad field (the remains
* of the old uuid field) when we actually convert the inode to
* the new format. We don't change the version number so that we
@@ -143,7 +143,7 @@
if (ip->i_d.di_version == XFS_DINODE_VERSION_1) {
ip->i_d.di_nlink = ip->i_d.di_onlink;
ip->i_d.di_onlink = 0;
- ip->i_d.di_projid = 0;
+ xfs_set_projid(&ip->i_d, 0);
}
ip->i_delayed_blks = 0;
@@ -219,7 +219,7 @@
ASSERT(ip->i_d.di_nlink == nlink);
ip->i_d.di_uid = cr->cr_uid;
ip->i_d.di_gid = cr->cr_gid;
- ip->i_d.di_projid = pip ? 0 : fsx->fsx_projid;
+ xfs_set_projid(&ip->i_d, pip ? 0 : fsx->fsx_projid);
memset(&(ip->i_d.di_pad[0]), 0, sizeof(ip->i_d.di_pad));
/*
@@ -231,7 +231,10 @@
if (xfs_sb_version_hasnlink(&tp->t_mountp->m_sb) &&
ip->i_d.di_version == XFS_DINODE_VERSION_1) {
ip->i_d.di_version = XFS_DINODE_VERSION_2;
- /* old link count, projid field, pad field already zeroed */
+ /*
+ * old link count, projid_lo/hi field, pad field
+ * already zeroed
+ */
}
if (pip && (pip->i_d.di_mode & S_ISGID)) {
@@ -446,7 +449,7 @@
memset(&(ip->i_d.di_pad[0]), 0, sizeof(ip->i_d.di_pad));
memset(&(dip->di_core.di_pad[0]), 0,
sizeof(dip->di_core.di_pad));
- ASSERT(ip->i_d.di_projid == 0);
+ ASSERT(xfs_get_projid(ip->i_d) == 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.1.2/libxfs/xfs_ialloc.c new/xfsprogs-3.1.4/libxfs/xfs_ialloc.c
--- old/xfsprogs-3.1.2/libxfs/xfs_ialloc.c 2010-01-29 20:46:13.000000000 +0100
+++ new/xfsprogs-3.1.4/libxfs/xfs_ialloc.c 2010-10-09 20:28:04.000000000 +0200
@@ -46,7 +46,8 @@
offsetof(xfs_dinode_core_t, di_uid),
offsetof(xfs_dinode_core_t, di_gid),
offsetof(xfs_dinode_core_t, di_nlink),
- offsetof(xfs_dinode_core_t, di_projid),
+ offsetof(xfs_dinode_core_t, di_projid_lo),
+ offsetof(xfs_dinode_core_t, di_projid_hi),
offsetof(xfs_dinode_core_t, di_pad),
offsetof(xfs_dinode_core_t, di_atime),
offsetof(xfs_dinode_core_t, di_mtime),
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.1.2/libxfs/xfs_inode.c new/xfsprogs-3.1.4/libxfs/xfs_inode.c
--- old/xfsprogs-3.1.2/libxfs/xfs_inode.c 2010-01-29 20:46:13.000000000 +0100
+++ new/xfsprogs-3.1.4/libxfs/xfs_inode.c 2010-10-09 20:28:04.000000000 +0200
@@ -589,7 +589,8 @@
to->di_uid = be32_to_cpu(from->di_uid);
to->di_gid = be32_to_cpu(from->di_gid);
to->di_nlink = be32_to_cpu(from->di_nlink);
- to->di_projid = be16_to_cpu(from->di_projid);
+ to->di_projid_lo = be16_to_cpu(from->di_projid_lo);
+ to->di_projid_hi = be16_to_cpu(from->di_projid_hi);
memcpy(to->di_pad, from->di_pad, sizeof(to->di_pad));
to->di_flushiter = be16_to_cpu(from->di_flushiter);
to->di_atime.t_sec = be32_to_cpu(from->di_atime.t_sec);
@@ -624,7 +625,8 @@
to->di_uid = cpu_to_be32(from->di_uid);
to->di_gid = cpu_to_be32(from->di_gid);
to->di_nlink = cpu_to_be32(from->di_nlink);
- to->di_projid = cpu_to_be16(from->di_projid);
+ to->di_projid_lo = cpu_to_be16(from->di_projid_lo);
+ to->di_projid_hi = cpu_to_be16(from->di_projid_hi);
memcpy(to->di_pad, from->di_pad, sizeof(to->di_pad));
to->di_flushiter = cpu_to_be16(from->di_flushiter);
to->di_atime.t_sec = cpu_to_be32(from->di_atime.t_sec);
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.1.2/libxlog/Makefile new/xfsprogs-3.1.4/libxlog/Makefile
--- old/xfsprogs-3.1.2/libxlog/Makefile 2010-05-07 21:38:10.000000000 +0200
+++ new/xfsprogs-3.1.4/libxlog/Makefile 2010-08-03 16:31:22.000000000 +0200
@@ -21,4 +21,4 @@
install install-dev install-qa: default
--include .dep
+-include .ltdep
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.1.2/logprint/log_print_all.c new/xfsprogs-3.1.4/logprint/log_print_all.c
--- old/xfsprogs-3.1.2/logprint/log_print_all.c 2010-01-29 20:46:13.000000000 +0100
+++ new/xfsprogs-3.1.4/logprint/log_print_all.c 2010-10-09 20:28:04.000000000 +0200
@@ -238,8 +238,8 @@
"onlink:%d\n"),
(di->di_magic>>8) & 0xff, di->di_magic & 0xff,
di->di_mode, di->di_version, di->di_format, di->di_onlink);
- printf(_(" uid:%d gid:%d nlink:%d projid:%d\n"),
- di->di_uid, di->di_gid, di->di_nlink, (uint)di->di_projid);
+ printf(_(" uid:%d gid:%d nlink:%d projid:%u\n"),
+ di->di_uid, di->di_gid, di->di_nlink, xfs_get_projid(*di));
printf(_(" atime:%d mtime:%d ctime:%d\n"),
di->di_atime.t_sec, di->di_mtime.t_sec, di->di_ctime.t_sec);
printf(_(" flushiter:%d\n"), di->di_flushiter);
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.1.2/m4/libtool.m4 new/xfsprogs-3.1.4/m4/libtool.m4
--- old/xfsprogs-3.1.2/m4/libtool.m4 2010-05-07 21:38:45.000000000 +0200
+++ new/xfsprogs-3.1.4/m4/libtool.m4 2010-11-11 18:38:26.000000000 +0100
@@ -2470,13 +2470,10 @@
# before this can be enabled.
hardcode_into_libs=yes
- # Add ABI-specific directories to the system library path.
- sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib"
-
# Append ld.so.conf contents to the search path
if test -f /etc/ld.so.conf; then
lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"
+ sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
fi
# We used to test for /lib/ld.so.1 and disable shared libraries on
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.1.2/m4/package_aiodev.m4 new/xfsprogs-3.1.4/m4/package_aiodev.m4
--- old/xfsprogs-3.1.2/m4/package_aiodev.m4 2010-01-29 20:46:13.000000000 +0100
+++ new/xfsprogs-3.1.4/m4/package_aiodev.m4 2010-05-28 16:55:38.000000000 +0200
@@ -29,7 +29,7 @@
AC_CHECK_LIB(rt, lio_listio,, [
echo
echo 'FATAL ERROR: could not find a library with lio_listio.'
- exit 1])
+ exit 1],[-lpthread])
librt="-lrt"
fi
AC_SUBST(librt)
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.1.2/man/man3/xfsctl.3 new/xfsprogs-3.1.4/man/man3/xfsctl.3
--- old/xfsprogs-3.1.2/man/man3/xfsctl.3 2010-01-29 20:46:13.000000000 +0100
+++ new/xfsprogs-3.1.4/man/man3/xfsctl.3 2010-10-09 20:28:04.000000000 +0200
@@ -338,6 +338,24 @@
Partial filesystem blocks are zeroed, and whole filesystem blocks are
removed from the file. The file size does not change.
+.TP
+.B XFS_IOC_ZERO_RANGE
+This command is used to convert a range of a file to zeros without issuing data
+IO.
+A range of bytes is specified using a pointer to a variable of type
+.B xfs_flock64_t
+in the final argument.
+Blocks are preallocated for regions that span holes in the file, and the entire
+range is converted to unwritten extents.
+This operation is a fast method of overwriting any from the range specified
+with zeros without removing any blocks or having to write zeros to disk.
+Any subsequent read in the given range will return zeros until new data is
+written.
+This functionality requires filesystems to support unwritten extents.
+If
+.BR xfs_info (8)
+reports unwritten=1, then the filesystem was made to flag unwritten extents.
+
.\" .TP
.\" .B XFS_IOC_GETBIOSIZE
.\" This command gets information about the preferred buffered I/O
@@ -546,8 +564,10 @@
(number of extents),
.B bs_gen
(generation count),
-.B bs_projid
-(project id),
+.B bs_projid_lo
+(project id - low word),
+.B bs_projid_hi
+(project id - high word, used when projid32bit feature is enabled),
.B bs_dmevmask
(DMIG event mask),
.B bs_dmstate
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.1.2/man/man8/mkfs.xfs.8 new/xfsprogs-3.1.4/man/man8/mkfs.xfs.8
--- old/xfsprogs-3.1.2/man/man8/mkfs.xfs.8 2010-05-07 21:38:17.000000000 +0200
+++ new/xfsprogs-3.1.4/man/man8/mkfs.xfs.8 2010-10-09 20:28:04.000000000 +0200
@@ -350,6 +350,12 @@
The previous version 1, which has fixed regions for attribute and
extent data, is kept for backwards compatibility with kernels older
than version 2.6.16.
+.TP
+.BI projid32bit[= value ]
+This is used to enable 32bit quota project identifiers. The
+.I value
+is either 0 or 1, with 1 signifying that 32bit projid are to be enabled.
+If the value is omitted, 0 is assumed.
.RE
.TP
.BI \-l " log_section_options"
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.1.2/man/man8/xfs_admin.8 new/xfsprogs-3.1.4/man/man8/xfs_admin.8
--- old/xfsprogs-3.1.2/man/man8/xfs_admin.8 2010-01-29 20:46:13.000000000 +0100
+++ new/xfsprogs-3.1.4/man/man8/xfs_admin.8 2010-10-09 20:28:04.000000000 +0200
@@ -4,7 +4,7 @@
.SH SYNOPSIS
.B xfs_admin
[
-.B \-eflu
+.B \-eflpu
] [
.BR "\-c 0" | 1
] [
@@ -52,6 +52,9 @@
.B \-l
Print the current filesystem label.
.TP
+.B \-p
+Enable 32bit project identifier support (PROJID32BIT feature).
+.TP
.B \-u
Print the current filesystem UUID (Universally Unique IDentifier).
.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.1.2/man/man8/xfs_db.8 new/xfsprogs-3.1.4/man/man8/xfs_db.8
--- old/xfsprogs-3.1.2/man/man8/xfs_db.8 2010-01-29 20:46:13.000000000 +0100
+++ new/xfsprogs-3.1.4/man/man8/xfs_db.8 2010-10-09 20:28:04.000000000 +0200
@@ -1474,8 +1474,10 @@
.B nlinkv2
number of links to the file in a version 2 inode.
.TP
-.B projid
-owner's project id (version 2 inode only).
+.B projid_lo
+owner's project id (low word; version 2 inode only).
+.B projid_hi
+owner's project id (high word; version 2 inode only).
.TP
.B uid
owner's user id.
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.1.2/man/man8/xfs_mdrestore.8 new/xfsprogs-3.1.4/man/man8/xfs_mdrestore.8
--- old/xfsprogs-3.1.2/man/man8/xfs_mdrestore.8 2010-01-29 20:46:13.000000000 +0100
+++ new/xfsprogs-3.1.4/man/man8/xfs_mdrestore.8 2010-08-26 21:14:49.000000000 +0200
@@ -38,7 +38,7 @@
Shows restore progress on stdout.
.SH DIAGNOSTICS
.B xfs_mdrestore
-returns an exit code of 0 if all the metadata is succesfully restored or
+returns an exit code of 0 if all the metadata is successfully restored or
1 if an error occurs.
.SH SEE ALSO
.BR xfs_metadump (8),
@@ -47,4 +47,4 @@
.BR xfs (5)
.SH BUGS
Email bug reports to
-.BR xfs@oss.sgi.com .
\ No newline at end of file
+.BR xfs@oss.sgi.com .
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.1.2/man/man8/xfs_metadump.8 new/xfsprogs-3.1.4/man/man8/xfs_metadump.8
--- old/xfsprogs-3.1.2/man/man8/xfs_metadump.8 2010-01-29 20:46:13.000000000 +0100
+++ new/xfsprogs-3.1.4/man/man8/xfs_metadump.8 2010-08-26 21:14:49.000000000 +0200
@@ -98,11 +98,11 @@
Disables obfuscation of file names and extended attributes.
.TP
.B \-w
-Prints warnings of inconsistant metadata encountered to stderr. Bad metadata
+Prints warnings of inconsistent metadata encountered to stderr. Bad metadata
is still copied.
.SH DIAGNOSTICS
.B xfs_metadump
-returns an exit code of 0 if all readable metadata is succesfully copied or
+returns an exit code of 0 if all readable metadata is successfully copied or
1 if a write error occurs or a read error occurs and the
.B \-e
option used.
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.1.2/mkfs/xfs_mkfs.c new/xfsprogs-3.1.4/mkfs/xfs_mkfs.c
--- old/xfsprogs-3.1.2/mkfs/xfs_mkfs.c 2010-02-09 01:32:10.000000000 +0100
+++ new/xfsprogs-3.1.4/mkfs/xfs_mkfs.c 2010-10-09 20:28:04.000000000 +0200
@@ -106,6 +106,8 @@
"size",
#define I_ATTR 5
"attr",
+#define I_PROJID32BIT 6
+ "projid32bit",
NULL
};
@@ -829,6 +831,7 @@
__uint64_t agsize;
xfs_alloc_rec_t *arec;
int attrversion;
+ int projid32bit;
struct xfs_btree_block *block;
int blflag;
int blocklog;
@@ -923,6 +926,7 @@
textdomain(PACKAGE);
attrversion = 2;
+ projid32bit = 0;
blflag = bsflag = slflag = ssflag = lslflag = lssflag = 0;
blocklog = blocksize = 0;
sectorlog = lsectorlog = XFS_MIN_SECTORSIZE_LOG;
@@ -1259,6 +1263,14 @@
illegal(value, "i attr");
attrversion = c;
break;
+ case I_PROJID32BIT:
+ if (!value)
+ value = "0";
+ c = atoi(value);
+ if (c < 0 || c > 1)
+ illegal(value, "i projid32bit");
+ projid32bit = c;
+ break;
default:
unknown('i', value);
}
@@ -2261,7 +2273,7 @@
if (!qflag || Nflag) {
printf(_(
"meta-data=%-22s isize=%-6d agcount=%lld, agsize=%lld blks\n"
- " =%-22s sectsz=%-5u attr=%u\n"
+ " =%-22s sectsz=%-5u attr=%u, projid32bit=%u\n"
"data =%-22s bsize=%-6u blocks=%llu, imaxpct=%u\n"
" =%-22s sunit=%-6u swidth=%u blks\n"
"naming =version %-14u bsize=%-6u ascii-ci=%d\n"
@@ -2269,7 +2281,7 @@
" =%-22s sectsz=%-5u sunit=%d blks, lazy-count=%d\n"
"realtime =%-22s extsz=%-6d blocks=%lld, rtextents=%lld\n"),
dfile, isize, (long long)agcount, (long long)agsize,
- "", sectorsize, attrversion,
+ "", sectorsize, attrversion, projid32bit,
"", blocksize, (long long)dblocks, imaxpct,
"", dsunit, dswidth,
dirversion, dirblocksize, nci,
@@ -2336,7 +2348,7 @@
sbp->sb_logsectsize = 0;
}
sbp->sb_features2 = XFS_SB_VERSION2_MKFS(lazy_sb_counters,
- attrversion == 2, 0);
+ attrversion == 2, projid32bit == 1, 0);
sbp->sb_versionnum = XFS_SB_VERSION_MKFS(iaflag, dsunit != 0,
logversion == 2, attrversion == 1,
(sectorsize != BBSIZE ||
@@ -2804,7 +2816,8 @@
/* data subvol */ [-d agcount=n,agsize=n,file,name=xxx,size=num,\n\
(sunit=value,swidth=value|su=num,sw=num),\n\
sectlog=n|sectsize=num\n\
-/* inode size */ [-i log=n|perblock=n|size=num,maxpct=n,attr=0|1|2]\n\
+/* inode size */ [-i log=n|perblock=n|size=num,maxpct=n,attr=0|1|2,\n\
+ projid32bit=0|1]\n\
/* log subvol */ [-l agnum=n,internal,size=num,logdev=xxx,version=n\n\
sunit=value|su=num,sectlog=n|sectsize=num,\n\
lazy-count=0|1]\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.1.2/mkfs/xfs_mkfs.h new/xfsprogs-3.1.4/mkfs/xfs_mkfs.h
--- old/xfsprogs-3.1.2/mkfs/xfs_mkfs.h 2010-01-29 20:46:13.000000000 +0100
+++ new/xfsprogs-3.1.4/mkfs/xfs_mkfs.h 2010-10-09 20:28:04.000000000 +0200
@@ -36,9 +36,10 @@
XFS_DFL_SB_VERSION_BITS | \
0 ) : XFS_SB_VERSION_1 )
-#define XFS_SB_VERSION2_MKFS(lazycount, attr2, parent) (\
+#define XFS_SB_VERSION2_MKFS(lazycount, attr2, projid32bit, parent) (\
((lazycount) ? XFS_SB_VERSION2_LAZYSBCOUNTBIT : 0) | \
((attr2) ? XFS_SB_VERSION2_ATTR2BIT : 0) | \
+ ((projid32bit) ? XFS_SB_VERSION2_PROJID32BIT : 0) | \
((parent) ? XFS_SB_VERSION2_PARENTBIT : 0) | \
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.1.2/quota/project.c new/xfsprogs-3.1.4/quota/project.c
--- old/xfsprogs-3.1.2/quota/project.c 2010-01-29 20:46:13.000000000 +0100
+++ new/xfsprogs-3.1.4/quota/project.c 2010-08-30 17:00:29.000000000 +0200
@@ -268,7 +268,8 @@
count++;
}
- printf(_("Processed %d (%s and cmdline) paths for project %s with recursion depth %s (%d).\n"),
+ printf(_("Processed %d (%s and cmdline) paths for project %s with "
+ "recursion depth %s (%d).\n"),
count, projects_file, project,
recurse_depth < 0 ? _("infinite") : _("limited"), recurse_depth);
}
@@ -322,8 +323,9 @@
if (ispath && argc - optind > 1) {
exitcode = 1;
- fprintf(stderr, _("%s: only one projid/name can be specified when using -p <path>, %d found.\n"),
- progname, argc - optind);
+ fprintf(stderr, _("%s: only one projid/name can be specified "
+ "when using -p <path>, %d found.\n"),
+ progname, argc - optind);
return 0;
}
@@ -331,7 +333,8 @@
prid = prid_from_string(argv[optind]);
if (prid == -1) {
exitcode = 1;
- fprintf(stderr, _("%s - no such project in %s\n"),
+ fprintf(stderr, _("%s - no such project in %s "
+ "or invalid project number\n"),
argv[optind], projects_file);
} else
project(argv[optind], type);
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.1.2/quota/quot.c new/xfsprogs-3.1.4/quota/quot.c
--- old/xfsprogs-3.1.2/quota/quot.c 2010-01-29 20:46:13.000000000 +0100
+++ new/xfsprogs-3.1.4/quota/quot.c 2010-10-09 20:28:05.000000000 +0200
@@ -102,7 +102,7 @@
}
for (i = 0; i < 3; i++) {
id = (i == 0) ? p->bs_uid : ((i == 1) ?
- p->bs_gid : p->bs_projid);
+ p->bs_gid : bstat_get_projid(p));
hp = &duhash[i][id % DUHASH];
for (dp = *hp; dp; dp = dp->next)
if (dp->id == id)
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.1.2/repair/README new/xfsprogs-3.1.4/repair/README
--- old/xfsprogs-3.1.2/repair/README 2010-01-29 20:46:13.000000000 +0100
+++ new/xfsprogs-3.1.4/repair/README 2010-10-09 20:28:05.000000000 +0200
@@ -130,7 +130,7 @@
it does describe doesn't conflict with reality.
D - 0) rewrite setting nlinks handling -- for version 1
- inodes, set both nlinks and onlinks (zero projid
+ inodes, set both nlinks and onlinks (zero projid_lo/hi
and pad) if we have to change anything. For
version 2, I think we're ok.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org