From 8242261e6219990582cede6155721c6026644fed Mon Sep 17 00:00:00 2001 From: Steven Whitehouse Date: Wed, 10 Nov 2010 10:21:41 +0000 Subject: [PATCH 01/75] Add new spec file so that we are ready to bring back gfs2-utils --- gfs2-utils.spec | 270 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 270 insertions(+) create mode 100644 gfs2-utils.spec diff --git a/gfs2-utils.spec b/gfs2-utils.spec new file mode 100644 index 0000000..34c20ca --- /dev/null +++ b/gfs2-utils.spec @@ -0,0 +1,270 @@ +############################################################################### +############################################################################### +## +## Copyright (C) 2004-2010 Red Hat, Inc. All rights reserved. +## +## This copyrighted material is made available to anyone wishing to use, +## modify, copy, or redistribute it subject to the terms and conditions +## of the GNU General Public License v.2. +## +############################################################################### +############################################################################### + +Name: gfs2-utils +Version: 3.1.0 +Release: 1%{?dist} +License: GPLv2+ and LGPLv2+ +Group: System Environment/Kernel +Summary: Utilities for managing the global filesystem (GFS2) +Requires(post): chkconfig +Requires(preun): initscripts +Requires(preun): chkconfig +Requires: ncurses +Requires: file +BuildRequires: ncurses-devel +BuildRequires: glibc-kernheaders +BuildRequires: automake +BuildRequires: perl +BuildRequires: corosynclib-devel +BuildRequires: clusterlib-devel +BuildRequires: openaislib-devel +BuildRequires: libtool +URL: http://sources.redhat.com/cluster/wiki/ + +# The source for this package was pulled from the upstream git tree. +# Use the following commands to generate the tarball: +# git clone git://git.fedorahosted.org/gfs2-utils.git +# cd gfs2-utils +# ./make-tarball.sh +# +Source0: gfs2-utils-%{version}.tar.gz + +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +%prep +%setup -q -n gfs2-utils + +%build +./autogen.sh +%configure +make %{_smp_mflags} + +%install +rm -rf %{buildroot} +# gfs and group installed separately to avoid pulling in the docs +make -C gfs2 install DESTDIR=%{buildroot} +make -C group install DESTDIR=%{buildroot} +install -D -m 0755 ./gfs2/init.d/gfs2 %{buildroot}%{_sysconfdir}/rc.d/init.d/gfs2 +install -D -m 0755 ./gfs2/init.d/gfs2-cluster %{buildroot}%{_sysconfdir}/rc.d/init.d/gfs2-cluster + +%clean +rm -rf %{buildroot} + + +%description -n gfs2-utils +The gfs2-utils package contains a number of utilities for creating, +mounting, checking, modifying, and correcting any inconsistencies in GFS2 +filesystems. + +This package can be used standalone for single node GFS2 filesystems, +but for multi-node filesystems (i.e. the normal case), the gfs2-cluster +package is required as well. + +%post -n gfs2-utils +/sbin/chkconfig --add gfs2 + +%preun -n gfs2-utils +if [ "$1" = 0 ]; then + /sbin/service gfs2 stop >/dev/null 2>&1 + /sbin/chkconfig --del gfs2 +fi +exit 0 + +%files -n gfs2-utils +%defattr(-,root,root,-) +%doc doc/COPYING.* doc/COPYRIGHT doc/README.licence doc/*.txt +%{_sysconfdir}/rc.d/init.d/gfs2 +/sbin/* +%{_sbindir}/gfs2_* +%{_sbindir}/gfs2_tool +%{_sbindir}/tunegfs2 +%{_mandir}/man8/*gfs2* +%{_mandir}/man5/* + +%package -n gfs2-cluster +Group: System Environment/Base +Summary: Cluster daemons for GFS2 +Requires(post): chkconfig +Requires(preun): initscripts +Requires(preun): chkconfig +Requires: corosync >= 1.2.7-1 +Requires: openais >= 1.1.2-1 +Requires: cman >= 3.1.0-1 + +%description -n gfs2-cluster +This package contains the gfs_controld daemon and associated tools +required to use GFS2 in a cluster. Virtually every user of GFS2 will +need to install this package. + +%post -n gfs2-cluster +/sbin/chkconfig --add gfs2-cluster + +%preun -n gfs2-cluster +if [ "$1" = 0 ]; then + /sbin/service stop gfs2-cluster >/dev/null 2>&1 + /sbin/chkconfig --del gfs2-cluster +fi + +%files -n gfs2-cluster +%defattr(-,root,root,-) +%doc doc/COPYING.* doc/COPYRIGHT doc/README.licence +%{_sysconfdir}/rc.d/init.d/gfs2-cluster +%{_sbindir}/gfs_control* +%{_mandir}/man8/gfs_control* + +%changelog +* Tue Sep 30 2010 Steven Whitehouse - 3.1.0-1 +- Bringing this package back for upstream GFS2 + Addition of gfs2tune to the utils + Merge of gfs_controld from cman + +* Thu Jan 22 2009 Fabio M. Di Nitto - 2.03.11-1 +- New upstream release + Fix several bugs and drastically improve startup errors. + +* Wed Dec 10 2008 Fabio M. Di Nitto - 2.03.10-1 +- New upstream release + Fix several bugs and port gfs1 code to match 2.6.27 kernel. + +* Fri Oct 31 2008 Fabio M. Di Nitto - 2.03.09-1 +- New upstream release + Fix rhbz#468966 + Addresses several security issues similar to CVE-2008-4192 and + CVE-2008-4579 after deep code audit from upstream +- cleanup patches to match 2.6.26 kernel in F-9 + +* Tue Oct 21 2008 Fabio M. Di Nitto - 2.03.08-1 +- New upstream release + Fix rhbz#460376 CVE-2008-4192 + Fix rhbz#467386 CVE-2008-4579 +- cleanup/update patches to match 2.6.26 kernel in F-9 + +* Thu Aug 14 2008 Fabio M. Di Nitto - 2.03.07-1 +- New upstream release +- Fix rgmanager startup locking issues +- Apply patch to include kernel headers from 2.6.26 required to build + userland. Userland will run in 2.6.25 compatibility mode +- Apply patch to keep kernel modules at 2.6.25 (upstream is at 2.6.26) + (this patch is purely cosmetic since we don't build kernel modules + but keep the source in sync is Good (tm)) +- Cleanup packaging for installed docs and file permissions + +* Mon Jul 14 2008 Fabio M. Di Nitto - 2.03.05-1 +- New upstream release +- Cleanup installed doc after upstream + +* Wed Jun 11 2008 Fabio M. Di Nitto 2.03.04-1 +- New upstream release +- Resolves: #446995 #318271 #447378 #445662 +- Update license tags after major upstream cleanup +- Include COPYRIGHT file + +* Fri May 30 2008 Fabio M. Di Nitto 2.03.03-1 +- New upstream release +- Fix several build warnings +- Update spec files to use macros +- Update Requires to use packages rather than pointing at files +- Drop BR on kernel-devel since it's not required anymore +- Update build section to use proper _sysconfdir, libdir and sbindir +- Avoid abusing cd when we can ask make to do the work for us +- Remove /usr/sbin from file section. We don't have any file there + and we can avoid shipping stuff by mistake + +* Mon Apr 14 2008 Steven Whitehouse 2.03.00-3 +- Fabbione saves the day. We can get rid of the sed stuff after all + +* Mon Apr 14 2008 Steven Whitehouse 2.03.00-1 +- New upstream sources +- Eric Sandeen's solution to kernel version dep + +* Wed Apr 09 2008 Steven Whitehouse 0.1.25.2.02.01-15 +- Remove obsolete chkconfig patch for initscript +- Enable parallel make +- Remove obsolete copy of gfs2_ondisk.h (this should be in glibc-kernheaders) + +* Wed Apr 09 2008 Steven Whitehouse 0.1.25.2.02.01-14 +- Update URL +- Fix license spec + +* Fri Mar 14 2008 Chris Feist 0.1.25.2.02.00-2 +- New upstream sources. + +* Tue Jan 16 2007 Chris Feist 0.1.24-1 +- New upstream sources. +- Resolves: rhbz#222747 + +* Wed Jan 03 2007 Chris Feist 0.1.24-1 +- Updated sources +- Resolves: rhbz#218560 + +* Thu Dec 21 2006 Chris Feist 0.1.23-1 +- Updated sources +- Resolves: rhbz#218560 + +* Tue Dec 19 2006 Chris Feist 0.1.22-1 +- New upstream sources. +- Resolves: rhbz#219878 + +* Tue Dec 04 2006 Chris Feist 0.1.21-1 +- New upstream sources. +- Resolves: rhbz#218134 rhbz#215962 + +* Thu Nov 30 2006 Chris Feist 0.1.19-1 +- New upstream sources. +- Resolves: rhbz#217798 + +* Wed Nov 29 2006 Chris Feist 0.1.18-1 +- New upstream sources. +- Resolves: rhbz#217460 + +* Thu Oct 26 2006 Chris Feist 0.1.14-1 +- New upstream sources. + +* Fri Oct 13 2006 Chris Feist 0.1.12-1 +- New Upstream sources. + +* Fri Oct 13 2006 Chris Feist 0.1.10-1 +- New Upstream sources. + +* Mon Oct 09 2006 Chris Feist 0.1.9-1 +- New Upstream sources. + +* Mon Sep 25 2006 Chris Feist 0.1.8-1 +- New Upstream sources. + +* Wed Sep 13 2006 Chris Feist 0.1.7-1 +- New Upstream sources. + +* Thu Sep 07 2006 Chris Feist 0.1.6-2 +- Fix typo in uninstall script (turn off gfs2 instead of gfs) + +* Mon Aug 28 2006 Chris Feist 0.1.6-1 +- New Upstream sources. + +* Tue Aug 22 2006 Chris Feist 0.1.5-1 +- New Upstream sources. + +* Mon Aug 14 2006 Chris Feist 0.1.3-0 +- New Upstream sources, use dist tag. + +* Fri Jul 14 2006 Chris Feist +- Rebuild with updated sources + +* Wed Jul 12 2006 Jesse Keating +- rebuild + +* Tue Jun 27 2006 Florian La Roche +- fix typo in preun script + +* Fri Jun 09 2006 Chris Feist - 0.1.0-1.fc6.3 +- Initial build of gfs-utils. From a6aea143d9395a8c894063506e90fb0ffa21116c Mon Sep 17 00:00:00 2001 From: Steven Whitehouse Date: Tue, 16 Nov 2010 09:52:14 +0000 Subject: [PATCH 02/75] Remove dead.package from gfs2-utils Preparing to bring this package back. --- dead.package | 1 - 1 file changed, 1 deletion(-) delete mode 100644 dead.package diff --git a/dead.package b/dead.package deleted file mode 100644 index 4e8326a..0000000 --- a/dead.package +++ /dev/null @@ -1 +0,0 @@ -Source package is obsoleted. Binary package is now built by "cluster" source. From b200eda2e52fd0d04c95d52c5dd7be2622acb23b Mon Sep 17 00:00:00 2001 From: Steven Whitehouse Date: Tue, 16 Nov 2010 09:55:42 +0000 Subject: [PATCH 03/75] Add sources file to gfs2-utils --- sources | 1 + 1 file changed, 1 insertion(+) create mode 100644 sources diff --git a/sources b/sources new file mode 100644 index 0000000..5baaad7 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +26643fd9139d71fdfe3eecdc41f1d6c6 gfs2-utils-3.1.0.tar.gz From 17e0b6bfd497f6c50de4f8ea2c3d65a16fec5b13 Mon Sep 17 00:00:00 2001 From: Bob Peterson Date: Fri, 25 Feb 2011 10:06:41 -0600 Subject: [PATCH 04/75] * Fri Feb 25 2011 Bob Peterson - 3.1.1-2 - Need to keep mount.gfs2 for f13 --- gfs2-utils.spec | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/gfs2-utils.spec b/gfs2-utils.spec index 0ecce75..0f65790 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -12,7 +12,7 @@ Name: gfs2-utils Version: 3.1.1 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv2+ and LGPLv2+ Group: System Environment/Kernel Summary: Utilities for managing the global filesystem (GFS2) @@ -54,10 +54,6 @@ rm -rf %{buildroot} # gfs and group installed separately to avoid pulling in the docs make -C gfs2 install DESTDIR=%{buildroot} make -C group install DESTDIR=%{buildroot} -# Remove mount.gfs2 and its man page (temporary) -rm -f %{buildroot}%{_mandir}/man8/mount.gfs2.8 -rm -f %{buildroot}/sbin/mount.gfs2 -# End of temporary section (until mount.gfs2 removed from source) install -D -m 0755 ./gfs2/init.d/gfs2 %{buildroot}%{_sysconfdir}/rc.d/init.d/gfs2 install -D -m 0755 ./gfs2/init.d/gfs2-cluster %{buildroot}%{_sysconfdir}/rc.d/init.d/gfs2-cluster @@ -67,7 +63,7 @@ rm -rf %{buildroot} %description -n gfs2-utils The gfs2-utils package contains a number of utilities for creating, -checking, modifying, and correcting any inconsistencies in GFS2 +mounting, checking, modifying, and correcting any inconsistencies in GFS2 filesystems. This package can be used standalone for single node GFS2 filesystems, @@ -129,6 +125,9 @@ fi %{_mandir}/man8/gfs_control* %changelog +* Fri Feb 25 2011 Bob Peterson - 3.1.1-2 +- Need to keep mount.gfs2 for f13 + * Wed Feb 23 2011 Bob Peterson - 3.1.1-1 - gfs2_edit savemeta doesn't save all leafs for big directories - gfs2_edit improvements From 8dda9735bd619ee0ef291d9da325e6a79dcf0cbb Mon Sep 17 00:00:00 2001 From: Bob Peterson Date: Fri, 25 Feb 2011 10:36:19 -0600 Subject: [PATCH 05/75] * Fri Feb 25 2011 Bob Peterson - 3.1.1-2 - Bumping release number to keep upgrades consistent. --- gfs2-utils.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gfs2-utils.spec b/gfs2-utils.spec index 0ecce75..1da14b9 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -12,7 +12,7 @@ Name: gfs2-utils Version: 3.1.1 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv2+ and LGPLv2+ Group: System Environment/Kernel Summary: Utilities for managing the global filesystem (GFS2) @@ -129,6 +129,9 @@ fi %{_mandir}/man8/gfs_control* %changelog +* Fri Feb 25 2011 Bob Peterson - 3.1.1-2 +- Bumping release number to keep upgrades consistent. + * Wed Feb 23 2011 Bob Peterson - 3.1.1-1 - gfs2_edit savemeta doesn't save all leafs for big directories - gfs2_edit improvements From db857572274e8f7423de1ac02959e7e9fb4abe91 Mon Sep 17 00:00:00 2001 From: Steven Whitehouse Date: Wed, 25 May 2011 13:21:41 +0100 Subject: [PATCH 06/75] GFS2: Remove gfs2_tool and gfs2_quota from package The gfs2_quota utility is obsolete and replaced by the quota package so it will no longer be included in Fedora releases. The gfs2_tool utility is obsolete and has been replaced by a variety of other things. For superblock functions, use tunegfs2, for gfs2 tuning, see the mount command line arguments and use mount -o remount to change them at run time. These packages are being removed from rawhide and when eventually no more Fedora releases contain them, we'll remove them from the upstream source too. Note that this change should not be propagated through to the stable branches of Fedora. Signed-off-by: Steven Whitehouse --- gfs2-utils.spec | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/gfs2-utils.spec b/gfs2-utils.spec index 1da14b9..42c8ca5 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -12,7 +12,7 @@ Name: gfs2-utils Version: 3.1.1 -Release: 2%{?dist} +Release: 3%{?dist} License: GPLv2+ and LGPLv2+ Group: System Environment/Kernel Summary: Utilities for managing the global filesystem (GFS2) @@ -29,7 +29,7 @@ BuildRequires: corosynclib-devel BuildRequires: clusterlib-devel BuildRequires: openaislib-devel BuildRequires: libtool -URL: http://sources.redhat.com/cluster/wiki/ +URL: https://fedorahosted.org/cluster/wiki/HomePage # The source for this package was pulled from the upstream git tree. # Use the following commands to generate the tarball: @@ -54,6 +54,14 @@ rm -rf %{buildroot} # gfs and group installed separately to avoid pulling in the docs make -C gfs2 install DESTDIR=%{buildroot} make -C group install DESTDIR=%{buildroot} +# Remove gfs2_quota and its man page (temporary) +rm -f %{buildroot}%{_mandir}/man8/gfs2_quota.8 +rm -f %{buildroot}/usr/sbin/gfs2_quota +# End of temporary section (until gfs2_quota removed from source) +# Remove gfs2_tool and its man page (temporary) +rm -f %{buildroot}%{_mandir}/man8/gfs2_tool.8 +rm -f %{buildroot}/usr/sbin/gfs2_tool +# End of temporary section (until gfs2_tool removed from source) # Remove mount.gfs2 and its man page (temporary) rm -f %{buildroot}%{_mandir}/man8/mount.gfs2.8 rm -f %{buildroot}/sbin/mount.gfs2 @@ -129,6 +137,10 @@ fi %{_mandir}/man8/gfs_control* %changelog +* Wed May 25 2011 Steven Whitehouse - 3.1.1-3 +- Update wiki URL +- Remove gfs2_tool and gfs2_quota from package + * Fri Feb 25 2011 Bob Peterson - 3.1.1-2 - Bumping release number to keep upgrades consistent. From 3d6c4c7da5f0327e97876fec281431a517b53920 Mon Sep 17 00:00:00 2001 From: Andrew Price Date: Wed, 6 Jul 2011 16:46:17 +0100 Subject: [PATCH 07/75] New upstream release 3.1.2 * Wed Jul 06 2011 Andrew Price - 3.1.2-1 - New upstream release Fixes several bugs Improves translation support Adds savemeta compression - Add zlib-devel to BuildRequires - Add gettext-devel to BuildRequires Signed-off-by: Andrew Price --- .gitignore | 1 + gfs2-utils.spec | 14 ++++++++++++-- sources | 2 +- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index cc87d66..8d97f13 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /gfs2-utils-3.1.0.tar.gz /gfs2-utils-3.1.1.tar.gz +/gfs2-utils-3.1.2.tar.gz diff --git a/gfs2-utils.spec b/gfs2-utils.spec index 42c8ca5..ed6d79e 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -11,8 +11,8 @@ ############################################################################### Name: gfs2-utils -Version: 3.1.1 -Release: 3%{?dist} +Version: 3.1.2 +Release: 1%{?dist} License: GPLv2+ and LGPLv2+ Group: System Environment/Kernel Summary: Utilities for managing the global filesystem (GFS2) @@ -29,6 +29,8 @@ BuildRequires: corosynclib-devel BuildRequires: clusterlib-devel BuildRequires: openaislib-devel BuildRequires: libtool +BuildRequires: zlib-devel +BuildRequires: gettext-devel URL: https://fedorahosted.org/cluster/wiki/HomePage # The source for this package was pulled from the upstream git tree. @@ -137,6 +139,14 @@ fi %{_mandir}/man8/gfs_control* %changelog +* Wed Jul 06 2011 Andrew Price - 3.1.2-1 +- New upstream release + Fixes several bugs + Improves translation support + Adds savemeta compression +- Add zlib-devel to BuildRequires +- Add gettext-devel to BuildRequires + * Wed May 25 2011 Steven Whitehouse - 3.1.1-3 - Update wiki URL - Remove gfs2_tool and gfs2_quota from package diff --git a/sources b/sources index 57f7f65..cc1d034 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -62e9632a5f6e414998732450add583d8 gfs2-utils-3.1.1.tar.gz +79d6bdc903d4e14d688ffd1871a6ede0 gfs2-utils-3.1.2.tar.gz From 3fb48d597dd90db3d10bb908307a27973a4396c3 Mon Sep 17 00:00:00 2001 From: Andrew Price Date: Thu, 15 Dec 2011 15:40:24 +0000 Subject: [PATCH 08/75] New upstream release 3.1.3 * Thu Dec 15 2011 Andrew Price - 3.1.3-1 - New upstream release Bugfixes and improvements to fsck.gfs2 Fixes various other bugs Improve strings and translation support - Adds gfs2-cluster systemd unit - Removes gfs2* init scripts Signed-off-by: Andrew Price --- .gitignore | 1 + gfs2-utils.spec | 58 +++++++++++++++++++++++++++++++++++-------------- sources | 2 +- 3 files changed, 44 insertions(+), 17 deletions(-) diff --git a/.gitignore b/.gitignore index 8d97f13..b61ed1e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /gfs2-utils-3.1.0.tar.gz /gfs2-utils-3.1.1.tar.gz /gfs2-utils-3.1.2.tar.gz +/gfs2-utils-3.1.3.tar.gz diff --git a/gfs2-utils.spec b/gfs2-utils.spec index ed6d79e..f8eb702 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -11,7 +11,7 @@ ############################################################################### Name: gfs2-utils -Version: 3.1.2 +Version: 3.1.3 Release: 1%{?dist} License: GPLv2+ and LGPLv2+ Group: System Environment/Kernel @@ -31,6 +31,7 @@ BuildRequires: openaislib-devel BuildRequires: libtool BuildRequires: zlib-devel BuildRequires: gettext-devel +BuildRequires: systemd-units URL: https://fedorahosted.org/cluster/wiki/HomePage # The source for this package was pulled from the upstream git tree. @@ -68,8 +69,7 @@ rm -f %{buildroot}/usr/sbin/gfs2_tool rm -f %{buildroot}%{_mandir}/man8/mount.gfs2.8 rm -f %{buildroot}/sbin/mount.gfs2 # End of temporary section (until mount.gfs2 removed from source) -install -D -m 0755 ./gfs2/init.d/gfs2 %{buildroot}%{_sysconfdir}/rc.d/init.d/gfs2 -install -D -m 0755 ./gfs2/init.d/gfs2-cluster %{buildroot}%{_sysconfdir}/rc.d/init.d/gfs2-cluster +install -D -m 0644 ./gfs2/system/gfs2-cluster.service %{buildroot}%{_unitdir}/gfs2-cluster.service %clean rm -rf %{buildroot} @@ -87,17 +87,9 @@ package is required as well. %post -n gfs2-utils /sbin/chkconfig --add gfs2 -%preun -n gfs2-utils -if [ "$1" = 0 ]; then - /sbin/service gfs2 stop >/dev/null 2>&1 - /sbin/chkconfig --del gfs2 -fi -exit 0 - %files -n gfs2-utils %defattr(-,root,root,-) %doc doc/COPYING.* doc/COPYRIGHT doc/README.licence doc/*.txt -%{_sysconfdir}/rc.d/init.d/gfs2 /sbin/* %{_sbindir}/gfs2_* %{_sbindir}/tunegfs2 @@ -110,6 +102,12 @@ Summary: Cluster daemons for GFS2 Requires(post): chkconfig Requires(preun): initscripts Requires(preun): chkconfig +# SysVinit to Systemd migration bits taken from +# https://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Systemd +Requires(post): systemd-units +Requires(preun): systemd-units +Requires(postun): systemd-units +Requires(post): systemd-sysv Requires: corosync >= 1.2.7-1 Requires: openais >= 1.1.2-1 Requires: cman >= 3.1.0-1 @@ -123,22 +121,50 @@ required to use GFS2 in a cluster. Virtually every user of GFS2 will need to install this package. %post -n gfs2-cluster -/sbin/chkconfig --add gfs2-cluster +if [ $1 -eq 1 ] ; then + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi %preun -n gfs2-cluster -if [ "$1" = 0 ]; then - /sbin/service stop gfs2-cluster >/dev/null 2>&1 - /sbin/chkconfig --del gfs2-cluster +if [ $1 -eq 0 ] ; then + # Package removal, not upgrade + /bin/systemctl --no-reload disable gfs2-cluster.service > /dev/null 2>&1 || : + /bin/systemctl stop gfs2-cluster.service > /dev/null 2>&1 || : fi +%postun -n gfs2-cluster +/bin/systemctl daemon-reload >/dev/null 2>&1 || : +if [ $1 -ge 1 ] ; then + # Package upgrade, not uninstall + /bin/systemctl try-restart gfs2-cluster.service >/dev/null 2>&1 || : +fi + +%triggerun -- gfs2-cluster < 3.1.3-1 +# Save the current service runlevel info +# User must manually run systemd-sysv-convert --apply httpd +# to migrate them to systemd targets +/usr/bin/systemd-sysv-convert --save gfs2-cluster >/dev/null 2>&1 ||: + +# Run these because the SysV package being removed won't do them +/sbin/chkconfig --del gfs2-cluster >/dev/null 2>&1 || : +/bin/systemctl try-restart gfs2-cluster.service >/dev/null 2>&1 || : + %files -n gfs2-cluster %defattr(-,root,root,-) %doc doc/COPYING.* doc/COPYRIGHT doc/README.licence -%{_sysconfdir}/rc.d/init.d/gfs2-cluster +%{_unitdir}/gfs2-cluster.service %{_sbindir}/gfs_control* %{_mandir}/man8/gfs_control* %changelog +* Thu Dec 15 2011 Andrew Price - 3.1.3-1 +- New upstream release + Bugfixes and improvements to fsck.gfs2 + Fixes various other bugs + Improve strings and translation support +- Adds gfs2-cluster systemd unit +- Removes gfs2* init scripts + * Wed Jul 06 2011 Andrew Price - 3.1.2-1 - New upstream release Fixes several bugs diff --git a/sources b/sources index cc1d034..b183847 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -79d6bdc903d4e14d688ffd1871a6ede0 gfs2-utils-3.1.2.tar.gz +9b385f7ddc49f18268f9b59866319e8b gfs2-utils-3.1.3.tar.gz From db79e764dcca72224d1d39146a458ea28eda5e94 Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Thu, 12 Jan 2012 21:17:58 -0600 Subject: [PATCH 09/75] - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild --- gfs2-utils.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gfs2-utils.spec b/gfs2-utils.spec index f8eb702..e2eab0b 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -12,7 +12,7 @@ Name: gfs2-utils Version: 3.1.3 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv2+ and LGPLv2+ Group: System Environment/Kernel Summary: Utilities for managing the global filesystem (GFS2) @@ -157,6 +157,9 @@ fi %{_mandir}/man8/gfs_control* %changelog +* Fri Jan 13 2012 Fedora Release Engineering - 3.1.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + * Thu Dec 15 2011 Andrew Price - 3.1.3-1 - New upstream release Bugfixes and improvements to fsck.gfs2 From 0dd279c6df581812d18ac53db34b35f3f06616f3 Mon Sep 17 00:00:00 2001 From: Andrew Price Date: Wed, 1 Feb 2012 17:13:39 +0000 Subject: [PATCH 10/75] New upstream release 3.1.4 * Wed Feb 01 2012 Andrew Price - 3.1.4-1 - New upstream release Adds gfs2_lockgather script - Remove gfs2-cluster (commented out for now) - Remove dependency on corosynclib-devel and systemd-units - Add rawhide_transition.patch to stop gfs_controld from building --- .gitignore | 1 + gfs2-utils.spec | 128 +++++++++++++++++++++------------------ rawhide_transition.patch | 29 +++++++++ sources | 2 +- 4 files changed, 99 insertions(+), 61 deletions(-) create mode 100644 rawhide_transition.patch diff --git a/.gitignore b/.gitignore index b61ed1e..ca44801 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ /gfs2-utils-3.1.1.tar.gz /gfs2-utils-3.1.2.tar.gz /gfs2-utils-3.1.3.tar.gz +/gfs2-utils-3.1.4.tar.gz diff --git a/gfs2-utils.spec b/gfs2-utils.spec index e2eab0b..e1d8957 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -1,7 +1,7 @@ ############################################################################### ############################################################################### ## -## Copyright (C) 2004-2010 Red Hat, Inc. All rights reserved. +## Copyright (C) 2004-2012 Red Hat, Inc. All rights reserved. ## ## This copyrighted material is made available to anyone wishing to use, ## modify, copy, or redistribute it subject to the terms and conditions @@ -11,8 +11,8 @@ ############################################################################### Name: gfs2-utils -Version: 3.1.3 -Release: 2%{?dist} +Version: 3.1.4 +Release: 1%{?dist} License: GPLv2+ and LGPLv2+ Group: System Environment/Kernel Summary: Utilities for managing the global filesystem (GFS2) @@ -25,13 +25,13 @@ BuildRequires: ncurses-devel BuildRequires: glibc-kernheaders BuildRequires: automake BuildRequires: perl -BuildRequires: corosynclib-devel -BuildRequires: clusterlib-devel -BuildRequires: openaislib-devel +#BuildRequires: corosynclib-devel +#BuildRequires: clusterlib-devel +#BuildRequires: openaislib-devel BuildRequires: libtool BuildRequires: zlib-devel BuildRequires: gettext-devel -BuildRequires: systemd-units +#BuildRequires: systemd-units URL: https://fedorahosted.org/cluster/wiki/HomePage # The source for this package was pulled from the upstream git tree. @@ -41,11 +41,13 @@ URL: https://fedorahosted.org/cluster/wiki/HomePage # ./make-tarball.sh # Source0: gfs2-utils-%{version}.tar.gz +Patch0: rawhide_transition.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) %prep %setup -q -n gfs2-utils +%patch0 -p1 -b .rawhide_transition %build ./autogen.sh @@ -69,7 +71,10 @@ rm -f %{buildroot}/usr/sbin/gfs2_tool rm -f %{buildroot}%{_mandir}/man8/mount.gfs2.8 rm -f %{buildroot}/sbin/mount.gfs2 # End of temporary section (until mount.gfs2 removed from source) -install -D -m 0644 ./gfs2/system/gfs2-cluster.service %{buildroot}%{_unitdir}/gfs2-cluster.service +# Remove gfs_control and the gfs_controld man page (temporary) +rm -f %{buildroot}%{_mandir}/man8/gfs_controld.8 +rm -f %{buildroot}/usr/sbin/gfs_control +#install -D -m 0644 ./gfs2/system/gfs2-cluster.service %{buildroot}%{_unitdir}/gfs2-cluster.service %clean rm -rf %{buildroot} @@ -80,10 +85,6 @@ The gfs2-utils package contains a number of utilities for creating, checking, modifying, and correcting any inconsistencies in GFS2 filesystems. -This package can be used standalone for single node GFS2 filesystems, -but for multi-node filesystems (i.e. the normal case), the gfs2-cluster -package is required as well. - %post -n gfs2-utils /sbin/chkconfig --add gfs2 @@ -96,67 +97,74 @@ package is required as well. %{_mandir}/man8/*gfs2* %{_mandir}/man5/* -%package -n gfs2-cluster -Group: System Environment/Base -Summary: Cluster daemons for GFS2 -Requires(post): chkconfig -Requires(preun): initscripts -Requires(preun): chkconfig -# SysVinit to Systemd migration bits taken from -# https://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Systemd -Requires(post): systemd-units -Requires(preun): systemd-units -Requires(postun): systemd-units -Requires(post): systemd-sysv -Requires: corosync >= 1.2.7-1 -Requires: openais >= 1.1.2-1 -Requires: cman >= 3.1.0-1 -Obsoletes: cman < 3.1.0 -Obsoletes: gfs-pcmk < 3.1.0 -Provides: gfs-pcmk = %{version} +#%package -n gfs2-cluster +#Group: System Environment/Base +#Summary: Cluster daemons for GFS2 +#Requires(post): chkconfig +#Requires(preun): initscripts +#Requires(preun): chkconfig +## SysVinit to Systemd migration bits taken from +## https://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Systemd +#Requires(post): systemd-units +#Requires(preun): systemd-units +#Requires(postun): systemd-units +#Requires(post): systemd-sysv +#Requires: corosync >= 1.2.7-1 +#Requires: openais >= 1.1.2-1 +#Requires: cman >= 3.1.0-1 +#Obsoletes: cman < 3.1.0 +#Obsoletes: gfs-pcmk < 3.1.0 +#Provides: gfs-pcmk = %{version} -%description -n gfs2-cluster -This package contains the gfs_controld daemon and associated tools -required to use GFS2 in a cluster. Virtually every user of GFS2 will -need to install this package. +#%description -n gfs2-cluster +#This package contains the gfs_controld daemon and associated tools +#required to use GFS2 in a cluster. Virtually every user of GFS2 will +#need to install this package. -%post -n gfs2-cluster -if [ $1 -eq 1 ] ; then - /bin/systemctl daemon-reload >/dev/null 2>&1 || : -fi +#%post -n gfs2-cluster +#if [ $1 -eq 1 ] ; then +# /bin/systemctl daemon-reload >/dev/null 2>&1 || : +#fi -%preun -n gfs2-cluster -if [ $1 -eq 0 ] ; then - # Package removal, not upgrade - /bin/systemctl --no-reload disable gfs2-cluster.service > /dev/null 2>&1 || : - /bin/systemctl stop gfs2-cluster.service > /dev/null 2>&1 || : -fi +#%preun -n gfs2-cluster +#if [ $1 -eq 0 ] ; then +# # Package removal, not upgrade +# /bin/systemctl --no-reload disable gfs2-cluster.service > /dev/null 2>&1 || : +# /bin/systemctl stop gfs2-cluster.service > /dev/null 2>&1 || : +#fi -%postun -n gfs2-cluster -/bin/systemctl daemon-reload >/dev/null 2>&1 || : -if [ $1 -ge 1 ] ; then - # Package upgrade, not uninstall - /bin/systemctl try-restart gfs2-cluster.service >/dev/null 2>&1 || : -fi +#%postun -n gfs2-cluster +#/bin/systemctl daemon-reload >/dev/null 2>&1 || : +#if [ $1 -ge 1 ] ; then +# # Package upgrade, not uninstall +# /bin/systemctl try-restart gfs2-cluster.service >/dev/null 2>&1 || : +#fi -%triggerun -- gfs2-cluster < 3.1.3-1 +#%triggerun -- gfs2-cluster < 3.1.3-1 # Save the current service runlevel info # User must manually run systemd-sysv-convert --apply httpd # to migrate them to systemd targets -/usr/bin/systemd-sysv-convert --save gfs2-cluster >/dev/null 2>&1 ||: +#/usr/bin/systemd-sysv-convert --save gfs2-cluster >/dev/null 2>&1 ||: # Run these because the SysV package being removed won't do them -/sbin/chkconfig --del gfs2-cluster >/dev/null 2>&1 || : -/bin/systemctl try-restart gfs2-cluster.service >/dev/null 2>&1 || : +#/sbin/chkconfig --del gfs2-cluster >/dev/null 2>&1 || : +#/bin/systemctl try-restart gfs2-cluster.service >/dev/null 2>&1 || : -%files -n gfs2-cluster -%defattr(-,root,root,-) -%doc doc/COPYING.* doc/COPYRIGHT doc/README.licence -%{_unitdir}/gfs2-cluster.service -%{_sbindir}/gfs_control* -%{_mandir}/man8/gfs_control* +#%files -n gfs2-cluster +#%defattr(-,root,root,-) +#%doc doc/COPYING.* doc/COPYRIGHT doc/README.licence +#%{_unitdir}/gfs2-cluster.service +#%{_sbindir}/gfs_control* +#%{_mandir}/man8/gfs_control* %changelog +* Wed Feb 01 2012 Andrew Price - 3.1.4-1 +- New upstream release + Adds gfs2_lockgather script +- Remove gfs2-cluster (commented out for now) +- Remove dependency on corosynclib-devel and systemd-units +- Add rawhide_transition.patch to stop gfs_controld from building + * Fri Jan 13 2012 Fedora Release Engineering - 3.1.3-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild diff --git a/rawhide_transition.patch b/rawhide_transition.patch new file mode 100644 index 0000000..d9bef39 --- /dev/null +++ b/rawhide_transition.patch @@ -0,0 +1,29 @@ +diff --git a/configure.ac b/configure.ac +index 3fe1a49..0637096 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -114,15 +114,6 @@ AC_ARG_WITH([kernel], + + KERNEL_CPPFLAGS="-I$KERNEL_DIR/include" + +-PKG_CHECK_MODULES([corosync],[corosync]) +-PKG_CHECK_MODULES([cpg],[libcpg]) +-PKG_CHECK_MODULES([sackpt],[libSaCkpt]) +-PKG_CHECK_MODULES([logt],[liblogthread]) +-PKG_CHECK_MODULES([ccs],[libccs]) +-PKG_CHECK_MODULES([cfg],[libcfg]) +-PKG_CHECK_MODULES([fenced],[libfenced]) +-PKG_CHECK_MODULES([dlmcontrol],[libdlmcontrol]) +-PKG_CHECK_MODULES([quorum],[libquorum]) + PKG_CHECK_MODULES([zlib],[zlib]) + + # old versions of ncurses don't ship pkg-config files +diff --git a/group/Makefile.am b/group/Makefile.am +index 5b7d0f8..20282f0 100644 +--- a/group/Makefile.am ++++ b/group/Makefile.am +@@ -1,3 +1,3 @@ + MAINTAINERCLEANFILES = Makefile.in + +-SUBDIRS = libgfscontrol gfs_control gfs_controld man include ++SUBDIRS = libgfscontrol gfs_control man include diff --git a/sources b/sources index b183847..73a8f0e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -9b385f7ddc49f18268f9b59866319e8b gfs2-utils-3.1.3.tar.gz +13628906c6e4a230c79ef6c819680570 gfs2-utils-3.1.4.tar.gz From a7f5a5cf750712a3297f5bd93d34a5494f8a2495 Mon Sep 17 00:00:00 2001 From: "Fabio M. Di Nitto" Date: Thu, 2 Feb 2012 11:17:17 +0100 Subject: [PATCH 11/75] Obsolete gfs2-cluster on upgrades Signed-off-by: Fabio M. Di Nitto --- gfs2-utils.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gfs2-utils.spec b/gfs2-utils.spec index e1d8957..28170fb 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -12,7 +12,7 @@ Name: gfs2-utils Version: 3.1.4 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv2+ and LGPLv2+ Group: System Environment/Kernel Summary: Utilities for managing the global filesystem (GFS2) @@ -21,6 +21,7 @@ Requires(preun): initscripts Requires(preun): chkconfig Requires: ncurses Requires: file +Obsoletes: gfs2-cluster < %{version} BuildRequires: ncurses-devel BuildRequires: glibc-kernheaders BuildRequires: automake @@ -158,6 +159,9 @@ filesystems. #%{_mandir}/man8/gfs_control* %changelog +* Thu Feb 2 2012 Fabio M. Di Nitto - 3.1.4-2 +- make sure to Obsolete gfs2-cluster + * Wed Feb 01 2012 Andrew Price - 3.1.4-1 - New upstream release Adds gfs2_lockgather script From 816718309e9ccae52b935b80c8eba064392bb5a0 Mon Sep 17 00:00:00 2001 From: Andrew Price Date: Wed, 7 Mar 2012 17:59:44 +0000 Subject: [PATCH 12/75] Remove redundant postinstall scriptlet Signed-off-by: Andrew Price --- gfs2-utils.spec | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gfs2-utils.spec b/gfs2-utils.spec index 28170fb..acc68fe 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -12,7 +12,7 @@ Name: gfs2-utils Version: 3.1.4 -Release: 2%{?dist} +Release: 3%{?dist} License: GPLv2+ and LGPLv2+ Group: System Environment/Kernel Summary: Utilities for managing the global filesystem (GFS2) @@ -86,9 +86,6 @@ The gfs2-utils package contains a number of utilities for creating, checking, modifying, and correcting any inconsistencies in GFS2 filesystems. -%post -n gfs2-utils -/sbin/chkconfig --add gfs2 - %files -n gfs2-utils %defattr(-,root,root,-) %doc doc/COPYING.* doc/COPYRIGHT doc/README.licence doc/*.txt @@ -159,6 +156,9 @@ filesystems. #%{_mandir}/man8/gfs_control* %changelog +* Wed Mar 07 2012 Andrew Price - 3.1.4-3 +- Remove redundant postinstall scriptlet + * Thu Feb 2 2012 Fabio M. Di Nitto - 3.1.4-2 - make sure to Obsolete gfs2-cluster From cbcee53463aa2a94436550b4b8949b9cc1e119ce Mon Sep 17 00:00:00 2001 From: Andrew Price Date: Tue, 17 Apr 2012 15:00:49 +0100 Subject: [PATCH 13/75] - Remove commented-out sections - Clean up some lintian warnings Signed-off-by: Andrew Price --- gfs2-utils.spec | 75 +++++-------------------------------------------- 1 file changed, 7 insertions(+), 68 deletions(-) diff --git a/gfs2-utils.spec b/gfs2-utils.spec index acc68fe..8673f29 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -12,10 +12,10 @@ Name: gfs2-utils Version: 3.1.4 -Release: 3%{?dist} +Release: 4%{?dist} License: GPLv2+ and LGPLv2+ Group: System Environment/Kernel -Summary: Utilities for managing the global filesystem (GFS2) +Summary: Utilities for managing the global file system (GFS2) Requires(post): chkconfig Requires(preun): initscripts Requires(preun): chkconfig @@ -26,13 +26,9 @@ BuildRequires: ncurses-devel BuildRequires: glibc-kernheaders BuildRequires: automake BuildRequires: perl -#BuildRequires: corosynclib-devel -#BuildRequires: clusterlib-devel -#BuildRequires: openaislib-devel BuildRequires: libtool BuildRequires: zlib-devel BuildRequires: gettext-devel -#BuildRequires: systemd-units URL: https://fedorahosted.org/cluster/wiki/HomePage # The source for this package was pulled from the upstream git tree. @@ -75,7 +71,6 @@ rm -f %{buildroot}/sbin/mount.gfs2 # Remove gfs_control and the gfs_controld man page (temporary) rm -f %{buildroot}%{_mandir}/man8/gfs_controld.8 rm -f %{buildroot}/usr/sbin/gfs_control -#install -D -m 0644 ./gfs2/system/gfs2-cluster.service %{buildroot}%{_unitdir}/gfs2-cluster.service %clean rm -rf %{buildroot} @@ -84,7 +79,7 @@ rm -rf %{buildroot} %description -n gfs2-utils The gfs2-utils package contains a number of utilities for creating, checking, modifying, and correcting any inconsistencies in GFS2 -filesystems. +file systems. %files -n gfs2-utils %defattr(-,root,root,-) @@ -95,67 +90,11 @@ filesystems. %{_mandir}/man8/*gfs2* %{_mandir}/man5/* -#%package -n gfs2-cluster -#Group: System Environment/Base -#Summary: Cluster daemons for GFS2 -#Requires(post): chkconfig -#Requires(preun): initscripts -#Requires(preun): chkconfig -## SysVinit to Systemd migration bits taken from -## https://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Systemd -#Requires(post): systemd-units -#Requires(preun): systemd-units -#Requires(postun): systemd-units -#Requires(post): systemd-sysv -#Requires: corosync >= 1.2.7-1 -#Requires: openais >= 1.1.2-1 -#Requires: cman >= 3.1.0-1 -#Obsoletes: cman < 3.1.0 -#Obsoletes: gfs-pcmk < 3.1.0 -#Provides: gfs-pcmk = %{version} - -#%description -n gfs2-cluster -#This package contains the gfs_controld daemon and associated tools -#required to use GFS2 in a cluster. Virtually every user of GFS2 will -#need to install this package. - -#%post -n gfs2-cluster -#if [ $1 -eq 1 ] ; then -# /bin/systemctl daemon-reload >/dev/null 2>&1 || : -#fi - -#%preun -n gfs2-cluster -#if [ $1 -eq 0 ] ; then -# # Package removal, not upgrade -# /bin/systemctl --no-reload disable gfs2-cluster.service > /dev/null 2>&1 || : -# /bin/systemctl stop gfs2-cluster.service > /dev/null 2>&1 || : -#fi - -#%postun -n gfs2-cluster -#/bin/systemctl daemon-reload >/dev/null 2>&1 || : -#if [ $1 -ge 1 ] ; then -# # Package upgrade, not uninstall -# /bin/systemctl try-restart gfs2-cluster.service >/dev/null 2>&1 || : -#fi - -#%triggerun -- gfs2-cluster < 3.1.3-1 -# Save the current service runlevel info -# User must manually run systemd-sysv-convert --apply httpd -# to migrate them to systemd targets -#/usr/bin/systemd-sysv-convert --save gfs2-cluster >/dev/null 2>&1 ||: - -# Run these because the SysV package being removed won't do them -#/sbin/chkconfig --del gfs2-cluster >/dev/null 2>&1 || : -#/bin/systemctl try-restart gfs2-cluster.service >/dev/null 2>&1 || : - -#%files -n gfs2-cluster -#%defattr(-,root,root,-) -#%doc doc/COPYING.* doc/COPYRIGHT doc/README.licence -#%{_unitdir}/gfs2-cluster.service -#%{_sbindir}/gfs_control* -#%{_mandir}/man8/gfs_control* - %changelog +* Tue Apr 17 2012 Andrew Price - 3.1.4-4 +- Remove commented-out sections +- Clean up some lintian warnings + * Wed Mar 07 2012 Andrew Price - 3.1.4-3 - Remove redundant postinstall scriptlet From 89f841eed8d4b0615a527dff37d38f62d7aff7ca Mon Sep 17 00:00:00 2001 From: Andrew Price Date: Tue, 17 Apr 2012 16:05:17 +0100 Subject: [PATCH 14/75] Add dependency on kernel-modules-extra as per bz#811547 Signed-off-by: Andrew Price --- gfs2-utils.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gfs2-utils.spec b/gfs2-utils.spec index 8673f29..4f81f91 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -21,6 +21,7 @@ Requires(preun): initscripts Requires(preun): chkconfig Requires: ncurses Requires: file +Requires: kernel-modules-extra Obsoletes: gfs2-cluster < %{version} BuildRequires: ncurses-devel BuildRequires: glibc-kernheaders @@ -94,6 +95,7 @@ file systems. * Tue Apr 17 2012 Andrew Price - 3.1.4-4 - Remove commented-out sections - Clean up some lintian warnings +- Add dependency on kernel-modules-extra as per bz#811547 * Wed Mar 07 2012 Andrew Price - 3.1.4-3 - Remove redundant postinstall scriptlet From 47e4f6b5e621c3f2ad8ef6315c6b0b4aab832d01 Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Thu, 19 Jul 2012 00:07:06 -0500 Subject: [PATCH 15/75] - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild --- gfs2-utils.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gfs2-utils.spec b/gfs2-utils.spec index 4f81f91..cbff60c 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -12,7 +12,7 @@ Name: gfs2-utils Version: 3.1.4 -Release: 4%{?dist} +Release: 5%{?dist} License: GPLv2+ and LGPLv2+ Group: System Environment/Kernel Summary: Utilities for managing the global file system (GFS2) @@ -92,6 +92,9 @@ file systems. %{_mandir}/man5/* %changelog +* Thu Jul 19 2012 Fedora Release Engineering - 3.1.4-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + * Tue Apr 17 2012 Andrew Price - 3.1.4-4 - Remove commented-out sections - Clean up some lintian warnings From 5a9c469354f8e9d6d92c0d88908f9dba8999d370 Mon Sep 17 00:00:00 2001 From: Andrew Price Date: Tue, 14 Aug 2012 12:52:55 +0100 Subject: [PATCH 16/75] - Make the kernel-modules-extra requirement Fedora-specific Resolves bz#847955 --- gfs2-utils.spec | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gfs2-utils.spec b/gfs2-utils.spec index cbff60c..3f12aee 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -12,7 +12,7 @@ Name: gfs2-utils Version: 3.1.4 -Release: 5%{?dist} +Release: 6%{?dist} License: GPLv2+ and LGPLv2+ Group: System Environment/Kernel Summary: Utilities for managing the global file system (GFS2) @@ -21,7 +21,7 @@ Requires(preun): initscripts Requires(preun): chkconfig Requires: ncurses Requires: file -Requires: kernel-modules-extra +%{?fedora:Requires: kernel-modules-extra} Obsoletes: gfs2-cluster < %{version} BuildRequires: ncurses-devel BuildRequires: glibc-kernheaders @@ -92,6 +92,10 @@ file systems. %{_mandir}/man5/* %changelog +* Tue Aug 14 2012 Andrew Price - 3.1.4-6 +- Make the kernel-modules-extra requirement Fedora-specific + Resolves bz#847955 + * Thu Jul 19 2012 Fedora Release Engineering - 3.1.4-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild From 020dbfae5149af07347fabcc28375d7bcbafca1e Mon Sep 17 00:00:00 2001 From: Andrew Price Date: Tue, 13 Nov 2012 10:22:40 +0000 Subject: [PATCH 17/75] - New upstream release (3.1.5) Removes mount.gfs2, gfs2_tool, gfs2_quota - Remove rawhide_transition.patch - now obsolete - Update BuildRequires: Change glibc-kernheaders to kernel-headers Add bison and flex - Provide a valid url for Source0 - Add fix_build_on_rawhide.patch to fix a circular dep introduced in bison 2.6, and a make -j race between libgfs2 and gfs2l --- .gitignore | 1 + fix_build_on_rawhide.patch | 25 +++++++++++++++++++++++++ gfs2-utils.spec | 38 +++++++++++++++++++------------------- rawhide_transition.patch | 29 ----------------------------- sources | 2 +- 5 files changed, 46 insertions(+), 49 deletions(-) create mode 100644 fix_build_on_rawhide.patch delete mode 100644 rawhide_transition.patch diff --git a/.gitignore b/.gitignore index ca44801..1b58446 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ /gfs2-utils-3.1.2.tar.gz /gfs2-utils-3.1.3.tar.gz /gfs2-utils-3.1.4.tar.gz +/gfs2-utils-3.1.5.tar.gz diff --git a/fix_build_on_rawhide.patch b/fix_build_on_rawhide.patch new file mode 100644 index 0000000..185c0b1 --- /dev/null +++ b/fix_build_on_rawhide.patch @@ -0,0 +1,25 @@ +diff --git a/gfs2/libgfs2/Makefile.am b/gfs2/libgfs2/Makefile.am +index 9c4e96b..b57f6d9 100644 +--- a/gfs2/libgfs2/Makefile.am ++++ b/gfs2/libgfs2/Makefile.am +@@ -23,7 +23,7 @@ libgfs2_la_CPPFLAGS = -D_FILE_OFFSET_BITS=64 \ + + gfs2l_SOURCES = gfs2l.c + gfs2l_CPPFLAGS = -I$(top_srcdir)/gfs2/include +-gfs2l_LDADD = $(top_builddir)/gfs2/libgfs2/libgfs2.la ++gfs2l_LDADD = libgfs2.la + + # Autotools can't handle header files output by flex so we have to generate it manually + lexer.h: lexer.l +diff --git a/gfs2/libgfs2/parser.y b/gfs2/libgfs2/parser.y +index 084d15e..0321d74 100644 +--- a/gfs2/libgfs2/parser.y ++++ b/gfs2/libgfs2/parser.y +@@ -1,3 +1,7 @@ ++%code requires { ++/* Required to break a circular dependency introduced with bison 2.6 */ ++typedef void* yyscan_t; ++} + %code top { + #include + #include "lang.h" diff --git a/gfs2-utils.spec b/gfs2-utils.spec index 3f12aee..bf278c4 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -11,8 +11,8 @@ ############################################################################### Name: gfs2-utils -Version: 3.1.4 -Release: 6%{?dist} +Version: 3.1.5 +Release: 1%{?dist} License: GPLv2+ and LGPLv2+ Group: System Environment/Kernel Summary: Utilities for managing the global file system (GFS2) @@ -24,12 +24,14 @@ Requires: file %{?fedora:Requires: kernel-modules-extra} Obsoletes: gfs2-cluster < %{version} BuildRequires: ncurses-devel -BuildRequires: glibc-kernheaders +BuildRequires: kernel-headers BuildRequires: automake BuildRequires: perl BuildRequires: libtool BuildRequires: zlib-devel BuildRequires: gettext-devel +BuildRequires: bison +BuildRequires: flex URL: https://fedorahosted.org/cluster/wiki/HomePage # The source for this package was pulled from the upstream git tree. @@ -38,14 +40,14 @@ URL: https://fedorahosted.org/cluster/wiki/HomePage # cd gfs2-utils # ./make-tarball.sh # -Source0: gfs2-utils-%{version}.tar.gz -Patch0: rawhide_transition.patch +Source0: https://fedorahosted.org/released/gfs2-utils/gfs2-utils-%{version}.tar.gz +Patch0: fix_build_on_rawhide.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) %prep %setup -q -n gfs2-utils -%patch0 -p1 -b .rawhide_transition +%patch0 -p1 -b .fix_build_on_rawhide %build ./autogen.sh @@ -56,19 +58,6 @@ make %{_smp_mflags} rm -rf %{buildroot} # gfs and group installed separately to avoid pulling in the docs make -C gfs2 install DESTDIR=%{buildroot} -make -C group install DESTDIR=%{buildroot} -# Remove gfs2_quota and its man page (temporary) -rm -f %{buildroot}%{_mandir}/man8/gfs2_quota.8 -rm -f %{buildroot}/usr/sbin/gfs2_quota -# End of temporary section (until gfs2_quota removed from source) -# Remove gfs2_tool and its man page (temporary) -rm -f %{buildroot}%{_mandir}/man8/gfs2_tool.8 -rm -f %{buildroot}/usr/sbin/gfs2_tool -# End of temporary section (until gfs2_tool removed from source) -# Remove mount.gfs2 and its man page (temporary) -rm -f %{buildroot}%{_mandir}/man8/mount.gfs2.8 -rm -f %{buildroot}/sbin/mount.gfs2 -# End of temporary section (until mount.gfs2 removed from source) # Remove gfs_control and the gfs_controld man page (temporary) rm -f %{buildroot}%{_mandir}/man8/gfs_controld.8 rm -f %{buildroot}/usr/sbin/gfs_control @@ -92,6 +81,17 @@ file systems. %{_mandir}/man5/* %changelog +* Tue Nov 13 2012 Andrew Price - 3.1.5-1 +- New upstream release + Removes mount.gfs2, gfs2_tool, gfs2_quota +- Remove rawhide_transition.patch - now obsolete +- Update BuildRequires: + Change glibc-kernheaders to kernel-headers + Add bison and flex +- Provide a valid url for Source0 +- Add fix_build_on_rawhide.patch to fix a circular dep introduced in + bison 2.6, and a make -j race between libgfs2 and gfs2l + * Tue Aug 14 2012 Andrew Price - 3.1.4-6 - Make the kernel-modules-extra requirement Fedora-specific Resolves bz#847955 diff --git a/rawhide_transition.patch b/rawhide_transition.patch deleted file mode 100644 index d9bef39..0000000 --- a/rawhide_transition.patch +++ /dev/null @@ -1,29 +0,0 @@ -diff --git a/configure.ac b/configure.ac -index 3fe1a49..0637096 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -114,15 +114,6 @@ AC_ARG_WITH([kernel], - - KERNEL_CPPFLAGS="-I$KERNEL_DIR/include" - --PKG_CHECK_MODULES([corosync],[corosync]) --PKG_CHECK_MODULES([cpg],[libcpg]) --PKG_CHECK_MODULES([sackpt],[libSaCkpt]) --PKG_CHECK_MODULES([logt],[liblogthread]) --PKG_CHECK_MODULES([ccs],[libccs]) --PKG_CHECK_MODULES([cfg],[libcfg]) --PKG_CHECK_MODULES([fenced],[libfenced]) --PKG_CHECK_MODULES([dlmcontrol],[libdlmcontrol]) --PKG_CHECK_MODULES([quorum],[libquorum]) - PKG_CHECK_MODULES([zlib],[zlib]) - - # old versions of ncurses don't ship pkg-config files -diff --git a/group/Makefile.am b/group/Makefile.am -index 5b7d0f8..20282f0 100644 ---- a/group/Makefile.am -+++ b/group/Makefile.am -@@ -1,3 +1,3 @@ - MAINTAINERCLEANFILES = Makefile.in - --SUBDIRS = libgfscontrol gfs_control gfs_controld man include -+SUBDIRS = libgfscontrol gfs_control man include diff --git a/sources b/sources index 73a8f0e..8e048f0 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -13628906c6e4a230c79ef6c819680570 gfs2-utils-3.1.4.tar.gz +d65ec52145cc358a09603a9ec905ba24 gfs2-utils-3.1.5.tar.gz From 8efdaf8a03e5c1032ed7bab10d236ff4a6e6f4a5 Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Wed, 13 Feb 2013 16:49:44 -0600 Subject: [PATCH 18/75] - Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild --- gfs2-utils.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gfs2-utils.spec b/gfs2-utils.spec index bf278c4..9ce3544 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -12,7 +12,7 @@ Name: gfs2-utils Version: 3.1.5 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv2+ and LGPLv2+ Group: System Environment/Kernel Summary: Utilities for managing the global file system (GFS2) @@ -81,6 +81,9 @@ file systems. %{_mandir}/man5/* %changelog +* Wed Feb 13 2013 Fedora Release Engineering - 3.1.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + * Tue Nov 13 2012 Andrew Price - 3.1.5-1 - New upstream release Removes mount.gfs2, gfs2_tool, gfs2_quota From 0122cb4b2e8836d8bb96b8d5d9bc218f02959242 Mon Sep 17 00:00:00 2001 From: Andrew Price Date: Wed, 24 Jul 2013 11:56:29 +0100 Subject: [PATCH 19/75] * Wed Jul 24 2013 Andrew Price - 3.1.6-1 - New upstream release - Drop 'file' requirement - mkfs.gfs2 now uses libblkid instead - Drop 'ncurses' requirement - dependency is added automatically - Drop requires chkconfig and initscripts - no longer installs daemons - Drop fix_build_on_rawhide.patch - upstream - Add build req on libblkid-devel --- .gitignore | 1 + fix_build_on_rawhide.patch | 25 ------------------------- gfs2-utils.spec | 25 +++++++++++-------------- sources | 2 +- 4 files changed, 13 insertions(+), 40 deletions(-) delete mode 100644 fix_build_on_rawhide.patch diff --git a/.gitignore b/.gitignore index 1b58446..02bd2bd 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ /gfs2-utils-3.1.3.tar.gz /gfs2-utils-3.1.4.tar.gz /gfs2-utils-3.1.5.tar.gz +/gfs2-utils-3.1.6.tar.gz diff --git a/fix_build_on_rawhide.patch b/fix_build_on_rawhide.patch deleted file mode 100644 index 185c0b1..0000000 --- a/fix_build_on_rawhide.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff --git a/gfs2/libgfs2/Makefile.am b/gfs2/libgfs2/Makefile.am -index 9c4e96b..b57f6d9 100644 ---- a/gfs2/libgfs2/Makefile.am -+++ b/gfs2/libgfs2/Makefile.am -@@ -23,7 +23,7 @@ libgfs2_la_CPPFLAGS = -D_FILE_OFFSET_BITS=64 \ - - gfs2l_SOURCES = gfs2l.c - gfs2l_CPPFLAGS = -I$(top_srcdir)/gfs2/include --gfs2l_LDADD = $(top_builddir)/gfs2/libgfs2/libgfs2.la -+gfs2l_LDADD = libgfs2.la - - # Autotools can't handle header files output by flex so we have to generate it manually - lexer.h: lexer.l -diff --git a/gfs2/libgfs2/parser.y b/gfs2/libgfs2/parser.y -index 084d15e..0321d74 100644 ---- a/gfs2/libgfs2/parser.y -+++ b/gfs2/libgfs2/parser.y -@@ -1,3 +1,7 @@ -+%code requires { -+/* Required to break a circular dependency introduced with bison 2.6 */ -+typedef void* yyscan_t; -+} - %code top { - #include - #include "lang.h" diff --git a/gfs2-utils.spec b/gfs2-utils.spec index 9ce3544..313671c 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -11,16 +11,11 @@ ############################################################################### Name: gfs2-utils -Version: 3.1.5 -Release: 2%{?dist} +Version: 3.1.6 +Release: 1%{?dist} License: GPLv2+ and LGPLv2+ Group: System Environment/Kernel Summary: Utilities for managing the global file system (GFS2) -Requires(post): chkconfig -Requires(preun): initscripts -Requires(preun): chkconfig -Requires: ncurses -Requires: file %{?fedora:Requires: kernel-modules-extra} Obsoletes: gfs2-cluster < %{version} BuildRequires: ncurses-devel @@ -32,6 +27,7 @@ BuildRequires: zlib-devel BuildRequires: gettext-devel BuildRequires: bison BuildRequires: flex +BuildRequires: libblkid-devel URL: https://fedorahosted.org/cluster/wiki/HomePage # The source for this package was pulled from the upstream git tree. @@ -41,13 +37,11 @@ URL: https://fedorahosted.org/cluster/wiki/HomePage # ./make-tarball.sh # Source0: https://fedorahosted.org/released/gfs2-utils/gfs2-utils-%{version}.tar.gz -Patch0: fix_build_on_rawhide.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) %prep %setup -q -n gfs2-utils -%patch0 -p1 -b .fix_build_on_rawhide %build ./autogen.sh @@ -56,16 +50,11 @@ make %{_smp_mflags} %install rm -rf %{buildroot} -# gfs and group installed separately to avoid pulling in the docs make -C gfs2 install DESTDIR=%{buildroot} -# Remove gfs_control and the gfs_controld man page (temporary) -rm -f %{buildroot}%{_mandir}/man8/gfs_controld.8 -rm -f %{buildroot}/usr/sbin/gfs_control %clean rm -rf %{buildroot} - %description -n gfs2-utils The gfs2-utils package contains a number of utilities for creating, checking, modifying, and correcting any inconsistencies in GFS2 @@ -81,6 +70,14 @@ file systems. %{_mandir}/man5/* %changelog +* Wed Jul 24 2013 Andrew Price - 3.1.6-1 +- New upstream release +- Drop 'file' requirement - mkfs.gfs2 now uses libblkid instead +- Drop 'ncurses' requirement - dependency is added automatically +- Drop requires chkconfig and initscripts - no longer installs daemons +- Drop fix_build_on_rawhide.patch - upstream +- Add build req on libblkid-devel + * Wed Feb 13 2013 Fedora Release Engineering - 3.1.5-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild diff --git a/sources b/sources index 8e048f0..f4312d3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -d65ec52145cc358a09603a9ec905ba24 gfs2-utils-3.1.5.tar.gz +9d47c272298c62868dd49c7b1f4bcefc gfs2-utils-3.1.6.tar.gz From 6558176374a87c79f8c77066d597b24520c60d3a Mon Sep 17 00:00:00 2001 From: Andrew Price Date: Mon, 29 Jul 2013 10:28:06 +0100 Subject: [PATCH 20/75] * Mon Jul 29 2013 Andrew Price - 3.1.6-2 - Don't install gfs2_lockcapture and gfs2_trace Resolves: rhbz#987019 - Run test suite after build (requires check-devel build req) - Install both of the READMEs into doc/ --- gfs2-utils.spec | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/gfs2-utils.spec b/gfs2-utils.spec index 313671c..f056743 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -1,7 +1,7 @@ ############################################################################### ############################################################################### ## -## Copyright (C) 2004-2012 Red Hat, Inc. All rights reserved. +## Copyright (C) 2004-2013 Red Hat, Inc. All rights reserved. ## ## This copyrighted material is made available to anyone wishing to use, ## modify, copy, or redistribute it subject to the terms and conditions @@ -12,7 +12,7 @@ Name: gfs2-utils Version: 3.1.6 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv2+ and LGPLv2+ Group: System Environment/Kernel Summary: Utilities for managing the global file system (GFS2) @@ -28,6 +28,7 @@ BuildRequires: gettext-devel BuildRequires: bison BuildRequires: flex BuildRequires: libblkid-devel +BuildRequires: check-devel URL: https://fedorahosted.org/cluster/wiki/HomePage # The source for this package was pulled from the upstream git tree. @@ -48,9 +49,17 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) %configure make %{_smp_mflags} +%check +make check + %install rm -rf %{buildroot} make -C gfs2 install DESTDIR=%{buildroot} +# Don't ship gfs2_{trace,lockcapture} in this package +rm -f %{buildroot}/sbin/gfs2_trace +rm -f %{buildroot}/sbin/gfs2_lockcapture +rm -f %{buildroot}%{_mandir}/man8/gfs2_trace.8 +rm -f %{buildroot}%{_mandir}/man8/gfs2_lockcapture.8 %clean rm -rf %{buildroot} @@ -62,7 +71,7 @@ file systems. %files -n gfs2-utils %defattr(-,root,root,-) -%doc doc/COPYING.* doc/COPYRIGHT doc/README.licence doc/*.txt +%doc doc/COPYING.* doc/COPYRIGHT doc/README.* doc/*.txt /sbin/* %{_sbindir}/gfs2_* %{_sbindir}/tunegfs2 @@ -70,6 +79,12 @@ file systems. %{_mandir}/man5/* %changelog +* Mon Jul 29 2013 Andrew Price - 3.1.6-2 +- Don't install gfs2_lockcapture and gfs2_trace + Resolves: rhbz#987019 +- Run test suite after build (requires check-devel build req) +- Install both of the READMEs into doc/ + * Wed Jul 24 2013 Andrew Price - 3.1.6-1 - New upstream release - Drop 'file' requirement - mkfs.gfs2 now uses libblkid instead From e64a4894339bbdd5b3e47faae5fb70ab1c4e9f5f Mon Sep 17 00:00:00 2001 From: Andrew Price Date: Wed, 21 Aug 2013 12:09:46 +0100 Subject: [PATCH 21/75] * Wed Aug 21 2013 Andrew Price - 3.1.6-3 - Install utils into /usr/sbin instead of /sbin Resolves bz#996539 --- gfs2-utils.spec | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/gfs2-utils.spec b/gfs2-utils.spec index f056743..c38c586 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -12,7 +12,7 @@ Name: gfs2-utils Version: 3.1.6 -Release: 2%{?dist} +Release: 3%{?dist} License: GPLv2+ and LGPLv2+ Group: System Environment/Kernel Summary: Utilities for managing the global file system (GFS2) @@ -60,6 +60,11 @@ rm -f %{buildroot}/sbin/gfs2_trace rm -f %{buildroot}/sbin/gfs2_lockcapture rm -f %{buildroot}%{_mandir}/man8/gfs2_trace.8 rm -f %{buildroot}%{_mandir}/man8/gfs2_lockcapture.8 +# Install into /usr/sbin per UsrMove +mv %{buildroot}/sbin/fsck.gfs2 %{buildroot}/usr/sbin/ +mv %{buildroot}/sbin/mkfs.gfs2 %{buildroot}/usr/sbin/ +mv %{buildroot}/sbin/gfs2_grow %{buildroot}/usr/sbin/ +mv %{buildroot}/sbin/gfs2_jadd %{buildroot}/usr/sbin/ %clean rm -rf %{buildroot} @@ -72,13 +77,21 @@ file systems. %files -n gfs2-utils %defattr(-,root,root,-) %doc doc/COPYING.* doc/COPYRIGHT doc/README.* doc/*.txt -/sbin/* -%{_sbindir}/gfs2_* +%{_sbindir}/fsck.gfs2 +%{_sbindir}/gfs2_grow +%{_sbindir}/gfs2_jadd +%{_sbindir}/mkfs.gfs2 +%{_sbindir}/gfs2_convert +%{_sbindir}/gfs2_edit %{_sbindir}/tunegfs2 %{_mandir}/man8/*gfs2* %{_mandir}/man5/* %changelog +* Wed Aug 21 2013 Andrew Price - 3.1.6-3 +- Install utils into /usr/sbin instead of /sbin + Resolves: rhbz#996539 + * Mon Jul 29 2013 Andrew Price - 3.1.6-2 - Don't install gfs2_lockcapture and gfs2_trace Resolves: rhbz#987019 From 662063ea9fa89188015c6fe4bc24004260e73500 Mon Sep 17 00:00:00 2001 From: Andrew Price Date: Tue, 17 Sep 2013 13:37:12 +0100 Subject: [PATCH 22/75] * Tue Sep 17 2013 Andrew Price - 3.1.6-4 - Don't use README.* for docs (it can pick up some patch files) --- gfs2-utils.spec | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gfs2-utils.spec b/gfs2-utils.spec index c38c586..af85a21 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -12,7 +12,7 @@ Name: gfs2-utils Version: 3.1.6 -Release: 3%{?dist} +Release: 4%{?dist} License: GPLv2+ and LGPLv2+ Group: System Environment/Kernel Summary: Utilities for managing the global file system (GFS2) @@ -76,7 +76,8 @@ file systems. %files -n gfs2-utils %defattr(-,root,root,-) -%doc doc/COPYING.* doc/COPYRIGHT doc/README.* doc/*.txt +%doc doc/COPYING.* doc/COPYRIGHT doc/*.txt +%doc doc/README.contributing doc/README.licence %{_sbindir}/fsck.gfs2 %{_sbindir}/gfs2_grow %{_sbindir}/gfs2_jadd @@ -88,6 +89,9 @@ file systems. %{_mandir}/man5/* %changelog +* Tue Sep 17 2013 Andrew Price - 3.1.6-4 +- Don't use README.* for docs (it can pick up some patch files) + * Wed Aug 21 2013 Andrew Price - 3.1.6-3 - Install utils into /usr/sbin instead of /sbin Resolves: rhbz#996539 From 6b1bb66b528a40d696330a1a64d9b0040c7d87e1 Mon Sep 17 00:00:00 2001 From: Andrew Price Date: Fri, 4 Oct 2013 16:10:40 +0100 Subject: [PATCH 23/75] * Fri Oct 04 2013 Andrew Price - 3.1.6-5 - Suppress req on kernel-modules-extra for ARM arches. --- gfs2-utils.spec | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gfs2-utils.spec b/gfs2-utils.spec index af85a21..d7ea717 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -12,11 +12,13 @@ Name: gfs2-utils Version: 3.1.6 -Release: 4%{?dist} +Release: 5%{?dist} License: GPLv2+ and LGPLv2+ Group: System Environment/Kernel Summary: Utilities for managing the global file system (GFS2) +%ifnarch %{arm} %{?fedora:Requires: kernel-modules-extra} +%endif Obsoletes: gfs2-cluster < %{version} BuildRequires: ncurses-devel BuildRequires: kernel-headers @@ -89,6 +91,9 @@ file systems. %{_mandir}/man5/* %changelog +* Fri Oct 04 2013 Andrew Price - 3.1.6-5 +- Suppress req on kernel-modules-extra for ARM arches. + * Tue Sep 17 2013 Andrew Price - 3.1.6-4 - Don't use README.* for docs (it can pick up some patch files) From ee416b3fe3013f29a9e15704a9b15e59576cd821 Mon Sep 17 00:00:00 2001 From: Andrew Price Date: Fri, 21 Mar 2014 12:49:29 +0000 Subject: [PATCH 24/75] * Fri Mar 21 2014 Andrew Price - 3.1.6-6 - gfs2_grow: Don't try to open an empty string - libgfs2: Add lgfs2 open mnt functions - Switch is pathname mounted callers to lgfs2 open mnt - libgfs2 Remove is pathname mounted Resolves: bz#1079286 --- ...ow_Don_t_try_to_open_an_empty_string.patch | 183 ++++++++++++++++++ ...libgfs2_Add_lgfs2_open_mnt_functions.patch | 141 ++++++++++++++ ...me_mounted_callers_to_lgfs2_open_mnt.patch | 168 ++++++++++++++++ ...3-libgfs2_Remove_is_pathname_mounted.patch | 94 +++++++++ gfs2-utils.spec | 17 +- 5 files changed, 602 insertions(+), 1 deletion(-) create mode 100644 bz1079286-0-gfs2_grow_Don_t_try_to_open_an_empty_string.patch create mode 100644 bz1079286-1-libgfs2_Add_lgfs2_open_mnt_functions.patch create mode 100644 bz1079286-2-Switch_is_pathname_mounted_callers_to_lgfs2_open_mnt.patch create mode 100644 bz1079286-3-libgfs2_Remove_is_pathname_mounted.patch diff --git a/bz1079286-0-gfs2_grow_Don_t_try_to_open_an_empty_string.patch b/bz1079286-0-gfs2_grow_Don_t_try_to_open_an_empty_string.patch new file mode 100644 index 0000000..c70e38e --- /dev/null +++ b/bz1079286-0-gfs2_grow_Don_t_try_to_open_an_empty_string.patch @@ -0,0 +1,183 @@ +commit 23bcbc3512a6609216b6884a3bf088684d1e7c72 +Author: Andrew Price +Date: Thu Aug 8 17:50:47 2013 +0100 + + gfs2_grow: Don't try to open an empty string + + sdp->device_name wasn't getting set in gfs2_grow so is_gfs2() (called + via check_for_gfs2()) fails to open "" and so we get an ENOENT. + + This fixes the open("") by setting sdp->device_name before passing it to + is_pathname_mounted(), which has been updated to make it more clear + which args will be modified by it. + + is_gfs2() and check_for_gfs2() have also been removed from libgfs2 as + these were the only places they were being called and they aren't + needed: superblock checking is done further along via other functions + calling check_sb(). + + Signed-off-by: Andrew Price + +diff --git a/gfs2/fsck/initialize.c b/gfs2/fsck/initialize.c +index b45ae08..6612fe7 100644 +--- a/gfs2/fsck/initialize.c ++++ b/gfs2/fsck/initialize.c +@@ -1491,7 +1491,7 @@ int initialize(struct gfs2_sbd *sdp, int force_check, int preen, + strncpy(sdp->device_name, opts.device, + sizeof(sdp->device_name)); + sdp->path_name = sdp->device_name; /* This gets overwritten */ +- is_mounted = is_pathname_mounted(sdp, &ro); ++ is_mounted = is_pathname_mounted(sdp->path_name, sdp->device_name, &ro); + /* If the device is busy, but not because it's mounted, fail. + This protects against cases where the file system is LVM + and perhaps mounted on a different node. */ +diff --git a/gfs2/libgfs2/libgfs2.h b/gfs2/libgfs2/libgfs2.h +index fe7129a..e994d3b 100644 +--- a/gfs2/libgfs2/libgfs2.h ++++ b/gfs2/libgfs2/libgfs2.h +@@ -716,11 +716,9 @@ extern void decrease_verbosity(void); + extern int compute_heightsize(struct gfs2_sbd *sdp, uint64_t *heightsize, + uint32_t *maxheight, uint32_t bsize1, int diptrs, int inptrs); + extern int compute_constants(struct gfs2_sbd *sdp); +-extern int is_pathname_mounted(struct gfs2_sbd *sdp, int *ro_mount); +-extern int is_gfs2(struct gfs2_sbd *sdp); ++extern int is_pathname_mounted(char *path_name, char *device_name, int *ro_mount); + extern int find_gfs2_meta(struct gfs2_sbd *sdp); + extern int dir_exists(const char *dir); +-extern int check_for_gfs2(struct gfs2_sbd *sdp); + extern int mount_gfs2_meta(struct gfs2_sbd *sdp); + extern void cleanup_metafs(struct gfs2_sbd *sdp); + extern int set_sysfs(const char *fsname, const char *filename, const char *val); +diff --git a/gfs2/libgfs2/misc.c b/gfs2/libgfs2/misc.c +index c05a770..6f2dbdb 100644 +--- a/gfs2/libgfs2/misc.c ++++ b/gfs2/libgfs2/misc.c +@@ -99,7 +99,7 @@ int compute_constants(struct gfs2_sbd *sdp) + return 0; + } + +-int is_pathname_mounted(struct gfs2_sbd *sdp, int *ro_mount) ++int is_pathname_mounted(char *path_name, char *device_name, int *ro_mount) + { + FILE *fp; + struct mntent *mnt; +@@ -112,7 +112,7 @@ int is_pathname_mounted(struct gfs2_sbd *sdp, int *ro_mount) + perror("open: /proc/mounts"); + return 0; + } +- if (stat(sdp->path_name, &st_buf) == 0) { ++ if (stat(path_name, &st_buf) == 0) { + if (S_ISBLK(st_buf.st_mode)) { + #ifndef __GNU__ /* The GNU hurd is broken with respect to stat devices */ + file_rdev = st_buf.st_rdev; +@@ -124,12 +124,12 @@ int is_pathname_mounted(struct gfs2_sbd *sdp, int *ro_mount) + } + while ((mnt = getmntent (fp)) != NULL) { + /* Check if they specified the device instead of mnt point */ +- if (strcmp(sdp->device_name, mnt->mnt_fsname) == 0) { +- strcpy(sdp->path_name, mnt->mnt_dir); /* fix it */ ++ if (strcmp(device_name, mnt->mnt_fsname) == 0) { ++ strcpy(path_name, mnt->mnt_dir); /* fix it */ + break; + } +- if (strcmp(sdp->path_name, mnt->mnt_dir) == 0) { +- strcpy(sdp->device_name, mnt->mnt_fsname); /* fix it */ ++ if (strcmp(path_name, mnt->mnt_dir) == 0) { ++ strcpy(device_name, mnt->mnt_fsname); /* fix it */ + break; + } + if (stat(mnt->mnt_fsname, &st_buf) == 0) { +@@ -160,36 +160,6 @@ int is_pathname_mounted(struct gfs2_sbd *sdp, int *ro_mount) + return 1; /* mounted */ + } + +-int is_gfs2(struct gfs2_sbd *sdp) +-{ +- int fd, rc; +- struct gfs2_sb sb; +- +- fd = open(sdp->device_name, O_RDWR); +- if (fd < 0) +- return 0; +- +- rc = 0; +- if (lseek(fd, GFS2_SB_ADDR * GFS2_BASIC_BLOCK, SEEK_SET) >= 0 && +- read(fd, &sb, sizeof(sb)) == sizeof(sb) && +- be32_to_cpu(sb.sb_header.mh_magic) == GFS2_MAGIC && +- be32_to_cpu(sb.sb_header.mh_type) == GFS2_METATYPE_SB) +- rc = 1; +- close(fd); +- return rc; +-} +- +-int check_for_gfs2(struct gfs2_sbd *sdp) +-{ +- int ro; +- +- if (!is_pathname_mounted(sdp, &ro)) +- return -1; +- if (!is_gfs2(sdp)) +- return -1; +- return 0; +-} +- + static int lock_for_admin(struct gfs2_sbd *sdp) + { + int error; +diff --git a/gfs2/mkfs/main_grow.c b/gfs2/mkfs/main_grow.c +index 73c7f84..d324af9 100644 +--- a/gfs2/mkfs/main_grow.c ++++ b/gfs2/mkfs/main_grow.c +@@ -323,6 +323,7 @@ main_grow(int argc, char *argv[]) + int rgcount, rindex_fd; + char rindex_name[PATH_MAX]; + int error = EXIT_SUCCESS; ++ int ro_mnt = 0; + + memset(sdp, 0, sizeof(struct gfs2_sbd)); + sdp->bsize = GFS2_DEFAULT_BSIZE; +@@ -336,17 +337,20 @@ main_grow(int argc, char *argv[]) + int sane; + struct rgrp_tree *last_rgrp; + ++ strncpy(sdp->device_name, argv[optind], PATH_MAX - 1); + sdp->path_name = argv[optind++]; +- sdp->path_fd = open(sdp->path_name, O_RDONLY | O_CLOEXEC); +- if (sdp->path_fd < 0){ ++ ++ if ((!is_pathname_mounted(sdp->path_name, sdp->device_name, &ro_mnt))) { + perror(sdp->path_name); + exit(EXIT_FAILURE); + } + +- if (check_for_gfs2(sdp)) { ++ sdp->path_fd = open(sdp->path_name, O_RDONLY | O_CLOEXEC); ++ if (sdp->path_fd < 0){ + perror(sdp->path_name); + exit(EXIT_FAILURE); + } ++ + sdp->device_fd = open(sdp->device_name, + (test ? O_RDONLY : O_RDWR) | O_CLOEXEC); + if (sdp->device_fd < 0){ +diff --git a/gfs2/mkfs/main_jadd.c b/gfs2/mkfs/main_jadd.c +index 58fb046..2646829 100644 +--- a/gfs2/mkfs/main_jadd.c ++++ b/gfs2/mkfs/main_jadd.c +@@ -491,6 +491,7 @@ void main_jadd(int argc, char *argv[]) + { + struct gfs2_sbd sbd, *sdp = &sbd; + unsigned int total; ++ int ro_mnt = 0; + + memset(sdp, 0, sizeof(struct gfs2_sbd)); + sdp->jsize = GFS2_DEFAULT_JSIZE; +@@ -506,7 +507,7 @@ void main_jadd(int argc, char *argv[]) + exit(EXIT_FAILURE); + } + +- if (check_for_gfs2(sdp)) { ++ if (!is_pathname_mounted(sdp->path_name, sdp->device_name, &ro_mnt)) { + perror(sdp->path_name); + exit(EXIT_FAILURE); + } diff --git a/bz1079286-1-libgfs2_Add_lgfs2_open_mnt_functions.patch b/bz1079286-1-libgfs2_Add_lgfs2_open_mnt_functions.patch new file mode 100644 index 0000000..c55f8f9 --- /dev/null +++ b/bz1079286-1-libgfs2_Add_lgfs2_open_mnt_functions.patch @@ -0,0 +1,141 @@ +commit 25c6e51bb4d083eb341bbc8541bb2ad278988f10 +Author: Andrew Price +Date: Sat Nov 16 02:10:52 2013 -0600 + + libgfs2: Add lgfs2_open_mnt* functions + + lgfs2_open_mnt is a replacement for is_pathname_mounted which tries to reduce + races by opening paths speculatively and passing back the open fds once they're + known to be correct. lgfs2_open_mnt_{dev,dir} build on this to provide a + convenient way to open just the device or mount directory relating to a path + which could be either. + + Signed-off-by: Andrew Price + +diff --git a/gfs2/libgfs2/libgfs2.h b/gfs2/libgfs2/libgfs2.h +index f864a08..3e5d09c 100644 +--- a/gfs2/libgfs2/libgfs2.h ++++ b/gfs2/libgfs2/libgfs2.h +@@ -12,6 +12,7 @@ + #include + #include + #include ++#include + + #include + #include "osi_list.h" +@@ -715,6 +716,9 @@ extern int compute_heightsize(struct gfs2_sbd *sdp, uint64_t *heightsize, + uint32_t *maxheight, uint32_t bsize1, int diptrs, int inptrs); + extern int compute_constants(struct gfs2_sbd *sdp); + extern int is_pathname_mounted(char *path_name, char *device_name, int *ro_mount); ++extern int lgfs2_open_mnt(const char *path, int dirflags, int *dirfd, int devflags, int *devfd, struct mntent **mnt); ++extern int lgfs2_open_mnt_dev(const char *path, int flags, struct mntent **mnt); ++extern int lgfs2_open_mnt_dir(const char *path, int flags, struct mntent **mnt); + extern int find_gfs2_meta(struct gfs2_sbd *sdp); + extern int dir_exists(const char *dir); + extern int mount_gfs2_meta(struct gfs2_sbd *sdp); +diff --git a/gfs2/libgfs2/misc.c b/gfs2/libgfs2/misc.c +index 7f500e6..195b983 100644 +--- a/gfs2/libgfs2/misc.c ++++ b/gfs2/libgfs2/misc.c +@@ -163,6 +163,100 @@ int is_pathname_mounted(char *path_name, char *device_name, int *ro_mount) + return 1; /* mounted */ + } + ++/* Returns 0 if fd1 and fd2 refer to the same device/file, 1 otherwise, or -1 on error */ ++static int fdcmp(int fd1, int fd2) ++{ ++ struct stat st1, st2; ++ if ((fstat(fd1, &st1) != 0) || (fstat(fd2, &st2) != 0)) ++ return -1; ++ if (S_ISBLK(st1.st_mode) && S_ISBLK(st2.st_mode)) { ++ if (st1.st_rdev == st2.st_rdev) { ++ return 0; ++ } ++ } else if ((st1.st_dev == st2.st_dev) && (st1.st_ino == st2.st_ino)) { ++ return 0; ++ } ++ return 1; ++} ++ ++int lgfs2_open_mnt(const char *path, int dirflags, int *dirfd, int devflags, int *devfd, struct mntent **mnt) ++{ ++ FILE *fp = setmntent("/proc/mounts", "r"); ++ if (fp == NULL) { ++ perror("open: /proc/mounts"); ++ return 1; ++ } ++ /* Assume path is mount point until we know better. */ ++ *dirfd = open(path, dirflags); ++ if (*dirfd < 0) ++ return 1; ++ ++ while ((*mnt = getmntent(fp)) != NULL) { ++ int fd; ++ if (strcmp((*mnt)->mnt_type, "gfs2") != 0) ++ continue; ++ *devfd = open((*mnt)->mnt_fsname, devflags); ++ /* Defer checking *devfd until later: whether it's ok to ignore ++ * the error depends on whether we find the mount point. */ ++ ++ if (strcmp(path, (*mnt)->mnt_dir) == 0) ++ break; ++ if (strcmp(path, (*mnt)->mnt_fsname) == 0 || fdcmp(*dirfd, *devfd) == 0) { ++ /* We have a match but our above assumption was ++ incorrect and *dirfd is actually the device. */ ++ close(*dirfd); ++ *dirfd = open((*mnt)->mnt_dir, dirflags); ++ break; ++ } ++ ++ fd = open((*mnt)->mnt_dir, dirflags); ++ if (fd >= 0) { ++ int diff = fdcmp(*dirfd, fd); ++ close(fd); ++ if (diff == 0) ++ break; ++ } ++ if (*devfd >= 0) ++ close(*devfd); ++ } ++ endmntent(fp); ++ if (*mnt == NULL) { ++ close(*dirfd); ++ return 0; /* Success. Answer is no. Both fds closed. */ ++ } ++ if (*dirfd < 0) { ++ close(*devfd); ++ return 1; ++ } ++ if (*devfd < 0) { ++ close(*dirfd); ++ return 1; ++ } ++ return 0; /* Success. Answer is yes. Both fds open. */ ++} ++ ++int lgfs2_open_mnt_dev(const char *path, int flags, struct mntent **mnt) ++{ ++ int dirfd = -1; ++ int devfd = -1; ++ if (lgfs2_open_mnt(path, O_RDONLY, &dirfd, flags, &devfd, mnt) != 0) ++ return -1; ++ if (*mnt != NULL) ++ close(dirfd); ++ return devfd; ++} ++ ++int lgfs2_open_mnt_dir(const char *path, int flags, struct mntent **mnt) ++{ ++ int dirfd = -1; ++ int devfd = -1; ++ if (lgfs2_open_mnt(path, flags, &dirfd, O_RDONLY, &devfd, mnt) != 0) ++ return -1; ++ if (*mnt != NULL) ++ close(devfd); ++ return dirfd; ++} ++ + static int lock_for_admin(struct gfs2_sbd *sdp) + { + int error; diff --git a/bz1079286-2-Switch_is_pathname_mounted_callers_to_lgfs2_open_mnt.patch b/bz1079286-2-Switch_is_pathname_mounted_callers_to_lgfs2_open_mnt.patch new file mode 100644 index 0000000..ce05d00 --- /dev/null +++ b/bz1079286-2-Switch_is_pathname_mounted_callers_to_lgfs2_open_mnt.patch @@ -0,0 +1,168 @@ +commit ad11e277ebd8d01a1b0a29ee9f697ba90c8577a4 +Author: Andrew Price +Date: Sat Nov 16 02:19:07 2013 -0600 + + Switch is_pathname_mounted callers to lgfs2_open_mnt* + + Use the new lgfs2_open_mnt* functions in fsck.gfs2, gfs2_grow, and gfs2_jadd. + + Signed-off-by: Andrew Price + +diff --git a/gfs2/fsck/initialize.c b/gfs2/fsck/initialize.c +index 6612fe7..5758607 100644 +--- a/gfs2/fsck/initialize.c ++++ b/gfs2/fsck/initialize.c +@@ -1475,8 +1475,7 @@ int initialize(struct gfs2_sbd *sdp, int force_check, int preen, + + sdp->device_fd = open(opts.device, open_flag); + if (sdp->device_fd < 0) { +- int is_mounted, ro; +- ++ struct mntent *mnt; + if (open_flag == O_RDONLY || errno != EBUSY) { + log_crit( _("Unable to open device: %s\n"), + opts.device); +@@ -1485,30 +1484,23 @@ int initialize(struct gfs2_sbd *sdp, int force_check, int preen, + /* We can't open it EXCL. It may be already open rw (in which + case we want to deny them access) or it may be mounted as + the root file system at boot time (in which case we need to +- allow it.) We use is_pathname_mounted here even though +- we're specifying a device name, not a path name. The +- function checks for device as well. */ +- strncpy(sdp->device_name, opts.device, +- sizeof(sdp->device_name)); +- sdp->path_name = sdp->device_name; /* This gets overwritten */ +- is_mounted = is_pathname_mounted(sdp->path_name, sdp->device_name, &ro); +- /* If the device is busy, but not because it's mounted, fail. ++ allow it.) ++ If the device is busy, but not because it's mounted, fail. + This protects against cases where the file system is LVM +- and perhaps mounted on a different node. */ +- if (!is_mounted) ++ and perhaps mounted on a different node. ++ Try opening without O_EXCL. */ ++ sdp->device_fd = lgfs2_open_mnt_dev(opts.device, O_RDWR, &mnt); ++ if (sdp->device_fd < 0) + goto mount_fail; + /* If the device is mounted, but not mounted RO, fail. This + protects them against cases where the file system is + mounted RW, but still allows us to check our own root + file system. */ +- if (!ro) +- goto mount_fail; ++ if (!hasmntopt(mnt, MNTOPT_RO)) ++ goto close_fail; + /* The device is mounted RO, so it's likely our own root + file system. We can only do so much to protect the users +- from themselves. Try opening without O_EXCL. */ +- if ((sdp->device_fd = open(opts.device, O_RDWR)) < 0) +- goto mount_fail; +- ++ from themselves. */ + was_mounted_ro = 1; + } + +@@ -1591,6 +1583,8 @@ int initialize(struct gfs2_sbd *sdp, int force_check, int preen, + + return FSCK_OK; + ++close_fail: ++ close(sdp->device_fd); + mount_fail: + log_crit( _("Device %s is busy.\n"), opts.device); + return FSCK_USAGE; +diff --git a/gfs2/mkfs/main_grow.c b/gfs2/mkfs/main_grow.c +index 5db91d9..541b0f2 100644 +--- a/gfs2/mkfs/main_grow.c ++++ b/gfs2/mkfs/main_grow.c +@@ -323,7 +323,7 @@ main_grow(int argc, char *argv[]) + int rgcount, rindex_fd; + char rindex_name[PATH_MAX]; + int error = EXIT_SUCCESS; +- int ro_mnt = 0; ++ int devflags = (test ? O_RDONLY : O_RDWR) | O_CLOEXEC; + + memset(sdp, 0, sizeof(struct gfs2_sbd)); + sdp->bsize = GFS2_DEFAULT_BSIZE; +@@ -333,30 +333,23 @@ main_grow(int argc, char *argv[]) + sdp->md.journals = 1; + decode_arguments(argc, argv, sdp); + +- while ((argc - optind) > 0) { ++ for(; (argc - optind) > 0; optind++) { + int sane; ++ struct mntent *mnt; + struct rgrp_tree *last_rgrp; + +- strncpy(sdp->device_name, argv[optind], PATH_MAX - 1); +- sdp->path_name = argv[optind++]; +- +- if ((!is_pathname_mounted(sdp->path_name, sdp->device_name, &ro_mnt))) { +- perror(sdp->path_name); +- exit(EXIT_FAILURE); +- } +- +- sdp->path_fd = open(sdp->path_name, O_RDONLY | O_CLOEXEC); +- if (sdp->path_fd < 0){ +- perror(sdp->path_name); ++ error = lgfs2_open_mnt(argv[optind], O_RDONLY|O_CLOEXEC, &sdp->path_fd, ++ devflags, &sdp->device_fd, &mnt); ++ if (error != 0) { ++ fprintf(stderr, _("Error looking up mount '%s': %s\n"), argv[optind], strerror(errno)); + exit(EXIT_FAILURE); + } +- +- sdp->device_fd = open(sdp->device_name, +- (test ? O_RDONLY : O_RDWR) | O_CLOEXEC); +- if (sdp->device_fd < 0){ +- perror(sdp->device_name); +- exit(EXIT_FAILURE); ++ if (mnt == NULL) { ++ fprintf(stderr, _("%s: not a mounted gfs2 file system\n"), argv[optind]); ++ continue; + } ++ sdp->path_name = mnt->mnt_dir; ++ strncpy(sdp->device_name, mnt->mnt_fsname, PATH_MAX - 1); + + if (lgfs2_get_dev_info(sdp->device_fd, &sdp->dinfo) < 0) { + perror(sdp->device_name); +diff --git a/gfs2/mkfs/main_jadd.c b/gfs2/mkfs/main_jadd.c +index b6cd8e4..815dd52 100644 +--- a/gfs2/mkfs/main_jadd.c ++++ b/gfs2/mkfs/main_jadd.c +@@ -490,8 +490,8 @@ add_j(struct gfs2_sbd *sdp) + void main_jadd(int argc, char *argv[]) + { + struct gfs2_sbd sbd, *sdp = &sbd; ++ struct mntent *mnt; + unsigned int total; +- int ro_mnt = 0; + + memset(sdp, 0, sizeof(struct gfs2_sbd)); + sdp->jsize = GFS2_DEFAULT_JSIZE; +@@ -500,17 +500,18 @@ void main_jadd(int argc, char *argv[]) + + decode_arguments(argc, argv, sdp); + verify_arguments(sdp); +- +- sdp->path_fd = open(sdp->path_name, O_RDONLY | O_CLOEXEC); +- if (sdp->path_fd < 0){ +- perror(sdp->path_name); ++ ++ sbd.path_fd = lgfs2_open_mnt_dir(sbd.path_name, O_RDONLY|O_CLOEXEC, &mnt); ++ if (sbd.path_fd < 0) { ++ fprintf(stderr, _("Error looking up mount '%s': %s\n"), sbd.path_name, strerror(errno)); + exit(EXIT_FAILURE); + } +- +- if (!is_pathname_mounted(sdp->path_name, sdp->device_name, &ro_mnt)) { +- perror(sdp->path_name); ++ if (mnt == NULL) { ++ fprintf(stderr, _("%s: not a mounted gfs2 file system\n"), sbd.path_name); + exit(EXIT_FAILURE); + } ++ sbd.path_name = mnt->mnt_dir; ++ strncpy(sbd.device_name, mnt->mnt_fsname, PATH_MAX - 1); + + gather_info(sdp); + diff --git a/bz1079286-3-libgfs2_Remove_is_pathname_mounted.patch b/bz1079286-3-libgfs2_Remove_is_pathname_mounted.patch new file mode 100644 index 0000000..28cbb65 --- /dev/null +++ b/bz1079286-3-libgfs2_Remove_is_pathname_mounted.patch @@ -0,0 +1,94 @@ +commit 63db4e964739673d36c430cc5c78b02d93419f8a +Author: Andrew Price +Date: Sat Nov 16 02:21:36 2013 -0600 + + libgfs2: Remove is_pathname_mounted + + All callers are now using lgfs2_open_mnt* instead. + + Signed-off-by: Andrew Price + +diff --git a/gfs2/libgfs2/libgfs2.h b/gfs2/libgfs2/libgfs2.h +index 3e5d09c..e785017 100644 +--- a/gfs2/libgfs2/libgfs2.h ++++ b/gfs2/libgfs2/libgfs2.h +@@ -715,7 +715,6 @@ extern int metafs_interrupted; + extern int compute_heightsize(struct gfs2_sbd *sdp, uint64_t *heightsize, + uint32_t *maxheight, uint32_t bsize1, int diptrs, int inptrs); + extern int compute_constants(struct gfs2_sbd *sdp); +-extern int is_pathname_mounted(char *path_name, char *device_name, int *ro_mount); + extern int lgfs2_open_mnt(const char *path, int dirflags, int *dirfd, int devflags, int *devfd, struct mntent **mnt); + extern int lgfs2_open_mnt_dev(const char *path, int flags, struct mntent **mnt); + extern int lgfs2_open_mnt_dir(const char *path, int flags, struct mntent **mnt); +diff --git a/gfs2/libgfs2/misc.c b/gfs2/libgfs2/misc.c +index 195b983..c4ed722 100644 +--- a/gfs2/libgfs2/misc.c ++++ b/gfs2/libgfs2/misc.c +@@ -102,67 +102,6 @@ int compute_constants(struct gfs2_sbd *sdp) + return 0; + } + +-int is_pathname_mounted(char *path_name, char *device_name, int *ro_mount) +-{ +- FILE *fp; +- struct mntent *mnt; +- dev_t file_dev=0, file_rdev=0; +- ino_t file_ino=0; +- struct stat st_buf; +- +- *ro_mount = 0; +- if ((fp = setmntent("/proc/mounts", "r")) == NULL) { +- perror("open: /proc/mounts"); +- return 0; +- } +- if (stat(path_name, &st_buf) == 0) { +- if (S_ISBLK(st_buf.st_mode)) { +-#ifndef __GNU__ /* The GNU hurd is broken with respect to stat devices */ +- file_rdev = st_buf.st_rdev; +-#endif /* __GNU__ */ +- } else { +- file_dev = st_buf.st_dev; +- file_ino = st_buf.st_ino; +- } +- } +- while ((mnt = getmntent (fp)) != NULL) { +- /* Check if they specified the device instead of mnt point */ +- if (strcmp(device_name, mnt->mnt_fsname) == 0) { +- strcpy(path_name, mnt->mnt_dir); /* fix it */ +- break; +- } +- if (strcmp(path_name, mnt->mnt_dir) == 0) { +- strcpy(device_name, mnt->mnt_fsname); /* fix it */ +- break; +- } +- if (stat(mnt->mnt_fsname, &st_buf) == 0) { +- if (S_ISBLK(st_buf.st_mode)) { +-#ifndef __GNU__ +- if (file_rdev && (file_rdev == st_buf.st_rdev)) +- break; +-#endif /* __GNU__ */ +- } else { +- if (file_dev && ((file_dev == st_buf.st_dev) && +- (file_ino == st_buf.st_ino))) +- break; +- } +- } +- } +- endmntent (fp); +- if (mnt == NULL) +- return 0; +- if (stat(mnt->mnt_dir, &st_buf) < 0) { +- if (errno == ENOENT) +- return 0; +- } +- /* Can't trust fstype because / has "rootfs". */ +- if (file_rdev && (st_buf.st_dev != file_rdev)) +- return 0; +- if (hasmntopt(mnt, MNTOPT_RO)) +- *ro_mount = 1; +- return 1; /* mounted */ +-} +- + /* Returns 0 if fd1 and fd2 refer to the same device/file, 1 otherwise, or -1 on error */ + static int fdcmp(int fd1, int fd2) + { diff --git a/gfs2-utils.spec b/gfs2-utils.spec index d7ea717..11c3d56 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -12,7 +12,7 @@ Name: gfs2-utils Version: 3.1.6 -Release: 5%{?dist} +Release: 6%{?dist} License: GPLv2+ and LGPLv2+ Group: System Environment/Kernel Summary: Utilities for managing the global file system (GFS2) @@ -40,11 +40,19 @@ URL: https://fedorahosted.org/cluster/wiki/HomePage # ./make-tarball.sh # Source0: https://fedorahosted.org/released/gfs2-utils/gfs2-utils-%{version}.tar.gz +Patch0: bz1079286-0-gfs2_grow_Don_t_try_to_open_an_empty_string.patch +Patch1: bz1079286-1-libgfs2_Add_lgfs2_open_mnt_functions.patch +Patch2: bz1079286-2-Switch_is_pathname_mounted_callers_to_lgfs2_open_mnt.patch +Patch3: bz1079286-3-libgfs2_Remove_is_pathname_mounted.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) %prep %setup -q -n gfs2-utils +%patch0 -p1 -b .bz1079286-0-gfs2_grow_Don_t_try_to_open_an_empty_string +%patch1 -p1 -b .bz1079286-1-libgfs2_Add_lgfs2_open_mnt_functions +%patch2 -p1 -b .bz1079286-2-Switch_is_pathname_mounted_callers_to_lgfs2_open_mnt +%patch3 -p1 -b .bz1079286-3-libgfs2_Remove_is_pathname_mounted %build ./autogen.sh @@ -91,6 +99,13 @@ file systems. %{_mandir}/man5/* %changelog +* Fri Mar 21 2014 Andrew Price - 3.1.6-6 +- gfs2_grow: Don't try to open an empty string +- libgfs2: Add lgfs2 open mnt functions +- Switch is pathname mounted callers to lgfs2 open mnt +- libgfs2 Remove is pathname mounted + Resolves: bz#1079286 + * Fri Oct 04 2013 Andrew Price - 3.1.6-5 - Suppress req on kernel-modules-extra for ARM arches. From 034b02d0055bdfc25eb7340a3107a4ee17850f93 Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Wed, 14 May 2014 14:24:08 -0400 Subject: [PATCH 25/75] Switch to using Requires on individual kernel modules Resolves: bz#1056191 --- gfs2-utils.spec | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gfs2-utils.spec b/gfs2-utils.spec index 11c3d56..9631e4c 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -12,12 +12,12 @@ Name: gfs2-utils Version: 3.1.6 -Release: 6%{?dist} +Release: 7%{?dist} License: GPLv2+ and LGPLv2+ Group: System Environment/Kernel Summary: Utilities for managing the global file system (GFS2) %ifnarch %{arm} -%{?fedora:Requires: kernel-modules-extra} +%{?fedora:Requires: kmod(gfs2.ko) kmod(dlm.ko)} %endif Obsoletes: gfs2-cluster < %{version} BuildRequires: ncurses-devel @@ -99,6 +99,10 @@ file systems. %{_mandir}/man5/* %changelog +* Thu May 15 2014 Josh Boyer - 3.1.6-7 +- Switch to using Requires on individual kernel modules + Resolves: bz#1056191 + * Fri Mar 21 2014 Andrew Price - 3.1.6-6 - gfs2_grow: Don't try to open an empty string - libgfs2: Add lgfs2 open mnt functions From 600d435e88be1638dd02d47b4f9cc56ae36eb66f Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Sat, 7 Jun 2014 09:17:10 -0500 Subject: [PATCH 26/75] - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild --- gfs2-utils.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gfs2-utils.spec b/gfs2-utils.spec index 9631e4c..2455a50 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -12,7 +12,7 @@ Name: gfs2-utils Version: 3.1.6 -Release: 7%{?dist} +Release: 8%{?dist} License: GPLv2+ and LGPLv2+ Group: System Environment/Kernel Summary: Utilities for managing the global file system (GFS2) @@ -99,6 +99,9 @@ file systems. %{_mandir}/man5/* %changelog +* Sat Jun 07 2014 Fedora Release Engineering - 3.1.6-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + * Thu May 15 2014 Josh Boyer - 3.1.6-7 - Switch to using Requires on individual kernel modules Resolves: bz#1056191 From a028174e7e1b9f9dbcd9f3b6157ad6b20e2d8bc5 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Sat, 16 Aug 2014 14:24:07 +0000 Subject: [PATCH 27/75] - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild --- gfs2-utils.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gfs2-utils.spec b/gfs2-utils.spec index 2455a50..9810021 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -12,7 +12,7 @@ Name: gfs2-utils Version: 3.1.6 -Release: 8%{?dist} +Release: 9%{?dist} License: GPLv2+ and LGPLv2+ Group: System Environment/Kernel Summary: Utilities for managing the global file system (GFS2) @@ -99,6 +99,9 @@ file systems. %{_mandir}/man5/* %changelog +* Sat Aug 16 2014 Fedora Release Engineering - 3.1.6-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + * Sat Jun 07 2014 Fedora Release Engineering - 3.1.6-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild From 6a770f893c6fc6a05da911f8369758aee3e169c2 Mon Sep 17 00:00:00 2001 From: Andrew Price Date: Mon, 8 Sep 2014 11:48:03 +0100 Subject: [PATCH 28/75] * Mon Sep 08 2014 Andrew Price - 3.1.7-1 - New upstream release - Drop all patches - gfs2-utils tests: Build unit tests with consistent cpp flags --- .gitignore | 1 + ...ow_Don_t_try_to_open_an_empty_string.patch | 183 ------------------ ...libgfs2_Add_lgfs2_open_mnt_functions.patch | 141 -------------- ...me_mounted_callers_to_lgfs2_open_mnt.patch | 168 ---------------- ...3-libgfs2_Remove_is_pathname_mounted.patch | 94 --------- gfs2-utils.spec | 23 ++- ...unit_tests_with_consistent_cpp_flags.patch | 56 ++++++ sources | 2 +- 8 files changed, 69 insertions(+), 599 deletions(-) delete mode 100644 bz1079286-0-gfs2_grow_Don_t_try_to_open_an_empty_string.patch delete mode 100644 bz1079286-1-libgfs2_Add_lgfs2_open_mnt_functions.patch delete mode 100644 bz1079286-2-Switch_is_pathname_mounted_callers_to_lgfs2_open_mnt.patch delete mode 100644 bz1079286-3-libgfs2_Remove_is_pathname_mounted.patch create mode 100644 gfs2_utils_tests_Build_unit_tests_with_consistent_cpp_flags.patch diff --git a/.gitignore b/.gitignore index 02bd2bd..8e5aacd 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ /gfs2-utils-3.1.4.tar.gz /gfs2-utils-3.1.5.tar.gz /gfs2-utils-3.1.6.tar.gz +/gfs2-utils-3.1.7.tar.gz diff --git a/bz1079286-0-gfs2_grow_Don_t_try_to_open_an_empty_string.patch b/bz1079286-0-gfs2_grow_Don_t_try_to_open_an_empty_string.patch deleted file mode 100644 index c70e38e..0000000 --- a/bz1079286-0-gfs2_grow_Don_t_try_to_open_an_empty_string.patch +++ /dev/null @@ -1,183 +0,0 @@ -commit 23bcbc3512a6609216b6884a3bf088684d1e7c72 -Author: Andrew Price -Date: Thu Aug 8 17:50:47 2013 +0100 - - gfs2_grow: Don't try to open an empty string - - sdp->device_name wasn't getting set in gfs2_grow so is_gfs2() (called - via check_for_gfs2()) fails to open "" and so we get an ENOENT. - - This fixes the open("") by setting sdp->device_name before passing it to - is_pathname_mounted(), which has been updated to make it more clear - which args will be modified by it. - - is_gfs2() and check_for_gfs2() have also been removed from libgfs2 as - these were the only places they were being called and they aren't - needed: superblock checking is done further along via other functions - calling check_sb(). - - Signed-off-by: Andrew Price - -diff --git a/gfs2/fsck/initialize.c b/gfs2/fsck/initialize.c -index b45ae08..6612fe7 100644 ---- a/gfs2/fsck/initialize.c -+++ b/gfs2/fsck/initialize.c -@@ -1491,7 +1491,7 @@ int initialize(struct gfs2_sbd *sdp, int force_check, int preen, - strncpy(sdp->device_name, opts.device, - sizeof(sdp->device_name)); - sdp->path_name = sdp->device_name; /* This gets overwritten */ -- is_mounted = is_pathname_mounted(sdp, &ro); -+ is_mounted = is_pathname_mounted(sdp->path_name, sdp->device_name, &ro); - /* If the device is busy, but not because it's mounted, fail. - This protects against cases where the file system is LVM - and perhaps mounted on a different node. */ -diff --git a/gfs2/libgfs2/libgfs2.h b/gfs2/libgfs2/libgfs2.h -index fe7129a..e994d3b 100644 ---- a/gfs2/libgfs2/libgfs2.h -+++ b/gfs2/libgfs2/libgfs2.h -@@ -716,11 +716,9 @@ extern void decrease_verbosity(void); - extern int compute_heightsize(struct gfs2_sbd *sdp, uint64_t *heightsize, - uint32_t *maxheight, uint32_t bsize1, int diptrs, int inptrs); - extern int compute_constants(struct gfs2_sbd *sdp); --extern int is_pathname_mounted(struct gfs2_sbd *sdp, int *ro_mount); --extern int is_gfs2(struct gfs2_sbd *sdp); -+extern int is_pathname_mounted(char *path_name, char *device_name, int *ro_mount); - extern int find_gfs2_meta(struct gfs2_sbd *sdp); - extern int dir_exists(const char *dir); --extern int check_for_gfs2(struct gfs2_sbd *sdp); - extern int mount_gfs2_meta(struct gfs2_sbd *sdp); - extern void cleanup_metafs(struct gfs2_sbd *sdp); - extern int set_sysfs(const char *fsname, const char *filename, const char *val); -diff --git a/gfs2/libgfs2/misc.c b/gfs2/libgfs2/misc.c -index c05a770..6f2dbdb 100644 ---- a/gfs2/libgfs2/misc.c -+++ b/gfs2/libgfs2/misc.c -@@ -99,7 +99,7 @@ int compute_constants(struct gfs2_sbd *sdp) - return 0; - } - --int is_pathname_mounted(struct gfs2_sbd *sdp, int *ro_mount) -+int is_pathname_mounted(char *path_name, char *device_name, int *ro_mount) - { - FILE *fp; - struct mntent *mnt; -@@ -112,7 +112,7 @@ int is_pathname_mounted(struct gfs2_sbd *sdp, int *ro_mount) - perror("open: /proc/mounts"); - return 0; - } -- if (stat(sdp->path_name, &st_buf) == 0) { -+ if (stat(path_name, &st_buf) == 0) { - if (S_ISBLK(st_buf.st_mode)) { - #ifndef __GNU__ /* The GNU hurd is broken with respect to stat devices */ - file_rdev = st_buf.st_rdev; -@@ -124,12 +124,12 @@ int is_pathname_mounted(struct gfs2_sbd *sdp, int *ro_mount) - } - while ((mnt = getmntent (fp)) != NULL) { - /* Check if they specified the device instead of mnt point */ -- if (strcmp(sdp->device_name, mnt->mnt_fsname) == 0) { -- strcpy(sdp->path_name, mnt->mnt_dir); /* fix it */ -+ if (strcmp(device_name, mnt->mnt_fsname) == 0) { -+ strcpy(path_name, mnt->mnt_dir); /* fix it */ - break; - } -- if (strcmp(sdp->path_name, mnt->mnt_dir) == 0) { -- strcpy(sdp->device_name, mnt->mnt_fsname); /* fix it */ -+ if (strcmp(path_name, mnt->mnt_dir) == 0) { -+ strcpy(device_name, mnt->mnt_fsname); /* fix it */ - break; - } - if (stat(mnt->mnt_fsname, &st_buf) == 0) { -@@ -160,36 +160,6 @@ int is_pathname_mounted(struct gfs2_sbd *sdp, int *ro_mount) - return 1; /* mounted */ - } - --int is_gfs2(struct gfs2_sbd *sdp) --{ -- int fd, rc; -- struct gfs2_sb sb; -- -- fd = open(sdp->device_name, O_RDWR); -- if (fd < 0) -- return 0; -- -- rc = 0; -- if (lseek(fd, GFS2_SB_ADDR * GFS2_BASIC_BLOCK, SEEK_SET) >= 0 && -- read(fd, &sb, sizeof(sb)) == sizeof(sb) && -- be32_to_cpu(sb.sb_header.mh_magic) == GFS2_MAGIC && -- be32_to_cpu(sb.sb_header.mh_type) == GFS2_METATYPE_SB) -- rc = 1; -- close(fd); -- return rc; --} -- --int check_for_gfs2(struct gfs2_sbd *sdp) --{ -- int ro; -- -- if (!is_pathname_mounted(sdp, &ro)) -- return -1; -- if (!is_gfs2(sdp)) -- return -1; -- return 0; --} -- - static int lock_for_admin(struct gfs2_sbd *sdp) - { - int error; -diff --git a/gfs2/mkfs/main_grow.c b/gfs2/mkfs/main_grow.c -index 73c7f84..d324af9 100644 ---- a/gfs2/mkfs/main_grow.c -+++ b/gfs2/mkfs/main_grow.c -@@ -323,6 +323,7 @@ main_grow(int argc, char *argv[]) - int rgcount, rindex_fd; - char rindex_name[PATH_MAX]; - int error = EXIT_SUCCESS; -+ int ro_mnt = 0; - - memset(sdp, 0, sizeof(struct gfs2_sbd)); - sdp->bsize = GFS2_DEFAULT_BSIZE; -@@ -336,17 +337,20 @@ main_grow(int argc, char *argv[]) - int sane; - struct rgrp_tree *last_rgrp; - -+ strncpy(sdp->device_name, argv[optind], PATH_MAX - 1); - sdp->path_name = argv[optind++]; -- sdp->path_fd = open(sdp->path_name, O_RDONLY | O_CLOEXEC); -- if (sdp->path_fd < 0){ -+ -+ if ((!is_pathname_mounted(sdp->path_name, sdp->device_name, &ro_mnt))) { - perror(sdp->path_name); - exit(EXIT_FAILURE); - } - -- if (check_for_gfs2(sdp)) { -+ sdp->path_fd = open(sdp->path_name, O_RDONLY | O_CLOEXEC); -+ if (sdp->path_fd < 0){ - perror(sdp->path_name); - exit(EXIT_FAILURE); - } -+ - sdp->device_fd = open(sdp->device_name, - (test ? O_RDONLY : O_RDWR) | O_CLOEXEC); - if (sdp->device_fd < 0){ -diff --git a/gfs2/mkfs/main_jadd.c b/gfs2/mkfs/main_jadd.c -index 58fb046..2646829 100644 ---- a/gfs2/mkfs/main_jadd.c -+++ b/gfs2/mkfs/main_jadd.c -@@ -491,6 +491,7 @@ void main_jadd(int argc, char *argv[]) - { - struct gfs2_sbd sbd, *sdp = &sbd; - unsigned int total; -+ int ro_mnt = 0; - - memset(sdp, 0, sizeof(struct gfs2_sbd)); - sdp->jsize = GFS2_DEFAULT_JSIZE; -@@ -506,7 +507,7 @@ void main_jadd(int argc, char *argv[]) - exit(EXIT_FAILURE); - } - -- if (check_for_gfs2(sdp)) { -+ if (!is_pathname_mounted(sdp->path_name, sdp->device_name, &ro_mnt)) { - perror(sdp->path_name); - exit(EXIT_FAILURE); - } diff --git a/bz1079286-1-libgfs2_Add_lgfs2_open_mnt_functions.patch b/bz1079286-1-libgfs2_Add_lgfs2_open_mnt_functions.patch deleted file mode 100644 index c55f8f9..0000000 --- a/bz1079286-1-libgfs2_Add_lgfs2_open_mnt_functions.patch +++ /dev/null @@ -1,141 +0,0 @@ -commit 25c6e51bb4d083eb341bbc8541bb2ad278988f10 -Author: Andrew Price -Date: Sat Nov 16 02:10:52 2013 -0600 - - libgfs2: Add lgfs2_open_mnt* functions - - lgfs2_open_mnt is a replacement for is_pathname_mounted which tries to reduce - races by opening paths speculatively and passing back the open fds once they're - known to be correct. lgfs2_open_mnt_{dev,dir} build on this to provide a - convenient way to open just the device or mount directory relating to a path - which could be either. - - Signed-off-by: Andrew Price - -diff --git a/gfs2/libgfs2/libgfs2.h b/gfs2/libgfs2/libgfs2.h -index f864a08..3e5d09c 100644 ---- a/gfs2/libgfs2/libgfs2.h -+++ b/gfs2/libgfs2/libgfs2.h -@@ -12,6 +12,7 @@ - #include - #include - #include -+#include - - #include - #include "osi_list.h" -@@ -715,6 +716,9 @@ extern int compute_heightsize(struct gfs2_sbd *sdp, uint64_t *heightsize, - uint32_t *maxheight, uint32_t bsize1, int diptrs, int inptrs); - extern int compute_constants(struct gfs2_sbd *sdp); - extern int is_pathname_mounted(char *path_name, char *device_name, int *ro_mount); -+extern int lgfs2_open_mnt(const char *path, int dirflags, int *dirfd, int devflags, int *devfd, struct mntent **mnt); -+extern int lgfs2_open_mnt_dev(const char *path, int flags, struct mntent **mnt); -+extern int lgfs2_open_mnt_dir(const char *path, int flags, struct mntent **mnt); - extern int find_gfs2_meta(struct gfs2_sbd *sdp); - extern int dir_exists(const char *dir); - extern int mount_gfs2_meta(struct gfs2_sbd *sdp); -diff --git a/gfs2/libgfs2/misc.c b/gfs2/libgfs2/misc.c -index 7f500e6..195b983 100644 ---- a/gfs2/libgfs2/misc.c -+++ b/gfs2/libgfs2/misc.c -@@ -163,6 +163,100 @@ int is_pathname_mounted(char *path_name, char *device_name, int *ro_mount) - return 1; /* mounted */ - } - -+/* Returns 0 if fd1 and fd2 refer to the same device/file, 1 otherwise, or -1 on error */ -+static int fdcmp(int fd1, int fd2) -+{ -+ struct stat st1, st2; -+ if ((fstat(fd1, &st1) != 0) || (fstat(fd2, &st2) != 0)) -+ return -1; -+ if (S_ISBLK(st1.st_mode) && S_ISBLK(st2.st_mode)) { -+ if (st1.st_rdev == st2.st_rdev) { -+ return 0; -+ } -+ } else if ((st1.st_dev == st2.st_dev) && (st1.st_ino == st2.st_ino)) { -+ return 0; -+ } -+ return 1; -+} -+ -+int lgfs2_open_mnt(const char *path, int dirflags, int *dirfd, int devflags, int *devfd, struct mntent **mnt) -+{ -+ FILE *fp = setmntent("/proc/mounts", "r"); -+ if (fp == NULL) { -+ perror("open: /proc/mounts"); -+ return 1; -+ } -+ /* Assume path is mount point until we know better. */ -+ *dirfd = open(path, dirflags); -+ if (*dirfd < 0) -+ return 1; -+ -+ while ((*mnt = getmntent(fp)) != NULL) { -+ int fd; -+ if (strcmp((*mnt)->mnt_type, "gfs2") != 0) -+ continue; -+ *devfd = open((*mnt)->mnt_fsname, devflags); -+ /* Defer checking *devfd until later: whether it's ok to ignore -+ * the error depends on whether we find the mount point. */ -+ -+ if (strcmp(path, (*mnt)->mnt_dir) == 0) -+ break; -+ if (strcmp(path, (*mnt)->mnt_fsname) == 0 || fdcmp(*dirfd, *devfd) == 0) { -+ /* We have a match but our above assumption was -+ incorrect and *dirfd is actually the device. */ -+ close(*dirfd); -+ *dirfd = open((*mnt)->mnt_dir, dirflags); -+ break; -+ } -+ -+ fd = open((*mnt)->mnt_dir, dirflags); -+ if (fd >= 0) { -+ int diff = fdcmp(*dirfd, fd); -+ close(fd); -+ if (diff == 0) -+ break; -+ } -+ if (*devfd >= 0) -+ close(*devfd); -+ } -+ endmntent(fp); -+ if (*mnt == NULL) { -+ close(*dirfd); -+ return 0; /* Success. Answer is no. Both fds closed. */ -+ } -+ if (*dirfd < 0) { -+ close(*devfd); -+ return 1; -+ } -+ if (*devfd < 0) { -+ close(*dirfd); -+ return 1; -+ } -+ return 0; /* Success. Answer is yes. Both fds open. */ -+} -+ -+int lgfs2_open_mnt_dev(const char *path, int flags, struct mntent **mnt) -+{ -+ int dirfd = -1; -+ int devfd = -1; -+ if (lgfs2_open_mnt(path, O_RDONLY, &dirfd, flags, &devfd, mnt) != 0) -+ return -1; -+ if (*mnt != NULL) -+ close(dirfd); -+ return devfd; -+} -+ -+int lgfs2_open_mnt_dir(const char *path, int flags, struct mntent **mnt) -+{ -+ int dirfd = -1; -+ int devfd = -1; -+ if (lgfs2_open_mnt(path, flags, &dirfd, O_RDONLY, &devfd, mnt) != 0) -+ return -1; -+ if (*mnt != NULL) -+ close(devfd); -+ return dirfd; -+} -+ - static int lock_for_admin(struct gfs2_sbd *sdp) - { - int error; diff --git a/bz1079286-2-Switch_is_pathname_mounted_callers_to_lgfs2_open_mnt.patch b/bz1079286-2-Switch_is_pathname_mounted_callers_to_lgfs2_open_mnt.patch deleted file mode 100644 index ce05d00..0000000 --- a/bz1079286-2-Switch_is_pathname_mounted_callers_to_lgfs2_open_mnt.patch +++ /dev/null @@ -1,168 +0,0 @@ -commit ad11e277ebd8d01a1b0a29ee9f697ba90c8577a4 -Author: Andrew Price -Date: Sat Nov 16 02:19:07 2013 -0600 - - Switch is_pathname_mounted callers to lgfs2_open_mnt* - - Use the new lgfs2_open_mnt* functions in fsck.gfs2, gfs2_grow, and gfs2_jadd. - - Signed-off-by: Andrew Price - -diff --git a/gfs2/fsck/initialize.c b/gfs2/fsck/initialize.c -index 6612fe7..5758607 100644 ---- a/gfs2/fsck/initialize.c -+++ b/gfs2/fsck/initialize.c -@@ -1475,8 +1475,7 @@ int initialize(struct gfs2_sbd *sdp, int force_check, int preen, - - sdp->device_fd = open(opts.device, open_flag); - if (sdp->device_fd < 0) { -- int is_mounted, ro; -- -+ struct mntent *mnt; - if (open_flag == O_RDONLY || errno != EBUSY) { - log_crit( _("Unable to open device: %s\n"), - opts.device); -@@ -1485,30 +1484,23 @@ int initialize(struct gfs2_sbd *sdp, int force_check, int preen, - /* We can't open it EXCL. It may be already open rw (in which - case we want to deny them access) or it may be mounted as - the root file system at boot time (in which case we need to -- allow it.) We use is_pathname_mounted here even though -- we're specifying a device name, not a path name. The -- function checks for device as well. */ -- strncpy(sdp->device_name, opts.device, -- sizeof(sdp->device_name)); -- sdp->path_name = sdp->device_name; /* This gets overwritten */ -- is_mounted = is_pathname_mounted(sdp->path_name, sdp->device_name, &ro); -- /* If the device is busy, but not because it's mounted, fail. -+ allow it.) -+ If the device is busy, but not because it's mounted, fail. - This protects against cases where the file system is LVM -- and perhaps mounted on a different node. */ -- if (!is_mounted) -+ and perhaps mounted on a different node. -+ Try opening without O_EXCL. */ -+ sdp->device_fd = lgfs2_open_mnt_dev(opts.device, O_RDWR, &mnt); -+ if (sdp->device_fd < 0) - goto mount_fail; - /* If the device is mounted, but not mounted RO, fail. This - protects them against cases where the file system is - mounted RW, but still allows us to check our own root - file system. */ -- if (!ro) -- goto mount_fail; -+ if (!hasmntopt(mnt, MNTOPT_RO)) -+ goto close_fail; - /* The device is mounted RO, so it's likely our own root - file system. We can only do so much to protect the users -- from themselves. Try opening without O_EXCL. */ -- if ((sdp->device_fd = open(opts.device, O_RDWR)) < 0) -- goto mount_fail; -- -+ from themselves. */ - was_mounted_ro = 1; - } - -@@ -1591,6 +1583,8 @@ int initialize(struct gfs2_sbd *sdp, int force_check, int preen, - - return FSCK_OK; - -+close_fail: -+ close(sdp->device_fd); - mount_fail: - log_crit( _("Device %s is busy.\n"), opts.device); - return FSCK_USAGE; -diff --git a/gfs2/mkfs/main_grow.c b/gfs2/mkfs/main_grow.c -index 5db91d9..541b0f2 100644 ---- a/gfs2/mkfs/main_grow.c -+++ b/gfs2/mkfs/main_grow.c -@@ -323,7 +323,7 @@ main_grow(int argc, char *argv[]) - int rgcount, rindex_fd; - char rindex_name[PATH_MAX]; - int error = EXIT_SUCCESS; -- int ro_mnt = 0; -+ int devflags = (test ? O_RDONLY : O_RDWR) | O_CLOEXEC; - - memset(sdp, 0, sizeof(struct gfs2_sbd)); - sdp->bsize = GFS2_DEFAULT_BSIZE; -@@ -333,30 +333,23 @@ main_grow(int argc, char *argv[]) - sdp->md.journals = 1; - decode_arguments(argc, argv, sdp); - -- while ((argc - optind) > 0) { -+ for(; (argc - optind) > 0; optind++) { - int sane; -+ struct mntent *mnt; - struct rgrp_tree *last_rgrp; - -- strncpy(sdp->device_name, argv[optind], PATH_MAX - 1); -- sdp->path_name = argv[optind++]; -- -- if ((!is_pathname_mounted(sdp->path_name, sdp->device_name, &ro_mnt))) { -- perror(sdp->path_name); -- exit(EXIT_FAILURE); -- } -- -- sdp->path_fd = open(sdp->path_name, O_RDONLY | O_CLOEXEC); -- if (sdp->path_fd < 0){ -- perror(sdp->path_name); -+ error = lgfs2_open_mnt(argv[optind], O_RDONLY|O_CLOEXEC, &sdp->path_fd, -+ devflags, &sdp->device_fd, &mnt); -+ if (error != 0) { -+ fprintf(stderr, _("Error looking up mount '%s': %s\n"), argv[optind], strerror(errno)); - exit(EXIT_FAILURE); - } -- -- sdp->device_fd = open(sdp->device_name, -- (test ? O_RDONLY : O_RDWR) | O_CLOEXEC); -- if (sdp->device_fd < 0){ -- perror(sdp->device_name); -- exit(EXIT_FAILURE); -+ if (mnt == NULL) { -+ fprintf(stderr, _("%s: not a mounted gfs2 file system\n"), argv[optind]); -+ continue; - } -+ sdp->path_name = mnt->mnt_dir; -+ strncpy(sdp->device_name, mnt->mnt_fsname, PATH_MAX - 1); - - if (lgfs2_get_dev_info(sdp->device_fd, &sdp->dinfo) < 0) { - perror(sdp->device_name); -diff --git a/gfs2/mkfs/main_jadd.c b/gfs2/mkfs/main_jadd.c -index b6cd8e4..815dd52 100644 ---- a/gfs2/mkfs/main_jadd.c -+++ b/gfs2/mkfs/main_jadd.c -@@ -490,8 +490,8 @@ add_j(struct gfs2_sbd *sdp) - void main_jadd(int argc, char *argv[]) - { - struct gfs2_sbd sbd, *sdp = &sbd; -+ struct mntent *mnt; - unsigned int total; -- int ro_mnt = 0; - - memset(sdp, 0, sizeof(struct gfs2_sbd)); - sdp->jsize = GFS2_DEFAULT_JSIZE; -@@ -500,17 +500,18 @@ void main_jadd(int argc, char *argv[]) - - decode_arguments(argc, argv, sdp); - verify_arguments(sdp); -- -- sdp->path_fd = open(sdp->path_name, O_RDONLY | O_CLOEXEC); -- if (sdp->path_fd < 0){ -- perror(sdp->path_name); -+ -+ sbd.path_fd = lgfs2_open_mnt_dir(sbd.path_name, O_RDONLY|O_CLOEXEC, &mnt); -+ if (sbd.path_fd < 0) { -+ fprintf(stderr, _("Error looking up mount '%s': %s\n"), sbd.path_name, strerror(errno)); - exit(EXIT_FAILURE); - } -- -- if (!is_pathname_mounted(sdp->path_name, sdp->device_name, &ro_mnt)) { -- perror(sdp->path_name); -+ if (mnt == NULL) { -+ fprintf(stderr, _("%s: not a mounted gfs2 file system\n"), sbd.path_name); - exit(EXIT_FAILURE); - } -+ sbd.path_name = mnt->mnt_dir; -+ strncpy(sbd.device_name, mnt->mnt_fsname, PATH_MAX - 1); - - gather_info(sdp); - diff --git a/bz1079286-3-libgfs2_Remove_is_pathname_mounted.patch b/bz1079286-3-libgfs2_Remove_is_pathname_mounted.patch deleted file mode 100644 index 28cbb65..0000000 --- a/bz1079286-3-libgfs2_Remove_is_pathname_mounted.patch +++ /dev/null @@ -1,94 +0,0 @@ -commit 63db4e964739673d36c430cc5c78b02d93419f8a -Author: Andrew Price -Date: Sat Nov 16 02:21:36 2013 -0600 - - libgfs2: Remove is_pathname_mounted - - All callers are now using lgfs2_open_mnt* instead. - - Signed-off-by: Andrew Price - -diff --git a/gfs2/libgfs2/libgfs2.h b/gfs2/libgfs2/libgfs2.h -index 3e5d09c..e785017 100644 ---- a/gfs2/libgfs2/libgfs2.h -+++ b/gfs2/libgfs2/libgfs2.h -@@ -715,7 +715,6 @@ extern int metafs_interrupted; - extern int compute_heightsize(struct gfs2_sbd *sdp, uint64_t *heightsize, - uint32_t *maxheight, uint32_t bsize1, int diptrs, int inptrs); - extern int compute_constants(struct gfs2_sbd *sdp); --extern int is_pathname_mounted(char *path_name, char *device_name, int *ro_mount); - extern int lgfs2_open_mnt(const char *path, int dirflags, int *dirfd, int devflags, int *devfd, struct mntent **mnt); - extern int lgfs2_open_mnt_dev(const char *path, int flags, struct mntent **mnt); - extern int lgfs2_open_mnt_dir(const char *path, int flags, struct mntent **mnt); -diff --git a/gfs2/libgfs2/misc.c b/gfs2/libgfs2/misc.c -index 195b983..c4ed722 100644 ---- a/gfs2/libgfs2/misc.c -+++ b/gfs2/libgfs2/misc.c -@@ -102,67 +102,6 @@ int compute_constants(struct gfs2_sbd *sdp) - return 0; - } - --int is_pathname_mounted(char *path_name, char *device_name, int *ro_mount) --{ -- FILE *fp; -- struct mntent *mnt; -- dev_t file_dev=0, file_rdev=0; -- ino_t file_ino=0; -- struct stat st_buf; -- -- *ro_mount = 0; -- if ((fp = setmntent("/proc/mounts", "r")) == NULL) { -- perror("open: /proc/mounts"); -- return 0; -- } -- if (stat(path_name, &st_buf) == 0) { -- if (S_ISBLK(st_buf.st_mode)) { --#ifndef __GNU__ /* The GNU hurd is broken with respect to stat devices */ -- file_rdev = st_buf.st_rdev; --#endif /* __GNU__ */ -- } else { -- file_dev = st_buf.st_dev; -- file_ino = st_buf.st_ino; -- } -- } -- while ((mnt = getmntent (fp)) != NULL) { -- /* Check if they specified the device instead of mnt point */ -- if (strcmp(device_name, mnt->mnt_fsname) == 0) { -- strcpy(path_name, mnt->mnt_dir); /* fix it */ -- break; -- } -- if (strcmp(path_name, mnt->mnt_dir) == 0) { -- strcpy(device_name, mnt->mnt_fsname); /* fix it */ -- break; -- } -- if (stat(mnt->mnt_fsname, &st_buf) == 0) { -- if (S_ISBLK(st_buf.st_mode)) { --#ifndef __GNU__ -- if (file_rdev && (file_rdev == st_buf.st_rdev)) -- break; --#endif /* __GNU__ */ -- } else { -- if (file_dev && ((file_dev == st_buf.st_dev) && -- (file_ino == st_buf.st_ino))) -- break; -- } -- } -- } -- endmntent (fp); -- if (mnt == NULL) -- return 0; -- if (stat(mnt->mnt_dir, &st_buf) < 0) { -- if (errno == ENOENT) -- return 0; -- } -- /* Can't trust fstype because / has "rootfs". */ -- if (file_rdev && (st_buf.st_dev != file_rdev)) -- return 0; -- if (hasmntopt(mnt, MNTOPT_RO)) -- *ro_mount = 1; -- return 1; /* mounted */ --} -- - /* Returns 0 if fd1 and fd2 refer to the same device/file, 1 otherwise, or -1 on error */ - static int fdcmp(int fd1, int fd2) - { diff --git a/gfs2-utils.spec b/gfs2-utils.spec index 9810021..92b012c 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -1,7 +1,7 @@ ############################################################################### ############################################################################### ## -## Copyright (C) 2004-2013 Red Hat, Inc. All rights reserved. +## Copyright (C) 2004-2014 Red Hat, Inc. All rights reserved. ## ## This copyrighted material is made available to anyone wishing to use, ## modify, copy, or redistribute it subject to the terms and conditions @@ -11,8 +11,8 @@ ############################################################################### Name: gfs2-utils -Version: 3.1.6 -Release: 9%{?dist} +Version: 3.1.7 +Release: 1%{?dist} License: GPLv2+ and LGPLv2+ Group: System Environment/Kernel Summary: Utilities for managing the global file system (GFS2) @@ -40,19 +40,13 @@ URL: https://fedorahosted.org/cluster/wiki/HomePage # ./make-tarball.sh # Source0: https://fedorahosted.org/released/gfs2-utils/gfs2-utils-%{version}.tar.gz -Patch0: bz1079286-0-gfs2_grow_Don_t_try_to_open_an_empty_string.patch -Patch1: bz1079286-1-libgfs2_Add_lgfs2_open_mnt_functions.patch -Patch2: bz1079286-2-Switch_is_pathname_mounted_callers_to_lgfs2_open_mnt.patch -Patch3: bz1079286-3-libgfs2_Remove_is_pathname_mounted.patch +Patch0: gfs2_utils_tests_Build_unit_tests_with_consistent_cpp_flags.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) %prep -%setup -q -n gfs2-utils -%patch0 -p1 -b .bz1079286-0-gfs2_grow_Don_t_try_to_open_an_empty_string -%patch1 -p1 -b .bz1079286-1-libgfs2_Add_lgfs2_open_mnt_functions -%patch2 -p1 -b .bz1079286-2-Switch_is_pathname_mounted_callers_to_lgfs2_open_mnt -%patch3 -p1 -b .bz1079286-3-libgfs2_Remove_is_pathname_mounted +%setup -q -n gfs2-utils-%{version} +%patch0 -p1 -b .gfs2_utils_tests_Build_unit_tests_with_consistent_cpp_flags %build ./autogen.sh @@ -99,6 +93,11 @@ file systems. %{_mandir}/man5/* %changelog +* Mon Sep 08 2014 Andrew Price - 3.1.7-1 +- New upstream release +- Drop all patches +- gfs2-utils tests: Build unit tests with consistent cpp flags + * Sat Aug 16 2014 Fedora Release Engineering - 3.1.6-9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild diff --git a/gfs2_utils_tests_Build_unit_tests_with_consistent_cpp_flags.patch b/gfs2_utils_tests_Build_unit_tests_with_consistent_cpp_flags.patch new file mode 100644 index 0000000..e61d3bf --- /dev/null +++ b/gfs2_utils_tests_Build_unit_tests_with_consistent_cpp_flags.patch @@ -0,0 +1,56 @@ +commit 54c5ee8ee1b5bf008400d1c86af3a44f15eb4970 +Author: Andrew Price +Date: Mon Sep 8 12:03:40 2014 +0200 + + gfs2-utils tests: Build unit tests with consistent cpp flags + + The check_rgrp unit test was failing on ARM and s390 due to struct + gfs2_sbd having a different alignment from libgfs2. This was due to the + unit tests being built with different options to libgfs2. Fix up the + unit test CPPFLAGS to make sure the alignment is consistent. + + Also bump the test timeout for check_rgrp to make sure it completes on + slower build machines. + + Signed-off-by: Andrew Price + +diff --git a/tests/Makefile.am b/tests/Makefile.am +index 70e77ef..b912dfa 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -15,16 +15,22 @@ UNIT_CFLAGS = \ + UNIT_LDADD = \ + $(top_builddir)/gfs2/libgfs2/libgfs2.la \ + @check_LIBS@ ++UNIT_CPPFLAGS = \ ++ -D_FILE_OFFSET_BITS=64 \ ++ -D_LARGEFILE64_SOURCE \ ++ -D_GNU_SOURCE + + check_PROGRAMS = $(UNIT_TESTS) + + check_meta_SOURCES = $(UNIT_SOURCES) check_meta.c + check_meta_CFLAGS = $(UNIT_CFLAGS) + check_meta_LDADD = $(UNIT_LDADD) ++check_meta_CPPFLAGS = $(UNIT_CPPFLAGS) + + check_rgrp_SOURCES = $(UNIT_SOURCES) check_rgrp.c + check_rgrp_CFLAGS = $(UNIT_CFLAGS) + check_rgrp_LDADD = $(UNIT_LDADD) ++check_rgrp_CPPFLAGS = $(UNIT_CPPFLAGS) + endif + + # The `:;' works around a Bash 3.2 bug when the output is not writable. +diff --git a/tests/check_rgrp.c b/tests/check_rgrp.c +index d113846..e5fca8d 100644 +--- a/tests/check_rgrp.c ++++ b/tests/check_rgrp.c +@@ -125,7 +125,7 @@ static Suite * libgfs2_suite(void) + tcase_add_test(tc_rgrp, test_rbm_find_good); + tcase_add_test(tc_rgrp, test_rbm_find_bad); + tcase_add_test(tc_rgrp, test_rbm_find_lastblock); +- tcase_set_timeout(tc_rgrp, 60); ++ tcase_set_timeout(tc_rgrp, 120); + suite_add_tcase(s, tc_rgrp); + + return s; diff --git a/sources b/sources index f4312d3..0605e78 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -9d47c272298c62868dd49c7b1f4bcefc gfs2-utils-3.1.6.tar.gz +b020102a326aecafef458fd1c9ccc5f3 gfs2-utils-3.1.7.tar.gz From c9f9414bb56357e5b7fcf5b45ca2782c73a5e2cd Mon Sep 17 00:00:00 2001 From: Andrew Price Date: Tue, 7 Apr 2015 19:18:33 +0100 Subject: [PATCH 29/75] * Tue Apr 07 2015 Andrew Price - 3.1.8-1 - New upstream release - Remove perl dependency - Update spec per the latest packaging guidelines --- .gitignore | 1 + gfs2-utils.spec | 44 +++++---------- ...unit_tests_with_consistent_cpp_flags.patch | 56 ------------------- sources | 2 +- 4 files changed, 15 insertions(+), 88 deletions(-) delete mode 100644 gfs2_utils_tests_Build_unit_tests_with_consistent_cpp_flags.patch diff --git a/.gitignore b/.gitignore index 8e5aacd..0937feb 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ /gfs2-utils-3.1.5.tar.gz /gfs2-utils-3.1.6.tar.gz /gfs2-utils-3.1.7.tar.gz +/gfs2-utils-3.1.8.tar.gz diff --git a/gfs2-utils.spec b/gfs2-utils.spec index 92b012c..0a787cf 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -11,7 +11,7 @@ ############################################################################### Name: gfs2-utils -Version: 3.1.7 +Version: 3.1.8 Release: 1%{?dist} License: GPLv2+ and LGPLv2+ Group: System Environment/Kernel @@ -19,11 +19,9 @@ Summary: Utilities for managing the global file system (GFS2) %ifnarch %{arm} %{?fedora:Requires: kmod(gfs2.ko) kmod(dlm.ko)} %endif -Obsoletes: gfs2-cluster < %{version} BuildRequires: ncurses-devel BuildRequires: kernel-headers BuildRequires: automake -BuildRequires: perl BuildRequires: libtool BuildRequires: zlib-devel BuildRequires: gettext-devel @@ -31,55 +29,34 @@ BuildRequires: bison BuildRequires: flex BuildRequires: libblkid-devel BuildRequires: check-devel +Source: https://fedorahosted.org/released/gfs2-utils/gfs2-utils-%{version}.tar.gz URL: https://fedorahosted.org/cluster/wiki/HomePage -# The source for this package was pulled from the upstream git tree. -# Use the following commands to generate the tarball: -# git clone git://git.fedorahosted.org/gfs2-utils.git -# cd gfs2-utils -# ./make-tarball.sh -# -Source0: https://fedorahosted.org/released/gfs2-utils/gfs2-utils-%{version}.tar.gz -Patch0: gfs2_utils_tests_Build_unit_tests_with_consistent_cpp_flags.patch - -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) - %prep %setup -q -n gfs2-utils-%{version} -%patch0 -p1 -b .gfs2_utils_tests_Build_unit_tests_with_consistent_cpp_flags %build ./autogen.sh %configure -make %{_smp_mflags} +make %{_smp_mflags} V=1 %check -make check +make check || { cat tests/testsuite.log; exit 1; } %install -rm -rf %{buildroot} make -C gfs2 install DESTDIR=%{buildroot} # Don't ship gfs2_{trace,lockcapture} in this package -rm -f %{buildroot}/sbin/gfs2_trace -rm -f %{buildroot}/sbin/gfs2_lockcapture +rm -f %{buildroot}/usr/sbin/gfs2_trace +rm -f %{buildroot}/usr/sbin/gfs2_lockcapture rm -f %{buildroot}%{_mandir}/man8/gfs2_trace.8 rm -f %{buildroot}%{_mandir}/man8/gfs2_lockcapture.8 -# Install into /usr/sbin per UsrMove -mv %{buildroot}/sbin/fsck.gfs2 %{buildroot}/usr/sbin/ -mv %{buildroot}/sbin/mkfs.gfs2 %{buildroot}/usr/sbin/ -mv %{buildroot}/sbin/gfs2_grow %{buildroot}/usr/sbin/ -mv %{buildroot}/sbin/gfs2_jadd %{buildroot}/usr/sbin/ -%clean -rm -rf %{buildroot} - -%description -n gfs2-utils +%description The gfs2-utils package contains a number of utilities for creating, checking, modifying, and correcting any inconsistencies in GFS2 file systems. -%files -n gfs2-utils -%defattr(-,root,root,-) +%files %doc doc/COPYING.* doc/COPYRIGHT doc/*.txt %doc doc/README.contributing doc/README.licence %{_sbindir}/fsck.gfs2 @@ -93,6 +70,11 @@ file systems. %{_mandir}/man5/* %changelog +* Tue Apr 07 2015 Andrew Price - 3.1.8-1 +- New upstream release +- Remove perl dependency +- Update spec per the latest packaging guidelines + * Mon Sep 08 2014 Andrew Price - 3.1.7-1 - New upstream release - Drop all patches diff --git a/gfs2_utils_tests_Build_unit_tests_with_consistent_cpp_flags.patch b/gfs2_utils_tests_Build_unit_tests_with_consistent_cpp_flags.patch deleted file mode 100644 index e61d3bf..0000000 --- a/gfs2_utils_tests_Build_unit_tests_with_consistent_cpp_flags.patch +++ /dev/null @@ -1,56 +0,0 @@ -commit 54c5ee8ee1b5bf008400d1c86af3a44f15eb4970 -Author: Andrew Price -Date: Mon Sep 8 12:03:40 2014 +0200 - - gfs2-utils tests: Build unit tests with consistent cpp flags - - The check_rgrp unit test was failing on ARM and s390 due to struct - gfs2_sbd having a different alignment from libgfs2. This was due to the - unit tests being built with different options to libgfs2. Fix up the - unit test CPPFLAGS to make sure the alignment is consistent. - - Also bump the test timeout for check_rgrp to make sure it completes on - slower build machines. - - Signed-off-by: Andrew Price - -diff --git a/tests/Makefile.am b/tests/Makefile.am -index 70e77ef..b912dfa 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -15,16 +15,22 @@ UNIT_CFLAGS = \ - UNIT_LDADD = \ - $(top_builddir)/gfs2/libgfs2/libgfs2.la \ - @check_LIBS@ -+UNIT_CPPFLAGS = \ -+ -D_FILE_OFFSET_BITS=64 \ -+ -D_LARGEFILE64_SOURCE \ -+ -D_GNU_SOURCE - - check_PROGRAMS = $(UNIT_TESTS) - - check_meta_SOURCES = $(UNIT_SOURCES) check_meta.c - check_meta_CFLAGS = $(UNIT_CFLAGS) - check_meta_LDADD = $(UNIT_LDADD) -+check_meta_CPPFLAGS = $(UNIT_CPPFLAGS) - - check_rgrp_SOURCES = $(UNIT_SOURCES) check_rgrp.c - check_rgrp_CFLAGS = $(UNIT_CFLAGS) - check_rgrp_LDADD = $(UNIT_LDADD) -+check_rgrp_CPPFLAGS = $(UNIT_CPPFLAGS) - endif - - # The `:;' works around a Bash 3.2 bug when the output is not writable. -diff --git a/tests/check_rgrp.c b/tests/check_rgrp.c -index d113846..e5fca8d 100644 ---- a/tests/check_rgrp.c -+++ b/tests/check_rgrp.c -@@ -125,7 +125,7 @@ static Suite * libgfs2_suite(void) - tcase_add_test(tc_rgrp, test_rbm_find_good); - tcase_add_test(tc_rgrp, test_rbm_find_bad); - tcase_add_test(tc_rgrp, test_rbm_find_lastblock); -- tcase_set_timeout(tc_rgrp, 60); -+ tcase_set_timeout(tc_rgrp, 120); - suite_add_tcase(s, tc_rgrp); - - return s; diff --git a/sources b/sources index 0605e78..0a3227f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -b020102a326aecafef458fd1c9ccc5f3 gfs2-utils-3.1.7.tar.gz +f43b26f006b0a58d86a08eed579871f1 gfs2-utils-3.1.8.tar.gz From 9b97d62de89c991b7a47475818af1b7ecb440552 Mon Sep 17 00:00:00 2001 From: Andrew Price Date: Sat, 18 Apr 2015 18:43:42 +0100 Subject: [PATCH 30/75] * Sat Apr 18 2015 Andrew Price - 3.1.8-2 - fsck.gfs2: replace recent i_goal fixes with simple logic --- ...ecent_i_goal_fixes_with_simple_logic.patch | 304 ++++++++++++++++++ gfs2-utils.spec | 7 +- 2 files changed, 310 insertions(+), 1 deletion(-) create mode 100644 fsck_gfs2_replace_recent_i_goal_fixes_with_simple_logic.patch diff --git a/fsck_gfs2_replace_recent_i_goal_fixes_with_simple_logic.patch b/fsck_gfs2_replace_recent_i_goal_fixes_with_simple_logic.patch new file mode 100644 index 0000000..7411fd8 --- /dev/null +++ b/fsck_gfs2_replace_recent_i_goal_fixes_with_simple_logic.patch @@ -0,0 +1,304 @@ +commit f1028ec054f2d7f85a449b2bf0894e0435c01d6a +Author: Abhi Das +Date: Tue Apr 14 19:51:55 2015 -0500 + + fsck.gfs2: replace recent i_goal fixes with simple logic + + This patch reverses the recent set of i_goal fixes for fsck.gfs2. + This is because of two problems. + 1. It is not possible to determine if a valid block within the fs + is the correct goal block for a given inode. + 2. Conversely, given an inode, it is also not possible to accurately + determine what its goal block should be. + + The previous patches assumed that the last block of a file is its + goal block, but that is not true if the file is a directory or if + its blocks are not allocated sequentially. fsck.gfs2 would flag + these inodes incorrectly as having bad i_goal values. + + This patch takes a simple approach. It checks if the i_goal of a + given inode is out of bounds of the fs. If so, we can be certain + that it is wrong and we set it to the inode metadata block. This + is a safe starting point for gfs2 to determine where to allocate + from next. + + Resolves: rhbz#1186515 + Signed-off-by: Abhi Das + +diff --git a/gfs2/fsck/metawalk.c b/gfs2/fsck/metawalk.c +index f05fb51..4d5a660 100644 +--- a/gfs2/fsck/metawalk.c ++++ b/gfs2/fsck/metawalk.c +@@ -1428,8 +1428,7 @@ static int build_and_check_metalist(struct gfs2_inode *ip, osi_list_t *mlp, + */ + static int check_data(struct gfs2_inode *ip, struct metawalk_fxns *pass, + struct gfs2_buffer_head *bh, int head_size, +- uint64_t *last_block, uint64_t *blks_checked, +- uint64_t *error_blk) ++ uint64_t *blks_checked, uint64_t *error_blk) + { + int error = 0, rc = 0; + uint64_t block, *ptr; +@@ -1444,7 +1443,7 @@ static int check_data(struct gfs2_inode *ip, struct metawalk_fxns *pass, + + if (skip_this_pass || fsck_abort) + return error; +- *last_block = block = be64_to_cpu(*ptr); ++ block = be64_to_cpu(*ptr); + /* It's important that we don't call valid_block() and + bypass calling check_data on invalid blocks because that + would defeat the rangecheck_block related functions in +@@ -1548,15 +1547,12 @@ int check_metatree(struct gfs2_inode *ip, struct metawalk_fxns *pass) + struct gfs2_buffer_head *bh; + uint32_t height = ip->i_di.di_height; + int i, head_size; +- uint64_t blks_checked = 0, last_block = 0; ++ uint64_t blks_checked = 0; + int error, rc; + int metadata_clean = 0; + uint64_t error_blk = 0; + int hit_error_blk = 0; + +- if (!height && pass->check_i_goal) +- pass->check_i_goal(ip, ip->i_di.di_num.no_addr, +- pass->private); + if (!height && !is_dir(&ip->i_di, ip->i_sbd->gfs1)) + return 0; + +@@ -1575,9 +1571,6 @@ int check_metatree(struct gfs2_inode *ip, struct metawalk_fxns *pass) + * comprise the directory hash table, so we perform the directory + * checks and exit. */ + if (is_dir(&ip->i_di, ip->i_sbd->gfs1)) { +- last_block = ip->i_di.di_num.no_addr; +- if (pass->check_i_goal) +- pass->check_i_goal(ip, last_block, pass->private); + if (!(ip->i_di.di_flags & GFS2_DIF_EXHASH)) + goto out; + /* check validity of leaf blocks and leaf chains */ +@@ -1604,7 +1597,7 @@ int check_metatree(struct gfs2_inode *ip, struct metawalk_fxns *pass) + + if (pass->check_data) + error = check_data(ip, pass, bh, head_size, +- &last_block, &blks_checked, &error_blk); ++ &blks_checked, &error_blk); + if (pass->big_file_msg && ip->i_di.di_blocks > COMFORTABLE_BLKS) + pass->big_file_msg(ip, blks_checked); + } +@@ -1616,8 +1609,6 @@ int check_metatree(struct gfs2_inode *ip, struct metawalk_fxns *pass) + (unsigned long long)ip->i_di.di_num.no_addr); + fflush(stdout); + } +- if (!error && pass->check_i_goal) +- pass->check_i_goal(ip, last_block, pass->private); + undo_metalist: + if (!error) + goto out; +@@ -1958,80 +1949,6 @@ static int alloc_leaf(struct gfs2_inode *ip, uint64_t block, void *private) + return 0; + } + +-/** +- * rgrp_contains_block - Check if the rgrp provided contains the +- * given block. Taken directly from the gfs2 kernel code +- * @rgd: The rgrp to search within +- * @block: The block to search for +- * +- * Returns: 1 if present, 0 if not. +- */ +-static inline int rgrp_contains_block(struct rgrp_tree *rgd, uint64_t block) +-{ +- uint64_t first = rgd->ri.ri_data0; +- uint64_t last = first + rgd->ri.ri_data; +- return first <= block && block < last; +-} +- +-/** +- * check_i_goal +- * @ip +- * @goal_blk: What the goal block should be for this inode +- * +- * The goal block for a regular file is typically the last +- * data block of the file. If we can't get the right value, +- * the inode metadata block is the next best thing. +- * +- * Returns: 0 if corrected, 1 if not corrected +- */ +-int check_i_goal(struct gfs2_inode *ip, uint64_t goal_blk, +- void *private) +-{ +- struct gfs2_sbd *sdp = ip->i_sbd; +- uint64_t i_block = ip->i_di.di_num.no_addr; +- +- /* Don't fix gfs1 inodes, system inodes or inodes whose goal blocks are +- * set to the inode blocks themselves. */ +- if (sdp->gfs1 || ip->i_di.di_flags & GFS2_DIF_SYSTEM || +- ip->i_di.di_goal_meta == i_block) +- return 0; +- /* Don't fix directory goal blocks unless we know they're wrong. +- * i.e. out of bounds of the fs. Directories can easily have blocks +- * outside of the dinode's rgrp and thus we have no way of knowing +- * if the goal block is bogus or not. */ +- if (is_dir(&ip->i_di, ip->i_sbd->gfs1) && +- (ip->i_di.di_goal_meta > sdp->sb_addr && +- ip->i_di.di_goal_meta <= sdp->fssize)) +- return 0; +- /* We default to the inode block */ +- if (!goal_blk) +- goal_blk = i_block; +- +- if (ip->i_di.di_goal_meta != goal_blk) { +- /* If the existing goal block is in the same rgrp as the inode, +- * we give the benefit of doubt and assume the value is correct */ +- if (ip->i_rgd && +- rgrp_contains_block(ip->i_rgd, ip->i_di.di_goal_meta)) +- goto skip; +- log_err( _("Error: inode %llu (0x%llx) has invalid " +- "allocation goal block %llu (0x%llx). Should" +- " be %llu (0x%llx)\n"), +- (unsigned long long)i_block, (unsigned long long)i_block, +- (unsigned long long)ip->i_di.di_goal_meta, +- (unsigned long long)ip->i_di.di_goal_meta, +- (unsigned long long)goal_blk, (unsigned long long)goal_blk); +- if (query( _("Fix the invalid goal block? (y/n) "))) { +- ip->i_di.di_goal_meta = ip->i_di.di_goal_data = goal_blk; +- bmodified(ip->i_bh); +- } else { +- log_err(_("Invalid goal block not fixed.\n")); +- return 1; +- } +- } +-skip: +- return 0; +-} +- + struct metawalk_fxns alloc_fxns = { + .private = NULL, + .check_leaf = alloc_leaf, +@@ -2042,7 +1959,6 @@ struct metawalk_fxns alloc_fxns = { + .check_dentry = NULL, + .check_eattr_entry = NULL, + .check_eattr_extentry = NULL, +- .check_i_goal = check_i_goal, + .finish_eattr_indir = NULL, + }; + +diff --git a/gfs2/fsck/metawalk.h b/gfs2/fsck/metawalk.h +index 779360e..fa4c850 100644 +--- a/gfs2/fsck/metawalk.h ++++ b/gfs2/fsck/metawalk.h +@@ -50,8 +50,6 @@ extern int _fsck_blockmap_set(struct gfs2_inode *ip, uint64_t bblock, + const char *caller, int line); + extern int check_n_fix_bitmap(struct gfs2_sbd *sdp, uint64_t blk, + int error_on_dinode, int new_blockmap_state); +-extern int check_i_goal(struct gfs2_inode *ip, uint64_t goal_blk, +- void *private); + extern void reprocess_inode(struct gfs2_inode *ip, const char *desc); + extern struct duptree *dupfind(uint64_t block); + extern struct gfs2_inode *fsck_system_inode(struct gfs2_sbd *sdp, +@@ -91,7 +89,6 @@ enum meta_check_rc { + * check_dentry: + * check_eattr_entry: + * check_eattr_extentry: +- * check_i_goal: + */ + struct metawalk_fxns { + void *private; +@@ -143,8 +140,6 @@ struct metawalk_fxns { + struct gfs2_ea_header *ea_hdr, + struct gfs2_ea_header *ea_hdr_prev, + void *private); +- int (*check_i_goal) (struct gfs2_inode *ip, uint64_t goal_blk, +- void *private); + int (*finish_eattr_indir) (struct gfs2_inode *ip, int leaf_pointers, + int leaf_pointer_errors, void *private); + void (*big_file_msg) (struct gfs2_inode *ip, uint64_t blks_checked); +diff --git a/gfs2/fsck/pass1.c b/gfs2/fsck/pass1.c +index 69c88f4..0909873 100644 +--- a/gfs2/fsck/pass1.c ++++ b/gfs2/fsck/pass1.c +@@ -100,7 +100,6 @@ struct metawalk_fxns pass1_fxns = { + .check_dentry = NULL, + .check_eattr_entry = check_eattr_entries, + .check_eattr_extentry = check_extended_leaf_eattr, +- .check_i_goal = check_i_goal, + .finish_eattr_indir = finish_eattr_indir, + .big_file_msg = big_file_comfort, + .repair_leaf = pass1_repair_leaf, +@@ -1205,12 +1204,37 @@ bad_dinode: + return -1; + } + ++static void check_i_goal(struct gfs2_sbd *sdp, struct gfs2_inode *ip) ++{ ++ if (sdp->gfs1 || ip->i_di.di_flags & GFS2_DIF_SYSTEM) ++ return; ++ ++ if (ip->i_di.di_goal_meta <= sdp->sb_addr || ++ ip->i_di.di_goal_meta > sdp->fssize) { ++ log_err(_("Inode #%llu (0x%llx): Bad allocation goal block " ++ "found: %llu (0x%llx)\n"), ++ (unsigned long long)ip->i_di.di_num.no_addr, ++ (unsigned long long)ip->i_di.di_num.no_addr, ++ (unsigned long long)ip->i_di.di_goal_meta, ++ (unsigned long long)ip->i_di.di_goal_meta); ++ if (query( _("Fix goal block in inode #%llu (0x%llx)? (y/n) "), ++ (unsigned long long)ip->i_di.di_num.no_addr, ++ (unsigned long long)ip->i_di.di_num.no_addr)) { ++ ip->i_di.di_goal_meta = ip->i_di.di_num.no_addr; ++ bmodified(ip->i_bh); ++ } else ++ log_err(_("Allocation goal block in inode #%lld " ++ "(0x%llx) not fixed\n"), ++ (unsigned long long)ip->i_di.di_num.no_addr, ++ (unsigned long long)ip->i_di.di_num.no_addr); ++ } ++} ++ + /* + * handle_di - This is now a wrapper function that takes a gfs2_buffer_head + * and calls handle_ip, which takes an in-code dinode structure. + */ +-static int handle_di(struct gfs2_sbd *sdp, struct gfs2_buffer_head *bh, +- struct rgrp_tree *rgd) ++static int handle_di(struct gfs2_sbd *sdp, struct gfs2_buffer_head *bh) + { + int error = 0; + uint64_t block = bh->b_blocknr; +@@ -1252,7 +1276,7 @@ static int handle_di(struct gfs2_sbd *sdp, struct gfs2_buffer_head *bh, + (unsigned long long)block, + (unsigned long long)block); + } +- ip->i_rgd = rgd; ++ check_i_goal(sdp, ip); + error = handle_ip(sdp, ip); + fsck_inode_put(&ip); + return error; +@@ -1378,6 +1402,7 @@ static int check_system_inode(struct gfs2_sbd *sdp, + "directory entries.\n"), filename); + } + } ++ check_i_goal(sdp, *sysinode); + error = handle_ip(sdp, *sysinode); + return error ? error : err; + } +@@ -1602,7 +1627,7 @@ static int pass1_process_bitmap(struct gfs2_sbd *sdp, struct rgrp_tree *rgd, uin + (unsigned long long)block, + (unsigned long long)block); + check_n_fix_bitmap(sdp, block, 0, GFS2_BLKST_FREE); +- } else if (handle_di(sdp, bh, rgd) < 0) { ++ } else if (handle_di(sdp, bh) < 0) { + stack; + brelse(bh); + gfs2_special_free(&gfs1_rindex_blks); +diff --git a/gfs2/libgfs2/libgfs2.h b/gfs2/libgfs2/libgfs2.h +index f1f81d3..ccae721 100644 +--- a/gfs2/libgfs2/libgfs2.h ++++ b/gfs2/libgfs2/libgfs2.h +@@ -233,7 +233,6 @@ struct gfs2_inode { + struct gfs2_dinode i_di; + struct gfs2_buffer_head *i_bh; + struct gfs2_sbd *i_sbd; +- struct rgrp_tree *i_rgd; /* The rgrp this inode is in */ + }; + + struct master_dir diff --git a/gfs2-utils.spec b/gfs2-utils.spec index 0a787cf..d951e6d 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -12,7 +12,7 @@ Name: gfs2-utils Version: 3.1.8 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv2+ and LGPLv2+ Group: System Environment/Kernel Summary: Utilities for managing the global file system (GFS2) @@ -31,9 +31,11 @@ BuildRequires: libblkid-devel BuildRequires: check-devel Source: https://fedorahosted.org/released/gfs2-utils/gfs2-utils-%{version}.tar.gz URL: https://fedorahosted.org/cluster/wiki/HomePage +Patch0: fsck_gfs2_replace_recent_i_goal_fixes_with_simple_logic.patch %prep %setup -q -n gfs2-utils-%{version} +%patch0 -p 1 -b .fsck_gfs2_replace_recent_i_goal_fixes_with_simple_logic %build ./autogen.sh @@ -70,6 +72,9 @@ file systems. %{_mandir}/man5/* %changelog +* Sat Apr 18 2015 Andrew Price - 3.1.8-2 +- fsck.gfs2: replace recent i_goal fixes with simple logic + * Tue Apr 07 2015 Andrew Price - 3.1.8-1 - New upstream release - Remove perl dependency From 4f06f7e039ccd62817bb4443f37d508380b1b6c2 Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Wed, 17 Jun 2015 07:25:55 +0000 Subject: [PATCH 31/75] - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild --- gfs2-utils.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gfs2-utils.spec b/gfs2-utils.spec index d951e6d..2d3801f 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -12,7 +12,7 @@ Name: gfs2-utils Version: 3.1.8 -Release: 2%{?dist} +Release: 3%{?dist} License: GPLv2+ and LGPLv2+ Group: System Environment/Kernel Summary: Utilities for managing the global file system (GFS2) @@ -72,6 +72,9 @@ file systems. %{_mandir}/man5/* %changelog +* Wed Jun 17 2015 Fedora Release Engineering - 3.1.8-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + * Sat Apr 18 2015 Andrew Price - 3.1.8-2 - fsck.gfs2: replace recent i_goal fixes with simple logic From b4080e636ce415b8f31bccc92f03a4234a35cbb5 Mon Sep 17 00:00:00 2001 From: Andrew Price Date: Tue, 11 Aug 2015 19:41:05 +0100 Subject: [PATCH 32/75] * Tue Aug 11 2015 Andrew Price - 3.1.8-4 - gfs2-utils: Fix hang on withdraw - Install udev withdraw handler scripts --- gfs2-utils.spec | 14 +++- gfs2_utils_Fix_hang_on_withdraw.patch | 97 +++++++++++++++++++++++++++ 2 files changed, 110 insertions(+), 1 deletion(-) create mode 100644 gfs2_utils_Fix_hang_on_withdraw.patch diff --git a/gfs2-utils.spec b/gfs2-utils.spec index 2d3801f..317796a 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -12,7 +12,7 @@ Name: gfs2-utils Version: 3.1.8 -Release: 3%{?dist} +Release: 4%{?dist} License: GPLv2+ and LGPLv2+ Group: System Environment/Kernel Summary: Utilities for managing the global file system (GFS2) @@ -32,10 +32,12 @@ BuildRequires: check-devel Source: https://fedorahosted.org/released/gfs2-utils/gfs2-utils-%{version}.tar.gz URL: https://fedorahosted.org/cluster/wiki/HomePage Patch0: fsck_gfs2_replace_recent_i_goal_fixes_with_simple_logic.patch +Patch1: gfs2_utils_Fix_hang_on_withdraw.patch %prep %setup -q -n gfs2-utils-%{version} %patch0 -p 1 -b .fsck_gfs2_replace_recent_i_goal_fixes_with_simple_logic +%patch1 -p 1 -b .gfs2_utils_Fix_hang_on_withdraw %build ./autogen.sh @@ -52,6 +54,10 @@ rm -f %{buildroot}/usr/sbin/gfs2_trace rm -f %{buildroot}/usr/sbin/gfs2_lockcapture rm -f %{buildroot}%{_mandir}/man8/gfs2_trace.8 rm -f %{buildroot}%{_mandir}/man8/gfs2_lockcapture.8 +# Install withdraw helper scripts +install -m 755 gfs2/scripts/gfs2_wd_udev.sh %{buildroot}%{_sbindir}/ +install -D -m 644 gfs2/scripts/82-gfs2-withdraw.rules \ + %{buildroot}%{_prefix}/lib/udev/rules.d/82-gfs2-withdraw.rules %description The gfs2-utils package contains a number of utilities for creating, @@ -68,10 +74,16 @@ file systems. %{_sbindir}/gfs2_convert %{_sbindir}/gfs2_edit %{_sbindir}/tunegfs2 +%{_sbindir}/gfs2_wd_udev.sh %{_mandir}/man8/*gfs2* %{_mandir}/man5/* +%{_prefix}/lib/udev/rules.d/82-gfs2-withdraw.rules %changelog +* Tue Aug 11 2015 Andrew Price - 3.1.8-4 +- gfs2-utils: Fix hang on withdraw +- Install udev withdraw handler scripts + * Wed Jun 17 2015 Fedora Release Engineering - 3.1.8-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild diff --git a/gfs2_utils_Fix_hang_on_withdraw.patch b/gfs2_utils_Fix_hang_on_withdraw.patch new file mode 100644 index 0000000..2d2f051 --- /dev/null +++ b/gfs2_utils_Fix_hang_on_withdraw.patch @@ -0,0 +1,97 @@ +commit 4e9a8f12b74d61314e79904a0f02e42e99a98493 +Author: Abhi Das +Date: Tue Aug 4 11:00:51 2015 -0500 + + gfs2-utils: Fix hang on withdraw + + Issuing a withdraw on a gfs2 filesystem causes a hang. When + gfs_controld was removed, the userspace functionality that + completes a withdraw operation went away. This causes gfs2 + kernel to hang waiting for a withdraw completion ack from + userspace. + + This patchset introduces a uevent-based shell script to do + the job that gfs_controld used to do on withdraw. An 'offline' + uevent triggers the execution of this script. This script + suspends the device associated with the filesystem and signals + a completed withdraw to the kernel. + + Resolves: rhbz#1225634 + Signed-off-by: Abhi Das + +diff --git a/README.build b/README.build +index f4ebe53..6487bae 100644 +--- a/README.build ++++ b/README.build +@@ -29,5 +29,14 @@ To install gfs2-utils, run: + + make install + ++The following scripts (located in gfs2/scripts) are used to complete ++the userland portion of the gfs2 withdraw feature using uevents. They ++are not installed by 'make install' and need to be installed manually ++or during rpm installation to the corresponding locations. ++ ++ 82-gfs2-withdraw.rules in /etc/udev/rules.d/ ++ gfs2_wd_udev.sh in /usr/sbin/ ++ + See also doc/README.contributing for details on submitting patches and + doc/README.tests for more details regarding the test suite. ++ +diff --git a/gfs2/scripts/82-gfs2-withdraw.rules b/gfs2/scripts/82-gfs2-withdraw.rules +new file mode 100644 +index 0000000..2228615 +--- /dev/null ++++ b/gfs2/scripts/82-gfs2-withdraw.rules +@@ -0,0 +1,2 @@ ++SUBSYSTEM=="gfs2", ACTION=="offline", RUN+="/bin/sh /usr/sbin/gfs2_wd_udev.sh" ++ +diff --git a/gfs2/scripts/Makefile.am b/gfs2/scripts/Makefile.am +index 62fb2fe..dde906f 100644 +--- a/gfs2/scripts/Makefile.am ++++ b/gfs2/scripts/Makefile.am +@@ -3,3 +3,8 @@ MAINTAINERCLEANFILES = Makefile.in + dist_sbin_SCRIPTS = \ + gfs2_lockcapture \ + gfs2_trace ++ ++noinst_SCRIPTS = \ ++ 82-gfs2-withdraw.rules \ ++ gfs2_wd_udev.sh ++ +diff --git a/gfs2/scripts/gfs2_wd_udev.sh b/gfs2/scripts/gfs2_wd_udev.sh +new file mode 100755 +index 0000000..ac3ce35 +--- /dev/null ++++ b/gfs2/scripts/gfs2_wd_udev.sh +@@ -0,0 +1,30 @@ ++#!/bin/sh ++# ++# Do not run this script manually. This script is called by udev on a gfs2 ++# withdraw uevent and is used to complete the withdraw action and notify the ++# kernel. ++# ++ ++# Sanity checks ++if [ "$SUBSYSTEM" != "gfs2" ] || [ "$LOCKPROTO" != "lock_dlm" ] || ++ [ -z "$DEVPATH" ] || [ "$ACTION" != "offline" ] ++then ++ exit 1 # Nothing to do here ++fi ++ ++# Try and suspend the device ++SYSFS_TOPDIR="/sys"$DEVPATH ++DM_NAME=$(cat "$SYSFS_TOPDIR/device/dm/name") ++DM_DEV="/dev/mapper/"$DM_NAME ++ ++if [ -z "$DM_DEV" ] ++then ++ /usr/bin/dmsetup suspend $DM_DEV ++fi ++ ++# Signal completion of withdraw ++WD_ACK="$SYSFS_TOPDIR/lock_module/withdraw" ++if [ -f "$WD_ACK" ] ++then ++ echo "1" > $WD_ACK ++fi From 6d1e4a09aebb8892537e47b4d8cb28cb612370ef Mon Sep 17 00:00:00 2001 From: Andrew Price Date: Thu, 20 Aug 2015 16:11:44 +0100 Subject: [PATCH 33/75] * Thu Aug 20 2015 Andrew Price - 3.1.8-5 - Add patches to install the withdraw helper script properly: scripts_rename_gfs2_wd_udev_sh_to_gfs2_withdraw_helper.patch scripts_install_the_withdraw_helper_script.patch scripts_install_the_withdraw_udev_rules_script.patch - Remove the obsolete udev script installation bits --- gfs2-utils.spec | 21 +++- ...s_install_the_withdraw_helper_script.patch | 27 ++++ ...stall_the_withdraw_udev_rules_script.patch | 72 +++++++++++ ...2_wd_udev_sh_to_gfs2_withdraw_helper.patch | 115 ++++++++++++++++++ 4 files changed, 229 insertions(+), 6 deletions(-) create mode 100644 scripts_install_the_withdraw_helper_script.patch create mode 100644 scripts_install_the_withdraw_udev_rules_script.patch create mode 100644 scripts_rename_gfs2_wd_udev_sh_to_gfs2_withdraw_helper.patch diff --git a/gfs2-utils.spec b/gfs2-utils.spec index 317796a..37dd1fc 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -12,7 +12,7 @@ Name: gfs2-utils Version: 3.1.8 -Release: 4%{?dist} +Release: 5%{?dist} License: GPLv2+ and LGPLv2+ Group: System Environment/Kernel Summary: Utilities for managing the global file system (GFS2) @@ -33,11 +33,17 @@ Source: https://fedorahosted.org/released/gfs2-utils/gfs2-utils-%{version}.tar.g URL: https://fedorahosted.org/cluster/wiki/HomePage Patch0: fsck_gfs2_replace_recent_i_goal_fixes_with_simple_logic.patch Patch1: gfs2_utils_Fix_hang_on_withdraw.patch +Patch2: scripts_rename_gfs2_wd_udev_sh_to_gfs2_withdraw_helper.patch +Patch3: scripts_install_the_withdraw_helper_script.patch +Patch4: scripts_install_the_withdraw_udev_rules_script.patch %prep %setup -q -n gfs2-utils-%{version} %patch0 -p 1 -b .fsck_gfs2_replace_recent_i_goal_fixes_with_simple_logic %patch1 -p 1 -b .gfs2_utils_Fix_hang_on_withdraw +%patch2 -p 1 -b .scripts_rename_gfs2_wd_udev_sh_to_gfs2_withdraw_helper +%patch3 -p 1 -b .scripts_install_the_withdraw_helper_script +%patch4 -p 1 -b .scripts_install_the_withdraw_udev_rules_script %build ./autogen.sh @@ -54,10 +60,6 @@ rm -f %{buildroot}/usr/sbin/gfs2_trace rm -f %{buildroot}/usr/sbin/gfs2_lockcapture rm -f %{buildroot}%{_mandir}/man8/gfs2_trace.8 rm -f %{buildroot}%{_mandir}/man8/gfs2_lockcapture.8 -# Install withdraw helper scripts -install -m 755 gfs2/scripts/gfs2_wd_udev.sh %{buildroot}%{_sbindir}/ -install -D -m 644 gfs2/scripts/82-gfs2-withdraw.rules \ - %{buildroot}%{_prefix}/lib/udev/rules.d/82-gfs2-withdraw.rules %description The gfs2-utils package contains a number of utilities for creating, @@ -74,12 +76,19 @@ file systems. %{_sbindir}/gfs2_convert %{_sbindir}/gfs2_edit %{_sbindir}/tunegfs2 -%{_sbindir}/gfs2_wd_udev.sh +%{_sbindir}/gfs2_withdraw_helper %{_mandir}/man8/*gfs2* %{_mandir}/man5/* %{_prefix}/lib/udev/rules.d/82-gfs2-withdraw.rules %changelog +* Thu Aug 20 2015 Andrew Price - 3.1.8-5 +- Add patches to install the withdraw helper script properly: + scripts_rename_gfs2_wd_udev_sh_to_gfs2_withdraw_helper.patch + scripts_install_the_withdraw_helper_script.patch + scripts_install_the_withdraw_udev_rules_script.patch +- Remove the obsolete udev script installation bits + * Tue Aug 11 2015 Andrew Price - 3.1.8-4 - gfs2-utils: Fix hang on withdraw - Install udev withdraw handler scripts diff --git a/scripts_install_the_withdraw_helper_script.patch b/scripts_install_the_withdraw_helper_script.patch new file mode 100644 index 0000000..de2d182 --- /dev/null +++ b/scripts_install_the_withdraw_helper_script.patch @@ -0,0 +1,27 @@ +commit fdded71f349ec5928a1422bc7edaa7f4f6c0be26 +Author: Andrew Price +Date: Tue Aug 18 12:48:50 2015 +0100 + + scripts: install the withdraw helper script + + Install gfs2_withdraw_helper into /usr/sbin in 'make install'. + + Signed-off-by: Andrew Price + +diff --git a/gfs2/scripts/Makefile.am b/gfs2/scripts/Makefile.am +index 51764fa..056aaa5 100644 +--- a/gfs2/scripts/Makefile.am ++++ b/gfs2/scripts/Makefile.am +@@ -2,9 +2,9 @@ MAINTAINERCLEANFILES = Makefile.in + + dist_sbin_SCRIPTS = \ + gfs2_lockcapture \ +- gfs2_trace ++ gfs2_trace \ ++ gfs2_withdraw_helper + + noinst_SCRIPTS = \ +- 82-gfs2-withdraw.rules \ +- gfs2_withdraw_helper ++ 82-gfs2-withdraw.rules + diff --git a/scripts_install_the_withdraw_udev_rules_script.patch b/scripts_install_the_withdraw_udev_rules_script.patch new file mode 100644 index 0000000..430ea5e --- /dev/null +++ b/scripts_install_the_withdraw_udev_rules_script.patch @@ -0,0 +1,72 @@ +commit 9aa261bd5e65beb757b0953ba43211fc29641952 +Author: Andrew Price +Date: Wed Aug 19 12:13:39 2015 +0100 + + scripts: install the withdraw udev rules script + + Add a --with-udevdir configure option and default to $prefix/lib/udev. + Note that we can't use $libdir for this as that will often be /usr/lib64 + and the udevdir is arch-independent. + + Also add the autoconf bits needed to install 82-gfs2-withdraw.rules into + $udevdir/rules.d + + Signed-off-by: Andrew Price + +diff --git a/README.build b/README.build +index acfde1b..d0a21c3 100644 +--- a/README.build ++++ b/README.build +@@ -31,10 +31,9 @@ To install gfs2-utils, run: + + The following scripts (located in gfs2/scripts) are used to complete + the userland portion of the gfs2 withdraw feature using uevents. They +-are not installed by 'make install' and need to be installed manually +-or during rpm installation to the corresponding locations. ++will be installed by 'make install' to these directories by default: + +- 82-gfs2-withdraw.rules in /etc/udev/rules.d/ ++ 82-gfs2-withdraw.rules in /usr/lib/udev/rules.d/ + gfs2_withdraw_helper in /usr/sbin/ + + See also doc/README.contributing for details on submitting patches and +diff --git a/configure.ac b/configure.ac +index de96e5a..35cafe6 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -110,6 +110,12 @@ if test -z "$ncurses_CFLAGS" && test -z "$ncurses_LIBS"; then + ncurses_LIBS=-lncurses + fi + ++AC_ARG_WITH([udevdir], ++ AS_HELP_STRING([--with-udevdir=DIR], ++ [udev directory containing rules.d [default=${prefix}/lib/udev]]), ++ [], [with_udevdir=\${prefix}/lib/udev]) ++AC_SUBST([udevdir], [$with_udevdir]) ++ + # Checks for header files. + AC_CHECK_HEADERS([fcntl.h libintl.h limits.h locale.h mntent.h stddef.h sys/file.h sys/ioctl.h sys/mount.h sys/time.h sys/vfs.h syslog.h termios.h]) + AC_CHECK_HEADER([linux/fs.h], [], [AC_MSG_ERROR([Unable to find linux/fs.h])]) +@@ -209,7 +215,9 @@ echo " Configure summary" + echo " ===================" + echo " prefix : $prefix" + echo " exec_prefix : $exec_prefix" ++echo " libdir : $libdir" + echo " sbindir : $sbindir" ++echo " udevdir : $udevdir" + echo " ------------------" + echo " debug build : $enable_debug" + echo " C unit tests : $have_check" +diff --git a/gfs2/scripts/Makefile.am b/gfs2/scripts/Makefile.am +index 056aaa5..d4bda04 100644 +--- a/gfs2/scripts/Makefile.am ++++ b/gfs2/scripts/Makefile.am +@@ -5,6 +5,6 @@ dist_sbin_SCRIPTS = \ + gfs2_trace \ + gfs2_withdraw_helper + +-noinst_SCRIPTS = \ ++udevrulesdir=@udevdir@/rules.d ++dist_udevrules_DATA = \ + 82-gfs2-withdraw.rules +- diff --git a/scripts_rename_gfs2_wd_udev_sh_to_gfs2_withdraw_helper.patch b/scripts_rename_gfs2_wd_udev_sh_to_gfs2_withdraw_helper.patch new file mode 100644 index 0000000..7f48867 --- /dev/null +++ b/scripts_rename_gfs2_wd_udev_sh_to_gfs2_withdraw_helper.patch @@ -0,0 +1,115 @@ +commit bdb6bb67ee4532c2dfb65eeeebcec06bda99d4ff +Author: Andrew Price +Date: Tue Aug 18 12:35:52 2015 +0100 + + scripts: rename gfs2_wd_udev.sh to gfs2_withdraw_helper + + Makes the name more descriptive and consistent with the name of the udev + rules script. + + Signed-off-by: Andrew Price + +diff --git a/README.build b/README.build +index 6487bae..acfde1b 100644 +--- a/README.build ++++ b/README.build +@@ -35,7 +35,7 @@ are not installed by 'make install' and need to be installed manually + or during rpm installation to the corresponding locations. + + 82-gfs2-withdraw.rules in /etc/udev/rules.d/ +- gfs2_wd_udev.sh in /usr/sbin/ ++ gfs2_withdraw_helper in /usr/sbin/ + + See also doc/README.contributing for details on submitting patches and + doc/README.tests for more details regarding the test suite. +diff --git a/gfs2/scripts/82-gfs2-withdraw.rules b/gfs2/scripts/82-gfs2-withdraw.rules +index 2228615..2c9e0e8 100644 +--- a/gfs2/scripts/82-gfs2-withdraw.rules ++++ b/gfs2/scripts/82-gfs2-withdraw.rules +@@ -1,2 +1,2 @@ +-SUBSYSTEM=="gfs2", ACTION=="offline", RUN+="/bin/sh /usr/sbin/gfs2_wd_udev.sh" ++SUBSYSTEM=="gfs2", ACTION=="offline", RUN+="/bin/sh /usr/sbin/gfs2_withdraw_helper" + +diff --git a/gfs2/scripts/Makefile.am b/gfs2/scripts/Makefile.am +index dde906f..51764fa 100644 +--- a/gfs2/scripts/Makefile.am ++++ b/gfs2/scripts/Makefile.am +@@ -6,5 +6,5 @@ dist_sbin_SCRIPTS = \ + + noinst_SCRIPTS = \ + 82-gfs2-withdraw.rules \ +- gfs2_wd_udev.sh ++ gfs2_withdraw_helper + +diff --git a/gfs2/scripts/gfs2_wd_udev.sh b/gfs2/scripts/gfs2_wd_udev.sh +deleted file mode 100755 +index ac3ce35..0000000 +--- a/gfs2/scripts/gfs2_wd_udev.sh ++++ /dev/null +@@ -1,30 +0,0 @@ +-#!/bin/sh +-# +-# Do not run this script manually. This script is called by udev on a gfs2 +-# withdraw uevent and is used to complete the withdraw action and notify the +-# kernel. +-# +- +-# Sanity checks +-if [ "$SUBSYSTEM" != "gfs2" ] || [ "$LOCKPROTO" != "lock_dlm" ] || +- [ -z "$DEVPATH" ] || [ "$ACTION" != "offline" ] +-then +- exit 1 # Nothing to do here +-fi +- +-# Try and suspend the device +-SYSFS_TOPDIR="/sys"$DEVPATH +-DM_NAME=$(cat "$SYSFS_TOPDIR/device/dm/name") +-DM_DEV="/dev/mapper/"$DM_NAME +- +-if [ -z "$DM_DEV" ] +-then +- /usr/bin/dmsetup suspend $DM_DEV +-fi +- +-# Signal completion of withdraw +-WD_ACK="$SYSFS_TOPDIR/lock_module/withdraw" +-if [ -f "$WD_ACK" ] +-then +- echo "1" > $WD_ACK +-fi +diff --git a/gfs2/scripts/gfs2_withdraw_helper b/gfs2/scripts/gfs2_withdraw_helper +new file mode 100755 +index 0000000..ac3ce35 +--- /dev/null ++++ b/gfs2/scripts/gfs2_withdraw_helper +@@ -0,0 +1,30 @@ ++#!/bin/sh ++# ++# Do not run this script manually. This script is called by udev on a gfs2 ++# withdraw uevent and is used to complete the withdraw action and notify the ++# kernel. ++# ++ ++# Sanity checks ++if [ "$SUBSYSTEM" != "gfs2" ] || [ "$LOCKPROTO" != "lock_dlm" ] || ++ [ -z "$DEVPATH" ] || [ "$ACTION" != "offline" ] ++then ++ exit 1 # Nothing to do here ++fi ++ ++# Try and suspend the device ++SYSFS_TOPDIR="/sys"$DEVPATH ++DM_NAME=$(cat "$SYSFS_TOPDIR/device/dm/name") ++DM_DEV="/dev/mapper/"$DM_NAME ++ ++if [ -z "$DM_DEV" ] ++then ++ /usr/bin/dmsetup suspend $DM_DEV ++fi ++ ++# Signal completion of withdraw ++WD_ACK="$SYSFS_TOPDIR/lock_module/withdraw" ++if [ -f "$WD_ACK" ] ++then ++ echo "1" > $WD_ACK ++fi From 8ee10a8095dd817a913ae3e4b833e6b6534fda9f Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Wed, 3 Feb 2016 21:21:07 +0000 Subject: [PATCH 34/75] - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild --- gfs2-utils.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gfs2-utils.spec b/gfs2-utils.spec index 37dd1fc..881f74d 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -12,7 +12,7 @@ Name: gfs2-utils Version: 3.1.8 -Release: 5%{?dist} +Release: 6%{?dist} License: GPLv2+ and LGPLv2+ Group: System Environment/Kernel Summary: Utilities for managing the global file system (GFS2) @@ -82,6 +82,9 @@ file systems. %{_prefix}/lib/udev/rules.d/82-gfs2-withdraw.rules %changelog +* Wed Feb 03 2016 Fedora Release Engineering - 3.1.8-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + * Thu Aug 20 2015 Andrew Price - 3.1.8-5 - Add patches to install the withdraw helper script properly: scripts_rename_gfs2_wd_udev_sh_to_gfs2_withdraw_helper.patch From 0b214d7cb0000d382169aa2b5a1edd3b590df5b0 Mon Sep 17 00:00:00 2001 From: Andrew Price Date: Mon, 15 Feb 2016 20:39:08 +0000 Subject: [PATCH 35/75] * Mon Feb 15 2016 Andrew Price - 3.1.8-7 - libgfs2: Add support for dirent.de_rahead - gfs2_edit: Include dirent.de_rahead in directory listings - gfs2-utils: Add a check for the de_rahead field - libgfs2: Support the new dirent de_cookie field Resolves: bz#1307532 --- ...fs2_Add_support_for_dirent_de_rahead.patch | 43 +++++++ ...rent_de_rahead_in_directory_listings.patch | 32 ++++++ ..._Add_a_check_for_the_de_rahead_field.patch | 83 ++++++++++++++ ...pport_the_new_dirent_de_cookie_field.patch | 106 ++++++++++++++++++ gfs2-utils.spec | 18 ++- 5 files changed, 281 insertions(+), 1 deletion(-) create mode 100644 1307532-1-libgfs2_Add_support_for_dirent_de_rahead.patch create mode 100644 1307532-2-gfs2_edit_Include_dirent_de_rahead_in_directory_listings.patch create mode 100644 1307532-3-gfs2_utils_Add_a_check_for_the_de_rahead_field.patch create mode 100644 1307532-4-libgfs2_Support_the_new_dirent_de_cookie_field.patch diff --git a/1307532-1-libgfs2_Add_support_for_dirent_de_rahead.patch b/1307532-1-libgfs2_Add_support_for_dirent_de_rahead.patch new file mode 100644 index 0000000..23e9e44 --- /dev/null +++ b/1307532-1-libgfs2_Add_support_for_dirent_de_rahead.patch @@ -0,0 +1,43 @@ +commit 3141e81ae6eef9c2fa1de36929140ec122c70805 +Author: Andreas Gruenbacher +Date: Wed Sep 9 17:55:29 2015 +0200 + + libgfs2: Add support for dirent.de_rahead + + This field indicates how many blocks of metadata can be read ahead when reading + in the inode a directory entry points at. + + Signed-off-by: Andreas Gruenbacher + +diff --git a/gfs2/libgfs2/meta.c b/gfs2/libgfs2/meta.c +index 79de64d..70daec4 100644 +--- a/gfs2/libgfs2/meta.c ++++ b/gfs2/libgfs2/meta.c +@@ -428,6 +428,7 @@ F(de_hash, .flags = LGFS2_MFF_CHECK) + F(de_rec_len, .flags = LGFS2_MFF_BYTES) + F(de_name_len, .flags = LGFS2_MFF_BYTES) + F(de_type) ++F(de_rahead) + RF(__pad) + }; + +diff --git a/gfs2/libgfs2/ondisk.c b/gfs2/libgfs2/ondisk.c +index 4744337..7f34bd2 100644 +--- a/gfs2/libgfs2/ondisk.c ++++ b/gfs2/libgfs2/ondisk.c +@@ -415,6 +415,7 @@ void gfs2_dirent_in(struct gfs2_dirent *de, char *buf) + CPIN_16(de, str, de_rec_len); + CPIN_16(de, str, de_name_len); + CPIN_16(de, str, de_type); ++ CPIN_16(de, str, de_rahead); + } + + void gfs2_dirent_out(struct gfs2_dirent *de, char *buf) +@@ -427,6 +428,7 @@ void gfs2_dirent_out(struct gfs2_dirent *de, char *buf) + CPOUT_16(de, str, de_name_len); + CPOUT_16(de, str, de_type); + memset(str->__pad, 0, sizeof(str->__pad)); ++ CPOUT_16(de, str, de_rahead); + } + + void gfs2_leaf_in(struct gfs2_leaf *lf, struct gfs2_buffer_head *bh) diff --git a/1307532-2-gfs2_edit_Include_dirent_de_rahead_in_directory_listings.patch b/1307532-2-gfs2_edit_Include_dirent_de_rahead_in_directory_listings.patch new file mode 100644 index 0000000..9d3a4f0 --- /dev/null +++ b/1307532-2-gfs2_edit_Include_dirent_de_rahead_in_directory_listings.patch @@ -0,0 +1,32 @@ +commit dcd8296e142d3bd69e1a1bda2c096ed78fe4888f +Author: Andreas Gruenbacher +Date: Wed Sep 9 17:55:30 2015 +0200 + + gfs2_edit: Include dirent.de_rahead in directory listings + + When dumping a directory, for directory each entry, also print how many blocks + of metadata can be read ahead when reading in the inode the entry points at. + + Signed-off-by: Andreas Gruenbacher + +diff --git a/gfs2/edit/extended.c b/gfs2/edit/extended.c +index e5cb12c..b1826a1 100644 +--- a/gfs2/edit/extended.c ++++ b/gfs2/edit/extended.c +@@ -342,13 +342,14 @@ static int display_leaf(struct iinfo *ind) + strcpy(edit_fmt, "%llx"); + } + } +- print_gfs2("%d/%d [%08x] %lld/%lld (0x%llx/0x%llx): ", ++ print_gfs2("%d/%d [%08x] %lld/%lld (0x%llx/0x%llx) +%u: ", + total_dirents, d + 1, + ind->ii[0].dirent[d].dirent.de_hash, + ind->ii[0].dirent[d].dirent.de_inum.no_formal_ino, + ind->ii[0].dirent[d].block, + ind->ii[0].dirent[d].dirent.de_inum.no_formal_ino, +- ind->ii[0].dirent[d].block); ++ ind->ii[0].dirent[d].block, ++ (unsigned int)ind->ii[0].dirent[d].dirent.de_rahead); + } + print_inode_type(ind->ii[0].dirent[d].dirent.de_type); + print_gfs2(" %s", ind->ii[0].dirent[d].filename); diff --git a/1307532-3-gfs2_utils_Add_a_check_for_the_de_rahead_field.patch b/1307532-3-gfs2_utils_Add_a_check_for_the_de_rahead_field.patch new file mode 100644 index 0000000..37f6e7b --- /dev/null +++ b/1307532-3-gfs2_utils_Add_a_check_for_the_de_rahead_field.patch @@ -0,0 +1,83 @@ +commit 471bc208c8e29013b2abb66f36d6e6d9ef4e4337 +Author: Andrew Price +Date: Thu Sep 10 11:33:24 2015 +0100 + + gfs2-utils: Add a check for the de_rahead field + + gfs2_dirent.de_rahead first appeared in Linux 3.15. Support prior + versions by checking for de_rahead and using it conditionally. + + Signed-off-by: Andrew Price + +diff --git a/configure.ac b/configure.ac +index 35cafe6..a5418aa 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -125,6 +125,8 @@ AC_CHECK_HEADER([linux/gfs2_ondisk.h], [], [AC_MSG_ERROR([Unable to find linux/g + AC_CHECK_MEMBER([struct gfs2_sb.sb_uuid], [], [], [[#include ]]) + AC_CHECK_MEMBER([struct gfs2_leaf.lf_inode],[AC_DEFINE([GFS2_HAS_LEAF_HINTS],[],[Leaf block hints])], + [], [[#include ]]) ++AC_CHECK_MEMBER([struct gfs2_dirent.de_rahead],[AC_DEFINE([GFS2_HAS_DE_RAHEAD],[],[Dirent readahead field])], ++ [], [[#include ]]) + + # *FLAGS handling + ENV_CFLAGS="$CFLAGS" +diff --git a/gfs2/edit/extended.c b/gfs2/edit/extended.c +index b1826a1..a13827e 100644 +--- a/gfs2/edit/extended.c ++++ b/gfs2/edit/extended.c +@@ -349,7 +349,12 @@ static int display_leaf(struct iinfo *ind) + ind->ii[0].dirent[d].block, + ind->ii[0].dirent[d].dirent.de_inum.no_formal_ino, + ind->ii[0].dirent[d].block, +- (unsigned int)ind->ii[0].dirent[d].dirent.de_rahead); ++#ifdef GFS2_HAS_DE_RAHEAD ++ (unsigned int)ind->ii[0].dirent[d].dirent.de_rahead ++#else ++ 0 ++#endif ++ ); + } + print_inode_type(ind->ii[0].dirent[d].dirent.de_type); + print_gfs2(" %s", ind->ii[0].dirent[d].filename); +diff --git a/gfs2/libgfs2/meta.c b/gfs2/libgfs2/meta.c +index 70daec4..4f43af5 100644 +--- a/gfs2/libgfs2/meta.c ++++ b/gfs2/libgfs2/meta.c +@@ -428,8 +428,12 @@ F(de_hash, .flags = LGFS2_MFF_CHECK) + F(de_rec_len, .flags = LGFS2_MFF_BYTES) + F(de_name_len, .flags = LGFS2_MFF_BYTES) + F(de_type) ++#ifdef GFS2_HAS_DE_RAHEAD + F(de_rahead) ++RF(__pad2) ++#else + RF(__pad) ++#endif + }; + + #undef STRUCT +diff --git a/gfs2/libgfs2/ondisk.c b/gfs2/libgfs2/ondisk.c +index 7f34bd2..b9418c5 100644 +--- a/gfs2/libgfs2/ondisk.c ++++ b/gfs2/libgfs2/ondisk.c +@@ -415,7 +415,9 @@ void gfs2_dirent_in(struct gfs2_dirent *de, char *buf) + CPIN_16(de, str, de_rec_len); + CPIN_16(de, str, de_name_len); + CPIN_16(de, str, de_type); ++#ifdef GFS2_HAS_DE_RAHEAD + CPIN_16(de, str, de_rahead); ++#endif + } + + void gfs2_dirent_out(struct gfs2_dirent *de, char *buf) +@@ -428,7 +430,9 @@ void gfs2_dirent_out(struct gfs2_dirent *de, char *buf) + CPOUT_16(de, str, de_name_len); + CPOUT_16(de, str, de_type); + memset(str->__pad, 0, sizeof(str->__pad)); ++#ifdef GFS2_HAS_DE_RAHEAD + CPOUT_16(de, str, de_rahead); ++#endif + } + + void gfs2_leaf_in(struct gfs2_leaf *lf, struct gfs2_buffer_head *bh) diff --git a/1307532-4-libgfs2_Support_the_new_dirent_de_cookie_field.patch b/1307532-4-libgfs2_Support_the_new_dirent_de_cookie_field.patch new file mode 100644 index 0000000..4bf86bb --- /dev/null +++ b/1307532-4-libgfs2_Support_the_new_dirent_de_cookie_field.patch @@ -0,0 +1,106 @@ +commit da2bced4ff2a8fa9c95fde8071f2f164c0c1466a +Author: Andrew Price +Date: Mon Feb 15 12:42:51 2016 +0000 + + libgfs2: Support the new dirent de_cookie field + + Detect whether the new de_cookie field (kernel commit 471f3db27) is + present in struct gfs2_dirent in the configure script and update the + metadata description to support that field. + + It also seems that meta.c was not using the GFS2_HAS_* defines from + clusterautoconfig.h and that was causing a unit test to fail with + + gfs2_dirent: __pad: offset is 28, expected 26 + gfs2_dirent: size mismatch between struct 40 and fields 38 + + This commit adds an #include to fix that. + + Fixes Rawhide bz#1307532 + + Signed-off-by: Andrew Price + +diff --git a/configure.ac b/configure.ac +index 130cb01..f6174ff 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -127,6 +127,8 @@ AC_CHECK_MEMBER([struct gfs2_leaf.lf_inode],[AC_DEFINE([GFS2_HAS_LEAF_HINTS],[], + [], [[#include ]]) + AC_CHECK_MEMBER([struct gfs2_dirent.de_rahead],[AC_DEFINE([GFS2_HAS_DE_RAHEAD],[],[Dirent readahead field])], + [], [[#include ]]) ++AC_CHECK_MEMBER([struct gfs2_dirent.de_cookie],[AC_DEFINE([GFS2_HAS_DE_COOKIE],[],[Dirent cookie field])], ++ [], [[#include ]]) + + # *FLAGS handling + ENV_CFLAGS="$CFLAGS" +diff --git a/gfs2/libgfs2/meta.c b/gfs2/libgfs2/meta.c +index 4f43af5..90d5647 100644 +--- a/gfs2/libgfs2/meta.c ++++ b/gfs2/libgfs2/meta.c +@@ -1,6 +1,7 @@ + #include + #include + #include "libgfs2.h" ++#include "clusterautoconfig.h" + + #define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0])) + #define SYM(x) { x, #x }, +@@ -430,10 +431,15 @@ F(de_name_len, .flags = LGFS2_MFF_BYTES) + F(de_type) + #ifdef GFS2_HAS_DE_RAHEAD + F(de_rahead) +-RF(__pad2) ++#ifdef GFS2_HAS_DE_COOKIE ++F(de_cookie) ++RF(pad3) ++#else ++RF(pad2) ++#endif /* GFS2_HAS_DE_COOKIE */ + #else + RF(__pad) +-#endif ++#endif /* GFS2_HAS_DE_RAHEAD */ + }; + + #undef STRUCT +diff --git a/gfs2/libgfs2/ondisk.c b/gfs2/libgfs2/ondisk.c +index b9418c5..ea1f61f 100644 +--- a/gfs2/libgfs2/ondisk.c ++++ b/gfs2/libgfs2/ondisk.c +@@ -417,7 +417,15 @@ void gfs2_dirent_in(struct gfs2_dirent *de, char *buf) + CPIN_16(de, str, de_type); + #ifdef GFS2_HAS_DE_RAHEAD + CPIN_16(de, str, de_rahead); +-#endif ++#ifdef GFS2_HAS_DE_COOKIE ++ CPIN_32(de, str, de_cookie); ++ CPIN_08(de, str, pad3, 8); ++#else ++ CPIN_08(de, str, pad2, 12); ++#endif /* GFS2_HAS_DE_COOKIE */ ++#else ++ CPIN_08(de, str, __pad, 14); ++#endif /* GFS2_HAS_DE_RAHEAD */ + } + + void gfs2_dirent_out(struct gfs2_dirent *de, char *buf) +@@ -429,10 +437,17 @@ void gfs2_dirent_out(struct gfs2_dirent *de, char *buf) + CPOUT_16(de, str, de_rec_len); + CPOUT_16(de, str, de_name_len); + CPOUT_16(de, str, de_type); +- memset(str->__pad, 0, sizeof(str->__pad)); + #ifdef GFS2_HAS_DE_RAHEAD + CPOUT_16(de, str, de_rahead); +-#endif ++#ifdef GFS2_HAS_DE_COOKIE ++ CPOUT_32(de, str, de_cookie); ++ CPOUT_08(de, str, pad3, 8); ++#else ++ CPOUT_08(de, str, pad2, 12); ++#endif /* GFS2_HAS_DE_COOKIE */ ++#else ++ CPOUT_08(de, str, __pad, 14); ++#endif /* GFS2_HAS_DE_RAHEAD */ + } + + void gfs2_leaf_in(struct gfs2_leaf *lf, struct gfs2_buffer_head *bh) diff --git a/gfs2-utils.spec b/gfs2-utils.spec index 881f74d..47d4ea1 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -12,7 +12,7 @@ Name: gfs2-utils Version: 3.1.8 -Release: 6%{?dist} +Release: 7%{?dist} License: GPLv2+ and LGPLv2+ Group: System Environment/Kernel Summary: Utilities for managing the global file system (GFS2) @@ -36,6 +36,11 @@ Patch1: gfs2_utils_Fix_hang_on_withdraw.patch Patch2: scripts_rename_gfs2_wd_udev_sh_to_gfs2_withdraw_helper.patch Patch3: scripts_install_the_withdraw_helper_script.patch Patch4: scripts_install_the_withdraw_udev_rules_script.patch +Patch5: 1307532-1-libgfs2_Add_support_for_dirent_de_rahead.patch +Patch6: 1307532-2-gfs2_edit_Include_dirent_de_rahead_in_directory_listings.patch +Patch7: 1307532-3-gfs2_utils_Add_a_check_for_the_de_rahead_field.patch +Patch8: 1307532-4-libgfs2_Support_the_new_dirent_de_cookie_field.patch + %prep %setup -q -n gfs2-utils-%{version} @@ -44,6 +49,10 @@ Patch4: scripts_install_the_withdraw_udev_rules_script.patch %patch2 -p 1 -b .scripts_rename_gfs2_wd_udev_sh_to_gfs2_withdraw_helper %patch3 -p 1 -b .scripts_install_the_withdraw_helper_script %patch4 -p 1 -b .scripts_install_the_withdraw_udev_rules_script +%patch5 -p 1 -b .1307532-1-libgfs2_Add_support_for_dirent_de_rahead +%patch6 -p 1 -b .1307532-2-gfs2_edit_Include_dirent_de_rahead_in_directory_listings +%patch7 -p 1 -b .1307532-3-gfs2_utils_Add_a_check_for_the_de_rahead_field +%patch8 -p 1 -b .1307532-4-libgfs2_Support_the_new_dirent_de_cookie_field %build ./autogen.sh @@ -82,6 +91,13 @@ file systems. %{_prefix}/lib/udev/rules.d/82-gfs2-withdraw.rules %changelog +* Mon Feb 15 2016 Andrew Price - 3.1.8-7 +- libgfs2: Add support for dirent.de_rahead +- gfs2_edit: Include dirent.de_rahead in directory listings +- gfs2-utils: Add a check for the de_rahead field +- libgfs2: Support the new dirent de_cookie field + Resolves: bz#1307532 + * Wed Feb 03 2016 Fedora Release Engineering - 3.1.8-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild From 4593ae723dd92012470f21badbe485e9a43a157c Mon Sep 17 00:00:00 2001 From: Andrew Price Date: Tue, 7 Jun 2016 13:23:02 +0100 Subject: [PATCH 36/75] * Tue Jun 07 2016 Andrew Price - 3.1.9-1 - New upstream release - Drop all patches - Add glocktop to the package --- .gitignore | 1 + ...fs2_Add_support_for_dirent_de_rahead.patch | 43 --- ...rent_de_rahead_in_directory_listings.patch | 32 -- ..._Add_a_check_for_the_de_rahead_field.patch | 83 ----- ...pport_the_new_dirent_de_cookie_field.patch | 106 ------ ...ecent_i_goal_fixes_with_simple_logic.patch | 304 ------------------ gfs2-utils.spec | 37 +-- gfs2_utils_Fix_hang_on_withdraw.patch | 97 ------ ...s_install_the_withdraw_helper_script.patch | 27 -- ...stall_the_withdraw_udev_rules_script.patch | 72 ----- ...2_wd_udev_sh_to_gfs2_withdraw_helper.patch | 115 ------- sources | 2 +- 12 files changed, 14 insertions(+), 905 deletions(-) delete mode 100644 1307532-1-libgfs2_Add_support_for_dirent_de_rahead.patch delete mode 100644 1307532-2-gfs2_edit_Include_dirent_de_rahead_in_directory_listings.patch delete mode 100644 1307532-3-gfs2_utils_Add_a_check_for_the_de_rahead_field.patch delete mode 100644 1307532-4-libgfs2_Support_the_new_dirent_de_cookie_field.patch delete mode 100644 fsck_gfs2_replace_recent_i_goal_fixes_with_simple_logic.patch delete mode 100644 gfs2_utils_Fix_hang_on_withdraw.patch delete mode 100644 scripts_install_the_withdraw_helper_script.patch delete mode 100644 scripts_install_the_withdraw_udev_rules_script.patch delete mode 100644 scripts_rename_gfs2_wd_udev_sh_to_gfs2_withdraw_helper.patch diff --git a/.gitignore b/.gitignore index 0937feb..6f5f323 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ /gfs2-utils-3.1.6.tar.gz /gfs2-utils-3.1.7.tar.gz /gfs2-utils-3.1.8.tar.gz +/gfs2-utils-3.1.9.tar.gz diff --git a/1307532-1-libgfs2_Add_support_for_dirent_de_rahead.patch b/1307532-1-libgfs2_Add_support_for_dirent_de_rahead.patch deleted file mode 100644 index 23e9e44..0000000 --- a/1307532-1-libgfs2_Add_support_for_dirent_de_rahead.patch +++ /dev/null @@ -1,43 +0,0 @@ -commit 3141e81ae6eef9c2fa1de36929140ec122c70805 -Author: Andreas Gruenbacher -Date: Wed Sep 9 17:55:29 2015 +0200 - - libgfs2: Add support for dirent.de_rahead - - This field indicates how many blocks of metadata can be read ahead when reading - in the inode a directory entry points at. - - Signed-off-by: Andreas Gruenbacher - -diff --git a/gfs2/libgfs2/meta.c b/gfs2/libgfs2/meta.c -index 79de64d..70daec4 100644 ---- a/gfs2/libgfs2/meta.c -+++ b/gfs2/libgfs2/meta.c -@@ -428,6 +428,7 @@ F(de_hash, .flags = LGFS2_MFF_CHECK) - F(de_rec_len, .flags = LGFS2_MFF_BYTES) - F(de_name_len, .flags = LGFS2_MFF_BYTES) - F(de_type) -+F(de_rahead) - RF(__pad) - }; - -diff --git a/gfs2/libgfs2/ondisk.c b/gfs2/libgfs2/ondisk.c -index 4744337..7f34bd2 100644 ---- a/gfs2/libgfs2/ondisk.c -+++ b/gfs2/libgfs2/ondisk.c -@@ -415,6 +415,7 @@ void gfs2_dirent_in(struct gfs2_dirent *de, char *buf) - CPIN_16(de, str, de_rec_len); - CPIN_16(de, str, de_name_len); - CPIN_16(de, str, de_type); -+ CPIN_16(de, str, de_rahead); - } - - void gfs2_dirent_out(struct gfs2_dirent *de, char *buf) -@@ -427,6 +428,7 @@ void gfs2_dirent_out(struct gfs2_dirent *de, char *buf) - CPOUT_16(de, str, de_name_len); - CPOUT_16(de, str, de_type); - memset(str->__pad, 0, sizeof(str->__pad)); -+ CPOUT_16(de, str, de_rahead); - } - - void gfs2_leaf_in(struct gfs2_leaf *lf, struct gfs2_buffer_head *bh) diff --git a/1307532-2-gfs2_edit_Include_dirent_de_rahead_in_directory_listings.patch b/1307532-2-gfs2_edit_Include_dirent_de_rahead_in_directory_listings.patch deleted file mode 100644 index 9d3a4f0..0000000 --- a/1307532-2-gfs2_edit_Include_dirent_de_rahead_in_directory_listings.patch +++ /dev/null @@ -1,32 +0,0 @@ -commit dcd8296e142d3bd69e1a1bda2c096ed78fe4888f -Author: Andreas Gruenbacher -Date: Wed Sep 9 17:55:30 2015 +0200 - - gfs2_edit: Include dirent.de_rahead in directory listings - - When dumping a directory, for directory each entry, also print how many blocks - of metadata can be read ahead when reading in the inode the entry points at. - - Signed-off-by: Andreas Gruenbacher - -diff --git a/gfs2/edit/extended.c b/gfs2/edit/extended.c -index e5cb12c..b1826a1 100644 ---- a/gfs2/edit/extended.c -+++ b/gfs2/edit/extended.c -@@ -342,13 +342,14 @@ static int display_leaf(struct iinfo *ind) - strcpy(edit_fmt, "%llx"); - } - } -- print_gfs2("%d/%d [%08x] %lld/%lld (0x%llx/0x%llx): ", -+ print_gfs2("%d/%d [%08x] %lld/%lld (0x%llx/0x%llx) +%u: ", - total_dirents, d + 1, - ind->ii[0].dirent[d].dirent.de_hash, - ind->ii[0].dirent[d].dirent.de_inum.no_formal_ino, - ind->ii[0].dirent[d].block, - ind->ii[0].dirent[d].dirent.de_inum.no_formal_ino, -- ind->ii[0].dirent[d].block); -+ ind->ii[0].dirent[d].block, -+ (unsigned int)ind->ii[0].dirent[d].dirent.de_rahead); - } - print_inode_type(ind->ii[0].dirent[d].dirent.de_type); - print_gfs2(" %s", ind->ii[0].dirent[d].filename); diff --git a/1307532-3-gfs2_utils_Add_a_check_for_the_de_rahead_field.patch b/1307532-3-gfs2_utils_Add_a_check_for_the_de_rahead_field.patch deleted file mode 100644 index 37f6e7b..0000000 --- a/1307532-3-gfs2_utils_Add_a_check_for_the_de_rahead_field.patch +++ /dev/null @@ -1,83 +0,0 @@ -commit 471bc208c8e29013b2abb66f36d6e6d9ef4e4337 -Author: Andrew Price -Date: Thu Sep 10 11:33:24 2015 +0100 - - gfs2-utils: Add a check for the de_rahead field - - gfs2_dirent.de_rahead first appeared in Linux 3.15. Support prior - versions by checking for de_rahead and using it conditionally. - - Signed-off-by: Andrew Price - -diff --git a/configure.ac b/configure.ac -index 35cafe6..a5418aa 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -125,6 +125,8 @@ AC_CHECK_HEADER([linux/gfs2_ondisk.h], [], [AC_MSG_ERROR([Unable to find linux/g - AC_CHECK_MEMBER([struct gfs2_sb.sb_uuid], [], [], [[#include ]]) - AC_CHECK_MEMBER([struct gfs2_leaf.lf_inode],[AC_DEFINE([GFS2_HAS_LEAF_HINTS],[],[Leaf block hints])], - [], [[#include ]]) -+AC_CHECK_MEMBER([struct gfs2_dirent.de_rahead],[AC_DEFINE([GFS2_HAS_DE_RAHEAD],[],[Dirent readahead field])], -+ [], [[#include ]]) - - # *FLAGS handling - ENV_CFLAGS="$CFLAGS" -diff --git a/gfs2/edit/extended.c b/gfs2/edit/extended.c -index b1826a1..a13827e 100644 ---- a/gfs2/edit/extended.c -+++ b/gfs2/edit/extended.c -@@ -349,7 +349,12 @@ static int display_leaf(struct iinfo *ind) - ind->ii[0].dirent[d].block, - ind->ii[0].dirent[d].dirent.de_inum.no_formal_ino, - ind->ii[0].dirent[d].block, -- (unsigned int)ind->ii[0].dirent[d].dirent.de_rahead); -+#ifdef GFS2_HAS_DE_RAHEAD -+ (unsigned int)ind->ii[0].dirent[d].dirent.de_rahead -+#else -+ 0 -+#endif -+ ); - } - print_inode_type(ind->ii[0].dirent[d].dirent.de_type); - print_gfs2(" %s", ind->ii[0].dirent[d].filename); -diff --git a/gfs2/libgfs2/meta.c b/gfs2/libgfs2/meta.c -index 70daec4..4f43af5 100644 ---- a/gfs2/libgfs2/meta.c -+++ b/gfs2/libgfs2/meta.c -@@ -428,8 +428,12 @@ F(de_hash, .flags = LGFS2_MFF_CHECK) - F(de_rec_len, .flags = LGFS2_MFF_BYTES) - F(de_name_len, .flags = LGFS2_MFF_BYTES) - F(de_type) -+#ifdef GFS2_HAS_DE_RAHEAD - F(de_rahead) -+RF(__pad2) -+#else - RF(__pad) -+#endif - }; - - #undef STRUCT -diff --git a/gfs2/libgfs2/ondisk.c b/gfs2/libgfs2/ondisk.c -index 7f34bd2..b9418c5 100644 ---- a/gfs2/libgfs2/ondisk.c -+++ b/gfs2/libgfs2/ondisk.c -@@ -415,7 +415,9 @@ void gfs2_dirent_in(struct gfs2_dirent *de, char *buf) - CPIN_16(de, str, de_rec_len); - CPIN_16(de, str, de_name_len); - CPIN_16(de, str, de_type); -+#ifdef GFS2_HAS_DE_RAHEAD - CPIN_16(de, str, de_rahead); -+#endif - } - - void gfs2_dirent_out(struct gfs2_dirent *de, char *buf) -@@ -428,7 +430,9 @@ void gfs2_dirent_out(struct gfs2_dirent *de, char *buf) - CPOUT_16(de, str, de_name_len); - CPOUT_16(de, str, de_type); - memset(str->__pad, 0, sizeof(str->__pad)); -+#ifdef GFS2_HAS_DE_RAHEAD - CPOUT_16(de, str, de_rahead); -+#endif - } - - void gfs2_leaf_in(struct gfs2_leaf *lf, struct gfs2_buffer_head *bh) diff --git a/1307532-4-libgfs2_Support_the_new_dirent_de_cookie_field.patch b/1307532-4-libgfs2_Support_the_new_dirent_de_cookie_field.patch deleted file mode 100644 index 4bf86bb..0000000 --- a/1307532-4-libgfs2_Support_the_new_dirent_de_cookie_field.patch +++ /dev/null @@ -1,106 +0,0 @@ -commit da2bced4ff2a8fa9c95fde8071f2f164c0c1466a -Author: Andrew Price -Date: Mon Feb 15 12:42:51 2016 +0000 - - libgfs2: Support the new dirent de_cookie field - - Detect whether the new de_cookie field (kernel commit 471f3db27) is - present in struct gfs2_dirent in the configure script and update the - metadata description to support that field. - - It also seems that meta.c was not using the GFS2_HAS_* defines from - clusterautoconfig.h and that was causing a unit test to fail with - - gfs2_dirent: __pad: offset is 28, expected 26 - gfs2_dirent: size mismatch between struct 40 and fields 38 - - This commit adds an #include to fix that. - - Fixes Rawhide bz#1307532 - - Signed-off-by: Andrew Price - -diff --git a/configure.ac b/configure.ac -index 130cb01..f6174ff 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -127,6 +127,8 @@ AC_CHECK_MEMBER([struct gfs2_leaf.lf_inode],[AC_DEFINE([GFS2_HAS_LEAF_HINTS],[], - [], [[#include ]]) - AC_CHECK_MEMBER([struct gfs2_dirent.de_rahead],[AC_DEFINE([GFS2_HAS_DE_RAHEAD],[],[Dirent readahead field])], - [], [[#include ]]) -+AC_CHECK_MEMBER([struct gfs2_dirent.de_cookie],[AC_DEFINE([GFS2_HAS_DE_COOKIE],[],[Dirent cookie field])], -+ [], [[#include ]]) - - # *FLAGS handling - ENV_CFLAGS="$CFLAGS" -diff --git a/gfs2/libgfs2/meta.c b/gfs2/libgfs2/meta.c -index 4f43af5..90d5647 100644 ---- a/gfs2/libgfs2/meta.c -+++ b/gfs2/libgfs2/meta.c -@@ -1,6 +1,7 @@ - #include - #include - #include "libgfs2.h" -+#include "clusterautoconfig.h" - - #define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0])) - #define SYM(x) { x, #x }, -@@ -430,10 +431,15 @@ F(de_name_len, .flags = LGFS2_MFF_BYTES) - F(de_type) - #ifdef GFS2_HAS_DE_RAHEAD - F(de_rahead) --RF(__pad2) -+#ifdef GFS2_HAS_DE_COOKIE -+F(de_cookie) -+RF(pad3) -+#else -+RF(pad2) -+#endif /* GFS2_HAS_DE_COOKIE */ - #else - RF(__pad) --#endif -+#endif /* GFS2_HAS_DE_RAHEAD */ - }; - - #undef STRUCT -diff --git a/gfs2/libgfs2/ondisk.c b/gfs2/libgfs2/ondisk.c -index b9418c5..ea1f61f 100644 ---- a/gfs2/libgfs2/ondisk.c -+++ b/gfs2/libgfs2/ondisk.c -@@ -417,7 +417,15 @@ void gfs2_dirent_in(struct gfs2_dirent *de, char *buf) - CPIN_16(de, str, de_type); - #ifdef GFS2_HAS_DE_RAHEAD - CPIN_16(de, str, de_rahead); --#endif -+#ifdef GFS2_HAS_DE_COOKIE -+ CPIN_32(de, str, de_cookie); -+ CPIN_08(de, str, pad3, 8); -+#else -+ CPIN_08(de, str, pad2, 12); -+#endif /* GFS2_HAS_DE_COOKIE */ -+#else -+ CPIN_08(de, str, __pad, 14); -+#endif /* GFS2_HAS_DE_RAHEAD */ - } - - void gfs2_dirent_out(struct gfs2_dirent *de, char *buf) -@@ -429,10 +437,17 @@ void gfs2_dirent_out(struct gfs2_dirent *de, char *buf) - CPOUT_16(de, str, de_rec_len); - CPOUT_16(de, str, de_name_len); - CPOUT_16(de, str, de_type); -- memset(str->__pad, 0, sizeof(str->__pad)); - #ifdef GFS2_HAS_DE_RAHEAD - CPOUT_16(de, str, de_rahead); --#endif -+#ifdef GFS2_HAS_DE_COOKIE -+ CPOUT_32(de, str, de_cookie); -+ CPOUT_08(de, str, pad3, 8); -+#else -+ CPOUT_08(de, str, pad2, 12); -+#endif /* GFS2_HAS_DE_COOKIE */ -+#else -+ CPOUT_08(de, str, __pad, 14); -+#endif /* GFS2_HAS_DE_RAHEAD */ - } - - void gfs2_leaf_in(struct gfs2_leaf *lf, struct gfs2_buffer_head *bh) diff --git a/fsck_gfs2_replace_recent_i_goal_fixes_with_simple_logic.patch b/fsck_gfs2_replace_recent_i_goal_fixes_with_simple_logic.patch deleted file mode 100644 index 7411fd8..0000000 --- a/fsck_gfs2_replace_recent_i_goal_fixes_with_simple_logic.patch +++ /dev/null @@ -1,304 +0,0 @@ -commit f1028ec054f2d7f85a449b2bf0894e0435c01d6a -Author: Abhi Das -Date: Tue Apr 14 19:51:55 2015 -0500 - - fsck.gfs2: replace recent i_goal fixes with simple logic - - This patch reverses the recent set of i_goal fixes for fsck.gfs2. - This is because of two problems. - 1. It is not possible to determine if a valid block within the fs - is the correct goal block for a given inode. - 2. Conversely, given an inode, it is also not possible to accurately - determine what its goal block should be. - - The previous patches assumed that the last block of a file is its - goal block, but that is not true if the file is a directory or if - its blocks are not allocated sequentially. fsck.gfs2 would flag - these inodes incorrectly as having bad i_goal values. - - This patch takes a simple approach. It checks if the i_goal of a - given inode is out of bounds of the fs. If so, we can be certain - that it is wrong and we set it to the inode metadata block. This - is a safe starting point for gfs2 to determine where to allocate - from next. - - Resolves: rhbz#1186515 - Signed-off-by: Abhi Das - -diff --git a/gfs2/fsck/metawalk.c b/gfs2/fsck/metawalk.c -index f05fb51..4d5a660 100644 ---- a/gfs2/fsck/metawalk.c -+++ b/gfs2/fsck/metawalk.c -@@ -1428,8 +1428,7 @@ static int build_and_check_metalist(struct gfs2_inode *ip, osi_list_t *mlp, - */ - static int check_data(struct gfs2_inode *ip, struct metawalk_fxns *pass, - struct gfs2_buffer_head *bh, int head_size, -- uint64_t *last_block, uint64_t *blks_checked, -- uint64_t *error_blk) -+ uint64_t *blks_checked, uint64_t *error_blk) - { - int error = 0, rc = 0; - uint64_t block, *ptr; -@@ -1444,7 +1443,7 @@ static int check_data(struct gfs2_inode *ip, struct metawalk_fxns *pass, - - if (skip_this_pass || fsck_abort) - return error; -- *last_block = block = be64_to_cpu(*ptr); -+ block = be64_to_cpu(*ptr); - /* It's important that we don't call valid_block() and - bypass calling check_data on invalid blocks because that - would defeat the rangecheck_block related functions in -@@ -1548,15 +1547,12 @@ int check_metatree(struct gfs2_inode *ip, struct metawalk_fxns *pass) - struct gfs2_buffer_head *bh; - uint32_t height = ip->i_di.di_height; - int i, head_size; -- uint64_t blks_checked = 0, last_block = 0; -+ uint64_t blks_checked = 0; - int error, rc; - int metadata_clean = 0; - uint64_t error_blk = 0; - int hit_error_blk = 0; - -- if (!height && pass->check_i_goal) -- pass->check_i_goal(ip, ip->i_di.di_num.no_addr, -- pass->private); - if (!height && !is_dir(&ip->i_di, ip->i_sbd->gfs1)) - return 0; - -@@ -1575,9 +1571,6 @@ int check_metatree(struct gfs2_inode *ip, struct metawalk_fxns *pass) - * comprise the directory hash table, so we perform the directory - * checks and exit. */ - if (is_dir(&ip->i_di, ip->i_sbd->gfs1)) { -- last_block = ip->i_di.di_num.no_addr; -- if (pass->check_i_goal) -- pass->check_i_goal(ip, last_block, pass->private); - if (!(ip->i_di.di_flags & GFS2_DIF_EXHASH)) - goto out; - /* check validity of leaf blocks and leaf chains */ -@@ -1604,7 +1597,7 @@ int check_metatree(struct gfs2_inode *ip, struct metawalk_fxns *pass) - - if (pass->check_data) - error = check_data(ip, pass, bh, head_size, -- &last_block, &blks_checked, &error_blk); -+ &blks_checked, &error_blk); - if (pass->big_file_msg && ip->i_di.di_blocks > COMFORTABLE_BLKS) - pass->big_file_msg(ip, blks_checked); - } -@@ -1616,8 +1609,6 @@ int check_metatree(struct gfs2_inode *ip, struct metawalk_fxns *pass) - (unsigned long long)ip->i_di.di_num.no_addr); - fflush(stdout); - } -- if (!error && pass->check_i_goal) -- pass->check_i_goal(ip, last_block, pass->private); - undo_metalist: - if (!error) - goto out; -@@ -1958,80 +1949,6 @@ static int alloc_leaf(struct gfs2_inode *ip, uint64_t block, void *private) - return 0; - } - --/** -- * rgrp_contains_block - Check if the rgrp provided contains the -- * given block. Taken directly from the gfs2 kernel code -- * @rgd: The rgrp to search within -- * @block: The block to search for -- * -- * Returns: 1 if present, 0 if not. -- */ --static inline int rgrp_contains_block(struct rgrp_tree *rgd, uint64_t block) --{ -- uint64_t first = rgd->ri.ri_data0; -- uint64_t last = first + rgd->ri.ri_data; -- return first <= block && block < last; --} -- --/** -- * check_i_goal -- * @ip -- * @goal_blk: What the goal block should be for this inode -- * -- * The goal block for a regular file is typically the last -- * data block of the file. If we can't get the right value, -- * the inode metadata block is the next best thing. -- * -- * Returns: 0 if corrected, 1 if not corrected -- */ --int check_i_goal(struct gfs2_inode *ip, uint64_t goal_blk, -- void *private) --{ -- struct gfs2_sbd *sdp = ip->i_sbd; -- uint64_t i_block = ip->i_di.di_num.no_addr; -- -- /* Don't fix gfs1 inodes, system inodes or inodes whose goal blocks are -- * set to the inode blocks themselves. */ -- if (sdp->gfs1 || ip->i_di.di_flags & GFS2_DIF_SYSTEM || -- ip->i_di.di_goal_meta == i_block) -- return 0; -- /* Don't fix directory goal blocks unless we know they're wrong. -- * i.e. out of bounds of the fs. Directories can easily have blocks -- * outside of the dinode's rgrp and thus we have no way of knowing -- * if the goal block is bogus or not. */ -- if (is_dir(&ip->i_di, ip->i_sbd->gfs1) && -- (ip->i_di.di_goal_meta > sdp->sb_addr && -- ip->i_di.di_goal_meta <= sdp->fssize)) -- return 0; -- /* We default to the inode block */ -- if (!goal_blk) -- goal_blk = i_block; -- -- if (ip->i_di.di_goal_meta != goal_blk) { -- /* If the existing goal block is in the same rgrp as the inode, -- * we give the benefit of doubt and assume the value is correct */ -- if (ip->i_rgd && -- rgrp_contains_block(ip->i_rgd, ip->i_di.di_goal_meta)) -- goto skip; -- log_err( _("Error: inode %llu (0x%llx) has invalid " -- "allocation goal block %llu (0x%llx). Should" -- " be %llu (0x%llx)\n"), -- (unsigned long long)i_block, (unsigned long long)i_block, -- (unsigned long long)ip->i_di.di_goal_meta, -- (unsigned long long)ip->i_di.di_goal_meta, -- (unsigned long long)goal_blk, (unsigned long long)goal_blk); -- if (query( _("Fix the invalid goal block? (y/n) "))) { -- ip->i_di.di_goal_meta = ip->i_di.di_goal_data = goal_blk; -- bmodified(ip->i_bh); -- } else { -- log_err(_("Invalid goal block not fixed.\n")); -- return 1; -- } -- } --skip: -- return 0; --} -- - struct metawalk_fxns alloc_fxns = { - .private = NULL, - .check_leaf = alloc_leaf, -@@ -2042,7 +1959,6 @@ struct metawalk_fxns alloc_fxns = { - .check_dentry = NULL, - .check_eattr_entry = NULL, - .check_eattr_extentry = NULL, -- .check_i_goal = check_i_goal, - .finish_eattr_indir = NULL, - }; - -diff --git a/gfs2/fsck/metawalk.h b/gfs2/fsck/metawalk.h -index 779360e..fa4c850 100644 ---- a/gfs2/fsck/metawalk.h -+++ b/gfs2/fsck/metawalk.h -@@ -50,8 +50,6 @@ extern int _fsck_blockmap_set(struct gfs2_inode *ip, uint64_t bblock, - const char *caller, int line); - extern int check_n_fix_bitmap(struct gfs2_sbd *sdp, uint64_t blk, - int error_on_dinode, int new_blockmap_state); --extern int check_i_goal(struct gfs2_inode *ip, uint64_t goal_blk, -- void *private); - extern void reprocess_inode(struct gfs2_inode *ip, const char *desc); - extern struct duptree *dupfind(uint64_t block); - extern struct gfs2_inode *fsck_system_inode(struct gfs2_sbd *sdp, -@@ -91,7 +89,6 @@ enum meta_check_rc { - * check_dentry: - * check_eattr_entry: - * check_eattr_extentry: -- * check_i_goal: - */ - struct metawalk_fxns { - void *private; -@@ -143,8 +140,6 @@ struct metawalk_fxns { - struct gfs2_ea_header *ea_hdr, - struct gfs2_ea_header *ea_hdr_prev, - void *private); -- int (*check_i_goal) (struct gfs2_inode *ip, uint64_t goal_blk, -- void *private); - int (*finish_eattr_indir) (struct gfs2_inode *ip, int leaf_pointers, - int leaf_pointer_errors, void *private); - void (*big_file_msg) (struct gfs2_inode *ip, uint64_t blks_checked); -diff --git a/gfs2/fsck/pass1.c b/gfs2/fsck/pass1.c -index 69c88f4..0909873 100644 ---- a/gfs2/fsck/pass1.c -+++ b/gfs2/fsck/pass1.c -@@ -100,7 +100,6 @@ struct metawalk_fxns pass1_fxns = { - .check_dentry = NULL, - .check_eattr_entry = check_eattr_entries, - .check_eattr_extentry = check_extended_leaf_eattr, -- .check_i_goal = check_i_goal, - .finish_eattr_indir = finish_eattr_indir, - .big_file_msg = big_file_comfort, - .repair_leaf = pass1_repair_leaf, -@@ -1205,12 +1204,37 @@ bad_dinode: - return -1; - } - -+static void check_i_goal(struct gfs2_sbd *sdp, struct gfs2_inode *ip) -+{ -+ if (sdp->gfs1 || ip->i_di.di_flags & GFS2_DIF_SYSTEM) -+ return; -+ -+ if (ip->i_di.di_goal_meta <= sdp->sb_addr || -+ ip->i_di.di_goal_meta > sdp->fssize) { -+ log_err(_("Inode #%llu (0x%llx): Bad allocation goal block " -+ "found: %llu (0x%llx)\n"), -+ (unsigned long long)ip->i_di.di_num.no_addr, -+ (unsigned long long)ip->i_di.di_num.no_addr, -+ (unsigned long long)ip->i_di.di_goal_meta, -+ (unsigned long long)ip->i_di.di_goal_meta); -+ if (query( _("Fix goal block in inode #%llu (0x%llx)? (y/n) "), -+ (unsigned long long)ip->i_di.di_num.no_addr, -+ (unsigned long long)ip->i_di.di_num.no_addr)) { -+ ip->i_di.di_goal_meta = ip->i_di.di_num.no_addr; -+ bmodified(ip->i_bh); -+ } else -+ log_err(_("Allocation goal block in inode #%lld " -+ "(0x%llx) not fixed\n"), -+ (unsigned long long)ip->i_di.di_num.no_addr, -+ (unsigned long long)ip->i_di.di_num.no_addr); -+ } -+} -+ - /* - * handle_di - This is now a wrapper function that takes a gfs2_buffer_head - * and calls handle_ip, which takes an in-code dinode structure. - */ --static int handle_di(struct gfs2_sbd *sdp, struct gfs2_buffer_head *bh, -- struct rgrp_tree *rgd) -+static int handle_di(struct gfs2_sbd *sdp, struct gfs2_buffer_head *bh) - { - int error = 0; - uint64_t block = bh->b_blocknr; -@@ -1252,7 +1276,7 @@ static int handle_di(struct gfs2_sbd *sdp, struct gfs2_buffer_head *bh, - (unsigned long long)block, - (unsigned long long)block); - } -- ip->i_rgd = rgd; -+ check_i_goal(sdp, ip); - error = handle_ip(sdp, ip); - fsck_inode_put(&ip); - return error; -@@ -1378,6 +1402,7 @@ static int check_system_inode(struct gfs2_sbd *sdp, - "directory entries.\n"), filename); - } - } -+ check_i_goal(sdp, *sysinode); - error = handle_ip(sdp, *sysinode); - return error ? error : err; - } -@@ -1602,7 +1627,7 @@ static int pass1_process_bitmap(struct gfs2_sbd *sdp, struct rgrp_tree *rgd, uin - (unsigned long long)block, - (unsigned long long)block); - check_n_fix_bitmap(sdp, block, 0, GFS2_BLKST_FREE); -- } else if (handle_di(sdp, bh, rgd) < 0) { -+ } else if (handle_di(sdp, bh) < 0) { - stack; - brelse(bh); - gfs2_special_free(&gfs1_rindex_blks); -diff --git a/gfs2/libgfs2/libgfs2.h b/gfs2/libgfs2/libgfs2.h -index f1f81d3..ccae721 100644 ---- a/gfs2/libgfs2/libgfs2.h -+++ b/gfs2/libgfs2/libgfs2.h -@@ -233,7 +233,6 @@ struct gfs2_inode { - struct gfs2_dinode i_di; - struct gfs2_buffer_head *i_bh; - struct gfs2_sbd *i_sbd; -- struct rgrp_tree *i_rgd; /* The rgrp this inode is in */ - }; - - struct master_dir diff --git a/gfs2-utils.spec b/gfs2-utils.spec index 47d4ea1..8017e7c 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -1,7 +1,7 @@ ############################################################################### ############################################################################### ## -## Copyright (C) 2004-2014 Red Hat, Inc. All rights reserved. +## Copyright (C) 2004-2016 Red Hat, Inc. All rights reserved. ## ## This copyrighted material is made available to anyone wishing to use, ## modify, copy, or redistribute it subject to the terms and conditions @@ -11,8 +11,8 @@ ############################################################################### Name: gfs2-utils -Version: 3.1.8 -Release: 7%{?dist} +Version: 3.1.9 +Release: 1%{?dist} License: GPLv2+ and LGPLv2+ Group: System Environment/Kernel Summary: Utilities for managing the global file system (GFS2) @@ -31,28 +31,9 @@ BuildRequires: libblkid-devel BuildRequires: check-devel Source: https://fedorahosted.org/released/gfs2-utils/gfs2-utils-%{version}.tar.gz URL: https://fedorahosted.org/cluster/wiki/HomePage -Patch0: fsck_gfs2_replace_recent_i_goal_fixes_with_simple_logic.patch -Patch1: gfs2_utils_Fix_hang_on_withdraw.patch -Patch2: scripts_rename_gfs2_wd_udev_sh_to_gfs2_withdraw_helper.patch -Patch3: scripts_install_the_withdraw_helper_script.patch -Patch4: scripts_install_the_withdraw_udev_rules_script.patch -Patch5: 1307532-1-libgfs2_Add_support_for_dirent_de_rahead.patch -Patch6: 1307532-2-gfs2_edit_Include_dirent_de_rahead_in_directory_listings.patch -Patch7: 1307532-3-gfs2_utils_Add_a_check_for_the_de_rahead_field.patch -Patch8: 1307532-4-libgfs2_Support_the_new_dirent_de_cookie_field.patch - %prep %setup -q -n gfs2-utils-%{version} -%patch0 -p 1 -b .fsck_gfs2_replace_recent_i_goal_fixes_with_simple_logic -%patch1 -p 1 -b .gfs2_utils_Fix_hang_on_withdraw -%patch2 -p 1 -b .scripts_rename_gfs2_wd_udev_sh_to_gfs2_withdraw_helper -%patch3 -p 1 -b .scripts_install_the_withdraw_helper_script -%patch4 -p 1 -b .scripts_install_the_withdraw_udev_rules_script -%patch5 -p 1 -b .1307532-1-libgfs2_Add_support_for_dirent_de_rahead -%patch6 -p 1 -b .1307532-2-gfs2_edit_Include_dirent_de_rahead_in_directory_listings -%patch7 -p 1 -b .1307532-3-gfs2_utils_Add_a_check_for_the_de_rahead_field -%patch8 -p 1 -b .1307532-4-libgfs2_Support_the_new_dirent_de_cookie_field %build ./autogen.sh @@ -71,9 +52,8 @@ rm -f %{buildroot}%{_mandir}/man8/gfs2_trace.8 rm -f %{buildroot}%{_mandir}/man8/gfs2_lockcapture.8 %description -The gfs2-utils package contains a number of utilities for creating, -checking, modifying, and correcting any inconsistencies in GFS2 -file systems. +The gfs2-utils package contains a number of utilities for creating, checking, +modifying, and correcting inconsistencies in GFS2 file systems. %files %doc doc/COPYING.* doc/COPYRIGHT doc/*.txt @@ -86,11 +66,18 @@ file systems. %{_sbindir}/gfs2_edit %{_sbindir}/tunegfs2 %{_sbindir}/gfs2_withdraw_helper +%{_sbindir}/glocktop %{_mandir}/man8/*gfs2* +%{_mandir}/man8/glocktop* %{_mandir}/man5/* %{_prefix}/lib/udev/rules.d/82-gfs2-withdraw.rules %changelog +* Tue Jun 07 2016 Andrew Price - 3.1.9-1 +- New upstream release +- Drop all patches +- Add glocktop to the package + * Mon Feb 15 2016 Andrew Price - 3.1.8-7 - libgfs2: Add support for dirent.de_rahead - gfs2_edit: Include dirent.de_rahead in directory listings diff --git a/gfs2_utils_Fix_hang_on_withdraw.patch b/gfs2_utils_Fix_hang_on_withdraw.patch deleted file mode 100644 index 2d2f051..0000000 --- a/gfs2_utils_Fix_hang_on_withdraw.patch +++ /dev/null @@ -1,97 +0,0 @@ -commit 4e9a8f12b74d61314e79904a0f02e42e99a98493 -Author: Abhi Das -Date: Tue Aug 4 11:00:51 2015 -0500 - - gfs2-utils: Fix hang on withdraw - - Issuing a withdraw on a gfs2 filesystem causes a hang. When - gfs_controld was removed, the userspace functionality that - completes a withdraw operation went away. This causes gfs2 - kernel to hang waiting for a withdraw completion ack from - userspace. - - This patchset introduces a uevent-based shell script to do - the job that gfs_controld used to do on withdraw. An 'offline' - uevent triggers the execution of this script. This script - suspends the device associated with the filesystem and signals - a completed withdraw to the kernel. - - Resolves: rhbz#1225634 - Signed-off-by: Abhi Das - -diff --git a/README.build b/README.build -index f4ebe53..6487bae 100644 ---- a/README.build -+++ b/README.build -@@ -29,5 +29,14 @@ To install gfs2-utils, run: - - make install - -+The following scripts (located in gfs2/scripts) are used to complete -+the userland portion of the gfs2 withdraw feature using uevents. They -+are not installed by 'make install' and need to be installed manually -+or during rpm installation to the corresponding locations. -+ -+ 82-gfs2-withdraw.rules in /etc/udev/rules.d/ -+ gfs2_wd_udev.sh in /usr/sbin/ -+ - See also doc/README.contributing for details on submitting patches and - doc/README.tests for more details regarding the test suite. -+ -diff --git a/gfs2/scripts/82-gfs2-withdraw.rules b/gfs2/scripts/82-gfs2-withdraw.rules -new file mode 100644 -index 0000000..2228615 ---- /dev/null -+++ b/gfs2/scripts/82-gfs2-withdraw.rules -@@ -0,0 +1,2 @@ -+SUBSYSTEM=="gfs2", ACTION=="offline", RUN+="/bin/sh /usr/sbin/gfs2_wd_udev.sh" -+ -diff --git a/gfs2/scripts/Makefile.am b/gfs2/scripts/Makefile.am -index 62fb2fe..dde906f 100644 ---- a/gfs2/scripts/Makefile.am -+++ b/gfs2/scripts/Makefile.am -@@ -3,3 +3,8 @@ MAINTAINERCLEANFILES = Makefile.in - dist_sbin_SCRIPTS = \ - gfs2_lockcapture \ - gfs2_trace -+ -+noinst_SCRIPTS = \ -+ 82-gfs2-withdraw.rules \ -+ gfs2_wd_udev.sh -+ -diff --git a/gfs2/scripts/gfs2_wd_udev.sh b/gfs2/scripts/gfs2_wd_udev.sh -new file mode 100755 -index 0000000..ac3ce35 ---- /dev/null -+++ b/gfs2/scripts/gfs2_wd_udev.sh -@@ -0,0 +1,30 @@ -+#!/bin/sh -+# -+# Do not run this script manually. This script is called by udev on a gfs2 -+# withdraw uevent and is used to complete the withdraw action and notify the -+# kernel. -+# -+ -+# Sanity checks -+if [ "$SUBSYSTEM" != "gfs2" ] || [ "$LOCKPROTO" != "lock_dlm" ] || -+ [ -z "$DEVPATH" ] || [ "$ACTION" != "offline" ] -+then -+ exit 1 # Nothing to do here -+fi -+ -+# Try and suspend the device -+SYSFS_TOPDIR="/sys"$DEVPATH -+DM_NAME=$(cat "$SYSFS_TOPDIR/device/dm/name") -+DM_DEV="/dev/mapper/"$DM_NAME -+ -+if [ -z "$DM_DEV" ] -+then -+ /usr/bin/dmsetup suspend $DM_DEV -+fi -+ -+# Signal completion of withdraw -+WD_ACK="$SYSFS_TOPDIR/lock_module/withdraw" -+if [ -f "$WD_ACK" ] -+then -+ echo "1" > $WD_ACK -+fi diff --git a/scripts_install_the_withdraw_helper_script.patch b/scripts_install_the_withdraw_helper_script.patch deleted file mode 100644 index de2d182..0000000 --- a/scripts_install_the_withdraw_helper_script.patch +++ /dev/null @@ -1,27 +0,0 @@ -commit fdded71f349ec5928a1422bc7edaa7f4f6c0be26 -Author: Andrew Price -Date: Tue Aug 18 12:48:50 2015 +0100 - - scripts: install the withdraw helper script - - Install gfs2_withdraw_helper into /usr/sbin in 'make install'. - - Signed-off-by: Andrew Price - -diff --git a/gfs2/scripts/Makefile.am b/gfs2/scripts/Makefile.am -index 51764fa..056aaa5 100644 ---- a/gfs2/scripts/Makefile.am -+++ b/gfs2/scripts/Makefile.am -@@ -2,9 +2,9 @@ MAINTAINERCLEANFILES = Makefile.in - - dist_sbin_SCRIPTS = \ - gfs2_lockcapture \ -- gfs2_trace -+ gfs2_trace \ -+ gfs2_withdraw_helper - - noinst_SCRIPTS = \ -- 82-gfs2-withdraw.rules \ -- gfs2_withdraw_helper -+ 82-gfs2-withdraw.rules - diff --git a/scripts_install_the_withdraw_udev_rules_script.patch b/scripts_install_the_withdraw_udev_rules_script.patch deleted file mode 100644 index 430ea5e..0000000 --- a/scripts_install_the_withdraw_udev_rules_script.patch +++ /dev/null @@ -1,72 +0,0 @@ -commit 9aa261bd5e65beb757b0953ba43211fc29641952 -Author: Andrew Price -Date: Wed Aug 19 12:13:39 2015 +0100 - - scripts: install the withdraw udev rules script - - Add a --with-udevdir configure option and default to $prefix/lib/udev. - Note that we can't use $libdir for this as that will often be /usr/lib64 - and the udevdir is arch-independent. - - Also add the autoconf bits needed to install 82-gfs2-withdraw.rules into - $udevdir/rules.d - - Signed-off-by: Andrew Price - -diff --git a/README.build b/README.build -index acfde1b..d0a21c3 100644 ---- a/README.build -+++ b/README.build -@@ -31,10 +31,9 @@ To install gfs2-utils, run: - - The following scripts (located in gfs2/scripts) are used to complete - the userland portion of the gfs2 withdraw feature using uevents. They --are not installed by 'make install' and need to be installed manually --or during rpm installation to the corresponding locations. -+will be installed by 'make install' to these directories by default: - -- 82-gfs2-withdraw.rules in /etc/udev/rules.d/ -+ 82-gfs2-withdraw.rules in /usr/lib/udev/rules.d/ - gfs2_withdraw_helper in /usr/sbin/ - - See also doc/README.contributing for details on submitting patches and -diff --git a/configure.ac b/configure.ac -index de96e5a..35cafe6 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -110,6 +110,12 @@ if test -z "$ncurses_CFLAGS" && test -z "$ncurses_LIBS"; then - ncurses_LIBS=-lncurses - fi - -+AC_ARG_WITH([udevdir], -+ AS_HELP_STRING([--with-udevdir=DIR], -+ [udev directory containing rules.d [default=${prefix}/lib/udev]]), -+ [], [with_udevdir=\${prefix}/lib/udev]) -+AC_SUBST([udevdir], [$with_udevdir]) -+ - # Checks for header files. - AC_CHECK_HEADERS([fcntl.h libintl.h limits.h locale.h mntent.h stddef.h sys/file.h sys/ioctl.h sys/mount.h sys/time.h sys/vfs.h syslog.h termios.h]) - AC_CHECK_HEADER([linux/fs.h], [], [AC_MSG_ERROR([Unable to find linux/fs.h])]) -@@ -209,7 +215,9 @@ echo " Configure summary" - echo " ===================" - echo " prefix : $prefix" - echo " exec_prefix : $exec_prefix" -+echo " libdir : $libdir" - echo " sbindir : $sbindir" -+echo " udevdir : $udevdir" - echo " ------------------" - echo " debug build : $enable_debug" - echo " C unit tests : $have_check" -diff --git a/gfs2/scripts/Makefile.am b/gfs2/scripts/Makefile.am -index 056aaa5..d4bda04 100644 ---- a/gfs2/scripts/Makefile.am -+++ b/gfs2/scripts/Makefile.am -@@ -5,6 +5,6 @@ dist_sbin_SCRIPTS = \ - gfs2_trace \ - gfs2_withdraw_helper - --noinst_SCRIPTS = \ -+udevrulesdir=@udevdir@/rules.d -+dist_udevrules_DATA = \ - 82-gfs2-withdraw.rules -- diff --git a/scripts_rename_gfs2_wd_udev_sh_to_gfs2_withdraw_helper.patch b/scripts_rename_gfs2_wd_udev_sh_to_gfs2_withdraw_helper.patch deleted file mode 100644 index 7f48867..0000000 --- a/scripts_rename_gfs2_wd_udev_sh_to_gfs2_withdraw_helper.patch +++ /dev/null @@ -1,115 +0,0 @@ -commit bdb6bb67ee4532c2dfb65eeeebcec06bda99d4ff -Author: Andrew Price -Date: Tue Aug 18 12:35:52 2015 +0100 - - scripts: rename gfs2_wd_udev.sh to gfs2_withdraw_helper - - Makes the name more descriptive and consistent with the name of the udev - rules script. - - Signed-off-by: Andrew Price - -diff --git a/README.build b/README.build -index 6487bae..acfde1b 100644 ---- a/README.build -+++ b/README.build -@@ -35,7 +35,7 @@ are not installed by 'make install' and need to be installed manually - or during rpm installation to the corresponding locations. - - 82-gfs2-withdraw.rules in /etc/udev/rules.d/ -- gfs2_wd_udev.sh in /usr/sbin/ -+ gfs2_withdraw_helper in /usr/sbin/ - - See also doc/README.contributing for details on submitting patches and - doc/README.tests for more details regarding the test suite. -diff --git a/gfs2/scripts/82-gfs2-withdraw.rules b/gfs2/scripts/82-gfs2-withdraw.rules -index 2228615..2c9e0e8 100644 ---- a/gfs2/scripts/82-gfs2-withdraw.rules -+++ b/gfs2/scripts/82-gfs2-withdraw.rules -@@ -1,2 +1,2 @@ --SUBSYSTEM=="gfs2", ACTION=="offline", RUN+="/bin/sh /usr/sbin/gfs2_wd_udev.sh" -+SUBSYSTEM=="gfs2", ACTION=="offline", RUN+="/bin/sh /usr/sbin/gfs2_withdraw_helper" - -diff --git a/gfs2/scripts/Makefile.am b/gfs2/scripts/Makefile.am -index dde906f..51764fa 100644 ---- a/gfs2/scripts/Makefile.am -+++ b/gfs2/scripts/Makefile.am -@@ -6,5 +6,5 @@ dist_sbin_SCRIPTS = \ - - noinst_SCRIPTS = \ - 82-gfs2-withdraw.rules \ -- gfs2_wd_udev.sh -+ gfs2_withdraw_helper - -diff --git a/gfs2/scripts/gfs2_wd_udev.sh b/gfs2/scripts/gfs2_wd_udev.sh -deleted file mode 100755 -index ac3ce35..0000000 ---- a/gfs2/scripts/gfs2_wd_udev.sh -+++ /dev/null -@@ -1,30 +0,0 @@ --#!/bin/sh --# --# Do not run this script manually. This script is called by udev on a gfs2 --# withdraw uevent and is used to complete the withdraw action and notify the --# kernel. --# -- --# Sanity checks --if [ "$SUBSYSTEM" != "gfs2" ] || [ "$LOCKPROTO" != "lock_dlm" ] || -- [ -z "$DEVPATH" ] || [ "$ACTION" != "offline" ] --then -- exit 1 # Nothing to do here --fi -- --# Try and suspend the device --SYSFS_TOPDIR="/sys"$DEVPATH --DM_NAME=$(cat "$SYSFS_TOPDIR/device/dm/name") --DM_DEV="/dev/mapper/"$DM_NAME -- --if [ -z "$DM_DEV" ] --then -- /usr/bin/dmsetup suspend $DM_DEV --fi -- --# Signal completion of withdraw --WD_ACK="$SYSFS_TOPDIR/lock_module/withdraw" --if [ -f "$WD_ACK" ] --then -- echo "1" > $WD_ACK --fi -diff --git a/gfs2/scripts/gfs2_withdraw_helper b/gfs2/scripts/gfs2_withdraw_helper -new file mode 100755 -index 0000000..ac3ce35 ---- /dev/null -+++ b/gfs2/scripts/gfs2_withdraw_helper -@@ -0,0 +1,30 @@ -+#!/bin/sh -+# -+# Do not run this script manually. This script is called by udev on a gfs2 -+# withdraw uevent and is used to complete the withdraw action and notify the -+# kernel. -+# -+ -+# Sanity checks -+if [ "$SUBSYSTEM" != "gfs2" ] || [ "$LOCKPROTO" != "lock_dlm" ] || -+ [ -z "$DEVPATH" ] || [ "$ACTION" != "offline" ] -+then -+ exit 1 # Nothing to do here -+fi -+ -+# Try and suspend the device -+SYSFS_TOPDIR="/sys"$DEVPATH -+DM_NAME=$(cat "$SYSFS_TOPDIR/device/dm/name") -+DM_DEV="/dev/mapper/"$DM_NAME -+ -+if [ -z "$DM_DEV" ] -+then -+ /usr/bin/dmsetup suspend $DM_DEV -+fi -+ -+# Signal completion of withdraw -+WD_ACK="$SYSFS_TOPDIR/lock_module/withdraw" -+if [ -f "$WD_ACK" ] -+then -+ echo "1" > $WD_ACK -+fi diff --git a/sources b/sources index 0a3227f..119c866 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -f43b26f006b0a58d86a08eed579871f1 gfs2-utils-3.1.8.tar.gz +6927ee519a26c05a3e03138f6f0462fa gfs2-utils-3.1.9.tar.gz From a9525bd22da6bb528dd57c230a09d2c0fdf3e39e Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 10 Feb 2017 10:29:44 +0000 Subject: [PATCH 37/75] - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild --- gfs2-utils.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gfs2-utils.spec b/gfs2-utils.spec index 8017e7c..5a0b3d1 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -12,7 +12,7 @@ Name: gfs2-utils Version: 3.1.9 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv2+ and LGPLv2+ Group: System Environment/Kernel Summary: Utilities for managing the global file system (GFS2) @@ -73,6 +73,9 @@ modifying, and correcting inconsistencies in GFS2 file systems. %{_prefix}/lib/udev/rules.d/82-gfs2-withdraw.rules %changelog +* Fri Feb 10 2017 Fedora Release Engineering - 3.1.9-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + * Tue Jun 07 2016 Andrew Price - 3.1.9-1 - New upstream release - Drop all patches From 5447989ec9c7eddabefe4d5b341fd0c84377798f Mon Sep 17 00:00:00 2001 From: Andrew Price Date: Tue, 28 Mar 2017 18:24:18 +0100 Subject: [PATCH 38/75] * Tue Mar 28 2017 Andrew Price - 3.1.10-1 - New upstream release - Make dependency on libuuid explicit --- .gitignore | 1 + gfs2-utils.spec | 11 ++++++++--- sources | 2 +- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 6f5f323..33b9d31 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ /gfs2-utils-3.1.7.tar.gz /gfs2-utils-3.1.8.tar.gz /gfs2-utils-3.1.9.tar.gz +/gfs2-utils-3.1.10.tar.gz diff --git a/gfs2-utils.spec b/gfs2-utils.spec index 5a0b3d1..aa6b546 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -11,8 +11,8 @@ ############################################################################### Name: gfs2-utils -Version: 3.1.9 -Release: 2%{?dist} +Version: 3.1.10 +Release: 1%{?dist} License: GPLv2+ and LGPLv2+ Group: System Environment/Kernel Summary: Utilities for managing the global file system (GFS2) @@ -28,8 +28,9 @@ BuildRequires: gettext-devel BuildRequires: bison BuildRequires: flex BuildRequires: libblkid-devel +BuildRequires: libuuid-devel BuildRequires: check-devel -Source: https://fedorahosted.org/released/gfs2-utils/gfs2-utils-%{version}.tar.gz +Source: https://releases.pagure.org/gfs2-utils/gfs2-utils-%{version}.tar.gz URL: https://fedorahosted.org/cluster/wiki/HomePage %prep @@ -73,6 +74,10 @@ modifying, and correcting inconsistencies in GFS2 file systems. %{_prefix}/lib/udev/rules.d/82-gfs2-withdraw.rules %changelog +* Tue Mar 28 2017 Andrew Price - 3.1.10-1 +- New upstream release +- Make dependency on libuuid explicit + * Fri Feb 10 2017 Fedora Release Engineering - 3.1.9-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild diff --git a/sources b/sources index 119c866..4371d69 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -6927ee519a26c05a3e03138f6f0462fa gfs2-utils-3.1.9.tar.gz +SHA512 (gfs2-utils-3.1.10.tar.gz) = 8c6fc6420bac7d787823907c9a7440060eb089f5d16a5ebf97ab51f634ebb532c5e069cbedd3e4cff2ea52d6d318b2afcde55d160305002c9ccc3284aa8ed9e1 From c3751bb1436c1b7d2cbdee6e44c9530bb0422a7b Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 26 Jul 2017 09:29:41 +0000 Subject: [PATCH 39/75] - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild --- gfs2-utils.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gfs2-utils.spec b/gfs2-utils.spec index aa6b546..6ee478c 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -12,7 +12,7 @@ Name: gfs2-utils Version: 3.1.10 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv2+ and LGPLv2+ Group: System Environment/Kernel Summary: Utilities for managing the global file system (GFS2) @@ -74,6 +74,9 @@ modifying, and correcting inconsistencies in GFS2 file systems. %{_prefix}/lib/udev/rules.d/82-gfs2-withdraw.rules %changelog +* Wed Jul 26 2017 Fedora Release Engineering - 3.1.10-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + * Tue Mar 28 2017 Andrew Price - 3.1.10-1 - New upstream release - Make dependency on libuuid explicit From 83a09d537306d950a52d63973cda27bea926741e Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 2 Aug 2017 21:08:14 +0000 Subject: [PATCH 40/75] - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild --- gfs2-utils.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gfs2-utils.spec b/gfs2-utils.spec index 6ee478c..86c825d 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -12,7 +12,7 @@ Name: gfs2-utils Version: 3.1.10 -Release: 2%{?dist} +Release: 3%{?dist} License: GPLv2+ and LGPLv2+ Group: System Environment/Kernel Summary: Utilities for managing the global file system (GFS2) @@ -74,6 +74,9 @@ modifying, and correcting inconsistencies in GFS2 file systems. %{_prefix}/lib/udev/rules.d/82-gfs2-withdraw.rules %changelog +* Wed Aug 02 2017 Fedora Release Engineering - 3.1.10-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + * Wed Jul 26 2017 Fedora Release Engineering - 3.1.10-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild From d1928c796c712efbb5451a8e9abb54fa454d95e6 Mon Sep 17 00:00:00 2001 From: Andrew Price Date: Fri, 13 Oct 2017 11:49:12 +0100 Subject: [PATCH 41/75] * Fri Oct 13 2017 Andrew Price - 3.1.10-4 - Update URL in spec file --- gfs2-utils.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gfs2-utils.spec b/gfs2-utils.spec index 86c825d..efdaa1c 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -12,7 +12,7 @@ Name: gfs2-utils Version: 3.1.10 -Release: 3%{?dist} +Release: 4%{?dist} License: GPLv2+ and LGPLv2+ Group: System Environment/Kernel Summary: Utilities for managing the global file system (GFS2) @@ -31,7 +31,7 @@ BuildRequires: libblkid-devel BuildRequires: libuuid-devel BuildRequires: check-devel Source: https://releases.pagure.org/gfs2-utils/gfs2-utils-%{version}.tar.gz -URL: https://fedorahosted.org/cluster/wiki/HomePage +URL: https://pagure.io/gfs2-utils %prep %setup -q -n gfs2-utils-%{version} @@ -74,6 +74,9 @@ modifying, and correcting inconsistencies in GFS2 file systems. %{_prefix}/lib/udev/rules.d/82-gfs2-withdraw.rules %changelog +* Fri Oct 13 2017 Andrew Price - 3.1.10-4 +- Update URL in spec file + * Wed Aug 02 2017 Fedora Release Engineering - 3.1.10-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild From 08330317c4ae0e6b61eeb6f8d7ff516c22be34f4 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 7 Feb 2018 11:09:41 +0000 Subject: [PATCH 42/75] - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- gfs2-utils.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gfs2-utils.spec b/gfs2-utils.spec index efdaa1c..59b6eda 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -12,7 +12,7 @@ Name: gfs2-utils Version: 3.1.10 -Release: 4%{?dist} +Release: 5%{?dist} License: GPLv2+ and LGPLv2+ Group: System Environment/Kernel Summary: Utilities for managing the global file system (GFS2) @@ -74,6 +74,9 @@ modifying, and correcting inconsistencies in GFS2 file systems. %{_prefix}/lib/udev/rules.d/82-gfs2-withdraw.rules %changelog +* Wed Feb 07 2018 Fedora Release Engineering - 3.1.10-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + * Fri Oct 13 2017 Andrew Price - 3.1.10-4 - Update URL in spec file From e35859f0efe9a3acd8538a7df39b10c209015851 Mon Sep 17 00:00:00 2001 From: Andrew Price Date: Thu, 24 May 2018 12:52:33 +0100 Subject: [PATCH 43/75] * Thu May 24 2018 Andrew Price - 3.2.0-1 - New upstream release --- .gitignore | 1 + gfs2-utils.spec | 236 ++---------------------------------------------- sources | 2 +- 3 files changed, 8 insertions(+), 231 deletions(-) diff --git a/.gitignore b/.gitignore index 33b9d31..f7a396a 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ /gfs2-utils-3.1.8.tar.gz /gfs2-utils-3.1.9.tar.gz /gfs2-utils-3.1.10.tar.gz +/gfs2-utils-3.2.0.tar.gz diff --git a/gfs2-utils.spec b/gfs2-utils.spec index 59b6eda..6de250e 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -1,7 +1,7 @@ ############################################################################### ############################################################################### ## -## Copyright (C) 2004-2016 Red Hat, Inc. All rights reserved. +## Copyright (C) 2004-2018 Red Hat, Inc. All rights reserved. ## ## This copyrighted material is made available to anyone wishing to use, ## modify, copy, or redistribute it subject to the terms and conditions @@ -11,8 +11,8 @@ ############################################################################### Name: gfs2-utils -Version: 3.1.10 -Release: 5%{?dist} +Version: 3.2.0 +Release: 1%{?dist} License: GPLv2+ and LGPLv2+ Group: System Environment/Kernel Summary: Utilities for managing the global file system (GFS2) @@ -74,6 +74,9 @@ modifying, and correcting inconsistencies in GFS2 file systems. %{_prefix}/lib/udev/rules.d/82-gfs2-withdraw.rules %changelog +* Thu May 24 2018 Andrew Price - 3.2.0-1 +- New upstream release + * Wed Feb 07 2018 Fedora Release Engineering - 3.1.10-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild @@ -178,230 +181,3 @@ modifying, and correcting inconsistencies in GFS2 file systems. * Wed Feb 13 2013 Fedora Release Engineering - 3.1.5-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild - -* Tue Nov 13 2012 Andrew Price - 3.1.5-1 -- New upstream release - Removes mount.gfs2, gfs2_tool, gfs2_quota -- Remove rawhide_transition.patch - now obsolete -- Update BuildRequires: - Change glibc-kernheaders to kernel-headers - Add bison and flex -- Provide a valid url for Source0 -- Add fix_build_on_rawhide.patch to fix a circular dep introduced in - bison 2.6, and a make -j race between libgfs2 and gfs2l - -* Tue Aug 14 2012 Andrew Price - 3.1.4-6 -- Make the kernel-modules-extra requirement Fedora-specific - Resolves bz#847955 - -* Thu Jul 19 2012 Fedora Release Engineering - 3.1.4-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild - -* Tue Apr 17 2012 Andrew Price - 3.1.4-4 -- Remove commented-out sections -- Clean up some lintian warnings -- Add dependency on kernel-modules-extra as per bz#811547 - -* Wed Mar 07 2012 Andrew Price - 3.1.4-3 -- Remove redundant postinstall scriptlet - -* Thu Feb 2 2012 Fabio M. Di Nitto - 3.1.4-2 -- make sure to Obsolete gfs2-cluster - -* Wed Feb 01 2012 Andrew Price - 3.1.4-1 -- New upstream release - Adds gfs2_lockgather script -- Remove gfs2-cluster (commented out for now) -- Remove dependency on corosynclib-devel and systemd-units -- Add rawhide_transition.patch to stop gfs_controld from building - -* Fri Jan 13 2012 Fedora Release Engineering - 3.1.3-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild - -* Thu Dec 15 2011 Andrew Price - 3.1.3-1 -- New upstream release - Bugfixes and improvements to fsck.gfs2 - Fixes various other bugs - Improve strings and translation support -- Adds gfs2-cluster systemd unit -- Removes gfs2* init scripts - -* Wed Jul 06 2011 Andrew Price - 3.1.2-1 -- New upstream release - Fixes several bugs - Improves translation support - Adds savemeta compression -- Add zlib-devel to BuildRequires -- Add gettext-devel to BuildRequires - -* Wed May 25 2011 Steven Whitehouse - 3.1.1-3 -- Update wiki URL -- Remove gfs2_tool and gfs2_quota from package - -* Fri Feb 25 2011 Bob Peterson - 3.1.1-2 -- Bumping release number to keep upgrades consistent. - -* Wed Feb 23 2011 Bob Peterson - 3.1.1-1 -- gfs2_edit savemeta doesn't save all leafs for big directories -- gfs2_edit improvements -- fsck.gfs2: can't repair rgrps resulting from gfs_grow->gfs2_convert -- fsck.gfs2: reports master/root dinodes as unused and fixes bitmap - -* Tue Feb 08 2011 Fedora Release Engineering - 3.1.0-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild - -* Thu Jan 20 2011 Steven Whitehouse - 3.1.0-4 -- Drop mount.gfs2 and its man page -- Only list gfs2_tool once in the files list - -* Wed Dec 8 2010 Fabio M. Di Nitto - 3.1.0-3 -- Drop circular dependency on cman - -* Fri Dec 3 2010 Fabio M. Di Nitto - 3.1.0-2 -- gfs2-cluster should Obsoletes/Provides gfs-pcmk - -* Tue Sep 30 2010 Steven Whitehouse - 3.1.0-1 -- Bringing this package back for upstream GFS2 - Addition of gfs2tune to the utils - Merge of gfs_controld from cman - -* Thu Jan 22 2009 Fabio M. Di Nitto - 2.03.11-1 -- New upstream release - Fix several bugs and drastically improve startup errors. - -* Wed Dec 10 2008 Fabio M. Di Nitto - 2.03.10-1 -- New upstream release - Fix several bugs and port gfs1 code to match 2.6.27 kernel. - -* Fri Oct 31 2008 Fabio M. Di Nitto - 2.03.09-1 -- New upstream release - Fix rhbz#468966 - Addresses several security issues similar to CVE-2008-4192 and - CVE-2008-4579 after deep code audit from upstream -- cleanup patches to match 2.6.26 kernel in F-9 - -* Tue Oct 21 2008 Fabio M. Di Nitto - 2.03.08-1 -- New upstream release - Fix rhbz#460376 CVE-2008-4192 - Fix rhbz#467386 CVE-2008-4579 -- cleanup/update patches to match 2.6.26 kernel in F-9 - -* Thu Aug 14 2008 Fabio M. Di Nitto - 2.03.07-1 -- New upstream release -- Fix rgmanager startup locking issues -- Apply patch to include kernel headers from 2.6.26 required to build - userland. Userland will run in 2.6.25 compatibility mode -- Apply patch to keep kernel modules at 2.6.25 (upstream is at 2.6.26) - (this patch is purely cosmetic since we don't build kernel modules - but keep the source in sync is Good (tm)) -- Cleanup packaging for installed docs and file permissions - -* Mon Jul 14 2008 Fabio M. Di Nitto - 2.03.05-1 -- New upstream release -- Cleanup installed doc after upstream - -* Wed Jun 11 2008 Fabio M. Di Nitto 2.03.04-1 -- New upstream release -- Resolves: #446995 #318271 #447378 #445662 -- Update license tags after major upstream cleanup -- Include COPYRIGHT file - -* Fri May 30 2008 Fabio M. Di Nitto 2.03.03-1 -- New upstream release -- Fix several build warnings -- Update spec files to use macros -- Update Requires to use packages rather than pointing at files -- Drop BR on kernel-devel since it's not required anymore -- Update build section to use proper _sysconfdir, libdir and sbindir -- Avoid abusing cd when we can ask make to do the work for us -- Remove /usr/sbin from file section. We don't have any file there - and we can avoid shipping stuff by mistake - -* Mon Apr 14 2008 Steven Whitehouse 2.03.00-3 -- Fabbione saves the day. We can get rid of the sed stuff after all - -* Mon Apr 14 2008 Steven Whitehouse 2.03.00-1 -- New upstream sources -- Eric Sandeen's solution to kernel version dep - -* Wed Apr 09 2008 Steven Whitehouse 0.1.25.2.02.01-15 -- Remove obsolete chkconfig patch for initscript -- Enable parallel make -- Remove obsolete copy of gfs2_ondisk.h (this should be in glibc-kernheaders) - -* Wed Apr 09 2008 Steven Whitehouse 0.1.25.2.02.01-14 -- Update URL -- Fix license spec - -* Fri Mar 14 2008 Chris Feist 0.1.25.2.02.00-2 -- New upstream sources. - -* Tue Jan 16 2007 Chris Feist 0.1.24-1 -- New upstream sources. -- Resolves: rhbz#222747 - -* Wed Jan 03 2007 Chris Feist 0.1.24-1 -- Updated sources -- Resolves: rhbz#218560 - -* Thu Dec 21 2006 Chris Feist 0.1.23-1 -- Updated sources -- Resolves: rhbz#218560 - -* Tue Dec 19 2006 Chris Feist 0.1.22-1 -- New upstream sources. -- Resolves: rhbz#219878 - -* Tue Dec 04 2006 Chris Feist 0.1.21-1 -- New upstream sources. -- Resolves: rhbz#218134 rhbz#215962 - -* Thu Nov 30 2006 Chris Feist 0.1.19-1 -- New upstream sources. -- Resolves: rhbz#217798 - -* Wed Nov 29 2006 Chris Feist 0.1.18-1 -- New upstream sources. -- Resolves: rhbz#217460 - -* Thu Oct 26 2006 Chris Feist 0.1.14-1 -- New upstream sources. - -* Fri Oct 13 2006 Chris Feist 0.1.12-1 -- New Upstream sources. - -* Fri Oct 13 2006 Chris Feist 0.1.10-1 -- New Upstream sources. - -* Mon Oct 09 2006 Chris Feist 0.1.9-1 -- New Upstream sources. - -* Mon Sep 25 2006 Chris Feist 0.1.8-1 -- New Upstream sources. - -* Wed Sep 13 2006 Chris Feist 0.1.7-1 -- New Upstream sources. - -* Thu Sep 07 2006 Chris Feist 0.1.6-2 -- Fix typo in uninstall script (turn off gfs2 instead of gfs) - -* Mon Aug 28 2006 Chris Feist 0.1.6-1 -- New Upstream sources. - -* Tue Aug 22 2006 Chris Feist 0.1.5-1 -- New Upstream sources. - -* Mon Aug 14 2006 Chris Feist 0.1.3-0 -- New Upstream sources, use dist tag. - -* Fri Jul 14 2006 Chris Feist -- Rebuild with updated sources - -* Wed Jul 12 2006 Jesse Keating -- rebuild - -* Tue Jun 27 2006 Florian La Roche -- fix typo in preun script - -* Fri Jun 09 2006 Chris Feist - 0.1.0-1.fc6.3 -- Initial build of gfs-utils. diff --git a/sources b/sources index 4371d69..1cbd040 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (gfs2-utils-3.1.10.tar.gz) = 8c6fc6420bac7d787823907c9a7440060eb089f5d16a5ebf97ab51f634ebb532c5e069cbedd3e4cff2ea52d6d318b2afcde55d160305002c9ccc3284aa8ed9e1 +SHA512 (gfs2-utils-3.2.0.tar.gz) = 98ddf07666a7d0b0985e65eafebec455e0926a9bda9350d413f209bfc7af9ef30e23980a516f7375db61ea1b7b55f33934d52685d163ca6cc4a151ac0db5e5fe From 6120ebbdbf966b9c5b430e0483b05129e9b03ac6 Mon Sep 17 00:00:00 2001 From: Andrew Price Date: Thu, 21 Jun 2018 10:43:18 +0100 Subject: [PATCH 44/75] * Thu Jun 21 2018 Andrew Price - 3.2.0-2 - Recommend the gfs2 and dlm kmods instead of requiring them Resolves: bz#1593411 --- gfs2-utils.spec | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gfs2-utils.spec b/gfs2-utils.spec index 6de250e..c94e0b7 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -12,12 +12,12 @@ Name: gfs2-utils Version: 3.2.0 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv2+ and LGPLv2+ Group: System Environment/Kernel Summary: Utilities for managing the global file system (GFS2) %ifnarch %{arm} -%{?fedora:Requires: kmod(gfs2.ko) kmod(dlm.ko)} +%{?fedora:Recommends: kmod(gfs2.ko) kmod(dlm.ko)} %endif BuildRequires: ncurses-devel BuildRequires: kernel-headers @@ -74,6 +74,10 @@ modifying, and correcting inconsistencies in GFS2 file systems. %{_prefix}/lib/udev/rules.d/82-gfs2-withdraw.rules %changelog +* Thu Jun 21 2018 Andrew Price - 3.2.0-2 +- Recommend the gfs2 and dlm kmods instead of requiring them + Resolves: bz#1593411 + * Thu May 24 2018 Andrew Price - 3.2.0-1 - New upstream release From 6eafa31975c51c5926208e77021589a5c574ac88 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 13 Jul 2018 01:27:50 +0000 Subject: [PATCH 45/75] - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- gfs2-utils.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gfs2-utils.spec b/gfs2-utils.spec index c94e0b7..a8e2c1a 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -12,7 +12,7 @@ Name: gfs2-utils Version: 3.2.0 -Release: 2%{?dist} +Release: 3%{?dist} License: GPLv2+ and LGPLv2+ Group: System Environment/Kernel Summary: Utilities for managing the global file system (GFS2) @@ -74,6 +74,9 @@ modifying, and correcting inconsistencies in GFS2 file systems. %{_prefix}/lib/udev/rules.d/82-gfs2-withdraw.rules %changelog +* Fri Jul 13 2018 Fedora Release Engineering - 3.2.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + * Thu Jun 21 2018 Andrew Price - 3.2.0-2 - Recommend the gfs2 and dlm kmods instead of requiring them Resolves: bz#1593411 From 0d73d64ad4f1d0a43b0aaf78fad201e9e690209d Mon Sep 17 00:00:00 2001 From: Igor Gnatenko Date: Mon, 28 Jan 2019 20:17:45 +0100 Subject: [PATCH 46/75] Remove obsolete Group tag References: https://fedoraproject.org/wiki/Changes/Remove_Group_Tag --- gfs2-utils.spec | 1 - 1 file changed, 1 deletion(-) diff --git a/gfs2-utils.spec b/gfs2-utils.spec index a8e2c1a..2cbf6fe 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -14,7 +14,6 @@ Name: gfs2-utils Version: 3.2.0 Release: 3%{?dist} License: GPLv2+ and LGPLv2+ -Group: System Environment/Kernel Summary: Utilities for managing the global file system (GFS2) %ifnarch %{arm} %{?fedora:Recommends: kmod(gfs2.ko) kmod(dlm.ko)} From a04af2238dc903a185fae0c493e171b4edcae7d6 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 31 Jan 2019 21:02:12 +0000 Subject: [PATCH 47/75] - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- gfs2-utils.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gfs2-utils.spec b/gfs2-utils.spec index 2cbf6fe..23721a6 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -12,7 +12,7 @@ Name: gfs2-utils Version: 3.2.0 -Release: 3%{?dist} +Release: 4%{?dist} License: GPLv2+ and LGPLv2+ Summary: Utilities for managing the global file system (GFS2) %ifnarch %{arm} @@ -73,6 +73,9 @@ modifying, and correcting inconsistencies in GFS2 file systems. %{_prefix}/lib/udev/rules.d/82-gfs2-withdraw.rules %changelog +* Thu Jan 31 2019 Fedora Release Engineering - 3.2.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + * Fri Jul 13 2018 Fedora Release Engineering - 3.2.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild From a72c2fad78327e26dfbeb66c5e5c144990b2cc10 Mon Sep 17 00:00:00 2001 From: Andrew Price Date: Mon, 4 Feb 2019 15:40:42 +0000 Subject: [PATCH 48/75] * Mon Feb 04 2019 Andrew Price - 3.2.0-5 - Fix libuuid linking --- 0-Fix_libuuid_linking.patch | 26 ++++++ 1-Fix_more_linking_errors.patch | 159 ++++++++++++++++++++++++++++++++ gfs2-utils.spec | 9 +- 3 files changed, 192 insertions(+), 2 deletions(-) create mode 100644 0-Fix_libuuid_linking.patch create mode 100644 1-Fix_more_linking_errors.patch diff --git a/0-Fix_libuuid_linking.patch b/0-Fix_libuuid_linking.patch new file mode 100644 index 0000000..057ac57 --- /dev/null +++ b/0-Fix_libuuid_linking.patch @@ -0,0 +1,26 @@ +commit 222e97c23dd015a8fc4bcceb598720cc17337edf +Author: Andrew Price +Date: Mon Feb 4 14:54:34 2019 +0000 + + Fix libuuid linking + + Fixes a build failure in Rawhide. + + Signed-off-by: Andrew Price + +diff --git a/gfs2/libgfs2/Makefile.am b/gfs2/libgfs2/Makefile.am +index 749da85a..76df920e 100644 +--- a/gfs2/libgfs2/Makefile.am ++++ b/gfs2/libgfs2/Makefile.am +@@ -54,8 +54,9 @@ libgfs2_la_CPPFLAGS = \ + $(uuid_CFLAGS) + + gfs2l_SOURCES = gfs2l.c +-gfs2l_LDADD = libgfs2.la +-gfs2l_LDFLAGS = $(uuid_LIBS) ++gfs2l_LDADD = \ ++ libgfs2.la \ ++ $(uuid_LIBS) + gfs2l_CPPFLAGS = \ + -I$(top_srcdir)/gfs2/include \ + -D_FILE_OFFSET_BITS=64 diff --git a/1-Fix_more_linking_errors.patch b/1-Fix_more_linking_errors.patch new file mode 100644 index 0000000..76028db --- /dev/null +++ b/1-Fix_more_linking_errors.patch @@ -0,0 +1,159 @@ +commit 1a92a964c8ba87d95b2f43b0adc3d351a7f7ba80 +Author: Andrew Price +Date: Mon Feb 4 15:31:33 2019 +0000 + + Fix more linking errors + + Signed-off-by: Andrew Price + +diff --git a/gfs2/convert/Makefile.am b/gfs2/convert/Makefile.am +index 4db643fb..2d61af74 100644 +--- a/gfs2/convert/Makefile.am ++++ b/gfs2/convert/Makefile.am +@@ -7,5 +7,6 @@ gfs2_convert_CPPFLAGS = \ + -I$(top_srcdir)/gfs2/include \ + -I$(top_srcdir)/gfs2/libgfs2 + +-gfs2_convert_LDADD = $(top_builddir)/gfs2/libgfs2/libgfs2.la +-gfs2_convert_LDFLAGS = $(uuid_LIBS) ++gfs2_convert_LDADD = \ ++ $(top_builddir)/gfs2/libgfs2/libgfs2.la \ ++ $(uuid_LIBS) +diff --git a/gfs2/edit/Makefile.am b/gfs2/edit/Makefile.am +index a9b177e9..4a89502c 100644 +--- a/gfs2/edit/Makefile.am ++++ b/gfs2/edit/Makefile.am +@@ -25,9 +25,9 @@ gfs2_edit_CFLAGS = \ + $(zlib_CFLAGS) \ + $(uuid_CFLAGS) + +-gfs2_edit_LDFLAGS = \ ++gfs2_edit_LDADD = \ ++ $(top_builddir)/gfs2/libgfs2/libgfs2.la \ + $(ncurses_LIBS) \ + $(zlib_LIBS) \ + $(uuid_LIBS) + +-gfs2_edit_LDADD = $(top_builddir)/gfs2/libgfs2/libgfs2.la +diff --git a/gfs2/fsck/Makefile.am b/gfs2/fsck/Makefile.am +index 97fcd404..1c528051 100644 +--- a/gfs2/fsck/Makefile.am ++++ b/gfs2/fsck/Makefile.am +@@ -36,6 +36,5 @@ fsck_gfs2_CPPFLAGS = \ + -I$(top_srcdir)/gfs2/libgfs2 + + fsck_gfs2_LDADD = \ +- $(top_builddir)/gfs2/libgfs2/libgfs2.la +-fsck_gfs2_LDFLAGS = \ ++ $(top_builddir)/gfs2/libgfs2/libgfs2.la \ + $(uuid_LIBS) +diff --git a/gfs2/glocktop/Makefile.am b/gfs2/glocktop/Makefile.am +index 1102c8e2..f5076554 100644 +--- a/gfs2/glocktop/Makefile.am ++++ b/gfs2/glocktop/Makefile.am +@@ -9,10 +9,6 @@ glocktop_SOURCES = \ + glocktop_CFLAGS = \ + $(ncurses_CFLAGS) + +-glocktop_LDFLAGS = \ +- $(ncurses_LIBS) \ +- $(uuid_LIBS) +- + glocktop_CPPFLAGS = \ + -D_FILE_OFFSET_BITS=64 \ + -D_LARGEFILE64_SOURCE \ +@@ -21,4 +17,6 @@ glocktop_CPPFLAGS = \ + -I$(top_srcdir)/gfs2/libgfs2 + + glocktop_LDADD = \ +- $(top_builddir)/gfs2/libgfs2/libgfs2.la ++ $(top_builddir)/gfs2/libgfs2/libgfs2.la \ ++ $(ncurses_LIBS) \ ++ $(uuid_LIBS) +diff --git a/gfs2/mkfs/Makefile.am b/gfs2/mkfs/Makefile.am +index f0dd961c..fd7145b8 100644 +--- a/gfs2/mkfs/Makefile.am ++++ b/gfs2/mkfs/Makefile.am +@@ -25,10 +25,10 @@ mkfs_gfs2_CPPFLAGS = $(COMMON_CPPFLAGS) + mkfs_gfs2_CFLAGS = \ + $(blkid_CFLAGS) \ + $(uuid_CFLAGS) +-mkfs_gfs2_LDFLAGS = \ ++mkfs_gfs2_LDADD = \ ++ $(top_builddir)/gfs2/libgfs2/libgfs2.la \ + $(blkid_LIBS) \ + $(uuid_LIBS) +-mkfs_gfs2_LDADD = $(top_builddir)/gfs2/libgfs2/libgfs2.la + + gfs2_grow_SOURCES = \ + main_grow.c \ +@@ -36,16 +36,17 @@ gfs2_grow_SOURCES = \ + + gfs2_grow_CPPFLAGS = $(COMMON_CPPFLAGS) + gfs2_grow_CFLAGS = $(blkid_CFLAGS) +-gfs2_grow_LDFLAGS = \ ++gfs2_grow_LDADD = \ ++ $(top_builddir)/gfs2/libgfs2/libgfs2.la \ + $(blkid_LIBS) \ + $(uuid_LIBS) +-gfs2_grow_LDADD = $(top_builddir)/gfs2/libgfs2/libgfs2.la + + gfs2_jadd_SOURCES = \ + main_jadd.c \ + metafs.c + + gfs2_jadd_CPPFLAGS = $(COMMON_CPPFLAGS) +-gfs2_jadd_LDADD = $(top_builddir)/gfs2/libgfs2/libgfs2.la +-gfs2_jadd_LDFLAGS = $(uuid_LIBS) ++gfs2_jadd_LDADD = \ ++ $(top_builddir)/gfs2/libgfs2/libgfs2.la \ ++ $(uuid_LIBS) + +diff --git a/gfs2/tune/Makefile.am b/gfs2/tune/Makefile.am +index 7628f424..171377d0 100644 +--- a/gfs2/tune/Makefile.am ++++ b/gfs2/tune/Makefile.am +@@ -13,5 +13,5 @@ tunegfs2_CPPFLAGS = \ + -I$(top_srcdir)/group/include + tunegfs2_CFLAGS = \ + $(uuid_CFLAGS) +-tunegfs2_LDFLAGS = \ ++tunegfs2_LDADD = \ + $(uuid_LIBS) +diff --git a/tests/Makefile.am b/tests/Makefile.am +index 40fcfb47..40b486b0 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -26,8 +26,7 @@ nukerg_CFLAGS = \ + -I$(top_srcdir)/gfs2/libgfs2 \ + -I$(top_srcdir)/gfs2/include + nukerg_LDADD = \ +- $(top_builddir)/gfs2/libgfs2/libgfs2.la +-nukerg_LDFLAGS = \ ++ $(top_builddir)/gfs2/libgfs2/libgfs2.la \ + $(uuid_LIBS) + + if HAVE_CHECK +@@ -54,16 +53,18 @@ check_meta_SOURCES = \ + $(UNIT_SOURCES) \ + check_meta.c + check_meta_CFLAGS = $(UNIT_CFLAGS) +-check_meta_LDADD = $(UNIT_LDADD) +-check_meta_LDFLAGS = $(uuid_LIBS) ++check_meta_LDADD = \ ++ $(UNIT_LDADD) \ ++ $(uuid_LIBS) + check_meta_CPPFLAGS = $(UNIT_CPPFLAGS) + + check_rgrp_SOURCES = \ + $(UNIT_SOURCES) \ + check_rgrp.c + check_rgrp_CFLAGS = $(UNIT_CFLAGS) +-check_rgrp_LDADD = $(UNIT_LDADD) +-check_rgrp_LDFLAGS = $(uuid_LIBS) ++check_rgrp_LDADD = \ ++ $(UNIT_LDADD) \ ++ $(uuid_LIBS) + check_rgrp_CPPFLAGS = $(UNIT_CPPFLAGS) + endif + diff --git a/gfs2-utils.spec b/gfs2-utils.spec index 23721a6..dc99a8b 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -12,7 +12,7 @@ Name: gfs2-utils Version: 3.2.0 -Release: 4%{?dist} +Release: 5%{?dist} License: GPLv2+ and LGPLv2+ Summary: Utilities for managing the global file system (GFS2) %ifnarch %{arm} @@ -31,9 +31,11 @@ BuildRequires: libuuid-devel BuildRequires: check-devel Source: https://releases.pagure.org/gfs2-utils/gfs2-utils-%{version}.tar.gz URL: https://pagure.io/gfs2-utils +Patch0: 0-Fix_libuuid_linking.patch +Patch1: 1-Fix_more_linking_errors.patch %prep -%setup -q -n gfs2-utils-%{version} +%autosetup -p1 %build ./autogen.sh @@ -73,6 +75,9 @@ modifying, and correcting inconsistencies in GFS2 file systems. %{_prefix}/lib/udev/rules.d/82-gfs2-withdraw.rules %changelog +* Mon Feb 04 2019 Andrew Price - 3.2.0-5 +- Fix libuuid linking + * Thu Jan 31 2019 Fedora Release Engineering - 3.2.0-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild From b2747aceae546ed6664638fc827fac342cbe207e Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 25 Jul 2019 01:57:33 +0000 Subject: [PATCH 49/75] - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- gfs2-utils.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gfs2-utils.spec b/gfs2-utils.spec index dc99a8b..5404938 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -12,7 +12,7 @@ Name: gfs2-utils Version: 3.2.0 -Release: 5%{?dist} +Release: 6%{?dist} License: GPLv2+ and LGPLv2+ Summary: Utilities for managing the global file system (GFS2) %ifnarch %{arm} @@ -75,6 +75,9 @@ modifying, and correcting inconsistencies in GFS2 file systems. %{_prefix}/lib/udev/rules.d/82-gfs2-withdraw.rules %changelog +* Thu Jul 25 2019 Fedora Release Engineering - 3.2.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + * Mon Feb 04 2019 Andrew Price - 3.2.0-5 - Fix libuuid linking From 11c4e7ef477d96a214ed5d98bf504928cd67282a Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Tue, 28 Jan 2020 20:06:42 +0000 Subject: [PATCH 50/75] - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- gfs2-utils.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gfs2-utils.spec b/gfs2-utils.spec index 5404938..3678416 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -12,7 +12,7 @@ Name: gfs2-utils Version: 3.2.0 -Release: 6%{?dist} +Release: 7%{?dist} License: GPLv2+ and LGPLv2+ Summary: Utilities for managing the global file system (GFS2) %ifnarch %{arm} @@ -75,6 +75,9 @@ modifying, and correcting inconsistencies in GFS2 file systems. %{_prefix}/lib/udev/rules.d/82-gfs2-withdraw.rules %changelog +* Tue Jan 28 2020 Fedora Release Engineering - 3.2.0-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + * Thu Jul 25 2019 Fedora Release Engineering - 3.2.0-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild From 467059d2ea6b4802c6ed5a8a2fc7090ed9e1044f Mon Sep 17 00:00:00 2001 From: Andrew Price Date: Tue, 21 Jul 2020 09:18:02 +0100 Subject: [PATCH 51/75] * Tue Jul 21 2020 Andrew Price - 3.2.0-8 - Use make_build and make_install macros https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro - Remove -C gfs2 - it's a remnant from the cluster.git days - Remove unnecessary header notice from spec file --- gfs2-utils.spec | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/gfs2-utils.spec b/gfs2-utils.spec index 3678416..432ee21 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -1,18 +1,6 @@ -############################################################################### -############################################################################### -## -## Copyright (C) 2004-2018 Red Hat, Inc. All rights reserved. -## -## This copyrighted material is made available to anyone wishing to use, -## modify, copy, or redistribute it subject to the terms and conditions -## of the GNU General Public License v.2. -## -############################################################################### -############################################################################### - Name: gfs2-utils Version: 3.2.0 -Release: 7%{?dist} +Release: 8%{?dist} License: GPLv2+ and LGPLv2+ Summary: Utilities for managing the global file system (GFS2) %ifnarch %{arm} @@ -40,13 +28,13 @@ Patch1: 1-Fix_more_linking_errors.patch %build ./autogen.sh %configure -make %{_smp_mflags} V=1 +%make_build %check make check || { cat tests/testsuite.log; exit 1; } %install -make -C gfs2 install DESTDIR=%{buildroot} +%make_install # Don't ship gfs2_{trace,lockcapture} in this package rm -f %{buildroot}/usr/sbin/gfs2_trace rm -f %{buildroot}/usr/sbin/gfs2_lockcapture @@ -75,6 +63,12 @@ modifying, and correcting inconsistencies in GFS2 file systems. %{_prefix}/lib/udev/rules.d/82-gfs2-withdraw.rules %changelog +* Tue Jul 21 2020 Andrew Price - 3.2.0-8 +- Use make_build and make_install macros + https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro +- Remove -C gfs2 - it's a remnant from the cluster.git days +- Remove unnecessary header notice from spec file + * Tue Jan 28 2020 Fedora Release Engineering - 3.2.0-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild From 061d248773d9058ff76a6ebac4f4b8b2311b0d3d Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Mon, 27 Jul 2020 18:40:16 +0000 Subject: [PATCH 52/75] - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- gfs2-utils.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gfs2-utils.spec b/gfs2-utils.spec index 432ee21..f01c29c 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -1,6 +1,6 @@ Name: gfs2-utils Version: 3.2.0 -Release: 8%{?dist} +Release: 9%{?dist} License: GPLv2+ and LGPLv2+ Summary: Utilities for managing the global file system (GFS2) %ifnarch %{arm} @@ -63,6 +63,9 @@ modifying, and correcting inconsistencies in GFS2 file systems. %{_prefix}/lib/udev/rules.d/82-gfs2-withdraw.rules %changelog +* Mon Jul 27 2020 Fedora Release Engineering - 3.2.0-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + * Tue Jul 21 2020 Andrew Price - 3.2.0-8 - Use make_build and make_install macros https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro From a65087a00feff25efc44ed74071b4a3056cf3e23 Mon Sep 17 00:00:00 2001 From: Andrew Price Date: Wed, 29 Jul 2020 13:55:47 +0100 Subject: [PATCH 53/75] * Wed Jul 29 2020 Andrew Price - 3.2.0-10 - tests: Don't use fail_unless in unit tests Fixes build failures due to a regression in check-devel --- ..._Don_t_use_fail_unless_in_unit_tests.patch | 74 +++++++++++++++++++ gfs2-utils.spec | 7 +- 2 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 2-tests_Don_t_use_fail_unless_in_unit_tests.patch diff --git a/2-tests_Don_t_use_fail_unless_in_unit_tests.patch b/2-tests_Don_t_use_fail_unless_in_unit_tests.patch new file mode 100644 index 0000000..c3bb4bf --- /dev/null +++ b/2-tests_Don_t_use_fail_unless_in_unit_tests.patch @@ -0,0 +1,74 @@ +diff -urN gfs2-utils-3.2.0/tests/check_meta.c gfs2-utils-3.2.0.patched/tests/check_meta.c +--- gfs2-utils-3.2.0/tests/check_meta.c 2018-05-23 21:04:16.000000000 +0100 ++++ gfs2-utils-3.2.0.patched/tests/check_meta.c 2020-07-29 13:19:28.548734314 +0100 +@@ -6,7 +6,7 @@ + + START_TEST(test_lgfs2_meta) + { +- fail_unless(lgfs2_selfcheck() == 0); ++ ck_assert(lgfs2_selfcheck() == 0); + } + END_TEST + +diff -urN gfs2-utils-3.2.0/tests/check_rgrp.c gfs2-utils-3.2.0.patched/tests/check_rgrp.c +--- gfs2-utils-3.2.0/tests/check_rgrp.c 2018-05-23 21:04:16.000000000 +0100 ++++ gfs2-utils-3.2.0.patched/tests/check_rgrp.c 2020-07-29 13:19:28.548734314 +0100 +@@ -16,7 +16,7 @@ + uint32_t rgsize = (1024 << 20) / 4096; + + sdp = calloc(1, sizeof(*sdp)); +- fail_unless(sdp != NULL); ++ ck_assert(sdp != NULL); + + sdp->device.length = rgsize + 20; + sdp->device_fd = -1; +@@ -24,7 +24,7 @@ + compute_constants(sdp); + + rgs = lgfs2_rgrps_init(sdp, 0, 0); +- fail_unless(rgs != NULL); ++ ck_assert(rgs != NULL); + + lgfs2_rgrps_plan(rgs, sdp->device.length - 16, rgsize); + +@@ -32,11 +32,11 @@ + ck_assert(addr != 0); + + rg = lgfs2_rgrps_append(rgs, &ri, 0); +- fail_unless(rg != NULL); ++ ck_assert(rg != NULL); + + for (i = 0; i < rg->ri.ri_length; i++) { + rg->bits[i].bi_bh = bget(sdp, rg->ri.ri_addr + i); +- fail_unless(rg->bits[i].bi_bh != NULL); ++ ck_assert(rg->bits[i].bi_bh != NULL); + } + return rgs; + } +@@ -44,7 +44,7 @@ + START_TEST(test_mockup_rgrp) + { + lgfs2_rgrps_t rgs = mockup_rgrp(); +- fail_unless(rgs != NULL); ++ ck_assert(rgs != NULL); + } + END_TEST + +@@ -66,7 +66,7 @@ + ck_assert_int_eq(err, 0); + + addr = lgfs2_rbm_to_block(&rbm); +- fail_unless(addr == rbm.rgd->ri.ri_data0); ++ ck_assert(addr == rbm.rgd->ri.ri_data0); + } + } + END_TEST +@@ -110,7 +110,7 @@ + ck_assert_int_eq(err, 0); + + addr = lgfs2_rbm_to_block(&rbm); +- fail_unless(addr == (rg->ri.ri_data0 + rg->ri.ri_data - 1)); ++ ck_assert(addr == (rg->ri.ri_data0 + rg->ri.ri_data - 1)); + } + END_TEST + diff --git a/gfs2-utils.spec b/gfs2-utils.spec index f01c29c..aff7fa0 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -1,6 +1,6 @@ Name: gfs2-utils Version: 3.2.0 -Release: 9%{?dist} +Release: 10%{?dist} License: GPLv2+ and LGPLv2+ Summary: Utilities for managing the global file system (GFS2) %ifnarch %{arm} @@ -21,6 +21,7 @@ Source: https://releases.pagure.org/gfs2-utils/gfs2-utils-%{version}.tar.gz URL: https://pagure.io/gfs2-utils Patch0: 0-Fix_libuuid_linking.patch Patch1: 1-Fix_more_linking_errors.patch +Patch2: 2-tests_Don_t_use_fail_unless_in_unit_tests.patch %prep %autosetup -p1 @@ -63,6 +64,10 @@ modifying, and correcting inconsistencies in GFS2 file systems. %{_prefix}/lib/udev/rules.d/82-gfs2-withdraw.rules %changelog +* Wed Jul 29 2020 Andrew Price - 3.2.0-10 +- tests: Don't use fail_unless in unit tests + Fixes build failures due to a regression in check-devel + * Mon Jul 27 2020 Fedora Release Engineering - 3.2.0-9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild From 9791e7be606d65c31717a3fbd91bc6b13e5e57ce Mon Sep 17 00:00:00 2001 From: Andrew Price Date: Tue, 1 Sep 2020 17:35:26 +0100 Subject: [PATCH 54/75] * Tue Sep 01 2020 Andrew Price - 3.3.0-1 - New upstream version - Add dependency on bzip2 - Drop all patches - gfs2_withdraw_helper is now in /usr/libexec/ --- .gitignore | 13 +- 0-Fix_libuuid_linking.patch | 26 --- 1-Fix_more_linking_errors.patch | 159 ------------------ ..._Don_t_use_fail_unless_in_unit_tests.patch | 74 -------- gfs2-utils.spec | 16 +- sources | 2 +- 6 files changed, 12 insertions(+), 278 deletions(-) delete mode 100644 0-Fix_libuuid_linking.patch delete mode 100644 1-Fix_more_linking_errors.patch delete mode 100644 2-tests_Don_t_use_fail_unless_in_unit_tests.patch diff --git a/.gitignore b/.gitignore index f7a396a..17c9025 100644 --- a/.gitignore +++ b/.gitignore @@ -1,12 +1 @@ -/gfs2-utils-3.1.0.tar.gz -/gfs2-utils-3.1.1.tar.gz -/gfs2-utils-3.1.2.tar.gz -/gfs2-utils-3.1.3.tar.gz -/gfs2-utils-3.1.4.tar.gz -/gfs2-utils-3.1.5.tar.gz -/gfs2-utils-3.1.6.tar.gz -/gfs2-utils-3.1.7.tar.gz -/gfs2-utils-3.1.8.tar.gz -/gfs2-utils-3.1.9.tar.gz -/gfs2-utils-3.1.10.tar.gz -/gfs2-utils-3.2.0.tar.gz +/gfs2-utils-3.3.0.tar.gz diff --git a/0-Fix_libuuid_linking.patch b/0-Fix_libuuid_linking.patch deleted file mode 100644 index 057ac57..0000000 --- a/0-Fix_libuuid_linking.patch +++ /dev/null @@ -1,26 +0,0 @@ -commit 222e97c23dd015a8fc4bcceb598720cc17337edf -Author: Andrew Price -Date: Mon Feb 4 14:54:34 2019 +0000 - - Fix libuuid linking - - Fixes a build failure in Rawhide. - - Signed-off-by: Andrew Price - -diff --git a/gfs2/libgfs2/Makefile.am b/gfs2/libgfs2/Makefile.am -index 749da85a..76df920e 100644 ---- a/gfs2/libgfs2/Makefile.am -+++ b/gfs2/libgfs2/Makefile.am -@@ -54,8 +54,9 @@ libgfs2_la_CPPFLAGS = \ - $(uuid_CFLAGS) - - gfs2l_SOURCES = gfs2l.c --gfs2l_LDADD = libgfs2.la --gfs2l_LDFLAGS = $(uuid_LIBS) -+gfs2l_LDADD = \ -+ libgfs2.la \ -+ $(uuid_LIBS) - gfs2l_CPPFLAGS = \ - -I$(top_srcdir)/gfs2/include \ - -D_FILE_OFFSET_BITS=64 diff --git a/1-Fix_more_linking_errors.patch b/1-Fix_more_linking_errors.patch deleted file mode 100644 index 76028db..0000000 --- a/1-Fix_more_linking_errors.patch +++ /dev/null @@ -1,159 +0,0 @@ -commit 1a92a964c8ba87d95b2f43b0adc3d351a7f7ba80 -Author: Andrew Price -Date: Mon Feb 4 15:31:33 2019 +0000 - - Fix more linking errors - - Signed-off-by: Andrew Price - -diff --git a/gfs2/convert/Makefile.am b/gfs2/convert/Makefile.am -index 4db643fb..2d61af74 100644 ---- a/gfs2/convert/Makefile.am -+++ b/gfs2/convert/Makefile.am -@@ -7,5 +7,6 @@ gfs2_convert_CPPFLAGS = \ - -I$(top_srcdir)/gfs2/include \ - -I$(top_srcdir)/gfs2/libgfs2 - --gfs2_convert_LDADD = $(top_builddir)/gfs2/libgfs2/libgfs2.la --gfs2_convert_LDFLAGS = $(uuid_LIBS) -+gfs2_convert_LDADD = \ -+ $(top_builddir)/gfs2/libgfs2/libgfs2.la \ -+ $(uuid_LIBS) -diff --git a/gfs2/edit/Makefile.am b/gfs2/edit/Makefile.am -index a9b177e9..4a89502c 100644 ---- a/gfs2/edit/Makefile.am -+++ b/gfs2/edit/Makefile.am -@@ -25,9 +25,9 @@ gfs2_edit_CFLAGS = \ - $(zlib_CFLAGS) \ - $(uuid_CFLAGS) - --gfs2_edit_LDFLAGS = \ -+gfs2_edit_LDADD = \ -+ $(top_builddir)/gfs2/libgfs2/libgfs2.la \ - $(ncurses_LIBS) \ - $(zlib_LIBS) \ - $(uuid_LIBS) - --gfs2_edit_LDADD = $(top_builddir)/gfs2/libgfs2/libgfs2.la -diff --git a/gfs2/fsck/Makefile.am b/gfs2/fsck/Makefile.am -index 97fcd404..1c528051 100644 ---- a/gfs2/fsck/Makefile.am -+++ b/gfs2/fsck/Makefile.am -@@ -36,6 +36,5 @@ fsck_gfs2_CPPFLAGS = \ - -I$(top_srcdir)/gfs2/libgfs2 - - fsck_gfs2_LDADD = \ -- $(top_builddir)/gfs2/libgfs2/libgfs2.la --fsck_gfs2_LDFLAGS = \ -+ $(top_builddir)/gfs2/libgfs2/libgfs2.la \ - $(uuid_LIBS) -diff --git a/gfs2/glocktop/Makefile.am b/gfs2/glocktop/Makefile.am -index 1102c8e2..f5076554 100644 ---- a/gfs2/glocktop/Makefile.am -+++ b/gfs2/glocktop/Makefile.am -@@ -9,10 +9,6 @@ glocktop_SOURCES = \ - glocktop_CFLAGS = \ - $(ncurses_CFLAGS) - --glocktop_LDFLAGS = \ -- $(ncurses_LIBS) \ -- $(uuid_LIBS) -- - glocktop_CPPFLAGS = \ - -D_FILE_OFFSET_BITS=64 \ - -D_LARGEFILE64_SOURCE \ -@@ -21,4 +17,6 @@ glocktop_CPPFLAGS = \ - -I$(top_srcdir)/gfs2/libgfs2 - - glocktop_LDADD = \ -- $(top_builddir)/gfs2/libgfs2/libgfs2.la -+ $(top_builddir)/gfs2/libgfs2/libgfs2.la \ -+ $(ncurses_LIBS) \ -+ $(uuid_LIBS) -diff --git a/gfs2/mkfs/Makefile.am b/gfs2/mkfs/Makefile.am -index f0dd961c..fd7145b8 100644 ---- a/gfs2/mkfs/Makefile.am -+++ b/gfs2/mkfs/Makefile.am -@@ -25,10 +25,10 @@ mkfs_gfs2_CPPFLAGS = $(COMMON_CPPFLAGS) - mkfs_gfs2_CFLAGS = \ - $(blkid_CFLAGS) \ - $(uuid_CFLAGS) --mkfs_gfs2_LDFLAGS = \ -+mkfs_gfs2_LDADD = \ -+ $(top_builddir)/gfs2/libgfs2/libgfs2.la \ - $(blkid_LIBS) \ - $(uuid_LIBS) --mkfs_gfs2_LDADD = $(top_builddir)/gfs2/libgfs2/libgfs2.la - - gfs2_grow_SOURCES = \ - main_grow.c \ -@@ -36,16 +36,17 @@ gfs2_grow_SOURCES = \ - - gfs2_grow_CPPFLAGS = $(COMMON_CPPFLAGS) - gfs2_grow_CFLAGS = $(blkid_CFLAGS) --gfs2_grow_LDFLAGS = \ -+gfs2_grow_LDADD = \ -+ $(top_builddir)/gfs2/libgfs2/libgfs2.la \ - $(blkid_LIBS) \ - $(uuid_LIBS) --gfs2_grow_LDADD = $(top_builddir)/gfs2/libgfs2/libgfs2.la - - gfs2_jadd_SOURCES = \ - main_jadd.c \ - metafs.c - - gfs2_jadd_CPPFLAGS = $(COMMON_CPPFLAGS) --gfs2_jadd_LDADD = $(top_builddir)/gfs2/libgfs2/libgfs2.la --gfs2_jadd_LDFLAGS = $(uuid_LIBS) -+gfs2_jadd_LDADD = \ -+ $(top_builddir)/gfs2/libgfs2/libgfs2.la \ -+ $(uuid_LIBS) - -diff --git a/gfs2/tune/Makefile.am b/gfs2/tune/Makefile.am -index 7628f424..171377d0 100644 ---- a/gfs2/tune/Makefile.am -+++ b/gfs2/tune/Makefile.am -@@ -13,5 +13,5 @@ tunegfs2_CPPFLAGS = \ - -I$(top_srcdir)/group/include - tunegfs2_CFLAGS = \ - $(uuid_CFLAGS) --tunegfs2_LDFLAGS = \ -+tunegfs2_LDADD = \ - $(uuid_LIBS) -diff --git a/tests/Makefile.am b/tests/Makefile.am -index 40fcfb47..40b486b0 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -26,8 +26,7 @@ nukerg_CFLAGS = \ - -I$(top_srcdir)/gfs2/libgfs2 \ - -I$(top_srcdir)/gfs2/include - nukerg_LDADD = \ -- $(top_builddir)/gfs2/libgfs2/libgfs2.la --nukerg_LDFLAGS = \ -+ $(top_builddir)/gfs2/libgfs2/libgfs2.la \ - $(uuid_LIBS) - - if HAVE_CHECK -@@ -54,16 +53,18 @@ check_meta_SOURCES = \ - $(UNIT_SOURCES) \ - check_meta.c - check_meta_CFLAGS = $(UNIT_CFLAGS) --check_meta_LDADD = $(UNIT_LDADD) --check_meta_LDFLAGS = $(uuid_LIBS) -+check_meta_LDADD = \ -+ $(UNIT_LDADD) \ -+ $(uuid_LIBS) - check_meta_CPPFLAGS = $(UNIT_CPPFLAGS) - - check_rgrp_SOURCES = \ - $(UNIT_SOURCES) \ - check_rgrp.c - check_rgrp_CFLAGS = $(UNIT_CFLAGS) --check_rgrp_LDADD = $(UNIT_LDADD) --check_rgrp_LDFLAGS = $(uuid_LIBS) -+check_rgrp_LDADD = \ -+ $(UNIT_LDADD) \ -+ $(uuid_LIBS) - check_rgrp_CPPFLAGS = $(UNIT_CPPFLAGS) - endif - diff --git a/2-tests_Don_t_use_fail_unless_in_unit_tests.patch b/2-tests_Don_t_use_fail_unless_in_unit_tests.patch deleted file mode 100644 index c3bb4bf..0000000 --- a/2-tests_Don_t_use_fail_unless_in_unit_tests.patch +++ /dev/null @@ -1,74 +0,0 @@ -diff -urN gfs2-utils-3.2.0/tests/check_meta.c gfs2-utils-3.2.0.patched/tests/check_meta.c ---- gfs2-utils-3.2.0/tests/check_meta.c 2018-05-23 21:04:16.000000000 +0100 -+++ gfs2-utils-3.2.0.patched/tests/check_meta.c 2020-07-29 13:19:28.548734314 +0100 -@@ -6,7 +6,7 @@ - - START_TEST(test_lgfs2_meta) - { -- fail_unless(lgfs2_selfcheck() == 0); -+ ck_assert(lgfs2_selfcheck() == 0); - } - END_TEST - -diff -urN gfs2-utils-3.2.0/tests/check_rgrp.c gfs2-utils-3.2.0.patched/tests/check_rgrp.c ---- gfs2-utils-3.2.0/tests/check_rgrp.c 2018-05-23 21:04:16.000000000 +0100 -+++ gfs2-utils-3.2.0.patched/tests/check_rgrp.c 2020-07-29 13:19:28.548734314 +0100 -@@ -16,7 +16,7 @@ - uint32_t rgsize = (1024 << 20) / 4096; - - sdp = calloc(1, sizeof(*sdp)); -- fail_unless(sdp != NULL); -+ ck_assert(sdp != NULL); - - sdp->device.length = rgsize + 20; - sdp->device_fd = -1; -@@ -24,7 +24,7 @@ - compute_constants(sdp); - - rgs = lgfs2_rgrps_init(sdp, 0, 0); -- fail_unless(rgs != NULL); -+ ck_assert(rgs != NULL); - - lgfs2_rgrps_plan(rgs, sdp->device.length - 16, rgsize); - -@@ -32,11 +32,11 @@ - ck_assert(addr != 0); - - rg = lgfs2_rgrps_append(rgs, &ri, 0); -- fail_unless(rg != NULL); -+ ck_assert(rg != NULL); - - for (i = 0; i < rg->ri.ri_length; i++) { - rg->bits[i].bi_bh = bget(sdp, rg->ri.ri_addr + i); -- fail_unless(rg->bits[i].bi_bh != NULL); -+ ck_assert(rg->bits[i].bi_bh != NULL); - } - return rgs; - } -@@ -44,7 +44,7 @@ - START_TEST(test_mockup_rgrp) - { - lgfs2_rgrps_t rgs = mockup_rgrp(); -- fail_unless(rgs != NULL); -+ ck_assert(rgs != NULL); - } - END_TEST - -@@ -66,7 +66,7 @@ - ck_assert_int_eq(err, 0); - - addr = lgfs2_rbm_to_block(&rbm); -- fail_unless(addr == rbm.rgd->ri.ri_data0); -+ ck_assert(addr == rbm.rgd->ri.ri_data0); - } - } - END_TEST -@@ -110,7 +110,7 @@ - ck_assert_int_eq(err, 0); - - addr = lgfs2_rbm_to_block(&rbm); -- fail_unless(addr == (rg->ri.ri_data0 + rg->ri.ri_data - 1)); -+ ck_assert(addr == (rg->ri.ri_data0 + rg->ri.ri_data - 1)); - } - END_TEST - diff --git a/gfs2-utils.spec b/gfs2-utils.spec index aff7fa0..4e0de09 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -1,6 +1,6 @@ Name: gfs2-utils -Version: 3.2.0 -Release: 10%{?dist} +Version: 3.3.0 +Release: 1%{?dist} License: GPLv2+ and LGPLv2+ Summary: Utilities for managing the global file system (GFS2) %ifnarch %{arm} @@ -17,11 +17,9 @@ BuildRequires: flex BuildRequires: libblkid-devel BuildRequires: libuuid-devel BuildRequires: check-devel +BuildRequires: bzip2-devel Source: https://releases.pagure.org/gfs2-utils/gfs2-utils-%{version}.tar.gz URL: https://pagure.io/gfs2-utils -Patch0: 0-Fix_libuuid_linking.patch -Patch1: 1-Fix_more_linking_errors.patch -Patch2: 2-tests_Don_t_use_fail_unless_in_unit_tests.patch %prep %autosetup -p1 @@ -56,14 +54,20 @@ modifying, and correcting inconsistencies in GFS2 file systems. %{_sbindir}/gfs2_convert %{_sbindir}/gfs2_edit %{_sbindir}/tunegfs2 -%{_sbindir}/gfs2_withdraw_helper %{_sbindir}/glocktop +%{_libexecdir}/gfs2_withdraw_helper %{_mandir}/man8/*gfs2* %{_mandir}/man8/glocktop* %{_mandir}/man5/* %{_prefix}/lib/udev/rules.d/82-gfs2-withdraw.rules %changelog +* Tue Sep 01 2020 Andrew Price - 3.3.0-1 +- New upstream version +- Add dependency on bzip2 +- Drop all patches +- gfs2_withdraw_helper is now in /usr/libexec/ + * Wed Jul 29 2020 Andrew Price - 3.2.0-10 - tests: Don't use fail_unless in unit tests Fixes build failures due to a regression in check-devel diff --git a/sources b/sources index 1cbd040..8115dd5 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (gfs2-utils-3.2.0.tar.gz) = 98ddf07666a7d0b0985e65eafebec455e0926a9bda9350d413f209bfc7af9ef30e23980a516f7375db61ea1b7b55f33934d52685d163ca6cc4a151ac0db5e5fe +SHA512 (gfs2-utils-3.3.0.tar.gz) = b5ed1fb91eaf88fd163b682a73a3f54efd000e513206aba90e6286e68d8b13c325373da1bde94c8f48c0d235b60f22f6269f9103c508aebf13b15d9470b745d0 From 01606e25fc1dc289800b53ef29011db23f0b72b9 Mon Sep 17 00:00:00 2001 From: Andrew Price Date: Thu, 3 Sep 2020 09:19:32 +0100 Subject: [PATCH 55/75] Add gating tests --- gating.yaml | 15 + gfs2-utils.spec | 5 +- tests/atlocal | 8 + tests/rgrifieldscheck.sh | 20 + tests/rgskipcheck.sh | 19 + tests/tests.yml | 11 + tests/testsuite | 5464 ++++++++++++++++++++++++++++++++++++++ 7 files changed, 5541 insertions(+), 1 deletion(-) create mode 100644 gating.yaml create mode 100644 tests/atlocal create mode 100755 tests/rgrifieldscheck.sh create mode 100755 tests/rgskipcheck.sh create mode 100644 tests/tests.yml create mode 100755 tests/testsuite diff --git a/gating.yaml b/gating.yaml new file mode 100644 index 0000000..f075ad7 --- /dev/null +++ b/gating.yaml @@ -0,0 +1,15 @@ +--- !Policy +product_versions: + - fedora-* +decision_context: bodhi_update_push_testing +subject_type: koji_build +rules: + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional} + +--- !Policy +product_versions: + - fedora-* +decision_context: bodhi_update_push_stable +subject_type: koji_build +rules: + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional} diff --git a/gfs2-utils.spec b/gfs2-utils.spec index 4e0de09..d98ea3e 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -1,6 +1,6 @@ Name: gfs2-utils Version: 3.3.0 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv2+ and LGPLv2+ Summary: Utilities for managing the global file system (GFS2) %ifnarch %{arm} @@ -62,6 +62,9 @@ modifying, and correcting inconsistencies in GFS2 file systems. %{_prefix}/lib/udev/rules.d/82-gfs2-withdraw.rules %changelog +* Thu Sep 03 2020 Andrew Price - 3.3.0-2 +- Version bump to enable gating tests + * Tue Sep 01 2020 Andrew Price - 3.3.0-1 - New upstream version - Add dependency on bzip2 diff --git a/tests/atlocal b/tests/atlocal new file mode 100644 index 0000000..47da8d4 --- /dev/null +++ b/tests/atlocal @@ -0,0 +1,8 @@ +GFS_TGT="../../testvol" +GFS_TGT_SZ=10 +GFS_MKFS="mkfs.gfs2 -O -D" + +gfs_max_blocks() +{ + printf $((GFS_TGT_SZ*1073741824/$1)) +} diff --git a/tests/rgrifieldscheck.sh b/tests/rgrifieldscheck.sh new file mode 100755 index 0000000..1fbf672 --- /dev/null +++ b/tests/rgrifieldscheck.sh @@ -0,0 +1,20 @@ +#!/bin/sh +dev=$1 +i=0 +gfs2_edit -p rg 0 $dev | grep rg_data0 > /dev/null 2>&1 +# New fields not present in /usr/include/linux/gfs2_ondisk.h +test $? = 0 || exit 0 +gfs2_edit -p rindex $dev | while read field rival unused +do + test $field = ri_data0 -o $field = ri_data -o $field = ri_bitbytes || continue + rgfield=$(echo $field | sed 's/ri/rg/') + rgval=$(gfs2_edit -p rg $i $dev | grep " $rgfield " | awk '{print $2}') + + if test "$rival" != "$rgval" + then + echo "Bad $rgfield in rg $i: $rgval (expected: $rival)" >&2 + exit 1 + fi + + test $field = ri_bitbytes && i=$((i+1)) +done diff --git a/tests/rgskipcheck.sh b/tests/rgskipcheck.sh new file mode 100755 index 0000000..4a8f93f --- /dev/null +++ b/tests/rgskipcheck.sh @@ -0,0 +1,19 @@ +#!/bin/sh + +dev=$1 +rgcount=$(gfs2_edit -p rgcount $dev | cut -f1 -d' ') +prevaddr=$(gfs2_edit -p rg 0 $dev | grep ^RG | awk '{print $5}') +prevskip=0 +for i in `seq 0 $(($rgcount - 1))`; do + addr=$(gfs2_edit -p rg $i $dev | grep ^RG | awk '{print $5}') + expected=$(($addr - $prevaddr)) + + if test $prevskip != $expected; then + echo "Bad rg_skip in rg $(($i - 1)): $prevskip (expected: $expected)" >&2 + exit 1 + fi + + prevskip=$(gfs2_edit -p rg $i $dev | grep rg_skip | awk '{print $2}') + prevaddr=$addr +done + diff --git a/tests/tests.yml b/tests/tests.yml new file mode 100644 index 0000000..aaaac51 --- /dev/null +++ b/tests/tests.yml @@ -0,0 +1,11 @@ +- hosts: localhost + roles: + - role: standard-test-basic + tags: + - classic + environment: + PATH: ".:{{ ansible_env.PATH }}" + tests: + - upstream_test_suite: + dir: . + run: ./testsuite diff --git a/tests/testsuite b/tests/testsuite new file mode 100755 index 0000000..2444415 --- /dev/null +++ b/tests/testsuite @@ -0,0 +1,5464 @@ +#! /bin/sh +# Generated from testsuite.at by GNU Autoconf 2.69. +# +# Copyright (C) 2009-2012 Free Software Foundation, Inc. +# +# This test suite is free software; the Free Software Foundation gives +# unlimited permission to copy, distribute and modify it. +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +if test "x$CONFIG_SHELL" = x; then + as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi +" + as_required="as_fn_return () { (exit \$1); } +as_fn_success () { as_fn_return 0; } +as_fn_failure () { as_fn_return 1; } +as_fn_ret_success () { return 0; } +as_fn_ret_failure () { return 1; } + +exitcode=0 +as_fn_success || { exitcode=1; echo as_fn_success failed.; } +as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } +as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } +as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } +if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : + +else + exitcode=1; echo positional parameters were not saved. +fi +test x\$exitcode = x0 || exit 1 +test -x / || exit 1" + as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO + as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO + eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 +test \$(( 1 + 1 )) = 2 || exit 1" + if (eval "$as_required") 2>/dev/null; then : + as_have_required=yes +else + as_have_required=no +fi + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : + +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + as_found=: + case $as_dir in #( + /*) + for as_base in sh bash ksh sh5; do + # Try only shells that exist, to save several forks. + as_shell=$as_dir/$as_base + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : + CONFIG_SHELL=$as_shell as_have_required=yes + if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : + break 2 +fi +fi + done;; + esac + as_found=false +done +$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi; } +IFS=$as_save_IFS + + + if test "x$CONFIG_SHELL" != x; then : + export CONFIG_SHELL + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 +fi + + if test x$as_have_required = xno; then : + $as_echo "$0: This script requires a shell more modern than all" + $as_echo "$0: the shells that I found on your system." + if test x${ZSH_VERSION+set} = xset ; then + $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" + $as_echo "$0: be upgraded to zsh 4.3.4 or later." + else + $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, +$0: including any error possibly output before this +$0: message. Then install a modern shell, or manually run +$0: the script under such a shell if you do have one." + fi + exit 1 +fi +fi +fi +SHELL=${CONFIG_SHELL-/bin/sh} +export SHELL +# Unset more variables known to interfere with behavior of common tools. +CLICOLOR_FORCE= GREP_OPTIONS= +unset CLICOLOR_FORCE GREP_OPTIONS + +## --------------------- ## +## M4sh Shell Functions. ## +## --------------------- ## +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + + + as_lineno_1=$LINENO as_lineno_1a=$LINENO + as_lineno_2=$LINENO as_lineno_2a=$LINENO + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall + # in an infinite loop. This has already happened in practice. + _as_can_reexec=no; export _as_can_reexec + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + + + + +SHELL=${CONFIG_SHELL-/bin/sh} + +# How were we run? +at_cli_args="$@" + + +# Not all shells have the 'times' builtin; the subshell is needed to make +# sure we discard the 'times: not found' message from the shell. +at_times_p=false +(times) >/dev/null 2>&1 && at_times_p=: + +# CLI Arguments to pass to the debugging scripts. +at_debug_args= +# -e sets to true +at_errexit_p=false +# Shall we be verbose? ':' means no, empty means yes. +at_verbose=: +at_quiet= +# Running several jobs in parallel, 0 means as many as test groups. +at_jobs=1 +at_traceon=: +at_trace_echo=: +at_check_filter_trace=: + +# Shall we keep the debug scripts? Must be `:' when the suite is +# run by a debug script, so that the script doesn't remove itself. +at_debug_p=false +# Display help message? +at_help_p=false +# Display the version message? +at_version_p=false +# List test groups? +at_list_p=false +# --clean +at_clean=false +# Test groups to run +at_groups= +# Whether to rerun failed tests. +at_recheck= +# Whether a write failure occurred +at_write_fail=0 + +# The directory we run the suite in. Default to . if no -C option. +at_dir=`pwd` +# An absolute reference to this testsuite script. +case $as_myself in + [\\/]* | ?:[\\/]* ) at_myself=$as_myself ;; + * ) at_myself=$at_dir/$as_myself ;; +esac +# Whether -C is in effect. +at_change_dir=false + +# Whether to enable colored test results. +at_color=auto +# List of the tested programs. +at_tested='mkfs.gfs2 +fsck.gfs2 +gfs2_edit' +# As many question marks as there are digits in the last test group number. +# Used to normalize the test group numbers so that `ls' lists them in +# numerical order. +at_format='??' +# Description of all the test groups. +at_help_all="1;mkfs.at:4;Locking protocol validation;mkfs.gfs2 mkfs; +2;mkfs.at:9;Resource group size validation;mkfs.gfs2 mkfs; +3;mkfs.at:15;Journal size validation;mkfs.gfs2 mkfs; +4;mkfs.at:21;Block count validation;mkfs.gfs2 mkfs; +5;mkfs.at:28;Quota change file size validation;mkfs.gfs2 mkfs; +6;mkfs.at:34;Locking protocols;mkfs.gfs2 mkfs; +7;mkfs.at:40;Valid block sizes 512-4096;mkfs.gfs2 mkfs; +8;mkfs.at:48;Max. blocks, min. block size;mkfs.gfs2 mkfs; +9;mkfs.at:53;Max. blocks, max. block size;mkfs.gfs2 mkfs; +10;mkfs.at:58;Max. resource group size;mkfs.gfs2 mkfs; +11;mkfs.at:63;Min. resource group size;mkfs.gfs2 mkfs; +12;mkfs.at:68;Max. resource group size, min. block size;mkfs.gfs2 mkfs; +13;mkfs.at:73;Max. journal size;mkfs.gfs2 mkfs; +14;mkfs.at:78;Min. journal size;mkfs.gfs2 mkfs; +15;mkfs.at:85;Max. quota change file size;mkfs.gfs2 mkfs; +16;mkfs.at:90;Min. quota change file size;mkfs.gfs2 mkfs; +17;mkfs.at:95;Lock table validation;mkfs.gfs2 mkfs; +18;mkfs.at:114;Device i/o limits handling;mkfs.gfs2 mkfs; +19;mkfs.at:125;Resource group alignment;mkfs.gfs2 mkfs; +20;mkfs.at:134;Values of rg_skip;mkfs.gfs2 mkfs; +21;mkfs.at:150;Values of rg_data0, rg_data, rg_bitbytes;mkfs.gfs2 mkfs; +22;mkfs.at:166;Small filesystems;mkfs.gfs2 mkfs; +23;fsck.at:4;Conflicting options;fsck.gfs2 fsck; +24;fsck.at:15;Fix invalid block sizes;fsck.gfs2 fsck; +25;fsck.at:24;Fix invalid goal blocks;fsck.gfs2 fsck; +26;fsck.at:29;Fix bad resource group #0;fsck.gfs2 fsck; +27;fsck.at:34;Fix bad resource group #1;fsck.gfs2 fsck; +28;fsck.at:44;Fix bad rindex entry #1;fsck.gfs2 fsck; +29;fsck.at:49;Rebuild bad journal;fsck.gfs2 fsck; +30;fsck.at:58;gfs2 format versions;fsck.gfs2 fsck; +31;edit.at:4;Save/restoremeta, defaults;gfs2_edit edit; +32;edit.at:17;Save/restoremeta, no compression;gfs2_edit edit; +33;edit.at:27;Save/restoremeta, min. block size;gfs2_edit edit; +34;edit.at:37;Save/restoremeta, 4 journals;gfs2_edit edit; +35;edit.at:47;Save/restoremeta, min. block size, 4 journals;gfs2_edit edit; +36;edit.at:57;Save metadata to /dev/null;gfs2_edit edit; +37;libgfs2.at:3;meta.c;libgfs2; +38;libgfs2.at:7;rgrp.c;libgfs2; +" +# List of the all the test groups. +at_groups_all=`$as_echo "$at_help_all" | sed 's/;.*//'` + +# at_fn_validate_ranges NAME... +# ----------------------------- +# Validate and normalize the test group number contained in each variable +# NAME. Leading zeroes are treated as decimal. +at_fn_validate_ranges () +{ + for at_grp + do + eval at_value=\$$at_grp + if test $at_value -lt 1 || test $at_value -gt 38; then + $as_echo "invalid test group: $at_value" >&2 + exit 1 + fi + case $at_value in + 0*) # We want to treat leading 0 as decimal, like expr and test, but + # AS_VAR_ARITH treats it as octal if it uses $(( )). + # With XSI shells, ${at_value#${at_value%%[1-9]*}} avoids the + # expr fork, but it is not worth the effort to determine if the + # shell supports XSI when the user can just avoid leading 0. + eval $at_grp='`expr $at_value + 0`' ;; + esac + done +} + +at_prev= +for at_option +do + # If the previous option needs an argument, assign it. + if test -n "$at_prev"; then + at_option=$at_prev=$at_option + at_prev= + fi + + case $at_option in + *=?*) at_optarg=`expr "X$at_option" : '[^=]*=\(.*\)'` ;; + *) at_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $at_option in + --help | -h ) + at_help_p=: + ;; + + --list | -l ) + at_list_p=: + ;; + + --version | -V ) + at_version_p=: + ;; + + --clean | -c ) + at_clean=: + ;; + + --color ) + at_color=always + ;; + --color=* ) + case $at_optarg in + no | never | none) at_color=never ;; + auto | tty | if-tty) at_color=auto ;; + always | yes | force) at_color=always ;; + *) at_optname=`echo " $at_option" | sed 's/^ //; s/=.*//'` + as_fn_error $? "unrecognized argument to $at_optname: $at_optarg" ;; + esac + ;; + + --debug | -d ) + at_debug_p=: + ;; + + --errexit | -e ) + at_debug_p=: + at_errexit_p=: + ;; + + --verbose | -v ) + at_verbose=; at_quiet=: + ;; + + --trace | -x ) + at_traceon='set -x' + at_trace_echo=echo + at_check_filter_trace=at_fn_filter_trace + ;; + + [0-9] | [0-9][0-9] | [0-9][0-9][0-9] | [0-9][0-9][0-9][0-9]) + at_fn_validate_ranges at_option + as_fn_append at_groups "$at_option$as_nl" + ;; + + # Ranges + [0-9]- | [0-9][0-9]- | [0-9][0-9][0-9]- | [0-9][0-9][0-9][0-9]-) + at_range_start=`echo $at_option |tr -d X-` + at_fn_validate_ranges at_range_start + at_range=`$as_echo "$at_groups_all" | \ + sed -ne '/^'$at_range_start'$/,$p'` + as_fn_append at_groups "$at_range$as_nl" + ;; + + -[0-9] | -[0-9][0-9] | -[0-9][0-9][0-9] | -[0-9][0-9][0-9][0-9]) + at_range_end=`echo $at_option |tr -d X-` + at_fn_validate_ranges at_range_end + at_range=`$as_echo "$at_groups_all" | \ + sed -ne '1,/^'$at_range_end'$/p'` + as_fn_append at_groups "$at_range$as_nl" + ;; + + [0-9]-[0-9] | [0-9]-[0-9][0-9] | [0-9]-[0-9][0-9][0-9] | \ + [0-9]-[0-9][0-9][0-9][0-9] | [0-9][0-9]-[0-9][0-9] | \ + [0-9][0-9]-[0-9][0-9][0-9] | [0-9][0-9]-[0-9][0-9][0-9][0-9] | \ + [0-9][0-9][0-9]-[0-9][0-9][0-9] | \ + [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] | \ + [0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] ) + at_range_start=`expr $at_option : '\(.*\)-'` + at_range_end=`expr $at_option : '.*-\(.*\)'` + if test $at_range_start -gt $at_range_end; then + at_tmp=$at_range_end + at_range_end=$at_range_start + at_range_start=$at_tmp + fi + at_fn_validate_ranges at_range_start at_range_end + at_range=`$as_echo "$at_groups_all" | \ + sed -ne '/^'$at_range_start'$/,/^'$at_range_end'$/p'` + as_fn_append at_groups "$at_range$as_nl" + ;; + + # Directory selection. + --directory | -C ) + at_prev=--directory + ;; + --directory=* ) + at_change_dir=: + at_dir=$at_optarg + if test x- = "x$at_dir" ; then + at_dir=./- + fi + ;; + + # Parallel execution. + --jobs | -j ) + at_jobs=0 + ;; + --jobs=* | -j[0-9]* ) + if test -n "$at_optarg"; then + at_jobs=$at_optarg + else + at_jobs=`expr X$at_option : 'X-j\(.*\)'` + fi + case $at_jobs in *[!0-9]*) + at_optname=`echo " $at_option" | sed 's/^ //; s/[0-9=].*//'` + as_fn_error $? "non-numeric argument to $at_optname: $at_jobs" ;; + esac + ;; + + # Keywords. + --keywords | -k ) + at_prev=--keywords + ;; + --keywords=* ) + at_groups_selected=$at_help_all + at_save_IFS=$IFS + IFS=, + set X $at_optarg + shift + IFS=$at_save_IFS + for at_keyword + do + at_invert= + case $at_keyword in + '!'*) + at_invert="-v" + at_keyword=`expr "X$at_keyword" : 'X!\(.*\)'` + ;; + esac + # It is on purpose that we match the test group titles too. + at_groups_selected=`$as_echo "$at_groups_selected" | + grep -i $at_invert "^[1-9][^;]*;.*[; ]$at_keyword[ ;]"` + done + # Smash the keywords. + at_groups_selected=`$as_echo "$at_groups_selected" | sed 's/;.*//'` + as_fn_append at_groups "$at_groups_selected$as_nl" + ;; + --recheck) + at_recheck=: + ;; + + *=*) + at_envvar=`expr "x$at_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + case $at_envvar in + '' | [0-9]* | *[!_$as_cr_alnum]* ) + as_fn_error $? "invalid variable name: \`$at_envvar'" ;; + esac + at_value=`$as_echo "$at_optarg" | sed "s/'/'\\\\\\\\''/g"` + # Export now, but save eval for later and for debug scripts. + export $at_envvar + as_fn_append at_debug_args " $at_envvar='$at_value'" + ;; + + *) $as_echo "$as_me: invalid option: $at_option" >&2 + $as_echo "Try \`$0 --help' for more information." >&2 + exit 1 + ;; + esac +done + +# Verify our last option didn't require an argument +if test -n "$at_prev"; then : + as_fn_error $? "\`$at_prev' requires an argument" +fi + +# The file containing the suite. +at_suite_log=$at_dir/$as_me.log + +# Selected test groups. +if test -z "$at_groups$at_recheck"; then + at_groups=$at_groups_all +else + if test -n "$at_recheck" && test -r "$at_suite_log"; then + at_oldfails=`sed -n ' + /^Failed tests:$/,/^Skipped tests:$/{ + s/^[ ]*\([1-9][0-9]*\):.*/\1/p + } + /^Unexpected passes:$/,/^## Detailed failed tests/{ + s/^[ ]*\([1-9][0-9]*\):.*/\1/p + } + /^## Detailed failed tests/q + ' "$at_suite_log"` + as_fn_append at_groups "$at_oldfails$as_nl" + fi + # Sort the tests, removing duplicates. + at_groups=`$as_echo "$at_groups" | sort -nu | sed '/^$/d'` +fi + +if test x"$at_color" = xalways \ + || { test x"$at_color" = xauto && test -t 1; }; then + at_red=`printf '\033[0;31m'` + at_grn=`printf '\033[0;32m'` + at_lgn=`printf '\033[1;32m'` + at_blu=`printf '\033[1;34m'` + at_std=`printf '\033[m'` +else + at_red= at_grn= at_lgn= at_blu= at_std= +fi + +# Help message. +if $at_help_p; then + cat <<_ATEOF || at_write_fail=1 +Usage: $0 [OPTION]... [VARIABLE=VALUE]... [TESTS] + +Run all the tests, or the selected TESTS, given by numeric ranges, and +save a detailed log file. Upon failure, create debugging scripts. + +Do not change environment variables directly. Instead, set them via +command line arguments. Set \`AUTOTEST_PATH' to select the executables +to exercise. Each relative directory is expanded as build and source +directories relative to the top level of this distribution. +E.g., from within the build directory /tmp/foo-1.0, invoking this: + + $ $0 AUTOTEST_PATH=bin + +is equivalent to the following, assuming the source directory is /src/foo-1.0: + + PATH=/tmp/foo-1.0/bin:/src/foo-1.0/bin:\$PATH $0 +_ATEOF +cat <<_ATEOF || at_write_fail=1 + +Operation modes: + -h, --help print the help message, then exit + -V, --version print version number, then exit + -c, --clean remove all the files this test suite might create and exit + -l, --list describes all the tests, or the selected TESTS +_ATEOF +cat <<_ATEOF || at_write_fail=1 + +Execution tuning: + -C, --directory=DIR + change to directory DIR before starting + --color[=never|auto|always] + disable colored test results, or enable even without terminal + -j, --jobs[=N] + Allow N jobs at once; infinite jobs with no arg (default 1) + -k, --keywords=KEYWORDS + select the tests matching all the comma-separated KEYWORDS + multiple \`-k' accumulate; prefixed \`!' negates a KEYWORD + --recheck select all tests that failed or passed unexpectedly last time + -e, --errexit abort as soon as a test fails; implies --debug + -v, --verbose force more detailed output + default for debugging scripts + -d, --debug inhibit clean up and top-level logging + default for debugging scripts + -x, --trace enable tests shell tracing +_ATEOF +cat <<_ATEOF || at_write_fail=1 + +Report bugs to . +_ATEOF + exit $at_write_fail +fi + +# List of tests. +if $at_list_p; then + cat <<_ATEOF || at_write_fail=1 +gfs2-utils 3.3.0.1.dev test suite test groups: + + NUM: FILE-NAME:LINE TEST-GROUP-NAME + KEYWORDS + +_ATEOF + # Pass an empty line as separator between selected groups and help. + $as_echo "$at_groups$as_nl$as_nl$at_help_all" | + awk 'NF == 1 && FS != ";" { + selected[$ 1] = 1 + next + } + /^$/ { FS = ";" } + NF > 0 { + if (selected[$ 1]) { + printf " %3d: %-18s %s\n", $ 1, $ 2, $ 3 + if ($ 4) { + lmax = 79 + indent = " " + line = indent + len = length (line) + n = split ($ 4, a, " ") + for (i = 1; i <= n; i++) { + l = length (a[i]) + 1 + if (i > 1 && len + l > lmax) { + print line + line = indent " " a[i] + len = length (line) + } else { + line = line " " a[i] + len += l + } + } + if (n) + print line + } + } + }' || at_write_fail=1 + exit $at_write_fail +fi +if $at_version_p; then + $as_echo "$as_me (gfs2-utils 3.3.0.1.dev)" && + cat <<\_ATEOF || at_write_fail=1 + +Copyright (C) 2012 Free Software Foundation, Inc. +This test suite is free software; the Free Software Foundation gives +unlimited permission to copy, distribute and modify it. +_ATEOF + exit $at_write_fail +fi + +# Should we print banners? Yes if more than one test is run. +case $at_groups in #( + *$as_nl* ) + at_print_banners=: ;; #( + * ) at_print_banners=false ;; +esac +# Text for banner N, set to a single space once printed. +# Banner 1. mkfs.at:2 +# Category starts at test group 1. +at_banner_text_1="mkfs.gfs2 tests" +# Banner 2. fsck.at:2 +# Category starts at test group 23. +at_banner_text_2="fsck.gfs2 tests" +# Banner 3. edit.at:2 +# Category starts at test group 31. +at_banner_text_3="gfs2_edit tests" +# Banner 4. libgfs2.at:1 +# Category starts at test group 37. +at_banner_text_4="libgfs2 unit tests" + +# Take any -C into account. +if $at_change_dir ; then + test x != "x$at_dir" && cd "$at_dir" \ + || as_fn_error $? "unable to change directory" + at_dir=`pwd` +fi + +# Load the config files for any default variable assignments. +for at_file in atconfig atlocal +do + test -r $at_file || continue + . ./$at_file || as_fn_error $? "invalid content: $at_file" +done + +# Autoconf <=2.59b set at_top_builddir instead of at_top_build_prefix: +: "${at_top_build_prefix=$at_top_builddir}" + +# Perform any assignments requested during argument parsing. +eval "$at_debug_args" + +# atconfig delivers names relative to the directory the test suite is +# in, but the groups themselves are run in testsuite-dir/group-dir. +if test -n "$at_top_srcdir"; then + builddir=../.. + for at_dir_var in srcdir top_srcdir top_build_prefix + do + eval at_val=\$at_$at_dir_var + case $at_val in + [\\/$]* | ?:[\\/]* ) at_prefix= ;; + *) at_prefix=../../ ;; + esac + eval "$at_dir_var=\$at_prefix\$at_val" + done +fi + +## -------------------- ## +## Directory structure. ## +## -------------------- ## + +# This is the set of directories and files used by this script +# (non-literals are capitalized): +# +# TESTSUITE - the testsuite +# TESTSUITE.log - summarizes the complete testsuite run +# TESTSUITE.dir/ - created during a run, remains after -d or failed test +# + at-groups/ - during a run: status of all groups in run +# | + NNN/ - during a run: meta-data about test group NNN +# | | + check-line - location (source file and line) of current AT_CHECK +# | | + status - exit status of current AT_CHECK +# | | + stdout - stdout of current AT_CHECK +# | | + stder1 - stderr, including trace +# | | + stderr - stderr, with trace filtered out +# | | + test-source - portion of testsuite that defines group +# | | + times - timestamps for computing duration +# | | + pass - created if group passed +# | | + xpass - created if group xpassed +# | | + fail - created if group failed +# | | + xfail - created if group xfailed +# | | + skip - created if group skipped +# + at-stop - during a run: end the run if this file exists +# + at-source-lines - during a run: cache of TESTSUITE line numbers for extraction +# + 0..NNN/ - created for each group NNN, remains after -d or failed test +# | + TESTSUITE.log - summarizes the group results +# | + ... - files created during the group + +# The directory the whole suite works in. +# Should be absolute to let the user `cd' at will. +at_suite_dir=$at_dir/$as_me.dir +# The file containing the suite ($at_dir might have changed since earlier). +at_suite_log=$at_dir/$as_me.log +# The directory containing helper files per test group. +at_helper_dir=$at_suite_dir/at-groups +# Stop file: if it exists, do not start new jobs. +at_stop_file=$at_suite_dir/at-stop +# The fifo used for the job dispatcher. +at_job_fifo=$at_suite_dir/at-job-fifo + +if $at_clean; then + test -d "$at_suite_dir" && + find "$at_suite_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \; + rm -f -r "$at_suite_dir" "$at_suite_log" + exit $? +fi + +# Don't take risks: use only absolute directories in PATH. +# +# For stand-alone test suites (ie. atconfig was not found), +# AUTOTEST_PATH is relative to `.'. +# +# For embedded test suites, AUTOTEST_PATH is relative to the top level +# of the package. Then expand it into build/src parts, since users +# may create executables in both places. +AUTOTEST_PATH=`$as_echo "$AUTOTEST_PATH" | sed "s|:|$PATH_SEPARATOR|g"` +at_path= +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $AUTOTEST_PATH $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -n "$at_path" && as_fn_append at_path $PATH_SEPARATOR +case $as_dir in + [\\/]* | ?:[\\/]* ) + as_fn_append at_path "$as_dir" + ;; + * ) + if test -z "$at_top_build_prefix"; then + # Stand-alone test suite. + as_fn_append at_path "$as_dir" + else + # Embedded test suite. + as_fn_append at_path "$at_top_build_prefix$as_dir$PATH_SEPARATOR" + as_fn_append at_path "$at_top_srcdir/$as_dir" + fi + ;; +esac + done +IFS=$as_save_IFS + + +# Now build and simplify PATH. +# +# There might be directories that don't exist, but don't redirect +# builtins' (eg., cd) stderr directly: Ultrix's sh hates that. +at_new_path= +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $at_path +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -d "$as_dir" || continue +case $as_dir in + [\\/]* | ?:[\\/]* ) ;; + * ) as_dir=`(cd "$as_dir" && pwd) 2>/dev/null` ;; +esac +case $PATH_SEPARATOR$at_new_path$PATH_SEPARATOR in + *$PATH_SEPARATOR$as_dir$PATH_SEPARATOR*) ;; + $PATH_SEPARATOR$PATH_SEPARATOR) at_new_path=$as_dir ;; + *) as_fn_append at_new_path "$PATH_SEPARATOR$as_dir" ;; +esac + done +IFS=$as_save_IFS + +PATH=$at_new_path +export PATH + +# Setting up the FDs. + + + +# 5 is the log file. Not to be overwritten if `-d'. +if $at_debug_p; then + at_suite_log=/dev/null +else + : >"$at_suite_log" +fi +exec 5>>"$at_suite_log" + +# Banners and logs. +$as_echo "## ---------------------------------- ## +## gfs2-utils 3.3.0.1.dev test suite. ## +## ---------------------------------- ##" +{ + $as_echo "## ---------------------------------- ## +## gfs2-utils 3.3.0.1.dev test suite. ## +## ---------------------------------- ##" + echo + + $as_echo "$as_me: command line was:" + $as_echo " \$ $0 $at_cli_args" + echo + + # If ChangeLog exists, list a few lines in case it might help determining + # the exact version. + if test -n "$at_top_srcdir" && test -f "$at_top_srcdir/ChangeLog"; then + $as_echo "## ---------- ## +## ChangeLog. ## +## ---------- ##" + echo + sed 's/^/| /;10q' "$at_top_srcdir/ChangeLog" + echo + fi + + { +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + $as_echo "PATH: $as_dir" + done +IFS=$as_save_IFS + +} + echo + + # Contents of the config files. + for at_file in atconfig atlocal + do + test -r $at_file || continue + $as_echo "$as_me: $at_file:" + sed 's/^/| /' $at_file + echo + done +} >&5 + + +## ------------------------- ## +## Autotest shell functions. ## +## ------------------------- ## + +# at_fn_banner NUMBER +# ------------------- +# Output banner NUMBER, provided the testsuite is running multiple groups and +# this particular banner has not yet been printed. +at_fn_banner () +{ + $at_print_banners || return 0 + eval at_banner_text=\$at_banner_text_$1 + test "x$at_banner_text" = "x " && return 0 + eval "at_banner_text_$1=\" \"" + if test -z "$at_banner_text"; then + $at_first || echo + else + $as_echo "$as_nl$at_banner_text$as_nl" + fi +} # at_fn_banner + +# at_fn_check_prepare_notrace REASON LINE +# --------------------------------------- +# Perform AT_CHECK preparations for the command at LINE for an untraceable +# command; REASON is the reason for disabling tracing. +at_fn_check_prepare_notrace () +{ + $at_trace_echo "Not enabling shell tracing (command contains $1)" + $as_echo "$2" >"$at_check_line_file" + at_check_trace=: at_check_filter=: + : >"$at_stdout"; : >"$at_stderr" +} + +# at_fn_check_prepare_trace LINE +# ------------------------------ +# Perform AT_CHECK preparations for the command at LINE for a traceable +# command. +at_fn_check_prepare_trace () +{ + $as_echo "$1" >"$at_check_line_file" + at_check_trace=$at_traceon at_check_filter=$at_check_filter_trace + : >"$at_stdout"; : >"$at_stderr" +} + +# at_fn_check_prepare_dynamic COMMAND LINE +# ---------------------------------------- +# Decide if COMMAND at LINE is traceable at runtime, and call the appropriate +# preparation function. +at_fn_check_prepare_dynamic () +{ + case $1 in + *$as_nl*) + at_fn_check_prepare_notrace 'an embedded newline' "$2" ;; + *) + at_fn_check_prepare_trace "$2" ;; + esac +} + +# at_fn_filter_trace +# ------------------ +# Remove the lines in the file "$at_stderr" generated by "set -x" and print +# them to stderr. +at_fn_filter_trace () +{ + mv "$at_stderr" "$at_stder1" + grep '^ *+' "$at_stder1" >&2 + grep -v '^ *+' "$at_stder1" >"$at_stderr" +} + +# at_fn_log_failure FILE-LIST +# --------------------------- +# Copy the files in the list on stdout with a "> " prefix, and exit the shell +# with a failure exit code. +at_fn_log_failure () +{ + for file + do $as_echo "$file:"; sed 's/^/> /' "$file"; done + echo 1 > "$at_status_file" + exit 1 +} + +# at_fn_check_skip EXIT-CODE LINE +# ------------------------------- +# Check whether EXIT-CODE is a special exit code (77 or 99), and if so exit +# the test group subshell with that same exit code. Use LINE in any report +# about test failure. +at_fn_check_skip () +{ + case $1 in + 99) echo 99 > "$at_status_file"; at_failed=: + $as_echo "$2: hard failure"; exit 99;; + 77) echo 77 > "$at_status_file"; exit 77;; + esac +} + +# at_fn_check_status EXPECTED EXIT-CODE LINE +# ------------------------------------------ +# Check whether EXIT-CODE is the EXPECTED exit code, and if so do nothing. +# Otherwise, if it is 77 or 99, exit the test group subshell with that same +# exit code; if it is anything else print an error message referring to LINE, +# and fail the test. +at_fn_check_status () +{ + case $2 in + $1 ) ;; + 77) echo 77 > "$at_status_file"; exit 77;; + 99) echo 99 > "$at_status_file"; at_failed=: + $as_echo "$3: hard failure"; exit 99;; + *) $as_echo "$3: exit code was $2, expected $1" + at_failed=:;; + esac +} + +# at_fn_diff_devnull FILE +# ----------------------- +# Emit a diff between /dev/null and FILE. Uses "test -s" to avoid useless diff +# invocations. +at_fn_diff_devnull () +{ + test -s "$1" || return 0 + $at_diff "$at_devnull" "$1" +} + +# at_fn_test NUMBER +# ----------------- +# Parse out test NUMBER from the tail of this file. +at_fn_test () +{ + eval at_sed=\$at_sed$1 + sed "$at_sed" "$at_myself" > "$at_test_source" +} + +# at_fn_create_debugging_script +# ----------------------------- +# Create the debugging script $at_group_dir/run which will reproduce the +# current test group. +at_fn_create_debugging_script () +{ + { + echo "#! /bin/sh" && + echo 'test "${ZSH_VERSION+set}" = set && alias -g '\''${1+"$@"}'\''='\''"$@"'\''' && + $as_echo "cd '$at_dir'" && + $as_echo "exec \${CONFIG_SHELL-$SHELL} \"$at_myself\" -v -d $at_debug_args $at_group \${1+\"\$@\"}" && + echo 'exit 1' + } >"$at_group_dir/run" && + chmod +x "$at_group_dir/run" +} + +## -------------------------------- ## +## End of autotest shell functions. ## +## -------------------------------- ## +{ + $as_echo "## ---------------- ## +## Tested programs. ## +## ---------------- ##" + echo +} >&5 + +# Report what programs are being tested. +for at_program in : $at_tested +do + test "$at_program" = : && continue + case $at_program in + [\\/]* | ?:[\\/]* ) $at_program_=$at_program ;; + * ) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -f "$as_dir/$at_program" && break + done +IFS=$as_save_IFS + + at_program_=$as_dir/$at_program ;; + esac + if test -f "$at_program_"; then + { + $as_echo "$at_srcdir/testsuite.at:48: $at_program_ --version" + "$at_program_" --version &5 2>&1 + else + as_fn_error $? "cannot find $at_program" "$LINENO" 5 + fi +done + +{ + $as_echo "## ------------------ ## +## Running the tests. ## +## ------------------ ##" +} >&5 + +at_start_date=`date` +at_start_time=`date +%s 2>/dev/null` +$as_echo "$as_me: starting at: $at_start_date" >&5 + +# Create the master directory if it doesn't already exist. +as_dir="$at_suite_dir"; as_fn_mkdir_p || + as_fn_error $? "cannot create \`$at_suite_dir'" "$LINENO" 5 + +# Can we diff with `/dev/null'? DU 5.0 refuses. +if diff /dev/null /dev/null >/dev/null 2>&1; then + at_devnull=/dev/null +else + at_devnull=$at_suite_dir/devnull + >"$at_devnull" +fi + +# Use `diff -u' when possible. +if at_diff=`diff -u "$at_devnull" "$at_devnull" 2>&1` && test -z "$at_diff" +then + at_diff='diff -u' +else + at_diff=diff +fi + +# Get the last needed group. +for at_group in : $at_groups; do :; done + +# Extract the start and end lines of each test group at the tail +# of this file +awk ' +BEGIN { FS="" } +/^#AT_START_/ { + start = NR +} +/^#AT_STOP_/ { + test = substr ($ 0, 10) + print "at_sed" test "=\"1," start "d;" (NR-1) "q\"" + if (test == "'"$at_group"'") exit +}' "$at_myself" > "$at_suite_dir/at-source-lines" && +. "$at_suite_dir/at-source-lines" || + as_fn_error $? "cannot create test line number cache" "$LINENO" 5 +rm -f "$at_suite_dir/at-source-lines" + +# Set number of jobs for `-j'; avoid more jobs than test groups. +set X $at_groups; shift; at_max_jobs=$# +if test $at_max_jobs -eq 0; then + at_jobs=1 +fi +if test $at_jobs -ne 1 && + { test $at_jobs -eq 0 || test $at_jobs -gt $at_max_jobs; }; then + at_jobs=$at_max_jobs +fi + +# If parallel mode, don't output banners, don't split summary lines. +if test $at_jobs -ne 1; then + at_print_banners=false + at_quiet=: +fi + +# Set up helper dirs. +rm -rf "$at_helper_dir" && +mkdir "$at_helper_dir" && +cd "$at_helper_dir" && +{ test -z "$at_groups" || mkdir $at_groups; } || +as_fn_error $? "testsuite directory setup failed" "$LINENO" 5 + +# Functions for running a test group. We leave the actual +# test group execution outside of a shell function in order +# to avoid hitting zsh 4.x exit status bugs. + +# at_fn_group_prepare +# ------------------- +# Prepare for running a test group. +at_fn_group_prepare () +{ + # The directory for additional per-group helper files. + at_job_dir=$at_helper_dir/$at_group + # The file containing the location of the last AT_CHECK. + at_check_line_file=$at_job_dir/check-line + # The file containing the exit status of the last command. + at_status_file=$at_job_dir/status + # The files containing the output of the tested commands. + at_stdout=$at_job_dir/stdout + at_stder1=$at_job_dir/stder1 + at_stderr=$at_job_dir/stderr + # The file containing the code for a test group. + at_test_source=$at_job_dir/test-source + # The file containing dates. + at_times_file=$at_job_dir/times + + # Be sure to come back to the top test directory. + cd "$at_suite_dir" + + # Clearly separate the test groups when verbose. + $at_first || $at_verbose echo + + at_group_normalized=$at_group + + eval 'while :; do + case $at_group_normalized in #( + '"$at_format"'*) break;; + esac + at_group_normalized=0$at_group_normalized + done' + + + # Create a fresh directory for the next test group, and enter. + # If one already exists, the user may have invoked ./run from + # within that directory; we remove the contents, but not the + # directory itself, so that we aren't pulling the rug out from + # under the shell's notion of the current directory. + at_group_dir=$at_suite_dir/$at_group_normalized + at_group_log=$at_group_dir/$as_me.log + if test -d "$at_group_dir"; then + find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx {} \; + rm -fr "$at_group_dir"/* "$at_group_dir"/.[!.] "$at_group_dir"/.??* +fi || + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: test directory for $at_group_normalized could not be cleaned" >&5 +$as_echo "$as_me: WARNING: test directory for $at_group_normalized could not be cleaned" >&2;} + # Be tolerant if the above `rm' was not able to remove the directory. + as_dir="$at_group_dir"; as_fn_mkdir_p + + echo 0 > "$at_status_file" + + # In verbose mode, append to the log file *and* show on + # the standard output; in quiet mode only write to the log. + if test -z "$at_verbose"; then + at_tee_pipe='tee -a "$at_group_log"' + else + at_tee_pipe='cat >> "$at_group_log"' + fi +} + +# at_fn_group_banner ORDINAL LINE DESC PAD [BANNER] +# ------------------------------------------------- +# Declare the test group ORDINAL, located at LINE with group description DESC, +# and residing under BANNER. Use PAD to align the status column. +at_fn_group_banner () +{ + at_setup_line="$2" + test -n "$5" && at_fn_banner $5 + at_desc="$3" + case $1 in + [0-9]) at_desc_line=" $1: ";; + [0-9][0-9]) at_desc_line=" $1: " ;; + *) at_desc_line="$1: " ;; + esac + as_fn_append at_desc_line "$3$4" + $at_quiet $as_echo_n "$at_desc_line" + echo "# -*- compilation -*-" >> "$at_group_log" +} + +# at_fn_group_postprocess +# ----------------------- +# Perform cleanup after running a test group. +at_fn_group_postprocess () +{ + # Be sure to come back to the suite directory, in particular + # since below we might `rm' the group directory we are in currently. + cd "$at_suite_dir" + + if test ! -f "$at_check_line_file"; then + sed "s/^ */$as_me: WARNING: /" <<_ATEOF + A failure happened in a test group before any test could be + run. This means that test suite is improperly designed. Please + report this failure to . +_ATEOF + $as_echo "$at_setup_line" >"$at_check_line_file" + at_status=99 + fi + $at_verbose $as_echo_n "$at_group. $at_setup_line: " + $as_echo_n "$at_group. $at_setup_line: " >> "$at_group_log" + case $at_xfail:$at_status in + yes:0) + at_msg="UNEXPECTED PASS" + at_res=xpass + at_errexit=$at_errexit_p + at_color=$at_red + ;; + no:0) + at_msg="ok" + at_res=pass + at_errexit=false + at_color=$at_grn + ;; + *:77) + at_msg='skipped ('`cat "$at_check_line_file"`')' + at_res=skip + at_errexit=false + at_color=$at_blu + ;; + no:* | *:99) + at_msg='FAILED ('`cat "$at_check_line_file"`')' + at_res=fail + at_errexit=$at_errexit_p + at_color=$at_red + ;; + yes:*) + at_msg='expected failure ('`cat "$at_check_line_file"`')' + at_res=xfail + at_errexit=false + at_color=$at_lgn + ;; + esac + echo "$at_res" > "$at_job_dir/$at_res" + # In parallel mode, output the summary line only afterwards. + if test $at_jobs -ne 1 && test -n "$at_verbose"; then + $as_echo "$at_desc_line $at_color$at_msg$at_std" + else + # Make sure there is a separator even with long titles. + $as_echo " $at_color$at_msg$at_std" + fi + at_log_msg="$at_group. $at_desc ($at_setup_line): $at_msg" + case $at_status in + 0|77) + # $at_times_file is only available if the group succeeded. + # We're not including the group log, so the success message + # is written in the global log separately. But we also + # write to the group log in case they're using -d. + if test -f "$at_times_file"; then + at_log_msg="$at_log_msg ("`sed 1d "$at_times_file"`')' + rm -f "$at_times_file" + fi + $as_echo "$at_log_msg" >> "$at_group_log" + $as_echo "$at_log_msg" >&5 + + # Cleanup the group directory, unless the user wants the files + # or the success was unexpected. + if $at_debug_p || test $at_res = xpass; then + at_fn_create_debugging_script + if test $at_res = xpass && $at_errexit; then + echo stop > "$at_stop_file" + fi + else + if test -d "$at_group_dir"; then + find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \; + rm -fr "$at_group_dir" + fi + rm -f "$at_test_source" + fi + ;; + *) + # Upon failure, include the log into the testsuite's global + # log. The failure message is written in the group log. It + # is later included in the global log. + $as_echo "$at_log_msg" >> "$at_group_log" + + # Upon failure, keep the group directory for autopsy, and create + # the debugging script. With -e, do not start any further tests. + at_fn_create_debugging_script + if $at_errexit; then + echo stop > "$at_stop_file" + fi + ;; + esac +} + + +## ------------ ## +## Driver loop. ## +## ------------ ## + + +if (set -m && set +m && set +b) >/dev/null 2>&1; then + set +b + at_job_control_on='set -m' at_job_control_off='set +m' at_job_group=- +else + at_job_control_on=: at_job_control_off=: at_job_group= +fi + +for at_signal in 1 2 15; do + trap 'set +x; set +e + $at_job_control_off + at_signal='"$at_signal"' + echo stop > "$at_stop_file" + trap "" $at_signal + at_pgids= + for at_pgid in `jobs -p 2>/dev/null`; do + at_pgids="$at_pgids $at_job_group$at_pgid" + done + test -z "$at_pgids" || kill -$at_signal $at_pgids 2>/dev/null + wait + if test "$at_jobs" -eq 1 || test -z "$at_verbose"; then + echo >&2 + fi + at_signame=`kill -l $at_signal 2>&1 || echo $at_signal` + set x $at_signame + test 1 -gt 2 && at_signame=$at_signal + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: caught signal $at_signame, bailing out" >&5 +$as_echo "$as_me: WARNING: caught signal $at_signame, bailing out" >&2;} + as_fn_arith 128 + $at_signal && exit_status=$as_val + as_fn_exit $exit_status' $at_signal +done + +rm -f "$at_stop_file" +at_first=: + +if test $at_jobs -ne 1 && + rm -f "$at_job_fifo" && + test -n "$at_job_group" && + ( mkfifo "$at_job_fifo" && trap 'exit 1' PIPE STOP TSTP ) 2>/dev/null +then + # FIFO job dispatcher. + + trap 'at_pids= + for at_pid in `jobs -p`; do + at_pids="$at_pids $at_job_group$at_pid" + done + if test -n "$at_pids"; then + at_sig=TSTP + test "${TMOUT+set}" = set && at_sig=STOP + kill -$at_sig $at_pids 2>/dev/null + fi + kill -STOP $$ + test -z "$at_pids" || kill -CONT $at_pids 2>/dev/null' TSTP + + echo + # Turn jobs into a list of numbers, starting from 1. + at_joblist=`$as_echo "$at_groups" | sed -n 1,${at_jobs}p` + + set X $at_joblist + shift + for at_group in $at_groups; do + $at_job_control_on 2>/dev/null + ( + # Start one test group. + $at_job_control_off + if $at_first; then + exec 7>"$at_job_fifo" + else + exec 6<&- + fi + trap 'set +x; set +e + trap "" PIPE + echo stop > "$at_stop_file" + echo >&7 + as_fn_exit 141' PIPE + at_fn_group_prepare + if cd "$at_group_dir" && + at_fn_test $at_group && + . "$at_test_source" + then :; else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5 +$as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;} + at_failed=: + fi + at_fn_group_postprocess + echo >&7 + ) & + $at_job_control_off + if $at_first; then + at_first=false + exec 6<"$at_job_fifo" 7>"$at_job_fifo" + fi + shift # Consume one token. + if test $# -gt 0; then :; else + read at_token <&6 || break + set x $* + fi + test -f "$at_stop_file" && break + done + exec 7>&- + # Read back the remaining ($at_jobs - 1) tokens. + set X $at_joblist + shift + if test $# -gt 0; then + shift + for at_job + do + read at_token + done <&6 + fi + exec 6<&- + wait +else + # Run serially, avoid forks and other potential surprises. + for at_group in $at_groups; do + at_fn_group_prepare + if cd "$at_group_dir" && + at_fn_test $at_group && + . "$at_test_source"; then :; else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5 +$as_echo "$as_me: WARNING: unable to parse test group: $at_group" >&2;} + at_failed=: + fi + at_fn_group_postprocess + test -f "$at_stop_file" && break + at_first=false + done +fi + +# Wrap up the test suite with summary statistics. +cd "$at_helper_dir" + +# Use ?..???? when the list must remain sorted, the faster * otherwise. +at_pass_list=`for f in */pass; do echo $f; done | sed '/\*/d; s,/pass,,'` +at_skip_list=`for f in */skip; do echo $f; done | sed '/\*/d; s,/skip,,'` +at_xfail_list=`for f in */xfail; do echo $f; done | sed '/\*/d; s,/xfail,,'` +at_xpass_list=`for f in ?/xpass ??/xpass ???/xpass ????/xpass; do + echo $f; done | sed '/?/d; s,/xpass,,'` +at_fail_list=`for f in ?/fail ??/fail ???/fail ????/fail; do + echo $f; done | sed '/?/d; s,/fail,,'` + +set X $at_pass_list $at_xpass_list $at_xfail_list $at_fail_list $at_skip_list +shift; at_group_count=$# +set X $at_xpass_list; shift; at_xpass_count=$#; at_xpass_list=$* +set X $at_xfail_list; shift; at_xfail_count=$# +set X $at_fail_list; shift; at_fail_count=$#; at_fail_list=$* +set X $at_skip_list; shift; at_skip_count=$# + +as_fn_arith $at_group_count - $at_skip_count && at_run_count=$as_val +as_fn_arith $at_xpass_count + $at_fail_count && at_unexpected_count=$as_val +as_fn_arith $at_xfail_count + $at_fail_count && at_total_fail_count=$as_val + +# Back to the top directory. +cd "$at_dir" +rm -rf "$at_helper_dir" + +# Compute the duration of the suite. +at_stop_date=`date` +at_stop_time=`date +%s 2>/dev/null` +$as_echo "$as_me: ending at: $at_stop_date" >&5 +case $at_start_time,$at_stop_time in + [0-9]*,[0-9]*) + as_fn_arith $at_stop_time - $at_start_time && at_duration_s=$as_val + as_fn_arith $at_duration_s / 60 && at_duration_m=$as_val + as_fn_arith $at_duration_m / 60 && at_duration_h=$as_val + as_fn_arith $at_duration_s % 60 && at_duration_s=$as_val + as_fn_arith $at_duration_m % 60 && at_duration_m=$as_val + at_duration="${at_duration_h}h ${at_duration_m}m ${at_duration_s}s" + $as_echo "$as_me: test suite duration: $at_duration" >&5 + ;; +esac + +echo +$as_echo "## ------------- ## +## Test results. ## +## ------------- ##" +echo +{ + echo + $as_echo "## ------------- ## +## Test results. ## +## ------------- ##" + echo +} >&5 + +if test $at_run_count = 1; then + at_result="1 test" + at_were=was +else + at_result="$at_run_count tests" + at_were=were +fi +if $at_errexit_p && test $at_unexpected_count != 0; then + if test $at_xpass_count = 1; then + at_result="$at_result $at_were run, one passed" + else + at_result="$at_result $at_were run, one failed" + fi + at_result="$at_result unexpectedly and inhibited subsequent tests." + at_color=$at_red +else + # Don't you just love exponential explosion of the number of cases? + at_color=$at_red + case $at_xpass_count:$at_fail_count:$at_xfail_count in + # So far, so good. + 0:0:0) at_result="$at_result $at_were successful." at_color=$at_grn ;; + 0:0:*) at_result="$at_result behaved as expected." at_color=$at_lgn ;; + + # Some unexpected failures + 0:*:0) at_result="$at_result $at_were run, +$at_fail_count failed unexpectedly." ;; + + # Some failures, both expected and unexpected + 0:*:1) at_result="$at_result $at_were run, +$at_total_fail_count failed ($at_xfail_count expected failure)." ;; + 0:*:*) at_result="$at_result $at_were run, +$at_total_fail_count failed ($at_xfail_count expected failures)." ;; + + # No unexpected failures, but some xpasses + *:0:*) at_result="$at_result $at_were run, +$at_xpass_count passed unexpectedly." ;; + + # No expected failures, but failures and xpasses + *:1:0) at_result="$at_result $at_were run, +$at_unexpected_count did not behave as expected ($at_fail_count unexpected failure)." ;; + *:*:0) at_result="$at_result $at_were run, +$at_unexpected_count did not behave as expected ($at_fail_count unexpected failures)." ;; + + # All of them. + *:*:1) at_result="$at_result $at_were run, +$at_xpass_count passed unexpectedly, +$at_total_fail_count failed ($at_xfail_count expected failure)." ;; + *:*:*) at_result="$at_result $at_were run, +$at_xpass_count passed unexpectedly, +$at_total_fail_count failed ($at_xfail_count expected failures)." ;; + esac + + if test $at_skip_count = 0 && test $at_run_count -gt 1; then + at_result="All $at_result" + fi +fi + +# Now put skips in the mix. +case $at_skip_count in + 0) ;; + 1) at_result="$at_result +1 test was skipped." ;; + *) at_result="$at_result +$at_skip_count tests were skipped." ;; +esac + +if test $at_unexpected_count = 0; then + echo "$at_color$at_result$at_std" + echo "$at_result" >&5 +else + echo "${at_color}ERROR: $at_result$at_std" >&2 + echo "ERROR: $at_result" >&5 + { + echo + $as_echo "## ------------------------ ## +## Summary of the failures. ## +## ------------------------ ##" + + # Summary of failed and skipped tests. + if test $at_fail_count != 0; then + echo "Failed tests:" + $SHELL "$at_myself" $at_fail_list --list + echo + fi + if test $at_skip_count != 0; then + echo "Skipped tests:" + $SHELL "$at_myself" $at_skip_list --list + echo + fi + if test $at_xpass_count != 0; then + echo "Unexpected passes:" + $SHELL "$at_myself" $at_xpass_list --list + echo + fi + if test $at_fail_count != 0; then + $as_echo "## ---------------------- ## +## Detailed failed tests. ## +## ---------------------- ##" + echo + for at_group in $at_fail_list + do + at_group_normalized=$at_group + + eval 'while :; do + case $at_group_normalized in #( + '"$at_format"'*) break;; + esac + at_group_normalized=0$at_group_normalized + done' + + cat "$at_suite_dir/$at_group_normalized/$as_me.log" + echo + done + echo + fi + if test -n "$at_top_srcdir"; then + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## ${at_top_build_prefix}config.log ## +_ASBOX + sed 's/^/| /' ${at_top_build_prefix}config.log + echo + fi + } >&5 + + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## $as_me.log was created. ## +_ASBOX + + echo + if $at_debug_p; then + at_msg='per-test log files' + else + at_msg="\`${at_testdir+${at_testdir}/}$as_me.log'" + fi + $as_echo "Please send $at_msg and all information you think might help: + + To: + Subject: [gfs2-utils 3.3.0.1.dev] $as_me: $at_fail_list${at_fail_list:+ failed${at_xpass_list:+, }}$at_xpass_list${at_xpass_list:+ passed unexpectedly} + +You may investigate any problem if you feel able to do so, in which +case the test suite provides a good starting point. Its output may +be found below \`${at_testdir+${at_testdir}/}$as_me.dir'. +" + exit 1 +fi + +exit 0 + +## ------------- ## +## Actual tests. ## +## ------------- ## +#AT_START_1 +at_fn_group_banner 1 'mkfs.at:4' \ + "Locking protocol validation" " " 1 +at_xfail=no +( + $as_echo "1. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/mkfs.at:6: \$GFS_MKFS -p badprotocol \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p badprotocol $GFS_TGT" "mkfs.at:6" +( $at_check_trace; $GFS_MKFS -p badprotocol $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 255 $at_status "$at_srcdir/mkfs.at:6" +$at_failed && at_fn_log_failure +$at_traceon; } + + set +x + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" +#AT_STOP_1 +#AT_START_2 +at_fn_group_banner 2 'mkfs.at:9' \ + "Resource group size validation" " " 1 +at_xfail=no +( + $as_echo "2. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/mkfs.at:11: \$GFS_MKFS -p lock_nolock -r 31 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -r 31 $GFS_TGT" "mkfs.at:11" +( $at_check_trace; $GFS_MKFS -p lock_nolock -r 31 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 255 $at_status "$at_srcdir/mkfs.at:11" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:12: \$GFS_MKFS -p lock_nolock -r 2049 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -r 2049 $GFS_TGT" "mkfs.at:12" +( $at_check_trace; $GFS_MKFS -p lock_nolock -r 2049 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 255 $at_status "$at_srcdir/mkfs.at:12" +$at_failed && at_fn_log_failure +$at_traceon; } + + set +x + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" +#AT_STOP_2 +#AT_START_3 +at_fn_group_banner 3 'mkfs.at:15' \ + "Journal size validation" " " 1 +at_xfail=no +( + $as_echo "3. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/mkfs.at:17: \$GFS_MKFS -p lock_nolock -J 7 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -J 7 $GFS_TGT" "mkfs.at:17" +( $at_check_trace; $GFS_MKFS -p lock_nolock -J 7 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 255 $at_status "$at_srcdir/mkfs.at:17" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:18: \$GFS_MKFS -p lock_nolock -J 1025 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -J 1025 $GFS_TGT" "mkfs.at:18" +( $at_check_trace; $GFS_MKFS -p lock_nolock -J 1025 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 255 $at_status "$at_srcdir/mkfs.at:18" +$at_failed && at_fn_log_failure +$at_traceon; } + + set +x + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" +#AT_STOP_3 +#AT_START_4 +at_fn_group_banner 4 'mkfs.at:21' \ + "Block count validation" " " 1 +at_xfail=no +( + $as_echo "4. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/mkfs.at:23: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:23" +( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/mkfs.at:23" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "mkfs.at:23" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/mkfs.at:23" +{ set +x +$as_echo "$at_srcdir/mkfs.at:24: \$GFS_MKFS -p lock_nolock -b 512 \$GFS_TGT \$((\$(gfs_max_blocks 512)+1))" +at_fn_check_prepare_notrace 'a $(...) command substitution' "mkfs.at:24" +( $at_check_trace; $GFS_MKFS -p lock_nolock -b 512 $GFS_TGT $(($(gfs_max_blocks 512)+1)) +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 255 $at_status "$at_srcdir/mkfs.at:24" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:25: \$GFS_MKFS -p lock_nolock -b 4096 \$GFS_TGT \$((\$(gfs_max_blocks 4096)+1))" +at_fn_check_prepare_notrace 'a $(...) command substitution' "mkfs.at:25" +( $at_check_trace; $GFS_MKFS -p lock_nolock -b 4096 $GFS_TGT $(($(gfs_max_blocks 4096)+1)) +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 255 $at_status "$at_srcdir/mkfs.at:25" +$at_failed && at_fn_log_failure +$at_traceon; } + + set +x + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" +#AT_STOP_4 +#AT_START_5 +at_fn_group_banner 5 'mkfs.at:28' \ + "Quota change file size validation" " " 1 +at_xfail=no +( + $as_echo "5. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/mkfs.at:30: \$GFS_MKFS -p lock_nolock -c 0 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -c 0 $GFS_TGT" "mkfs.at:30" +( $at_check_trace; $GFS_MKFS -p lock_nolock -c 0 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 255 $at_status "$at_srcdir/mkfs.at:30" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:31: \$GFS_MKFS -p lock_nolock -c 65 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -c 65 $GFS_TGT" "mkfs.at:31" +( $at_check_trace; $GFS_MKFS -p lock_nolock -c 65 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 255 $at_status "$at_srcdir/mkfs.at:31" +$at_failed && at_fn_log_failure +$at_traceon; } + + set +x + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" +#AT_STOP_5 +#AT_START_6 +at_fn_group_banner 6 'mkfs.at:34' \ + "Locking protocols" " " 1 +at_xfail=no +( + $as_echo "6. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/mkfs.at:36: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:36" +( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/mkfs.at:36" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "mkfs.at:36" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/mkfs.at:36" +{ set +x +$as_echo "$at_srcdir/mkfs.at:36: \$GFS_MKFS -p lock_nolock \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock $GFS_TGT" "mkfs.at:36" +( $at_check_trace; $GFS_MKFS -p lock_nolock $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:36" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:36: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:36" +( $at_check_trace; fsck.gfs2 -n $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:36" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:37: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:37" +( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/mkfs.at:37" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "mkfs.at:37" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/mkfs.at:37" +{ set +x +$as_echo "$at_srcdir/mkfs.at:37: \$GFS_MKFS -p lock_dlm -t foo:bar \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_dlm -t foo:bar $GFS_TGT" "mkfs.at:37" +( $at_check_trace; $GFS_MKFS -p lock_dlm -t foo:bar $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:37" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:37: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:37" +( $at_check_trace; fsck.gfs2 -n $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:37" +$at_failed && at_fn_log_failure +$at_traceon; } + + set +x + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" +#AT_STOP_6 +#AT_START_7 +at_fn_group_banner 7 'mkfs.at:40' \ + "Valid block sizes 512-4096" " " 1 +at_xfail=no +( + $as_echo "7. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/mkfs.at:42: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:42" +( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/mkfs.at:42" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "mkfs.at:42" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/mkfs.at:42" +{ set +x +$as_echo "$at_srcdir/mkfs.at:42: \$GFS_MKFS -p lock_nolock -b 512 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -b 512 $GFS_TGT" "mkfs.at:42" +( $at_check_trace; $GFS_MKFS -p lock_nolock -b 512 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:42" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:42: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:42" +( $at_check_trace; fsck.gfs2 -n $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:42" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:43: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:43" +( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/mkfs.at:43" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "mkfs.at:43" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/mkfs.at:43" +{ set +x +$as_echo "$at_srcdir/mkfs.at:43: \$GFS_MKFS -p lock_nolock -b 1024 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -b 1024 $GFS_TGT" "mkfs.at:43" +( $at_check_trace; $GFS_MKFS -p lock_nolock -b 1024 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:43" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:43: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:43" +( $at_check_trace; fsck.gfs2 -n $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:43" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:44: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:44" +( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/mkfs.at:44" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "mkfs.at:44" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/mkfs.at:44" +{ set +x +$as_echo "$at_srcdir/mkfs.at:44: \$GFS_MKFS -p lock_nolock -b 2048 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -b 2048 $GFS_TGT" "mkfs.at:44" +( $at_check_trace; $GFS_MKFS -p lock_nolock -b 2048 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:44" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:44: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:44" +( $at_check_trace; fsck.gfs2 -n $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:44" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:45: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:45" +( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/mkfs.at:45" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "mkfs.at:45" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/mkfs.at:45" +{ set +x +$as_echo "$at_srcdir/mkfs.at:45: \$GFS_MKFS -p lock_nolock -b 4096 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -b 4096 $GFS_TGT" "mkfs.at:45" +( $at_check_trace; $GFS_MKFS -p lock_nolock -b 4096 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:45" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:45: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:45" +( $at_check_trace; fsck.gfs2 -n $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:45" +$at_failed && at_fn_log_failure +$at_traceon; } + + set +x + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" +#AT_STOP_7 +#AT_START_8 +at_fn_group_banner 8 'mkfs.at:48' \ + "Max. blocks, min. block size" " " 1 +at_xfail=no +( + $as_echo "8. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/mkfs.at:50: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:50" +( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/mkfs.at:50" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "mkfs.at:50" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/mkfs.at:50" +{ set +x +$as_echo "$at_srcdir/mkfs.at:50: \$GFS_MKFS -p lock_nolock -b 512 \$GFS_TGT \$(gfs_max_blocks 512)" +at_fn_check_prepare_notrace 'a $(...) command substitution' "mkfs.at:50" +( $at_check_trace; $GFS_MKFS -p lock_nolock -b 512 $GFS_TGT $(gfs_max_blocks 512) +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:50" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:50: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:50" +( $at_check_trace; fsck.gfs2 -n $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:50" +$at_failed && at_fn_log_failure +$at_traceon; } + + set +x + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" +#AT_STOP_8 +#AT_START_9 +at_fn_group_banner 9 'mkfs.at:53' \ + "Max. blocks, max. block size" " " 1 +at_xfail=no +( + $as_echo "9. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/mkfs.at:55: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:55" +( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/mkfs.at:55" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "mkfs.at:55" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/mkfs.at:55" +{ set +x +$as_echo "$at_srcdir/mkfs.at:55: \$GFS_MKFS -p lock_nolock -b 4096 \$GFS_TGT \$(gfs_max_blocks 4096)" +at_fn_check_prepare_notrace 'a $(...) command substitution' "mkfs.at:55" +( $at_check_trace; $GFS_MKFS -p lock_nolock -b 4096 $GFS_TGT $(gfs_max_blocks 4096) +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:55" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:55: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:55" +( $at_check_trace; fsck.gfs2 -n $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:55" +$at_failed && at_fn_log_failure +$at_traceon; } + + set +x + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" +#AT_STOP_9 +#AT_START_10 +at_fn_group_banner 10 'mkfs.at:58' \ + "Max. resource group size" " " 1 +at_xfail=no +( + $as_echo "10. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/mkfs.at:60: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:60" +( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/mkfs.at:60" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "mkfs.at:60" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/mkfs.at:60" +{ set +x +$as_echo "$at_srcdir/mkfs.at:60: \$GFS_MKFS -p lock_nolock -r 2048 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -r 2048 $GFS_TGT" "mkfs.at:60" +( $at_check_trace; $GFS_MKFS -p lock_nolock -r 2048 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:60" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:60: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:60" +( $at_check_trace; fsck.gfs2 -n $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:60" +$at_failed && at_fn_log_failure +$at_traceon; } + + set +x + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" +#AT_STOP_10 +#AT_START_11 +at_fn_group_banner 11 'mkfs.at:63' \ + "Min. resource group size" " " 1 +at_xfail=no +( + $as_echo "11. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/mkfs.at:65: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:65" +( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/mkfs.at:65" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "mkfs.at:65" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/mkfs.at:65" +{ set +x +$as_echo "$at_srcdir/mkfs.at:65: \$GFS_MKFS -p lock_nolock -r 32 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -r 32 $GFS_TGT" "mkfs.at:65" +( $at_check_trace; $GFS_MKFS -p lock_nolock -r 32 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:65" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:65: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:65" +( $at_check_trace; fsck.gfs2 -n $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:65" +$at_failed && at_fn_log_failure +$at_traceon; } + + set +x + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" +#AT_STOP_11 +#AT_START_12 +at_fn_group_banner 12 'mkfs.at:68' \ + "Max. resource group size, min. block size" " " 1 +at_xfail=no +( + $as_echo "12. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/mkfs.at:70: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:70" +( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/mkfs.at:70" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "mkfs.at:70" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/mkfs.at:70" +{ set +x +$as_echo "$at_srcdir/mkfs.at:70: \$GFS_MKFS -p lock_nolock -r 2048 -b 512 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -r 2048 -b 512 $GFS_TGT" "mkfs.at:70" +( $at_check_trace; $GFS_MKFS -p lock_nolock -r 2048 -b 512 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:70" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:70: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:70" +( $at_check_trace; fsck.gfs2 -n $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:70" +$at_failed && at_fn_log_failure +$at_traceon; } + + set +x + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" +#AT_STOP_12 +#AT_START_13 +at_fn_group_banner 13 'mkfs.at:73' \ + "Max. journal size" " " 1 +at_xfail=no +( + $as_echo "13. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/mkfs.at:75: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:75" +( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/mkfs.at:75" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "mkfs.at:75" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/mkfs.at:75" +{ set +x +$as_echo "$at_srcdir/mkfs.at:75: \$GFS_MKFS -p lock_nolock -J 1024 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -J 1024 $GFS_TGT" "mkfs.at:75" +( $at_check_trace; $GFS_MKFS -p lock_nolock -J 1024 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:75" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:75: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:75" +( $at_check_trace; fsck.gfs2 -n $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:75" +$at_failed && at_fn_log_failure +$at_traceon; } + + set +x + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" +#AT_STOP_13 +#AT_START_14 +at_fn_group_banner 14 'mkfs.at:78' \ + "Min. journal size" " " 1 +at_xfail=no +( + $as_echo "14. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/mkfs.at:80: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:80" +( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/mkfs.at:80" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "mkfs.at:80" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/mkfs.at:80" +{ set +x +$as_echo "$at_srcdir/mkfs.at:80: \$GFS_MKFS -p lock_nolock -J 8 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -J 8 $GFS_TGT" "mkfs.at:80" +( $at_check_trace; $GFS_MKFS -p lock_nolock -J 8 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:80" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:80: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:80" +( $at_check_trace; fsck.gfs2 -n $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:80" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:81: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:81" +( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/mkfs.at:81" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "mkfs.at:81" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/mkfs.at:81" +{ set +x +$as_echo "$at_srcdir/mkfs.at:81: \$GFS_MKFS -p lock_nolock -b 1024 \$GFS_TGT 511996" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -b 1024 $GFS_TGT 511996" "mkfs.at:81" +( $at_check_trace; $GFS_MKFS -p lock_nolock -b 1024 $GFS_TGT 511996 +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:81" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:81: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:81" +( $at_check_trace; fsck.gfs2 -n $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:81" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:82: gfs2_edit -p journal0 field di_size \$GFS_TGT | tr -d '\\n'" +at_fn_check_prepare_notrace 'a shell pipeline' "mkfs.at:82" +( $at_check_trace; gfs2_edit -p journal0 field di_size $GFS_TGT | tr -d '\n' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo >>"$at_stdout"; $as_echo "8388608" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:82" +$at_failed && at_fn_log_failure +$at_traceon; } + + set +x + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" +#AT_STOP_14 +#AT_START_15 +at_fn_group_banner 15 'mkfs.at:85' \ + "Max. quota change file size" " " 1 +at_xfail=no +( + $as_echo "15. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/mkfs.at:87: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:87" +( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/mkfs.at:87" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "mkfs.at:87" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/mkfs.at:87" +{ set +x +$as_echo "$at_srcdir/mkfs.at:87: \$GFS_MKFS -p lock_nolock -c 64 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -c 64 $GFS_TGT" "mkfs.at:87" +( $at_check_trace; $GFS_MKFS -p lock_nolock -c 64 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:87" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:87: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:87" +( $at_check_trace; fsck.gfs2 -n $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:87" +$at_failed && at_fn_log_failure +$at_traceon; } + + set +x + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" +#AT_STOP_15 +#AT_START_16 +at_fn_group_banner 16 'mkfs.at:90' \ + "Min. quota change file size" " " 1 +at_xfail=no +( + $as_echo "16. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/mkfs.at:92: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:92" +( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/mkfs.at:92" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "mkfs.at:92" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/mkfs.at:92" +{ set +x +$as_echo "$at_srcdir/mkfs.at:92: \$GFS_MKFS -p lock_nolock -c 1 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -c 1 $GFS_TGT" "mkfs.at:92" +( $at_check_trace; $GFS_MKFS -p lock_nolock -c 1 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:92" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:92: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:92" +( $at_check_trace; fsck.gfs2 -n $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:92" +$at_failed && at_fn_log_failure +$at_traceon; } + + set +x + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" +#AT_STOP_16 +#AT_START_17 +at_fn_group_banner 17 'mkfs.at:95' \ + "Lock table validation" " " 1 +at_xfail=no +( + $as_echo "17. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/mkfs.at:97: \$GFS_MKFS -p lock_nolock -t \"\" \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -t \"\" $GFS_TGT" "mkfs.at:97" +( $at_check_trace; $GFS_MKFS -p lock_nolock -t "" $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 255 $at_status "$at_srcdir/mkfs.at:97" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:98: \$GFS_MKFS -p lock_nolock -t \"123456789012345678901234567890123:12345678\" \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -t \"123456789012345678901234567890123:12345678\" $GFS_TGT" "mkfs.at:98" +( $at_check_trace; $GFS_MKFS -p lock_nolock -t "123456789012345678901234567890123:12345678" $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 255 $at_status "$at_srcdir/mkfs.at:98" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:99: \$GFS_MKFS -p lock_nolock -t \"12345678901234567:1234567890123456789012345678901\" \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -t \"12345678901234567:1234567890123456789012345678901\" $GFS_TGT" "mkfs.at:99" +( $at_check_trace; $GFS_MKFS -p lock_nolock -t "12345678901234567:1234567890123456789012345678901" $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 255 $at_status "$at_srcdir/mkfs.at:99" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:100: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:100" +( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/mkfs.at:100" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "mkfs.at:100" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/mkfs.at:100" +{ set +x +$as_echo "$at_srcdir/mkfs.at:100: \$GFS_MKFS -p lock_nolock -t \"12345678901234567890123456789012:123456789012345678901234567890\" \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -t \"12345678901234567890123456789012:123456789012345678901234567890\" $GFS_TGT" "mkfs.at:100" +( $at_check_trace; $GFS_MKFS -p lock_nolock -t "12345678901234567890123456789012:123456789012345678901234567890" $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:100" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:100: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:100" +( $at_check_trace; fsck.gfs2 -n $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:100" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:101: \$GFS_MKFS -p lock_dlm -t \"\" \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_dlm -t \"\" $GFS_TGT" "mkfs.at:101" +( $at_check_trace; $GFS_MKFS -p lock_dlm -t "" $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 255 $at_status "$at_srcdir/mkfs.at:101" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:102: \$GFS_MKFS -p lock_dlm -t \"quite_long_cluster_name_test_here:intec34p\" \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_dlm -t \"quite_long_cluster_name_test_here:intec34p\" $GFS_TGT" "mkfs.at:102" +( $at_check_trace; $GFS_MKFS -p lock_dlm -t "quite_long_cluster_name_test_here:intec34p" $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 255 $at_status "$at_srcdir/mkfs.at:102" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:103: \$GFS_MKFS -p lock_dlm -t \"financial_cluster:this_time_we_test_fs_naming_len\" \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_dlm -t \"financial_cluster:this_time_we_test_fs_naming_len\" $GFS_TGT" "mkfs.at:103" +( $at_check_trace; $GFS_MKFS -p lock_dlm -t "financial_cluster:this_time_we_test_fs_naming_len" $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 255 $at_status "$at_srcdir/mkfs.at:103" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:104: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:104" +( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/mkfs.at:104" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "mkfs.at:104" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/mkfs.at:104" +{ set +x +$as_echo "$at_srcdir/mkfs.at:104: \$GFS_MKFS -p lock_dlm -t \"a_really_long_named_cluster_here:concurrently_lets_check_fs_len\" \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_dlm -t \"a_really_long_named_cluster_here:concurrently_lets_check_fs_len\" $GFS_TGT" "mkfs.at:104" +( $at_check_trace; $GFS_MKFS -p lock_dlm -t "a_really_long_named_cluster_here:concurrently_lets_check_fs_len" $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:104" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:104: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:104" +( $at_check_trace; fsck.gfs2 -n $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:104" +$at_failed && at_fn_log_failure +$at_traceon; } + + set +x + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" +#AT_STOP_17 +#AT_START_18 +at_fn_group_banner 18 'mkfs.at:114' \ + "Device i/o limits handling" " " 1 +at_xfail=no +( + $as_echo "18. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/mkfs.at:116: \$GFS_MKFS -p lock_nolock -o test_topology=0:0:0:0:0 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -o test_topology=0:0:0:0:0 $GFS_TGT" "mkfs.at:116" +( $at_check_trace; $GFS_MKFS -p lock_nolock -o test_topology=0:0:0:0:0 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:116" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:117: \$GFS_MKFS -p lock_nolock -o test_topology=0:512:512:512:512 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -o test_topology=0:512:512:512:512 $GFS_TGT" "mkfs.at:117" +( $at_check_trace; $GFS_MKFS -p lock_nolock -o test_topology=0:512:512:512:512 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:117" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:118: gfs2_edit -p sb field sb_bsize \$GFS_TGT | tr -d '\\n' " +at_fn_check_prepare_notrace 'a shell pipeline' "mkfs.at:118" +( $at_check_trace; gfs2_edit -p sb field sb_bsize $GFS_TGT | tr -d '\n' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo >>"$at_stdout"; $as_echo "4096" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:118" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:119: \$GFS_MKFS -p lock_nolock -o test_topology=7168:512:0:33553920:512 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -o test_topology=7168:512:0:33553920:512 $GFS_TGT" "mkfs.at:119" +( $at_check_trace; $GFS_MKFS -p lock_nolock -o test_topology=7168:512:0:33553920:512 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:119" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:120: \$GFS_MKFS -p lock_nolock -o test_topology=7168:512:8192:33553920:512 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -o test_topology=7168:512:8192:33553920:512 $GFS_TGT" "mkfs.at:120" +( $at_check_trace; $GFS_MKFS -p lock_nolock -o test_topology=7168:512:8192:33553920:512 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo "Warning: device is not properly aligned. This may harm performance. +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:120" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:122: \$GFS_MKFS -p lock_nolock -o test_topology=0:512:4194304:8388608:512 -b 1024 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -o test_topology=0:512:4194304:8388608:512 -b 1024 $GFS_TGT" "mkfs.at:122" +( $at_check_trace; $GFS_MKFS -p lock_nolock -o test_topology=0:512:4194304:8388608:512 -b 1024 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:122" +$at_failed && at_fn_log_failure +$at_traceon; } + + set +x + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" +#AT_STOP_18 +#AT_START_19 +at_fn_group_banner 19 'mkfs.at:125' \ + "Resource group alignment" " " 1 +at_xfail=no +( + $as_echo "19. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/mkfs.at:127: \$GFS_MKFS -p lock_nolock -o test_topology=0:512:65536:393216:512 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -o test_topology=0:512:65536:393216:512 $GFS_TGT" "mkfs.at:127" +( $at_check_trace; $GFS_MKFS -p lock_nolock -o test_topology=0:512:65536:393216:512 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:127" +$at_failed && at_fn_log_failure +$at_traceon; } + +# Check rgrp alignment to minimum_io_size: 65536 / 4096 == 16 +{ set +x +$as_echo "$at_srcdir/mkfs.at:129: gfs2_edit -p rindex \$GFS_TGT | grep ri_addr | awk '{print \$2, \$2 % 16; if (\$2 % 16 != 0) { exit 1 }}'" +at_fn_check_prepare_notrace 'a shell pipeline' "mkfs.at:129" +( $at_check_trace; gfs2_edit -p rindex $GFS_TGT | grep ri_addr | awk '{print $2, $2 % 16; if ($2 % 16 != 0) { exit 1 }}' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:129" +$at_failed && at_fn_log_failure +$at_traceon; } + +# rhbz#1698858 +{ set +x +$as_echo "$at_srcdir/mkfs.at:131: \$GFS_MKFS -p lock_nolock -o test_topology=0:512:131072:6291456:512 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -o test_topology=0:512:131072:6291456:512 $GFS_TGT" "mkfs.at:131" +( $at_check_trace; $GFS_MKFS -p lock_nolock -o test_topology=0:512:131072:6291456:512 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:131" +$at_failed && at_fn_log_failure +$at_traceon; } + + set +x + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" +#AT_STOP_19 +#AT_START_20 +at_fn_group_banner 20 'mkfs.at:134' \ + "Values of rg_skip" " " 1 +at_xfail=no +( + $as_echo "20. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/mkfs.at:136: \$GFS_MKFS -p lock_nolock -r 2048 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -r 2048 $GFS_TGT" "mkfs.at:136" +( $at_check_trace; $GFS_MKFS -p lock_nolock -r 2048 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:136" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:137: rgskipcheck.sh \$GFS_TGT; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" +at_fn_check_prepare_dynamic "rgskipcheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi" "mkfs.at:137" +( $at_check_trace; rgskipcheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:137" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:138: \$GFS_MKFS -p lock_nolock -r 1024 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -r 1024 $GFS_TGT" "mkfs.at:138" +( $at_check_trace; $GFS_MKFS -p lock_nolock -r 1024 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:138" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:139: rgskipcheck.sh \$GFS_TGT; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" +at_fn_check_prepare_dynamic "rgskipcheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi" "mkfs.at:139" +( $at_check_trace; rgskipcheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:139" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:140: \$GFS_MKFS -p lock_nolock -r 512 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -r 512 $GFS_TGT" "mkfs.at:140" +( $at_check_trace; $GFS_MKFS -p lock_nolock -r 512 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:140" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:141: rgskipcheck.sh \$GFS_TGT; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" +at_fn_check_prepare_dynamic "rgskipcheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi" "mkfs.at:141" +( $at_check_trace; rgskipcheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:141" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:142: \$GFS_MKFS -p lock_nolock -r 219 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -r 219 $GFS_TGT" "mkfs.at:142" +( $at_check_trace; $GFS_MKFS -p lock_nolock -r 219 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:142" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:143: rgskipcheck.sh \$GFS_TGT; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" +at_fn_check_prepare_dynamic "rgskipcheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi" "mkfs.at:143" +( $at_check_trace; rgskipcheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:143" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:144: \$GFS_MKFS -p lock_nolock -r 32 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -r 32 $GFS_TGT" "mkfs.at:144" +( $at_check_trace; $GFS_MKFS -p lock_nolock -r 32 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:144" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:145: rgskipcheck.sh \$GFS_TGT; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" +at_fn_check_prepare_dynamic "rgskipcheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi" "mkfs.at:145" +( $at_check_trace; rgskipcheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:145" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:146: \$GFS_MKFS -p lock_nolock -o test_topology=0:512:65536:393216:512 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -o test_topology=0:512:65536:393216:512 $GFS_TGT" "mkfs.at:146" +( $at_check_trace; $GFS_MKFS -p lock_nolock -o test_topology=0:512:65536:393216:512 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:146" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:147: rgskipcheck.sh \$GFS_TGT; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" +at_fn_check_prepare_dynamic "rgskipcheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi" "mkfs.at:147" +( $at_check_trace; rgskipcheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:147" +$at_failed && at_fn_log_failure +$at_traceon; } + + set +x + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" +#AT_STOP_20 +#AT_START_21 +at_fn_group_banner 21 'mkfs.at:150' \ + "Values of rg_data0, rg_data, rg_bitbytes" " " 1 +at_xfail=no +( + $as_echo "21. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/mkfs.at:152: \$GFS_MKFS -p lock_nolock -r 2048 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -r 2048 $GFS_TGT" "mkfs.at:152" +( $at_check_trace; $GFS_MKFS -p lock_nolock -r 2048 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:152" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:153: rgrifieldscheck.sh \$GFS_TGT; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" +at_fn_check_prepare_dynamic "rgrifieldscheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi" "mkfs.at:153" +( $at_check_trace; rgrifieldscheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:153" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:154: \$GFS_MKFS -p lock_nolock -r 1024 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -r 1024 $GFS_TGT" "mkfs.at:154" +( $at_check_trace; $GFS_MKFS -p lock_nolock -r 1024 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:154" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:155: rgrifieldscheck.sh \$GFS_TGT; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" +at_fn_check_prepare_dynamic "rgrifieldscheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi" "mkfs.at:155" +( $at_check_trace; rgrifieldscheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:155" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:156: \$GFS_MKFS -p lock_nolock -r 512 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -r 512 $GFS_TGT" "mkfs.at:156" +( $at_check_trace; $GFS_MKFS -p lock_nolock -r 512 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:156" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:157: rgrifieldscheck.sh \$GFS_TGT; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" +at_fn_check_prepare_dynamic "rgrifieldscheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi" "mkfs.at:157" +( $at_check_trace; rgrifieldscheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:157" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:158: \$GFS_MKFS -p lock_nolock -r 219 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -r 219 $GFS_TGT" "mkfs.at:158" +( $at_check_trace; $GFS_MKFS -p lock_nolock -r 219 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:158" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:159: rgrifieldscheck.sh \$GFS_TGT; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" +at_fn_check_prepare_dynamic "rgrifieldscheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi" "mkfs.at:159" +( $at_check_trace; rgrifieldscheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:159" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:160: \$GFS_MKFS -p lock_nolock -r 32 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -r 32 $GFS_TGT" "mkfs.at:160" +( $at_check_trace; $GFS_MKFS -p lock_nolock -r 32 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:160" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:161: rgrifieldscheck.sh \$GFS_TGT; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" +at_fn_check_prepare_dynamic "rgrifieldscheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi" "mkfs.at:161" +( $at_check_trace; rgrifieldscheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:161" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:162: \$GFS_MKFS -p lock_nolock -o test_topology=0:512:65536:393216:512 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -o test_topology=0:512:65536:393216:512 $GFS_TGT" "mkfs.at:162" +( $at_check_trace; $GFS_MKFS -p lock_nolock -o test_topology=0:512:65536:393216:512 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:162" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:163: rgrifieldscheck.sh \$GFS_TGT; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" +at_fn_check_prepare_dynamic "rgrifieldscheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi" "mkfs.at:163" +( $at_check_trace; rgrifieldscheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:163" +$at_failed && at_fn_log_failure +$at_traceon; } + + set +x + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" +#AT_STOP_21 +#AT_START_22 +at_fn_group_banner 22 'mkfs.at:166' \ + "Small filesystems" " " 1 +at_xfail=no +( + $as_echo "22. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/mkfs.at:168: rm -f \$GFS_TGT && truncate -s 32M \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:168" +( $at_check_trace; rm -f $GFS_TGT && truncate -s 32M ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/mkfs.at:168" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "mkfs.at:168" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/mkfs.at:168" +{ set +x +$as_echo "$at_srcdir/mkfs.at:169: \$GFS_MKFS -p lock_nolock \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock $GFS_TGT" "mkfs.at:169" +( $at_check_trace; $GFS_MKFS -p lock_nolock $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:169" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:170: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:170" +( $at_check_trace; fsck.gfs2 -n $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:170" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:171: rm -f \$GFS_TGT && truncate -s 64M \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:171" +( $at_check_trace; rm -f $GFS_TGT && truncate -s 64M ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/mkfs.at:171" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "mkfs.at:171" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/mkfs.at:171" +{ set +x +$as_echo "$at_srcdir/mkfs.at:172: \$GFS_MKFS -p lock_nolock -j2 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -j2 $GFS_TGT" "mkfs.at:172" +( $at_check_trace; $GFS_MKFS -p lock_nolock -j2 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:172" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:173: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:173" +( $at_check_trace; fsck.gfs2 -n $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:173" +$at_failed && at_fn_log_failure +$at_traceon; } + + set +x + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" +#AT_STOP_22 +#AT_START_23 +at_fn_group_banner 23 'fsck.at:4' \ + "Conflicting options" " " 2 +at_xfail=no +( + $as_echo "23. $at_setup_line: testing $at_desc ..." + $at_traceon + + +# Error code 16 is FSCK_USAGE +{ set +x +$as_echo "$at_srcdir/fsck.at:7: fsck.gfs2 -y -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -y -n $GFS_TGT" "fsck.at:7" +( $at_check_trace; fsck.gfs2 -y -n $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 16 $at_status "$at_srcdir/fsck.at:7" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/fsck.at:8: fsck.gfs2 -n -y \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n -y $GFS_TGT" "fsck.at:8" +( $at_check_trace; fsck.gfs2 -n -y $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 16 $at_status "$at_srcdir/fsck.at:8" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/fsck.at:9: fsck.gfs2 -n -p \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n -p $GFS_TGT" "fsck.at:9" +( $at_check_trace; fsck.gfs2 -n -p $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 16 $at_status "$at_srcdir/fsck.at:9" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/fsck.at:10: fsck.gfs2 -p -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -p -n $GFS_TGT" "fsck.at:10" +( $at_check_trace; fsck.gfs2 -p -n $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 16 $at_status "$at_srcdir/fsck.at:10" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/fsck.at:11: fsck.gfs2 -y -p \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -y -p $GFS_TGT" "fsck.at:11" +( $at_check_trace; fsck.gfs2 -y -p $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 16 $at_status "$at_srcdir/fsck.at:11" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/fsck.at:12: fsck.gfs2 -p -y \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -p -y $GFS_TGT" "fsck.at:12" +( $at_check_trace; fsck.gfs2 -p -y $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 16 $at_status "$at_srcdir/fsck.at:12" +$at_failed && at_fn_log_failure +$at_traceon; } + + set +x + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" +#AT_STOP_23 +#AT_START_24 +at_fn_group_banner 24 'fsck.at:15' \ + "Fix invalid block sizes" " " 2 +at_xfail=no +( + $as_echo "24. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/fsck.at:17: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "fsck.at:17" +( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/fsck.at:17" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "fsck.at:17" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/fsck.at:17" +{ set +x +$as_echo "$at_srcdir/fsck.at:17: mkfs.gfs2 -O -p lock_nolock \$GFS_TGT" +at_fn_check_prepare_dynamic "mkfs.gfs2 -O -p lock_nolock $GFS_TGT" "fsck.at:17" +( $at_check_trace; mkfs.gfs2 -O -p lock_nolock $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/fsck.at:17" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/fsck.at:17: echo \"set sb { sb_bsize: 0 }\" | gfs2l \${GFS_TGT}; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "fsck.at:17" +( $at_check_trace; echo "set sb { sb_bsize: 0 }" | gfs2l ${GFS_TGT}; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/fsck.at:17" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/fsck.at:17: fsck.gfs2 -y \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -y $GFS_TGT" "fsck.at:17" +( $at_check_trace; fsck.gfs2 -y $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 1 $at_status "$at_srcdir/fsck.at:17" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/fsck.at:17: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "fsck.at:17" +( $at_check_trace; fsck.gfs2 -n $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/fsck.at:17" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/fsck.at:18: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "fsck.at:18" +( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/fsck.at:18" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "fsck.at:18" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/fsck.at:18" +{ set +x +$as_echo "$at_srcdir/fsck.at:18: mkfs.gfs2 -O -p lock_nolock \$GFS_TGT" +at_fn_check_prepare_dynamic "mkfs.gfs2 -O -p lock_nolock $GFS_TGT" "fsck.at:18" +( $at_check_trace; mkfs.gfs2 -O -p lock_nolock $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/fsck.at:18" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/fsck.at:18: echo \"set sb { sb_bsize: 1 }\" | gfs2l \${GFS_TGT}; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "fsck.at:18" +( $at_check_trace; echo "set sb { sb_bsize: 1 }" | gfs2l ${GFS_TGT}; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/fsck.at:18" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/fsck.at:18: fsck.gfs2 -y \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -y $GFS_TGT" "fsck.at:18" +( $at_check_trace; fsck.gfs2 -y $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 1 $at_status "$at_srcdir/fsck.at:18" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/fsck.at:18: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "fsck.at:18" +( $at_check_trace; fsck.gfs2 -n $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/fsck.at:18" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/fsck.at:19: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "fsck.at:19" +( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/fsck.at:19" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "fsck.at:19" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/fsck.at:19" +{ set +x +$as_echo "$at_srcdir/fsck.at:19: mkfs.gfs2 -O -p lock_nolock \$GFS_TGT" +at_fn_check_prepare_dynamic "mkfs.gfs2 -O -p lock_nolock $GFS_TGT" "fsck.at:19" +( $at_check_trace; mkfs.gfs2 -O -p lock_nolock $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/fsck.at:19" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/fsck.at:19: echo \"set sb { sb_bsize: 513 }\" | gfs2l \${GFS_TGT}; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "fsck.at:19" +( $at_check_trace; echo "set sb { sb_bsize: 513 }" | gfs2l ${GFS_TGT}; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/fsck.at:19" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/fsck.at:19: fsck.gfs2 -y \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -y $GFS_TGT" "fsck.at:19" +( $at_check_trace; fsck.gfs2 -y $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 1 $at_status "$at_srcdir/fsck.at:19" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/fsck.at:19: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "fsck.at:19" +( $at_check_trace; fsck.gfs2 -n $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/fsck.at:19" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/fsck.at:20: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "fsck.at:20" +( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/fsck.at:20" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "fsck.at:20" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/fsck.at:20" +{ set +x +$as_echo "$at_srcdir/fsck.at:20: mkfs.gfs2 -O -p lock_nolock \$GFS_TGT" +at_fn_check_prepare_dynamic "mkfs.gfs2 -O -p lock_nolock $GFS_TGT" "fsck.at:20" +( $at_check_trace; mkfs.gfs2 -O -p lock_nolock $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/fsck.at:20" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/fsck.at:20: echo \"set sb { sb_bsize: 4095 }\" | gfs2l \${GFS_TGT}; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "fsck.at:20" +( $at_check_trace; echo "set sb { sb_bsize: 4095 }" | gfs2l ${GFS_TGT}; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/fsck.at:20" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/fsck.at:20: fsck.gfs2 -y \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -y $GFS_TGT" "fsck.at:20" +( $at_check_trace; fsck.gfs2 -y $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 1 $at_status "$at_srcdir/fsck.at:20" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/fsck.at:20: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "fsck.at:20" +( $at_check_trace; fsck.gfs2 -n $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/fsck.at:20" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/fsck.at:21: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "fsck.at:21" +( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/fsck.at:21" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "fsck.at:21" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/fsck.at:21" +{ set +x +$as_echo "$at_srcdir/fsck.at:21: mkfs.gfs2 -O -p lock_nolock \$GFS_TGT" +at_fn_check_prepare_dynamic "mkfs.gfs2 -O -p lock_nolock $GFS_TGT" "fsck.at:21" +( $at_check_trace; mkfs.gfs2 -O -p lock_nolock $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/fsck.at:21" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/fsck.at:21: echo \"set sb { sb_bsize: 4097 }\" | gfs2l \${GFS_TGT}; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "fsck.at:21" +( $at_check_trace; echo "set sb { sb_bsize: 4097 }" | gfs2l ${GFS_TGT}; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/fsck.at:21" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/fsck.at:21: fsck.gfs2 -y \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -y $GFS_TGT" "fsck.at:21" +( $at_check_trace; fsck.gfs2 -y $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 1 $at_status "$at_srcdir/fsck.at:21" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/fsck.at:21: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "fsck.at:21" +( $at_check_trace; fsck.gfs2 -n $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/fsck.at:21" +$at_failed && at_fn_log_failure +$at_traceon; } + + set +x + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" +#AT_STOP_24 +#AT_START_25 +at_fn_group_banner 25 'fsck.at:24' \ + "Fix invalid goal blocks" " " 2 +at_xfail=no +( + $as_echo "25. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/fsck.at:26: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "fsck.at:26" +( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/fsck.at:26" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "fsck.at:26" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/fsck.at:26" +{ set +x +$as_echo "$at_srcdir/fsck.at:26: mkfs.gfs2 -O -p lock_nolock \$GFS_TGT" +at_fn_check_prepare_dynamic "mkfs.gfs2 -O -p lock_nolock $GFS_TGT" "fsck.at:26" +( $at_check_trace; mkfs.gfs2 -O -p lock_nolock $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/fsck.at:26" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/fsck.at:26: echo \"set '/' { di_goal_meta: 0 }\" | gfs2l \${GFS_TGT}; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "fsck.at:26" +( $at_check_trace; echo "set '/' { di_goal_meta: 0 }" | gfs2l ${GFS_TGT}; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/fsck.at:26" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/fsck.at:26: fsck.gfs2 -y \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -y $GFS_TGT" "fsck.at:26" +( $at_check_trace; fsck.gfs2 -y $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 1 $at_status "$at_srcdir/fsck.at:26" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/fsck.at:26: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "fsck.at:26" +( $at_check_trace; fsck.gfs2 -n $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/fsck.at:26" +$at_failed && at_fn_log_failure +$at_traceon; } + + set +x + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" +#AT_STOP_25 +#AT_START_26 +at_fn_group_banner 26 'fsck.at:29' \ + "Fix bad resource group #0" " " 2 +at_xfail=no +( + $as_echo "26. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/fsck.at:31: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "fsck.at:31" +( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/fsck.at:31" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "fsck.at:31" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/fsck.at:31" +{ set +x +$as_echo "$at_srcdir/fsck.at:31: mkfs.gfs2 -O -p lock_nolock \$GFS_TGT" +at_fn_check_prepare_dynamic "mkfs.gfs2 -O -p lock_nolock $GFS_TGT" "fsck.at:31" +( $at_check_trace; mkfs.gfs2 -O -p lock_nolock $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/fsck.at:31" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/fsck.at:31: nukerg -r 0 \$GFS_TGT; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" +at_fn_check_prepare_dynamic "nukerg -r 0 $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi" "fsck.at:31" +( $at_check_trace; nukerg -r 0 $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/fsck.at:31" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/fsck.at:31: fsck.gfs2 -y \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -y $GFS_TGT" "fsck.at:31" +( $at_check_trace; fsck.gfs2 -y $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 1 $at_status "$at_srcdir/fsck.at:31" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/fsck.at:31: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "fsck.at:31" +( $at_check_trace; fsck.gfs2 -n $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/fsck.at:31" +$at_failed && at_fn_log_failure +$at_traceon; } + + set +x + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" +#AT_STOP_26 +#AT_START_27 +at_fn_group_banner 27 'fsck.at:34' \ + "Fix bad resource group #1" " " 2 +at_xfail=no +( + $as_echo "27. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/fsck.at:36: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "fsck.at:36" +( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/fsck.at:36" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "fsck.at:36" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/fsck.at:36" +{ set +x +$as_echo "$at_srcdir/fsck.at:36: mkfs.gfs2 -O -p lock_nolock \$GFS_TGT" +at_fn_check_prepare_dynamic "mkfs.gfs2 -O -p lock_nolock $GFS_TGT" "fsck.at:36" +( $at_check_trace; mkfs.gfs2 -O -p lock_nolock $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/fsck.at:36" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/fsck.at:36: nukerg -r 1 \$GFS_TGT; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" +at_fn_check_prepare_dynamic "nukerg -r 1 $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi" "fsck.at:36" +( $at_check_trace; nukerg -r 1 $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/fsck.at:36" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/fsck.at:36: fsck.gfs2 -y \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -y $GFS_TGT" "fsck.at:36" +( $at_check_trace; fsck.gfs2 -y $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 1 $at_status "$at_srcdir/fsck.at:36" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/fsck.at:36: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "fsck.at:36" +( $at_check_trace; fsck.gfs2 -n $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/fsck.at:36" +$at_failed && at_fn_log_failure +$at_traceon; } + + set +x + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" +#AT_STOP_27 +#AT_START_28 +at_fn_group_banner 28 'fsck.at:44' \ + "Fix bad rindex entry #1" " " 2 +at_xfail=no +( + $as_echo "28. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/fsck.at:46: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "fsck.at:46" +( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/fsck.at:46" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "fsck.at:46" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/fsck.at:46" +{ set +x +$as_echo "$at_srcdir/fsck.at:46: mkfs.gfs2 -O -p lock_nolock \$GFS_TGT" +at_fn_check_prepare_dynamic "mkfs.gfs2 -O -p lock_nolock $GFS_TGT" "fsck.at:46" +( $at_check_trace; mkfs.gfs2 -O -p lock_nolock $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/fsck.at:46" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/fsck.at:46: nukerg -i 1 \$GFS_TGT; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" +at_fn_check_prepare_dynamic "nukerg -i 1 $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi" "fsck.at:46" +( $at_check_trace; nukerg -i 1 $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/fsck.at:46" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/fsck.at:46: fsck.gfs2 -y \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -y $GFS_TGT" "fsck.at:46" +( $at_check_trace; fsck.gfs2 -y $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 1 $at_status "$at_srcdir/fsck.at:46" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/fsck.at:46: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "fsck.at:46" +( $at_check_trace; fsck.gfs2 -n $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/fsck.at:46" +$at_failed && at_fn_log_failure +$at_traceon; } + + set +x + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" +#AT_STOP_28 +#AT_START_29 +at_fn_group_banner 29 'fsck.at:49' \ + "Rebuild bad journal" " " 2 +at_xfail=no +( + $as_echo "29. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/fsck.at:51: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "fsck.at:51" +( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/fsck.at:51" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "fsck.at:51" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/fsck.at:51" +{ set +x +$as_echo "$at_srcdir/fsck.at:52: mkfs.gfs2 -O -p lock_nolock \$GFS_TGT" +at_fn_check_prepare_dynamic "mkfs.gfs2 -O -p lock_nolock $GFS_TGT" "fsck.at:52" +( $at_check_trace; mkfs.gfs2 -O -p lock_nolock $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/fsck.at:52" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/fsck.at:53: gfs2_edit -p journal0 field di_header.mh_magic 0 \$GFS_TGT" +at_fn_check_prepare_dynamic "gfs2_edit -p journal0 field di_header.mh_magic 0 $GFS_TGT" "fsck.at:53" +( $at_check_trace; gfs2_edit -p journal0 field di_header.mh_magic 0 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/fsck.at:53" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/fsck.at:54: fsck.gfs2 -y \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -y $GFS_TGT" "fsck.at:54" +( $at_check_trace; fsck.gfs2 -y $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 1 $at_status "$at_srcdir/fsck.at:54" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/fsck.at:55: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "fsck.at:55" +( $at_check_trace; fsck.gfs2 -n $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/fsck.at:55" +$at_failed && at_fn_log_failure +$at_traceon; } + + set +x + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" +#AT_STOP_29 +#AT_START_30 +at_fn_group_banner 30 'fsck.at:58' \ + "gfs2 format versions" " " 2 +at_xfail=no +( + $as_echo "30. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/fsck.at:60: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "fsck.at:60" +( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/fsck.at:60" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "fsck.at:60" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/fsck.at:60" +{ set +x +$as_echo "$at_srcdir/fsck.at:61: mkfs.gfs2 -O -p lock_nolock \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "fsck.at:61" +( $at_check_trace; mkfs.gfs2 -O -p lock_nolock ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/fsck.at:61" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/fsck.at:62: echo \"set sb { sb_fs_format: 1802 }\" | gfs2l \${GFS_TGT}; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "fsck.at:62" +( $at_check_trace; echo "set sb { sb_fs_format: 1802 }" | gfs2l ${GFS_TGT}; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/fsck.at:62" +$at_failed && at_fn_log_failure +$at_traceon; } + +# Unsupported format, FSCK_USAGE == 16 +{ set +x +$as_echo "$at_srcdir/fsck.at:64: fsck.gfs2 -y \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -y $GFS_TGT" "fsck.at:64" +( $at_check_trace; fsck.gfs2 -y $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 16 $at_status "$at_srcdir/fsck.at:64" +$at_failed && at_fn_log_failure +$at_traceon; } + +# Format out of range +{ set +x +$as_echo "$at_srcdir/fsck.at:66: echo \"set sb { sb_fs_format: 4242 }\" | gfs2l \${GFS_TGT}; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "fsck.at:66" +( $at_check_trace; echo "set sb { sb_fs_format: 4242 }" | gfs2l ${GFS_TGT}; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/fsck.at:66" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/fsck.at:67: fsck.gfs2 -y \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -y $GFS_TGT" "fsck.at:67" +( $at_check_trace; fsck.gfs2 -y $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 1 $at_status "$at_srcdir/fsck.at:67" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/fsck.at:68: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "fsck.at:68" +( $at_check_trace; fsck.gfs2 -n $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/fsck.at:68" +$at_failed && at_fn_log_failure +$at_traceon; } + + set +x + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" +#AT_STOP_30 +#AT_START_31 +at_fn_group_banner 31 'edit.at:4' \ + "Save/restoremeta, defaults" " " 3 +at_xfail=no +( + $as_echo "31. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/edit.at:6: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "edit.at:6" +( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/edit.at:6" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "edit.at:6" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/edit.at:6" +{ set +x +$as_echo "$at_srcdir/edit.at:7: \$GFS_MKFS -p lock_nolock \$GFS_TGT \$((\$(gfs_max_blocks 4096)/2))" +at_fn_check_prepare_notrace 'a $(...) command substitution' "edit.at:7" +( $at_check_trace; $GFS_MKFS -p lock_nolock $GFS_TGT $(($(gfs_max_blocks 4096)/2)) +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/edit.at:7" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/edit.at:8: gfs2_edit savemeta \$GFS_TGT test.meta > savemeta.log" +at_fn_check_prepare_dynamic "gfs2_edit savemeta $GFS_TGT test.meta > savemeta.log" "edit.at:8" +( $at_check_trace; gfs2_edit savemeta $GFS_TGT test.meta > savemeta.log +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/edit.at:8" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/edit.at:9: head -2 savemeta.log" +at_fn_check_prepare_trace "edit.at:9" +( $at_check_trace; head -2 savemeta.log +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo >>"$at_stdout"; $as_echo "There are 1310716 blocks of 4096 bytes in the filesystem. +Filesystem size: 5.00GB +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/edit.at:9" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/edit.at:12: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "edit.at:12" +( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/edit.at:12" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "edit.at:12" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/edit.at:12" +{ set +x +$as_echo "$at_srcdir/edit.at:13: gfs2_edit restoremeta test.meta \$GFS_TGT" +at_fn_check_prepare_dynamic "gfs2_edit restoremeta test.meta $GFS_TGT" "edit.at:13" +( $at_check_trace; gfs2_edit restoremeta test.meta $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/edit.at:13" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/edit.at:14: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "edit.at:14" +( $at_check_trace; fsck.gfs2 -n $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/edit.at:14" +$at_failed && at_fn_log_failure +$at_traceon; } + + set +x + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" +#AT_STOP_31 +#AT_START_32 +at_fn_group_banner 32 'edit.at:17' \ + "Save/restoremeta, no compression" " " 3 +at_xfail=no +( + $as_echo "32. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/edit.at:19: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "edit.at:19" +( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/edit.at:19" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "edit.at:19" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/edit.at:19" +{ set +x +$as_echo "$at_srcdir/edit.at:20: \$GFS_MKFS -p lock_nolock \$GFS_TGT \$((\$(gfs_max_blocks 4096)/2))" +at_fn_check_prepare_notrace 'a $(...) command substitution' "edit.at:20" +( $at_check_trace; $GFS_MKFS -p lock_nolock $GFS_TGT $(($(gfs_max_blocks 4096)/2)) +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/edit.at:20" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/edit.at:21: gfs2_edit savemeta -z0 \$GFS_TGT test.meta" +at_fn_check_prepare_dynamic "gfs2_edit savemeta -z0 $GFS_TGT test.meta" "edit.at:21" +( $at_check_trace; gfs2_edit savemeta -z0 $GFS_TGT test.meta +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/edit.at:21" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/edit.at:22: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "edit.at:22" +( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/edit.at:22" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "edit.at:22" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/edit.at:22" +{ set +x +$as_echo "$at_srcdir/edit.at:23: gfs2_edit restoremeta test.meta \$GFS_TGT" +at_fn_check_prepare_dynamic "gfs2_edit restoremeta test.meta $GFS_TGT" "edit.at:23" +( $at_check_trace; gfs2_edit restoremeta test.meta $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/edit.at:23" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/edit.at:24: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "edit.at:24" +( $at_check_trace; fsck.gfs2 -n $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/edit.at:24" +$at_failed && at_fn_log_failure +$at_traceon; } + + set +x + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" +#AT_STOP_32 +#AT_START_33 +at_fn_group_banner 33 'edit.at:27' \ + "Save/restoremeta, min. block size" " " 3 +at_xfail=no +( + $as_echo "33. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/edit.at:29: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "edit.at:29" +( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/edit.at:29" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "edit.at:29" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/edit.at:29" +{ set +x +$as_echo "$at_srcdir/edit.at:30: \$GFS_MKFS -p lock_nolock -b512 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -b512 $GFS_TGT" "edit.at:30" +( $at_check_trace; $GFS_MKFS -p lock_nolock -b512 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/edit.at:30" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/edit.at:31: gfs2_edit savemeta -z0 \$GFS_TGT test.meta" +at_fn_check_prepare_dynamic "gfs2_edit savemeta -z0 $GFS_TGT test.meta" "edit.at:31" +( $at_check_trace; gfs2_edit savemeta -z0 $GFS_TGT test.meta +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/edit.at:31" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/edit.at:32: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "edit.at:32" +( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/edit.at:32" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "edit.at:32" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/edit.at:32" +{ set +x +$as_echo "$at_srcdir/edit.at:33: gfs2_edit restoremeta test.meta \$GFS_TGT" +at_fn_check_prepare_dynamic "gfs2_edit restoremeta test.meta $GFS_TGT" "edit.at:33" +( $at_check_trace; gfs2_edit restoremeta test.meta $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/edit.at:33" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/edit.at:34: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "edit.at:34" +( $at_check_trace; fsck.gfs2 -n $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/edit.at:34" +$at_failed && at_fn_log_failure +$at_traceon; } + + set +x + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" +#AT_STOP_33 +#AT_START_34 +at_fn_group_banner 34 'edit.at:37' \ + "Save/restoremeta, 4 journals" " " 3 +at_xfail=no +( + $as_echo "34. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/edit.at:39: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "edit.at:39" +( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/edit.at:39" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "edit.at:39" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/edit.at:39" +{ set +x +$as_echo "$at_srcdir/edit.at:40: \$GFS_MKFS -p lock_nolock -j4 -J8 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -j4 -J8 $GFS_TGT" "edit.at:40" +( $at_check_trace; $GFS_MKFS -p lock_nolock -j4 -J8 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/edit.at:40" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/edit.at:41: gfs2_edit savemeta -z0 \$GFS_TGT test.meta" +at_fn_check_prepare_dynamic "gfs2_edit savemeta -z0 $GFS_TGT test.meta" "edit.at:41" +( $at_check_trace; gfs2_edit savemeta -z0 $GFS_TGT test.meta +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/edit.at:41" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/edit.at:42: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "edit.at:42" +( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/edit.at:42" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "edit.at:42" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/edit.at:42" +{ set +x +$as_echo "$at_srcdir/edit.at:43: gfs2_edit restoremeta test.meta \$GFS_TGT" +at_fn_check_prepare_dynamic "gfs2_edit restoremeta test.meta $GFS_TGT" "edit.at:43" +( $at_check_trace; gfs2_edit restoremeta test.meta $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/edit.at:43" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/edit.at:44: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "edit.at:44" +( $at_check_trace; fsck.gfs2 -n $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/edit.at:44" +$at_failed && at_fn_log_failure +$at_traceon; } + + set +x + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" +#AT_STOP_34 +#AT_START_35 +at_fn_group_banner 35 'edit.at:47' \ + "Save/restoremeta, min. block size, 4 journals" " " 3 +at_xfail=no +( + $as_echo "35. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/edit.at:49: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "edit.at:49" +( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/edit.at:49" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "edit.at:49" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/edit.at:49" +{ set +x +$as_echo "$at_srcdir/edit.at:50: \$GFS_MKFS -p lock_nolock -b512 -j4 -J8 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -b512 -j4 -J8 $GFS_TGT" "edit.at:50" +( $at_check_trace; $GFS_MKFS -p lock_nolock -b512 -j4 -J8 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/edit.at:50" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/edit.at:51: gfs2_edit savemeta -z0 \$GFS_TGT test.meta" +at_fn_check_prepare_dynamic "gfs2_edit savemeta -z0 $GFS_TGT test.meta" "edit.at:51" +( $at_check_trace; gfs2_edit savemeta -z0 $GFS_TGT test.meta +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/edit.at:51" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/edit.at:52: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "edit.at:52" +( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/edit.at:52" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "edit.at:52" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/edit.at:52" +{ set +x +$as_echo "$at_srcdir/edit.at:53: gfs2_edit restoremeta test.meta \$GFS_TGT" +at_fn_check_prepare_dynamic "gfs2_edit restoremeta test.meta $GFS_TGT" "edit.at:53" +( $at_check_trace; gfs2_edit restoremeta test.meta $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/edit.at:53" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/edit.at:54: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "edit.at:54" +( $at_check_trace; fsck.gfs2 -n $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/edit.at:54" +$at_failed && at_fn_log_failure +$at_traceon; } + + set +x + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" +#AT_STOP_35 +#AT_START_36 +at_fn_group_banner 36 'edit.at:57' \ + "Save metadata to /dev/null" " " 3 +at_xfail=no +( + $as_echo "36. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/edit.at:59: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "edit.at:59" +( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/edit.at:59" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "edit.at:59" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/edit.at:59" +{ set +x +$as_echo "$at_srcdir/edit.at:60: \$GFS_MKFS -p lock_nolock \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock $GFS_TGT" "edit.at:60" +( $at_check_trace; $GFS_MKFS -p lock_nolock $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/edit.at:60" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/edit.at:61: gfs2_edit savemeta -z0 \$GFS_TGT /dev/null" +at_fn_check_prepare_dynamic "gfs2_edit savemeta -z0 $GFS_TGT /dev/null" "edit.at:61" +( $at_check_trace; gfs2_edit savemeta -z0 $GFS_TGT /dev/null +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/edit.at:61" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/edit.at:62: gfs2_edit savemeta \$GFS_TGT /dev/null" +at_fn_check_prepare_dynamic "gfs2_edit savemeta $GFS_TGT /dev/null" "edit.at:62" +( $at_check_trace; gfs2_edit savemeta $GFS_TGT /dev/null +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/edit.at:62" +$at_failed && at_fn_log_failure +$at_traceon; } + + set +x + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" +#AT_STOP_36 +#AT_START_37 +at_fn_group_banner 37 'libgfs2.at:3' \ + "meta.c" " " 4 +at_xfail=no +( + $as_echo "37. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/libgfs2.at:3: test x\"\$ENABLE_UNIT_TESTS\" = \"xyes\" || exit 77" +at_fn_check_prepare_dynamic "test x\"$ENABLE_UNIT_TESTS\" = \"xyes\" || exit 77" "libgfs2.at:3" +( $at_check_trace; test x"$ENABLE_UNIT_TESTS" = "xyes" || exit 77 +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/libgfs2.at:3" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/libgfs2.at:4: check_meta; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" +at_fn_check_prepare_dynamic "check_meta; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi" "libgfs2.at:4" +( $at_check_trace; check_meta; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/libgfs2.at:4" +$at_failed && at_fn_log_failure +$at_traceon; } + + set +x + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" +#AT_STOP_37 +#AT_START_38 +at_fn_group_banner 38 'libgfs2.at:7' \ + "rgrp.c" " " 4 +at_xfail=no +( + $as_echo "38. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/libgfs2.at:7: test x\"\$ENABLE_UNIT_TESTS\" = \"xyes\" || exit 77" +at_fn_check_prepare_dynamic "test x\"$ENABLE_UNIT_TESTS\" = \"xyes\" || exit 77" "libgfs2.at:7" +( $at_check_trace; test x"$ENABLE_UNIT_TESTS" = "xyes" || exit 77 +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/libgfs2.at:7" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/libgfs2.at:8: check_rgrp; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" +at_fn_check_prepare_dynamic "check_rgrp; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi" "libgfs2.at:8" +( $at_check_trace; check_rgrp; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/libgfs2.at:8" +$at_failed && at_fn_log_failure +$at_traceon; } + + set +x + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" +#AT_STOP_38 From bcaa73a827b52fff11233fc77ddff381c8cd951b Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Fri, 18 Dec 2020 23:16:45 +0000 Subject: [PATCH 56/75] Add BuildRequires: make https://fedoraproject.org/wiki/Changes/Remove_make_from_BuildRoot --- gfs2-utils.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/gfs2-utils.spec b/gfs2-utils.spec index d98ea3e..43f9258 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -18,6 +18,7 @@ BuildRequires: libblkid-devel BuildRequires: libuuid-devel BuildRequires: check-devel BuildRequires: bzip2-devel +BuildRequires: make Source: https://releases.pagure.org/gfs2-utils/gfs2-utils-%{version}.tar.gz URL: https://pagure.io/gfs2-utils From ee35a59aa69819cc565a9e9f579f7bad8e6e315c Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Tue, 26 Jan 2021 06:43:58 +0000 Subject: [PATCH 57/75] - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- gfs2-utils.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gfs2-utils.spec b/gfs2-utils.spec index 43f9258..21945cc 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -1,6 +1,6 @@ Name: gfs2-utils Version: 3.3.0 -Release: 2%{?dist} +Release: 3%{?dist} License: GPLv2+ and LGPLv2+ Summary: Utilities for managing the global file system (GFS2) %ifnarch %{arm} @@ -63,6 +63,9 @@ modifying, and correcting inconsistencies in GFS2 file systems. %{_prefix}/lib/udev/rules.d/82-gfs2-withdraw.rules %changelog +* Tue Jan 26 2021 Fedora Release Engineering - 3.3.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + * Thu Sep 03 2020 Andrew Price - 3.3.0-2 - Version bump to enable gating tests From f0844f330876cde005a1e39f3b1e090b6e459dd7 Mon Sep 17 00:00:00 2001 From: Andrew Price Date: Mon, 8 Mar 2021 16:33:08 +0000 Subject: [PATCH 58/75] * Mon Mar 08 2021 Andrew Price - 3.4.0-1 - New upstream version - Update testsuite script --- .gitignore | 1 + gfs2-utils.spec | 8 +- sources | 2 +- tests/testsuite | 1878 +++++++++++++++++++++++++---------------------- 4 files changed, 1021 insertions(+), 868 deletions(-) diff --git a/.gitignore b/.gitignore index 17c9025..facb12a 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /gfs2-utils-3.3.0.tar.gz +/gfs2-utils-3.4.0.tar.gz diff --git a/gfs2-utils.spec b/gfs2-utils.spec index 21945cc..8616ac3 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -1,6 +1,6 @@ Name: gfs2-utils -Version: 3.3.0 -Release: 3%{?dist} +Version: 3.4.0 +Release: 1%{?dist} License: GPLv2+ and LGPLv2+ Summary: Utilities for managing the global file system (GFS2) %ifnarch %{arm} @@ -63,6 +63,10 @@ modifying, and correcting inconsistencies in GFS2 file systems. %{_prefix}/lib/udev/rules.d/82-gfs2-withdraw.rules %changelog +* Mon Mar 08 2021 Andrew Price - 3.4.0-1 +- New upstream version +- Update testsuite script + * Tue Jan 26 2021 Fedora Release Engineering - 3.3.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild diff --git a/sources b/sources index 8115dd5..f879e91 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (gfs2-utils-3.3.0.tar.gz) = b5ed1fb91eaf88fd163b682a73a3f54efd000e513206aba90e6286e68d8b13c325373da1bde94c8f48c0d235b60f22f6269f9103c508aebf13b15d9470b745d0 +SHA512 (gfs2-utils-3.4.0.tar.gz) = 01d3f582705a5dc9ee9919d3cd5798118233797f1400a7d2387a2e5072cdc347c6d5c8140aa242c0d00a2b26f31ae19386938f22761c76b3dbfb7a71f97c7420 diff --git a/tests/testsuite b/tests/testsuite index 2444415..7619c86 100755 --- a/tests/testsuite +++ b/tests/testsuite @@ -586,7 +586,8 @@ at_color=auto # List of the tested programs. at_tested='mkfs.gfs2 fsck.gfs2 -gfs2_edit' +gfs2_edit +tunegfs2' # As many question marks as there are digits in the last test group number. # Used to normalize the test group numbers so that `ls' lists them in # numerical order. @@ -597,39 +598,39 @@ at_help_all="1;mkfs.at:4;Locking protocol validation;mkfs.gfs2 mkfs; 3;mkfs.at:15;Journal size validation;mkfs.gfs2 mkfs; 4;mkfs.at:21;Block count validation;mkfs.gfs2 mkfs; 5;mkfs.at:28;Quota change file size validation;mkfs.gfs2 mkfs; -6;mkfs.at:34;Locking protocols;mkfs.gfs2 mkfs; -7;mkfs.at:40;Valid block sizes 512-4096;mkfs.gfs2 mkfs; -8;mkfs.at:48;Max. blocks, min. block size;mkfs.gfs2 mkfs; -9;mkfs.at:53;Max. blocks, max. block size;mkfs.gfs2 mkfs; -10;mkfs.at:58;Max. resource group size;mkfs.gfs2 mkfs; -11;mkfs.at:63;Min. resource group size;mkfs.gfs2 mkfs; -12;mkfs.at:68;Max. resource group size, min. block size;mkfs.gfs2 mkfs; -13;mkfs.at:73;Max. journal size;mkfs.gfs2 mkfs; -14;mkfs.at:78;Min. journal size;mkfs.gfs2 mkfs; -15;mkfs.at:85;Max. quota change file size;mkfs.gfs2 mkfs; -16;mkfs.at:90;Min. quota change file size;mkfs.gfs2 mkfs; -17;mkfs.at:95;Lock table validation;mkfs.gfs2 mkfs; -18;mkfs.at:114;Device i/o limits handling;mkfs.gfs2 mkfs; -19;mkfs.at:125;Resource group alignment;mkfs.gfs2 mkfs; -20;mkfs.at:134;Values of rg_skip;mkfs.gfs2 mkfs; -21;mkfs.at:150;Values of rg_data0, rg_data, rg_bitbytes;mkfs.gfs2 mkfs; -22;mkfs.at:166;Small filesystems;mkfs.gfs2 mkfs; -23;fsck.at:4;Conflicting options;fsck.gfs2 fsck; -24;fsck.at:15;Fix invalid block sizes;fsck.gfs2 fsck; -25;fsck.at:24;Fix invalid goal blocks;fsck.gfs2 fsck; -26;fsck.at:29;Fix bad resource group #0;fsck.gfs2 fsck; -27;fsck.at:34;Fix bad resource group #1;fsck.gfs2 fsck; -28;fsck.at:44;Fix bad rindex entry #1;fsck.gfs2 fsck; -29;fsck.at:49;Rebuild bad journal;fsck.gfs2 fsck; -30;fsck.at:58;gfs2 format versions;fsck.gfs2 fsck; -31;edit.at:4;Save/restoremeta, defaults;gfs2_edit edit; -32;edit.at:17;Save/restoremeta, no compression;gfs2_edit edit; -33;edit.at:27;Save/restoremeta, min. block size;gfs2_edit edit; -34;edit.at:37;Save/restoremeta, 4 journals;gfs2_edit edit; -35;edit.at:47;Save/restoremeta, min. block size, 4 journals;gfs2_edit edit; -36;edit.at:57;Save metadata to /dev/null;gfs2_edit edit; -37;libgfs2.at:3;meta.c;libgfs2; -38;libgfs2.at:7;rgrp.c;libgfs2; +6;mkfs.at:34;Format version validation;mkfs.gfs2 mkfs; +7;mkfs.at:44;Locking protocols;mkfs.gfs2 mkfs; +8;mkfs.at:50;Valid block sizes 512-4096;mkfs.gfs2 mkfs; +9;mkfs.at:58;Max. blocks, min. block size;mkfs.gfs2 mkfs; +10;mkfs.at:63;Max. blocks, max. block size;mkfs.gfs2 mkfs; +11;mkfs.at:68;Max. resource group size;mkfs.gfs2 mkfs; +12;mkfs.at:73;Min. resource group size;mkfs.gfs2 mkfs; +13;mkfs.at:78;Max. resource group size, min. block size;mkfs.gfs2 mkfs; +14;mkfs.at:83;Max. journal size;mkfs.gfs2 mkfs; +15;mkfs.at:88;Min. journal size;mkfs.gfs2 mkfs; +16;mkfs.at:95;Max. quota change file size;mkfs.gfs2 mkfs; +17;mkfs.at:100;Min. quota change file size;mkfs.gfs2 mkfs; +18;mkfs.at:105;Lock table validation;mkfs.gfs2 mkfs; +19;mkfs.at:124;Device i/o limits handling;mkfs.gfs2 mkfs; +20;mkfs.at:135;Resource group alignment;mkfs.gfs2 mkfs; +21;mkfs.at:144;Values of rg_skip;mkfs.gfs2 mkfs; +22;mkfs.at:160;Values of rg_data0, rg_data, rg_bitbytes;mkfs.gfs2 mkfs; +23;mkfs.at:176;Small filesystems;mkfs.gfs2 mkfs; +24;fsck.at:4;Conflicting options;fsck.gfs2 fsck; +25;fsck.at:15;Fix invalid block sizes;fsck.gfs2 fsck; +26;fsck.at:24;Fix invalid goal blocks;fsck.gfs2 fsck; +27;fsck.at:29;Fix bad resource group #0;fsck.gfs2 fsck; +28;fsck.at:34;Fix bad resource group #1;fsck.gfs2 fsck; +29;fsck.at:44;Fix bad rindex entry #1;fsck.gfs2 fsck; +30;fsck.at:49;Rebuild bad journal;fsck.gfs2 fsck; +31;fsck.at:58;gfs2 format versions;fsck.gfs2 fsck; +32;edit.at:4;Save/restoremeta, defaults;gfs2_edit edit; +33;edit.at:17;Save/restoremeta, no compression;gfs2_edit edit; +34;edit.at:27;Save/restoremeta, min. block size;gfs2_edit edit; +35;edit.at:37;Save/restoremeta, 4 journals;gfs2_edit edit; +36;edit.at:47;Save/restoremeta, min. block size, 4 journals;gfs2_edit edit; +37;edit.at:57;Save metadata to /dev/null;gfs2_edit edit; +38;tune.at:4;Format version;tunegfs2 tune; " # List of the all the test groups. at_groups_all=`$as_echo "$at_help_all" | sed 's/;.*//'` @@ -941,7 +942,7 @@ fi # List of tests. if $at_list_p; then cat <<_ATEOF || at_write_fail=1 -gfs2-utils 3.3.0.1.dev test suite test groups: +gfs2-utils 3.4.0.1.dev test suite test groups: NUM: FILE-NAME:LINE TEST-GROUP-NAME KEYWORDS @@ -982,7 +983,7 @@ _ATEOF exit $at_write_fail fi if $at_version_p; then - $as_echo "$as_me (gfs2-utils 3.3.0.1.dev)" && + $as_echo "$as_me (gfs2-utils 3.4.0.1.dev)" && cat <<\_ATEOF || at_write_fail=1 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1003,14 +1004,14 @@ esac # Category starts at test group 1. at_banner_text_1="mkfs.gfs2 tests" # Banner 2. fsck.at:2 -# Category starts at test group 23. +# Category starts at test group 24. at_banner_text_2="fsck.gfs2 tests" # Banner 3. edit.at:2 -# Category starts at test group 31. +# Category starts at test group 32. at_banner_text_3="gfs2_edit tests" -# Banner 4. libgfs2.at:1 -# Category starts at test group 37. -at_banner_text_4="libgfs2 unit tests" +# Banner 4. tune.at:2 +# Category starts at test group 38. +at_banner_text_4="tunegfs2 tests" # Take any -C into account. if $at_change_dir ; then @@ -1171,11 +1172,11 @@ exec 5>>"$at_suite_log" # Banners and logs. $as_echo "## ---------------------------------- ## -## gfs2-utils 3.3.0.1.dev test suite. ## +## gfs2-utils 3.4.0.1.dev test suite. ## ## ---------------------------------- ##" { $as_echo "## ---------------------------------- ## -## gfs2-utils 3.3.0.1.dev test suite. ## +## gfs2-utils 3.4.0.1.dev test suite. ## ## ---------------------------------- ##" echo @@ -2019,7 +2020,7 @@ _ASBOX $as_echo "Please send $at_msg and all information you think might help: To: - Subject: [gfs2-utils 3.3.0.1.dev] $as_me: $at_fail_list${at_fail_list:+ failed${at_xpass_list:+, }}$at_xpass_list${at_xpass_list:+ passed unexpectedly} + Subject: [gfs2-utils 3.4.0.1.dev] $as_me: $at_fail_list${at_fail_list:+ failed${at_xpass_list:+, }}$at_xpass_list${at_xpass_list:+ passed unexpectedly} You may investigate any problem if you feel able to do so, in which case the test suite provides a good starting point. Its output may @@ -2238,7 +2239,7 @@ read at_status <"$at_status_file" #AT_STOP_5 #AT_START_6 at_fn_group_banner 6 'mkfs.at:34' \ - "Locking protocols" " " 1 + "Format version validation" " " 1 at_xfail=no ( $as_echo "6. $at_setup_line: testing $at_desc ..." @@ -2246,86 +2247,80 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/mkfs.at:36: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" -at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:36" -( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} +$as_echo "$at_srcdir/mkfs.at:36: \$GFS_MKFS -p lock_nolock -o format=-1 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -o format=-1 $GFS_TGT" "mkfs.at:36" +( $at_check_trace; $GFS_MKFS -p lock_nolock -o format=-1 $GFS_TGT ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter echo stderr:; cat "$at_stderr" echo stdout:; cat "$at_stdout" -at_fn_check_skip $at_status "$at_srcdir/mkfs.at:36" -$at_failed && at_fn_log_failure -$at_traceon; } - -$as_echo "mkfs.at:36" >"$at_check_line_file" -(test ! -f ${GFS_TGT}) \ - && at_fn_check_skip 77 "$at_srcdir/mkfs.at:36" -{ set +x -$as_echo "$at_srcdir/mkfs.at:36: \$GFS_MKFS -p lock_nolock \$GFS_TGT" -at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock $GFS_TGT" "mkfs.at:36" -( $at_check_trace; $GFS_MKFS -p lock_nolock $GFS_TGT -) >>"$at_stdout" 2>>"$at_stderr" 5>&- -at_status=$? at_failed=false -$at_check_filter -echo stderr:; cat "$at_stderr" -echo stdout:; cat "$at_stdout" -at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:36" +at_fn_check_status 255 $at_status "$at_srcdir/mkfs.at:36" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/mkfs.at:36: fsck.gfs2 -n \$GFS_TGT" -at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:36" -( $at_check_trace; fsck.gfs2 -n $GFS_TGT +$as_echo "$at_srcdir/mkfs.at:37: \$GFS_MKFS -p lock_nolock -o format=0 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -o format=0 $GFS_TGT" "mkfs.at:37" +( $at_check_trace; $GFS_MKFS -p lock_nolock -o format=0 $GFS_TGT ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter echo stderr:; cat "$at_stderr" echo stdout:; cat "$at_stdout" -at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:36" +at_fn_check_status 255 $at_status "$at_srcdir/mkfs.at:37" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/mkfs.at:37: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" -at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:37" -( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} +$as_echo "$at_srcdir/mkfs.at:38: \$GFS_MKFS -p lock_nolock -o format=1800 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -o format=1800 $GFS_TGT" "mkfs.at:38" +( $at_check_trace; $GFS_MKFS -p lock_nolock -o format=1800 $GFS_TGT ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter echo stderr:; cat "$at_stderr" echo stdout:; cat "$at_stdout" -at_fn_check_skip $at_status "$at_srcdir/mkfs.at:37" -$at_failed && at_fn_log_failure -$at_traceon; } - -$as_echo "mkfs.at:37" >"$at_check_line_file" -(test ! -f ${GFS_TGT}) \ - && at_fn_check_skip 77 "$at_srcdir/mkfs.at:37" -{ set +x -$as_echo "$at_srcdir/mkfs.at:37: \$GFS_MKFS -p lock_dlm -t foo:bar \$GFS_TGT" -at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_dlm -t foo:bar $GFS_TGT" "mkfs.at:37" -( $at_check_trace; $GFS_MKFS -p lock_dlm -t foo:bar $GFS_TGT -) >>"$at_stdout" 2>>"$at_stderr" 5>&- -at_status=$? at_failed=false -$at_check_filter -echo stderr:; cat "$at_stderr" -echo stdout:; cat "$at_stdout" -at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:37" +at_fn_check_status 255 $at_status "$at_srcdir/mkfs.at:38" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/mkfs.at:37: fsck.gfs2 -n \$GFS_TGT" -at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:37" -( $at_check_trace; fsck.gfs2 -n $GFS_TGT +$as_echo "$at_srcdir/mkfs.at:39: \$GFS_MKFS -p lock_nolock -o format=1801 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -o format=1801 $GFS_TGT" "mkfs.at:39" +( $at_check_trace; $GFS_MKFS -p lock_nolock -o format=1801 $GFS_TGT ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter echo stderr:; cat "$at_stderr" echo stdout:; cat "$at_stdout" -at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:37" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:39" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:40: \$GFS_MKFS -p lock_nolock -o format=1802 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -o format=1802 $GFS_TGT" "mkfs.at:40" +( $at_check_trace; $GFS_MKFS -p lock_nolock -o format=1802 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:40" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:41: \$GFS_MKFS -p lock_nolock -o format=1803 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -o format=1803 $GFS_TGT" "mkfs.at:41" +( $at_check_trace; $GFS_MKFS -p lock_nolock -o format=1803 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 255 $at_status "$at_srcdir/mkfs.at:41" $at_failed && at_fn_log_failure $at_traceon; } @@ -2335,8 +2330,8 @@ $at_traceon; } read at_status <"$at_status_file" #AT_STOP_6 #AT_START_7 -at_fn_group_banner 7 'mkfs.at:40' \ - "Valid block sizes 512-4096" " " 1 +at_fn_group_banner 7 'mkfs.at:44' \ + "Locking protocols" " " 1 at_xfail=no ( $as_echo "7. $at_setup_line: testing $at_desc ..." @@ -2344,170 +2339,86 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/mkfs.at:42: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" -at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:42" +$as_echo "$at_srcdir/mkfs.at:46: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:46" ( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter echo stderr:; cat "$at_stderr" echo stdout:; cat "$at_stdout" -at_fn_check_skip $at_status "$at_srcdir/mkfs.at:42" +at_fn_check_skip $at_status "$at_srcdir/mkfs.at:46" $at_failed && at_fn_log_failure $at_traceon; } -$as_echo "mkfs.at:42" >"$at_check_line_file" +$as_echo "mkfs.at:46" >"$at_check_line_file" (test ! -f ${GFS_TGT}) \ - && at_fn_check_skip 77 "$at_srcdir/mkfs.at:42" + && at_fn_check_skip 77 "$at_srcdir/mkfs.at:46" { set +x -$as_echo "$at_srcdir/mkfs.at:42: \$GFS_MKFS -p lock_nolock -b 512 \$GFS_TGT" -at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -b 512 $GFS_TGT" "mkfs.at:42" -( $at_check_trace; $GFS_MKFS -p lock_nolock -b 512 $GFS_TGT +$as_echo "$at_srcdir/mkfs.at:46: \$GFS_MKFS -p lock_nolock \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock $GFS_TGT" "mkfs.at:46" +( $at_check_trace; $GFS_MKFS -p lock_nolock $GFS_TGT ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter echo stderr:; cat "$at_stderr" echo stdout:; cat "$at_stdout" -at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:42" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:46" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/mkfs.at:42: fsck.gfs2 -n \$GFS_TGT" -at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:42" +$as_echo "$at_srcdir/mkfs.at:46: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:46" ( $at_check_trace; fsck.gfs2 -n $GFS_TGT ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter echo stderr:; cat "$at_stderr" echo stdout:; cat "$at_stdout" -at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:42" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:46" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/mkfs.at:43: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" -at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:43" +$as_echo "$at_srcdir/mkfs.at:47: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:47" ( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter echo stderr:; cat "$at_stderr" echo stdout:; cat "$at_stdout" -at_fn_check_skip $at_status "$at_srcdir/mkfs.at:43" +at_fn_check_skip $at_status "$at_srcdir/mkfs.at:47" $at_failed && at_fn_log_failure $at_traceon; } -$as_echo "mkfs.at:43" >"$at_check_line_file" +$as_echo "mkfs.at:47" >"$at_check_line_file" (test ! -f ${GFS_TGT}) \ - && at_fn_check_skip 77 "$at_srcdir/mkfs.at:43" + && at_fn_check_skip 77 "$at_srcdir/mkfs.at:47" { set +x -$as_echo "$at_srcdir/mkfs.at:43: \$GFS_MKFS -p lock_nolock -b 1024 \$GFS_TGT" -at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -b 1024 $GFS_TGT" "mkfs.at:43" -( $at_check_trace; $GFS_MKFS -p lock_nolock -b 1024 $GFS_TGT +$as_echo "$at_srcdir/mkfs.at:47: \$GFS_MKFS -p lock_dlm -t foo:bar \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_dlm -t foo:bar $GFS_TGT" "mkfs.at:47" +( $at_check_trace; $GFS_MKFS -p lock_dlm -t foo:bar $GFS_TGT ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter echo stderr:; cat "$at_stderr" echo stdout:; cat "$at_stdout" -at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:43" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:47" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/mkfs.at:43: fsck.gfs2 -n \$GFS_TGT" -at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:43" +$as_echo "$at_srcdir/mkfs.at:47: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:47" ( $at_check_trace; fsck.gfs2 -n $GFS_TGT ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter echo stderr:; cat "$at_stderr" echo stdout:; cat "$at_stdout" -at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:43" -$at_failed && at_fn_log_failure -$at_traceon; } - -{ set +x -$as_echo "$at_srcdir/mkfs.at:44: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" -at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:44" -( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} -) >>"$at_stdout" 2>>"$at_stderr" 5>&- -at_status=$? at_failed=false -$at_check_filter -echo stderr:; cat "$at_stderr" -echo stdout:; cat "$at_stdout" -at_fn_check_skip $at_status "$at_srcdir/mkfs.at:44" -$at_failed && at_fn_log_failure -$at_traceon; } - -$as_echo "mkfs.at:44" >"$at_check_line_file" -(test ! -f ${GFS_TGT}) \ - && at_fn_check_skip 77 "$at_srcdir/mkfs.at:44" -{ set +x -$as_echo "$at_srcdir/mkfs.at:44: \$GFS_MKFS -p lock_nolock -b 2048 \$GFS_TGT" -at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -b 2048 $GFS_TGT" "mkfs.at:44" -( $at_check_trace; $GFS_MKFS -p lock_nolock -b 2048 $GFS_TGT -) >>"$at_stdout" 2>>"$at_stderr" 5>&- -at_status=$? at_failed=false -$at_check_filter -echo stderr:; cat "$at_stderr" -echo stdout:; cat "$at_stdout" -at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:44" -$at_failed && at_fn_log_failure -$at_traceon; } - -{ set +x -$as_echo "$at_srcdir/mkfs.at:44: fsck.gfs2 -n \$GFS_TGT" -at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:44" -( $at_check_trace; fsck.gfs2 -n $GFS_TGT -) >>"$at_stdout" 2>>"$at_stderr" 5>&- -at_status=$? at_failed=false -$at_check_filter -echo stderr:; cat "$at_stderr" -echo stdout:; cat "$at_stdout" -at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:44" -$at_failed && at_fn_log_failure -$at_traceon; } - -{ set +x -$as_echo "$at_srcdir/mkfs.at:45: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" -at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:45" -( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} -) >>"$at_stdout" 2>>"$at_stderr" 5>&- -at_status=$? at_failed=false -$at_check_filter -echo stderr:; cat "$at_stderr" -echo stdout:; cat "$at_stdout" -at_fn_check_skip $at_status "$at_srcdir/mkfs.at:45" -$at_failed && at_fn_log_failure -$at_traceon; } - -$as_echo "mkfs.at:45" >"$at_check_line_file" -(test ! -f ${GFS_TGT}) \ - && at_fn_check_skip 77 "$at_srcdir/mkfs.at:45" -{ set +x -$as_echo "$at_srcdir/mkfs.at:45: \$GFS_MKFS -p lock_nolock -b 4096 \$GFS_TGT" -at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -b 4096 $GFS_TGT" "mkfs.at:45" -( $at_check_trace; $GFS_MKFS -p lock_nolock -b 4096 $GFS_TGT -) >>"$at_stdout" 2>>"$at_stderr" 5>&- -at_status=$? at_failed=false -$at_check_filter -echo stderr:; cat "$at_stderr" -echo stdout:; cat "$at_stdout" -at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:45" -$at_failed && at_fn_log_failure -$at_traceon; } - -{ set +x -$as_echo "$at_srcdir/mkfs.at:45: fsck.gfs2 -n \$GFS_TGT" -at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:45" -( $at_check_trace; fsck.gfs2 -n $GFS_TGT -) >>"$at_stdout" 2>>"$at_stderr" 5>&- -at_status=$? at_failed=false -$at_check_filter -echo stderr:; cat "$at_stderr" -echo stdout:; cat "$at_stdout" -at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:45" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:47" $at_failed && at_fn_log_failure $at_traceon; } @@ -2517,8 +2428,8 @@ $at_traceon; } read at_status <"$at_status_file" #AT_STOP_7 #AT_START_8 -at_fn_group_banner 8 'mkfs.at:48' \ - "Max. blocks, min. block size" " " 1 +at_fn_group_banner 8 'mkfs.at:50' \ + "Valid block sizes 512-4096" " " 1 at_xfail=no ( $as_echo "8. $at_setup_line: testing $at_desc ..." @@ -2526,60 +2437,130 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/mkfs.at:50: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" -at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:50" +$as_echo "$at_srcdir/mkfs.at:52: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:52" ( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter echo stderr:; cat "$at_stderr" echo stdout:; cat "$at_stdout" -at_fn_check_skip $at_status "$at_srcdir/mkfs.at:50" +at_fn_check_skip $at_status "$at_srcdir/mkfs.at:52" $at_failed && at_fn_log_failure $at_traceon; } -$as_echo "mkfs.at:50" >"$at_check_line_file" +$as_echo "mkfs.at:52" >"$at_check_line_file" (test ! -f ${GFS_TGT}) \ - && at_fn_check_skip 77 "$at_srcdir/mkfs.at:50" + && at_fn_check_skip 77 "$at_srcdir/mkfs.at:52" { set +x -$as_echo "$at_srcdir/mkfs.at:50: \$GFS_MKFS -p lock_nolock -b 512 \$GFS_TGT \$(gfs_max_blocks 512)" -at_fn_check_prepare_notrace 'a $(...) command substitution' "mkfs.at:50" -( $at_check_trace; $GFS_MKFS -p lock_nolock -b 512 $GFS_TGT $(gfs_max_blocks 512) +$as_echo "$at_srcdir/mkfs.at:52: \$GFS_MKFS -p lock_nolock -b 512 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -b 512 $GFS_TGT" "mkfs.at:52" +( $at_check_trace; $GFS_MKFS -p lock_nolock -b 512 $GFS_TGT ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter echo stderr:; cat "$at_stderr" echo stdout:; cat "$at_stdout" -at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:50" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:52" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/mkfs.at:50: fsck.gfs2 -n \$GFS_TGT" -at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:50" +$as_echo "$at_srcdir/mkfs.at:52: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:52" ( $at_check_trace; fsck.gfs2 -n $GFS_TGT ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter echo stderr:; cat "$at_stderr" echo stdout:; cat "$at_stdout" -at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:50" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:52" $at_failed && at_fn_log_failure $at_traceon; } - set +x - $at_times_p && times >"$at_times_file" -) 5>&1 2>&1 7>&- | eval $at_tee_pipe -read at_status <"$at_status_file" -#AT_STOP_8 -#AT_START_9 -at_fn_group_banner 9 'mkfs.at:53' \ - "Max. blocks, max. block size" " " 1 -at_xfail=no -( - $as_echo "9. $at_setup_line: testing $at_desc ..." - $at_traceon +{ set +x +$as_echo "$at_srcdir/mkfs.at:53: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:53" +( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/mkfs.at:53" +$at_failed && at_fn_log_failure +$at_traceon; } +$as_echo "mkfs.at:53" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/mkfs.at:53" +{ set +x +$as_echo "$at_srcdir/mkfs.at:53: \$GFS_MKFS -p lock_nolock -b 1024 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -b 1024 $GFS_TGT" "mkfs.at:53" +( $at_check_trace; $GFS_MKFS -p lock_nolock -b 1024 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:53" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:53: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:53" +( $at_check_trace; fsck.gfs2 -n $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:53" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:54: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:54" +( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/mkfs.at:54" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "mkfs.at:54" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/mkfs.at:54" +{ set +x +$as_echo "$at_srcdir/mkfs.at:54: \$GFS_MKFS -p lock_nolock -b 2048 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -b 2048 $GFS_TGT" "mkfs.at:54" +( $at_check_trace; $GFS_MKFS -p lock_nolock -b 2048 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:54" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:54: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:54" +( $at_check_trace; fsck.gfs2 -n $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:54" +$at_failed && at_fn_log_failure +$at_traceon; } { set +x $as_echo "$at_srcdir/mkfs.at:55: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" @@ -2598,9 +2579,9 @@ $as_echo "mkfs.at:55" >"$at_check_line_file" (test ! -f ${GFS_TGT}) \ && at_fn_check_skip 77 "$at_srcdir/mkfs.at:55" { set +x -$as_echo "$at_srcdir/mkfs.at:55: \$GFS_MKFS -p lock_nolock -b 4096 \$GFS_TGT \$(gfs_max_blocks 4096)" -at_fn_check_prepare_notrace 'a $(...) command substitution' "mkfs.at:55" -( $at_check_trace; $GFS_MKFS -p lock_nolock -b 4096 $GFS_TGT $(gfs_max_blocks 4096) +$as_echo "$at_srcdir/mkfs.at:55: \$GFS_MKFS -p lock_nolock -b 4096 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -b 4096 $GFS_TGT" "mkfs.at:55" +( $at_check_trace; $GFS_MKFS -p lock_nolock -b 4096 $GFS_TGT ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter @@ -2627,13 +2608,13 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_9 -#AT_START_10 -at_fn_group_banner 10 'mkfs.at:58' \ - "Max. resource group size" " " 1 +#AT_STOP_8 +#AT_START_9 +at_fn_group_banner 9 'mkfs.at:58' \ + "Max. blocks, min. block size" " " 1 at_xfail=no ( - $as_echo "10. $at_setup_line: testing $at_desc ..." + $as_echo "9. $at_setup_line: testing $at_desc ..." $at_traceon @@ -2654,9 +2635,9 @@ $as_echo "mkfs.at:60" >"$at_check_line_file" (test ! -f ${GFS_TGT}) \ && at_fn_check_skip 77 "$at_srcdir/mkfs.at:60" { set +x -$as_echo "$at_srcdir/mkfs.at:60: \$GFS_MKFS -p lock_nolock -r 2048 \$GFS_TGT" -at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -r 2048 $GFS_TGT" "mkfs.at:60" -( $at_check_trace; $GFS_MKFS -p lock_nolock -r 2048 $GFS_TGT +$as_echo "$at_srcdir/mkfs.at:60: \$GFS_MKFS -p lock_nolock -b 512 \$GFS_TGT \$(gfs_max_blocks 512)" +at_fn_check_prepare_notrace 'a $(...) command substitution' "mkfs.at:60" +( $at_check_trace; $GFS_MKFS -p lock_nolock -b 512 $GFS_TGT $(gfs_max_blocks 512) ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter @@ -2683,13 +2664,13 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_10 -#AT_START_11 -at_fn_group_banner 11 'mkfs.at:63' \ - "Min. resource group size" " " 1 +#AT_STOP_9 +#AT_START_10 +at_fn_group_banner 10 'mkfs.at:63' \ + "Max. blocks, max. block size" " " 1 at_xfail=no ( - $as_echo "11. $at_setup_line: testing $at_desc ..." + $as_echo "10. $at_setup_line: testing $at_desc ..." $at_traceon @@ -2710,9 +2691,9 @@ $as_echo "mkfs.at:65" >"$at_check_line_file" (test ! -f ${GFS_TGT}) \ && at_fn_check_skip 77 "$at_srcdir/mkfs.at:65" { set +x -$as_echo "$at_srcdir/mkfs.at:65: \$GFS_MKFS -p lock_nolock -r 32 \$GFS_TGT" -at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -r 32 $GFS_TGT" "mkfs.at:65" -( $at_check_trace; $GFS_MKFS -p lock_nolock -r 32 $GFS_TGT +$as_echo "$at_srcdir/mkfs.at:65: \$GFS_MKFS -p lock_nolock -b 4096 \$GFS_TGT \$(gfs_max_blocks 4096)" +at_fn_check_prepare_notrace 'a $(...) command substitution' "mkfs.at:65" +( $at_check_trace; $GFS_MKFS -p lock_nolock -b 4096 $GFS_TGT $(gfs_max_blocks 4096) ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter @@ -2739,13 +2720,13 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_11 -#AT_START_12 -at_fn_group_banner 12 'mkfs.at:68' \ - "Max. resource group size, min. block size" " " 1 +#AT_STOP_10 +#AT_START_11 +at_fn_group_banner 11 'mkfs.at:68' \ + "Max. resource group size" " " 1 at_xfail=no ( - $as_echo "12. $at_setup_line: testing $at_desc ..." + $as_echo "11. $at_setup_line: testing $at_desc ..." $at_traceon @@ -2766,9 +2747,9 @@ $as_echo "mkfs.at:70" >"$at_check_line_file" (test ! -f ${GFS_TGT}) \ && at_fn_check_skip 77 "$at_srcdir/mkfs.at:70" { set +x -$as_echo "$at_srcdir/mkfs.at:70: \$GFS_MKFS -p lock_nolock -r 2048 -b 512 \$GFS_TGT" -at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -r 2048 -b 512 $GFS_TGT" "mkfs.at:70" -( $at_check_trace; $GFS_MKFS -p lock_nolock -r 2048 -b 512 $GFS_TGT +$as_echo "$at_srcdir/mkfs.at:70: \$GFS_MKFS -p lock_nolock -r 2048 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -r 2048 $GFS_TGT" "mkfs.at:70" +( $at_check_trace; $GFS_MKFS -p lock_nolock -r 2048 $GFS_TGT ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter @@ -2795,13 +2776,13 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_12 -#AT_START_13 -at_fn_group_banner 13 'mkfs.at:73' \ - "Max. journal size" " " 1 +#AT_STOP_11 +#AT_START_12 +at_fn_group_banner 12 'mkfs.at:73' \ + "Min. resource group size" " " 1 at_xfail=no ( - $as_echo "13. $at_setup_line: testing $at_desc ..." + $as_echo "12. $at_setup_line: testing $at_desc ..." $at_traceon @@ -2822,9 +2803,9 @@ $as_echo "mkfs.at:75" >"$at_check_line_file" (test ! -f ${GFS_TGT}) \ && at_fn_check_skip 77 "$at_srcdir/mkfs.at:75" { set +x -$as_echo "$at_srcdir/mkfs.at:75: \$GFS_MKFS -p lock_nolock -J 1024 \$GFS_TGT" -at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -J 1024 $GFS_TGT" "mkfs.at:75" -( $at_check_trace; $GFS_MKFS -p lock_nolock -J 1024 $GFS_TGT +$as_echo "$at_srcdir/mkfs.at:75: \$GFS_MKFS -p lock_nolock -r 32 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -r 32 $GFS_TGT" "mkfs.at:75" +( $at_check_trace; $GFS_MKFS -p lock_nolock -r 32 $GFS_TGT ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter @@ -2851,13 +2832,13 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_13 -#AT_START_14 -at_fn_group_banner 14 'mkfs.at:78' \ - "Min. journal size" " " 1 +#AT_STOP_12 +#AT_START_13 +at_fn_group_banner 13 'mkfs.at:78' \ + "Max. resource group size, min. block size" " " 1 at_xfail=no ( - $as_echo "14. $at_setup_line: testing $at_desc ..." + $as_echo "13. $at_setup_line: testing $at_desc ..." $at_traceon @@ -2878,9 +2859,9 @@ $as_echo "mkfs.at:80" >"$at_check_line_file" (test ! -f ${GFS_TGT}) \ && at_fn_check_skip 77 "$at_srcdir/mkfs.at:80" { set +x -$as_echo "$at_srcdir/mkfs.at:80: \$GFS_MKFS -p lock_nolock -J 8 \$GFS_TGT" -at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -J 8 $GFS_TGT" "mkfs.at:80" -( $at_check_trace; $GFS_MKFS -p lock_nolock -J 8 $GFS_TGT +$as_echo "$at_srcdir/mkfs.at:80: \$GFS_MKFS -p lock_nolock -r 2048 -b 512 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -r 2048 -b 512 $GFS_TGT" "mkfs.at:80" +( $at_check_trace; $GFS_MKFS -p lock_nolock -r 2048 -b 512 $GFS_TGT ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter @@ -2903,59 +2884,59 @@ at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:80" $at_failed && at_fn_log_failure $at_traceon; } + set +x + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" +#AT_STOP_13 +#AT_START_14 +at_fn_group_banner 14 'mkfs.at:83' \ + "Max. journal size" " " 1 +at_xfail=no +( + $as_echo "14. $at_setup_line: testing $at_desc ..." + $at_traceon + + { set +x -$as_echo "$at_srcdir/mkfs.at:81: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" -at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:81" +$as_echo "$at_srcdir/mkfs.at:85: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:85" ( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter echo stderr:; cat "$at_stderr" echo stdout:; cat "$at_stdout" -at_fn_check_skip $at_status "$at_srcdir/mkfs.at:81" +at_fn_check_skip $at_status "$at_srcdir/mkfs.at:85" $at_failed && at_fn_log_failure $at_traceon; } -$as_echo "mkfs.at:81" >"$at_check_line_file" +$as_echo "mkfs.at:85" >"$at_check_line_file" (test ! -f ${GFS_TGT}) \ - && at_fn_check_skip 77 "$at_srcdir/mkfs.at:81" + && at_fn_check_skip 77 "$at_srcdir/mkfs.at:85" { set +x -$as_echo "$at_srcdir/mkfs.at:81: \$GFS_MKFS -p lock_nolock -b 1024 \$GFS_TGT 511996" -at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -b 1024 $GFS_TGT 511996" "mkfs.at:81" -( $at_check_trace; $GFS_MKFS -p lock_nolock -b 1024 $GFS_TGT 511996 +$as_echo "$at_srcdir/mkfs.at:85: \$GFS_MKFS -p lock_nolock -J 1024 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -J 1024 $GFS_TGT" "mkfs.at:85" +( $at_check_trace; $GFS_MKFS -p lock_nolock -J 1024 $GFS_TGT ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter echo stderr:; cat "$at_stderr" echo stdout:; cat "$at_stdout" -at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:81" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:85" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/mkfs.at:81: fsck.gfs2 -n \$GFS_TGT" -at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:81" +$as_echo "$at_srcdir/mkfs.at:85: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:85" ( $at_check_trace; fsck.gfs2 -n $GFS_TGT ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter echo stderr:; cat "$at_stderr" echo stdout:; cat "$at_stdout" -at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:81" -$at_failed && at_fn_log_failure -$at_traceon; } - -{ set +x -$as_echo "$at_srcdir/mkfs.at:82: gfs2_edit -p journal0 field di_size \$GFS_TGT | tr -d '\\n'" -at_fn_check_prepare_notrace 'a shell pipeline' "mkfs.at:82" -( $at_check_trace; gfs2_edit -p journal0 field di_size $GFS_TGT | tr -d '\n' -) >>"$at_stdout" 2>>"$at_stderr" 5>&- -at_status=$? at_failed=false -$at_check_filter -echo stderr:; cat "$at_stderr" -echo >>"$at_stdout"; $as_echo "8388608" | \ - $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:82" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:85" $at_failed && at_fn_log_failure $at_traceon; } @@ -2965,8 +2946,8 @@ $at_traceon; } read at_status <"$at_status_file" #AT_STOP_14 #AT_START_15 -at_fn_group_banner 15 'mkfs.at:85' \ - "Max. quota change file size" " " 1 +at_fn_group_banner 15 'mkfs.at:88' \ + "Min. journal size" " " 1 at_xfail=no ( $as_echo "15. $at_setup_line: testing $at_desc ..." @@ -2974,44 +2955,100 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/mkfs.at:87: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" -at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:87" +$as_echo "$at_srcdir/mkfs.at:90: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:90" ( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter echo stderr:; cat "$at_stderr" echo stdout:; cat "$at_stdout" -at_fn_check_skip $at_status "$at_srcdir/mkfs.at:87" +at_fn_check_skip $at_status "$at_srcdir/mkfs.at:90" $at_failed && at_fn_log_failure $at_traceon; } -$as_echo "mkfs.at:87" >"$at_check_line_file" +$as_echo "mkfs.at:90" >"$at_check_line_file" (test ! -f ${GFS_TGT}) \ - && at_fn_check_skip 77 "$at_srcdir/mkfs.at:87" + && at_fn_check_skip 77 "$at_srcdir/mkfs.at:90" { set +x -$as_echo "$at_srcdir/mkfs.at:87: \$GFS_MKFS -p lock_nolock -c 64 \$GFS_TGT" -at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -c 64 $GFS_TGT" "mkfs.at:87" -( $at_check_trace; $GFS_MKFS -p lock_nolock -c 64 $GFS_TGT +$as_echo "$at_srcdir/mkfs.at:90: \$GFS_MKFS -p lock_nolock -J 8 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -J 8 $GFS_TGT" "mkfs.at:90" +( $at_check_trace; $GFS_MKFS -p lock_nolock -J 8 $GFS_TGT ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter echo stderr:; cat "$at_stderr" echo stdout:; cat "$at_stdout" -at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:87" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:90" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/mkfs.at:87: fsck.gfs2 -n \$GFS_TGT" -at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:87" +$as_echo "$at_srcdir/mkfs.at:90: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:90" ( $at_check_trace; fsck.gfs2 -n $GFS_TGT ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter echo stderr:; cat "$at_stderr" echo stdout:; cat "$at_stdout" -at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:87" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:90" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:91: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:91" +( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/mkfs.at:91" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "mkfs.at:91" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/mkfs.at:91" +{ set +x +$as_echo "$at_srcdir/mkfs.at:91: \$GFS_MKFS -p lock_nolock -b 1024 \$GFS_TGT 511996" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -b 1024 $GFS_TGT 511996" "mkfs.at:91" +( $at_check_trace; $GFS_MKFS -p lock_nolock -b 1024 $GFS_TGT 511996 +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:91" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:91: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:91" +( $at_check_trace; fsck.gfs2 -n $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:91" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:92: gfs2_edit -p journal0 field di_size \$GFS_TGT | tr -d '\\n'" +at_fn_check_prepare_notrace 'a shell pipeline' "mkfs.at:92" +( $at_check_trace; gfs2_edit -p journal0 field di_size $GFS_TGT | tr -d '\n' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo >>"$at_stdout"; $as_echo "8388608" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:92" $at_failed && at_fn_log_failure $at_traceon; } @@ -3021,8 +3058,8 @@ $at_traceon; } read at_status <"$at_status_file" #AT_STOP_15 #AT_START_16 -at_fn_group_banner 16 'mkfs.at:90' \ - "Min. quota change file size" " " 1 +at_fn_group_banner 16 'mkfs.at:95' \ + "Max. quota change file size" " " 1 at_xfail=no ( $as_echo "16. $at_setup_line: testing $at_desc ..." @@ -3030,44 +3067,44 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/mkfs.at:92: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" -at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:92" +$as_echo "$at_srcdir/mkfs.at:97: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:97" ( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter echo stderr:; cat "$at_stderr" echo stdout:; cat "$at_stdout" -at_fn_check_skip $at_status "$at_srcdir/mkfs.at:92" +at_fn_check_skip $at_status "$at_srcdir/mkfs.at:97" $at_failed && at_fn_log_failure $at_traceon; } -$as_echo "mkfs.at:92" >"$at_check_line_file" +$as_echo "mkfs.at:97" >"$at_check_line_file" (test ! -f ${GFS_TGT}) \ - && at_fn_check_skip 77 "$at_srcdir/mkfs.at:92" + && at_fn_check_skip 77 "$at_srcdir/mkfs.at:97" { set +x -$as_echo "$at_srcdir/mkfs.at:92: \$GFS_MKFS -p lock_nolock -c 1 \$GFS_TGT" -at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -c 1 $GFS_TGT" "mkfs.at:92" -( $at_check_trace; $GFS_MKFS -p lock_nolock -c 1 $GFS_TGT +$as_echo "$at_srcdir/mkfs.at:97: \$GFS_MKFS -p lock_nolock -c 64 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -c 64 $GFS_TGT" "mkfs.at:97" +( $at_check_trace; $GFS_MKFS -p lock_nolock -c 64 $GFS_TGT ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter echo stderr:; cat "$at_stderr" echo stdout:; cat "$at_stdout" -at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:92" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:97" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/mkfs.at:92: fsck.gfs2 -n \$GFS_TGT" -at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:92" +$as_echo "$at_srcdir/mkfs.at:97: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:97" ( $at_check_trace; fsck.gfs2 -n $GFS_TGT ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter echo stderr:; cat "$at_stderr" echo stdout:; cat "$at_stdout" -at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:92" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:97" $at_failed && at_fn_log_failure $at_traceon; } @@ -3077,8 +3114,8 @@ $at_traceon; } read at_status <"$at_status_file" #AT_STOP_16 #AT_START_17 -at_fn_group_banner 17 'mkfs.at:95' \ - "Lock table validation" " " 1 +at_fn_group_banner 17 'mkfs.at:100' \ + "Min. quota change file size" " " 1 at_xfail=no ( $as_echo "17. $at_setup_line: testing $at_desc ..." @@ -3086,164 +3123,44 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/mkfs.at:97: \$GFS_MKFS -p lock_nolock -t \"\" \$GFS_TGT" -at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -t \"\" $GFS_TGT" "mkfs.at:97" -( $at_check_trace; $GFS_MKFS -p lock_nolock -t "" $GFS_TGT -) >>"$at_stdout" 2>>"$at_stderr" 5>&- -at_status=$? at_failed=false -$at_check_filter -echo stderr:; cat "$at_stderr" -echo stdout:; cat "$at_stdout" -at_fn_check_status 255 $at_status "$at_srcdir/mkfs.at:97" -$at_failed && at_fn_log_failure -$at_traceon; } - -{ set +x -$as_echo "$at_srcdir/mkfs.at:98: \$GFS_MKFS -p lock_nolock -t \"123456789012345678901234567890123:12345678\" \$GFS_TGT" -at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -t \"123456789012345678901234567890123:12345678\" $GFS_TGT" "mkfs.at:98" -( $at_check_trace; $GFS_MKFS -p lock_nolock -t "123456789012345678901234567890123:12345678" $GFS_TGT -) >>"$at_stdout" 2>>"$at_stderr" 5>&- -at_status=$? at_failed=false -$at_check_filter -echo stderr:; cat "$at_stderr" -echo stdout:; cat "$at_stdout" -at_fn_check_status 255 $at_status "$at_srcdir/mkfs.at:98" -$at_failed && at_fn_log_failure -$at_traceon; } - -{ set +x -$as_echo "$at_srcdir/mkfs.at:99: \$GFS_MKFS -p lock_nolock -t \"12345678901234567:1234567890123456789012345678901\" \$GFS_TGT" -at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -t \"12345678901234567:1234567890123456789012345678901\" $GFS_TGT" "mkfs.at:99" -( $at_check_trace; $GFS_MKFS -p lock_nolock -t "12345678901234567:1234567890123456789012345678901" $GFS_TGT -) >>"$at_stdout" 2>>"$at_stderr" 5>&- -at_status=$? at_failed=false -$at_check_filter -echo stderr:; cat "$at_stderr" -echo stdout:; cat "$at_stdout" -at_fn_check_status 255 $at_status "$at_srcdir/mkfs.at:99" -$at_failed && at_fn_log_failure -$at_traceon; } - -{ set +x -$as_echo "$at_srcdir/mkfs.at:100: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" -at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:100" +$as_echo "$at_srcdir/mkfs.at:102: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:102" ( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter echo stderr:; cat "$at_stderr" echo stdout:; cat "$at_stdout" -at_fn_check_skip $at_status "$at_srcdir/mkfs.at:100" +at_fn_check_skip $at_status "$at_srcdir/mkfs.at:102" $at_failed && at_fn_log_failure $at_traceon; } -$as_echo "mkfs.at:100" >"$at_check_line_file" +$as_echo "mkfs.at:102" >"$at_check_line_file" (test ! -f ${GFS_TGT}) \ - && at_fn_check_skip 77 "$at_srcdir/mkfs.at:100" + && at_fn_check_skip 77 "$at_srcdir/mkfs.at:102" { set +x -$as_echo "$at_srcdir/mkfs.at:100: \$GFS_MKFS -p lock_nolock -t \"12345678901234567890123456789012:123456789012345678901234567890\" \$GFS_TGT" -at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -t \"12345678901234567890123456789012:123456789012345678901234567890\" $GFS_TGT" "mkfs.at:100" -( $at_check_trace; $GFS_MKFS -p lock_nolock -t "12345678901234567890123456789012:123456789012345678901234567890" $GFS_TGT +$as_echo "$at_srcdir/mkfs.at:102: \$GFS_MKFS -p lock_nolock -c 1 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -c 1 $GFS_TGT" "mkfs.at:102" +( $at_check_trace; $GFS_MKFS -p lock_nolock -c 1 $GFS_TGT ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter echo stderr:; cat "$at_stderr" echo stdout:; cat "$at_stdout" -at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:100" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:102" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/mkfs.at:100: fsck.gfs2 -n \$GFS_TGT" -at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:100" +$as_echo "$at_srcdir/mkfs.at:102: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:102" ( $at_check_trace; fsck.gfs2 -n $GFS_TGT ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter echo stderr:; cat "$at_stderr" echo stdout:; cat "$at_stdout" -at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:100" -$at_failed && at_fn_log_failure -$at_traceon; } - -{ set +x -$as_echo "$at_srcdir/mkfs.at:101: \$GFS_MKFS -p lock_dlm -t \"\" \$GFS_TGT" -at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_dlm -t \"\" $GFS_TGT" "mkfs.at:101" -( $at_check_trace; $GFS_MKFS -p lock_dlm -t "" $GFS_TGT -) >>"$at_stdout" 2>>"$at_stderr" 5>&- -at_status=$? at_failed=false -$at_check_filter -echo stderr:; cat "$at_stderr" -echo stdout:; cat "$at_stdout" -at_fn_check_status 255 $at_status "$at_srcdir/mkfs.at:101" -$at_failed && at_fn_log_failure -$at_traceon; } - -{ set +x -$as_echo "$at_srcdir/mkfs.at:102: \$GFS_MKFS -p lock_dlm -t \"quite_long_cluster_name_test_here:intec34p\" \$GFS_TGT" -at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_dlm -t \"quite_long_cluster_name_test_here:intec34p\" $GFS_TGT" "mkfs.at:102" -( $at_check_trace; $GFS_MKFS -p lock_dlm -t "quite_long_cluster_name_test_here:intec34p" $GFS_TGT -) >>"$at_stdout" 2>>"$at_stderr" 5>&- -at_status=$? at_failed=false -$at_check_filter -echo stderr:; cat "$at_stderr" -echo stdout:; cat "$at_stdout" -at_fn_check_status 255 $at_status "$at_srcdir/mkfs.at:102" -$at_failed && at_fn_log_failure -$at_traceon; } - -{ set +x -$as_echo "$at_srcdir/mkfs.at:103: \$GFS_MKFS -p lock_dlm -t \"financial_cluster:this_time_we_test_fs_naming_len\" \$GFS_TGT" -at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_dlm -t \"financial_cluster:this_time_we_test_fs_naming_len\" $GFS_TGT" "mkfs.at:103" -( $at_check_trace; $GFS_MKFS -p lock_dlm -t "financial_cluster:this_time_we_test_fs_naming_len" $GFS_TGT -) >>"$at_stdout" 2>>"$at_stderr" 5>&- -at_status=$? at_failed=false -$at_check_filter -echo stderr:; cat "$at_stderr" -echo stdout:; cat "$at_stdout" -at_fn_check_status 255 $at_status "$at_srcdir/mkfs.at:103" -$at_failed && at_fn_log_failure -$at_traceon; } - -{ set +x -$as_echo "$at_srcdir/mkfs.at:104: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" -at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:104" -( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} -) >>"$at_stdout" 2>>"$at_stderr" 5>&- -at_status=$? at_failed=false -$at_check_filter -echo stderr:; cat "$at_stderr" -echo stdout:; cat "$at_stdout" -at_fn_check_skip $at_status "$at_srcdir/mkfs.at:104" -$at_failed && at_fn_log_failure -$at_traceon; } - -$as_echo "mkfs.at:104" >"$at_check_line_file" -(test ! -f ${GFS_TGT}) \ - && at_fn_check_skip 77 "$at_srcdir/mkfs.at:104" -{ set +x -$as_echo "$at_srcdir/mkfs.at:104: \$GFS_MKFS -p lock_dlm -t \"a_really_long_named_cluster_here:concurrently_lets_check_fs_len\" \$GFS_TGT" -at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_dlm -t \"a_really_long_named_cluster_here:concurrently_lets_check_fs_len\" $GFS_TGT" "mkfs.at:104" -( $at_check_trace; $GFS_MKFS -p lock_dlm -t "a_really_long_named_cluster_here:concurrently_lets_check_fs_len" $GFS_TGT -) >>"$at_stdout" 2>>"$at_stderr" 5>&- -at_status=$? at_failed=false -$at_check_filter -echo stderr:; cat "$at_stderr" -echo stdout:; cat "$at_stdout" -at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:104" -$at_failed && at_fn_log_failure -$at_traceon; } - -{ set +x -$as_echo "$at_srcdir/mkfs.at:104: fsck.gfs2 -n \$GFS_TGT" -at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:104" -( $at_check_trace; fsck.gfs2 -n $GFS_TGT -) >>"$at_stdout" 2>>"$at_stderr" 5>&- -at_status=$? at_failed=false -$at_check_filter -echo stderr:; cat "$at_stderr" -echo stdout:; cat "$at_stdout" -at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:104" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:102" $at_failed && at_fn_log_failure $at_traceon; } @@ -3253,8 +3170,8 @@ $at_traceon; } read at_status <"$at_status_file" #AT_STOP_17 #AT_START_18 -at_fn_group_banner 18 'mkfs.at:114' \ - "Device i/o limits handling" " " 1 +at_fn_group_banner 18 'mkfs.at:105' \ + "Lock table validation" " " 1 at_xfail=no ( $as_echo "18. $at_setup_line: testing $at_desc ..." @@ -3262,83 +3179,164 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/mkfs.at:116: \$GFS_MKFS -p lock_nolock -o test_topology=0:0:0:0:0 \$GFS_TGT" -at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -o test_topology=0:0:0:0:0 $GFS_TGT" "mkfs.at:116" -( $at_check_trace; $GFS_MKFS -p lock_nolock -o test_topology=0:0:0:0:0 $GFS_TGT +$as_echo "$at_srcdir/mkfs.at:107: \$GFS_MKFS -p lock_nolock -t \"\" \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -t \"\" $GFS_TGT" "mkfs.at:107" +( $at_check_trace; $GFS_MKFS -p lock_nolock -t "" $GFS_TGT ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter echo stderr:; cat "$at_stderr" echo stdout:; cat "$at_stdout" -at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:116" +at_fn_check_status 255 $at_status "$at_srcdir/mkfs.at:107" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/mkfs.at:117: \$GFS_MKFS -p lock_nolock -o test_topology=0:512:512:512:512 \$GFS_TGT" -at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -o test_topology=0:512:512:512:512 $GFS_TGT" "mkfs.at:117" -( $at_check_trace; $GFS_MKFS -p lock_nolock -o test_topology=0:512:512:512:512 $GFS_TGT +$as_echo "$at_srcdir/mkfs.at:108: \$GFS_MKFS -p lock_nolock -t \"123456789012345678901234567890123:12345678\" \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -t \"123456789012345678901234567890123:12345678\" $GFS_TGT" "mkfs.at:108" +( $at_check_trace; $GFS_MKFS -p lock_nolock -t "123456789012345678901234567890123:12345678" $GFS_TGT ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter echo stderr:; cat "$at_stderr" echo stdout:; cat "$at_stdout" -at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:117" +at_fn_check_status 255 $at_status "$at_srcdir/mkfs.at:108" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/mkfs.at:118: gfs2_edit -p sb field sb_bsize \$GFS_TGT | tr -d '\\n' " -at_fn_check_prepare_notrace 'a shell pipeline' "mkfs.at:118" -( $at_check_trace; gfs2_edit -p sb field sb_bsize $GFS_TGT | tr -d '\n' -) >>"$at_stdout" 2>>"$at_stderr" 5>&- -at_status=$? at_failed=false -$at_check_filter -echo stderr:; cat "$at_stderr" -echo >>"$at_stdout"; $as_echo "4096" | \ - $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:118" -$at_failed && at_fn_log_failure -$at_traceon; } - -{ set +x -$as_echo "$at_srcdir/mkfs.at:119: \$GFS_MKFS -p lock_nolock -o test_topology=7168:512:0:33553920:512 \$GFS_TGT" -at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -o test_topology=7168:512:0:33553920:512 $GFS_TGT" "mkfs.at:119" -( $at_check_trace; $GFS_MKFS -p lock_nolock -o test_topology=7168:512:0:33553920:512 $GFS_TGT +$as_echo "$at_srcdir/mkfs.at:109: \$GFS_MKFS -p lock_nolock -t \"12345678901234567:1234567890123456789012345678901\" \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -t \"12345678901234567:1234567890123456789012345678901\" $GFS_TGT" "mkfs.at:109" +( $at_check_trace; $GFS_MKFS -p lock_nolock -t "12345678901234567:1234567890123456789012345678901" $GFS_TGT ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter echo stderr:; cat "$at_stderr" echo stdout:; cat "$at_stdout" -at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:119" +at_fn_check_status 255 $at_status "$at_srcdir/mkfs.at:109" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/mkfs.at:120: \$GFS_MKFS -p lock_nolock -o test_topology=7168:512:8192:33553920:512 \$GFS_TGT" -at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -o test_topology=7168:512:8192:33553920:512 $GFS_TGT" "mkfs.at:120" -( $at_check_trace; $GFS_MKFS -p lock_nolock -o test_topology=7168:512:8192:33553920:512 $GFS_TGT -) >>"$at_stdout" 2>>"$at_stderr" 5>&- -at_status=$? at_failed=false -$at_check_filter -echo >>"$at_stderr"; $as_echo "Warning: device is not properly aligned. This may harm performance. -" | \ - $at_diff - "$at_stderr" || at_failed=: -echo stdout:; cat "$at_stdout" -at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:120" -$at_failed && at_fn_log_failure -$at_traceon; } - -{ set +x -$as_echo "$at_srcdir/mkfs.at:122: \$GFS_MKFS -p lock_nolock -o test_topology=0:512:4194304:8388608:512 -b 1024 \$GFS_TGT" -at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -o test_topology=0:512:4194304:8388608:512 -b 1024 $GFS_TGT" "mkfs.at:122" -( $at_check_trace; $GFS_MKFS -p lock_nolock -o test_topology=0:512:4194304:8388608:512 -b 1024 $GFS_TGT +$as_echo "$at_srcdir/mkfs.at:110: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:110" +( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter echo stderr:; cat "$at_stderr" echo stdout:; cat "$at_stdout" -at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:122" +at_fn_check_skip $at_status "$at_srcdir/mkfs.at:110" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "mkfs.at:110" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/mkfs.at:110" +{ set +x +$as_echo "$at_srcdir/mkfs.at:110: \$GFS_MKFS -p lock_nolock -t \"12345678901234567890123456789012:123456789012345678901234567890\" \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -t \"12345678901234567890123456789012:123456789012345678901234567890\" $GFS_TGT" "mkfs.at:110" +( $at_check_trace; $GFS_MKFS -p lock_nolock -t "12345678901234567890123456789012:123456789012345678901234567890" $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:110" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:110: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:110" +( $at_check_trace; fsck.gfs2 -n $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:110" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:111: \$GFS_MKFS -p lock_dlm -t \"\" \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_dlm -t \"\" $GFS_TGT" "mkfs.at:111" +( $at_check_trace; $GFS_MKFS -p lock_dlm -t "" $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 255 $at_status "$at_srcdir/mkfs.at:111" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:112: \$GFS_MKFS -p lock_dlm -t \"quite_long_cluster_name_test_here:intec34p\" \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_dlm -t \"quite_long_cluster_name_test_here:intec34p\" $GFS_TGT" "mkfs.at:112" +( $at_check_trace; $GFS_MKFS -p lock_dlm -t "quite_long_cluster_name_test_here:intec34p" $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 255 $at_status "$at_srcdir/mkfs.at:112" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:113: \$GFS_MKFS -p lock_dlm -t \"financial_cluster:this_time_we_test_fs_naming_len\" \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_dlm -t \"financial_cluster:this_time_we_test_fs_naming_len\" $GFS_TGT" "mkfs.at:113" +( $at_check_trace; $GFS_MKFS -p lock_dlm -t "financial_cluster:this_time_we_test_fs_naming_len" $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 255 $at_status "$at_srcdir/mkfs.at:113" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:114: rm -f \$GFS_TGT && truncate -s \${GFS_TGT_SZ}G \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:114" +( $at_check_trace; rm -f $GFS_TGT && truncate -s ${GFS_TGT_SZ}G ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/mkfs.at:114" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "mkfs.at:114" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/mkfs.at:114" +{ set +x +$as_echo "$at_srcdir/mkfs.at:114: \$GFS_MKFS -p lock_dlm -t \"a_really_long_named_cluster_here:concurrently_lets_check_fs_len\" \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_dlm -t \"a_really_long_named_cluster_here:concurrently_lets_check_fs_len\" $GFS_TGT" "mkfs.at:114" +( $at_check_trace; $GFS_MKFS -p lock_dlm -t "a_really_long_named_cluster_here:concurrently_lets_check_fs_len" $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:114" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:114: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:114" +( $at_check_trace; fsck.gfs2 -n $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:114" $at_failed && at_fn_log_failure $at_traceon; } @@ -3348,8 +3346,8 @@ $at_traceon; } read at_status <"$at_status_file" #AT_STOP_18 #AT_START_19 -at_fn_group_banner 19 'mkfs.at:125' \ - "Resource group alignment" " " 1 +at_fn_group_banner 19 'mkfs.at:124' \ + "Device i/o limits handling" " " 1 at_xfail=no ( $as_echo "19. $at_setup_line: testing $at_desc ..." @@ -3357,9 +3355,22 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/mkfs.at:127: \$GFS_MKFS -p lock_nolock -o test_topology=0:512:65536:393216:512 \$GFS_TGT" -at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -o test_topology=0:512:65536:393216:512 $GFS_TGT" "mkfs.at:127" -( $at_check_trace; $GFS_MKFS -p lock_nolock -o test_topology=0:512:65536:393216:512 $GFS_TGT +$as_echo "$at_srcdir/mkfs.at:126: \$GFS_MKFS -p lock_nolock -o test_topology=0:0:0:0:0 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -o test_topology=0:0:0:0:0 $GFS_TGT" "mkfs.at:126" +( $at_check_trace; $GFS_MKFS -p lock_nolock -o test_topology=0:0:0:0:0 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:126" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:127: \$GFS_MKFS -p lock_nolock -o test_topology=0:512:512:512:512 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -o test_topology=0:512:512:512:512 $GFS_TGT" "mkfs.at:127" +( $at_check_trace; $GFS_MKFS -p lock_nolock -o test_topology=0:512:512:512:512 $GFS_TGT ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter @@ -3369,11 +3380,24 @@ at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:127" $at_failed && at_fn_log_failure $at_traceon; } -# Check rgrp alignment to minimum_io_size: 65536 / 4096 == 16 { set +x -$as_echo "$at_srcdir/mkfs.at:129: gfs2_edit -p rindex \$GFS_TGT | grep ri_addr | awk '{print \$2, \$2 % 16; if (\$2 % 16 != 0) { exit 1 }}'" -at_fn_check_prepare_notrace 'a shell pipeline' "mkfs.at:129" -( $at_check_trace; gfs2_edit -p rindex $GFS_TGT | grep ri_addr | awk '{print $2, $2 % 16; if ($2 % 16 != 0) { exit 1 }}' +$as_echo "$at_srcdir/mkfs.at:128: gfs2_edit -p sb field sb_bsize \$GFS_TGT | tr -d '\\n' " +at_fn_check_prepare_notrace 'a shell pipeline' "mkfs.at:128" +( $at_check_trace; gfs2_edit -p sb field sb_bsize $GFS_TGT | tr -d '\n' +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo >>"$at_stdout"; $as_echo "4096" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:128" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:129: \$GFS_MKFS -p lock_nolock -o test_topology=7168:512:0:33553920:512 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -o test_topology=7168:512:0:33553920:512 $GFS_TGT" "mkfs.at:129" +( $at_check_trace; $GFS_MKFS -p lock_nolock -o test_topology=7168:512:0:33553920:512 $GFS_TGT ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter @@ -3383,17 +3407,31 @@ at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:129" $at_failed && at_fn_log_failure $at_traceon; } -# rhbz#1698858 { set +x -$as_echo "$at_srcdir/mkfs.at:131: \$GFS_MKFS -p lock_nolock -o test_topology=0:512:131072:6291456:512 \$GFS_TGT" -at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -o test_topology=0:512:131072:6291456:512 $GFS_TGT" "mkfs.at:131" -( $at_check_trace; $GFS_MKFS -p lock_nolock -o test_topology=0:512:131072:6291456:512 $GFS_TGT +$as_echo "$at_srcdir/mkfs.at:130: \$GFS_MKFS -p lock_nolock -o test_topology=7168:512:8192:33553920:512 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -o test_topology=7168:512:8192:33553920:512 $GFS_TGT" "mkfs.at:130" +( $at_check_trace; $GFS_MKFS -p lock_nolock -o test_topology=7168:512:8192:33553920:512 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo "Warning: device is not properly aligned. This may harm performance. +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:130" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:132: \$GFS_MKFS -p lock_nolock -o test_topology=0:512:4194304:8388608:512 -b 1024 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -o test_topology=0:512:4194304:8388608:512 -b 1024 $GFS_TGT" "mkfs.at:132" +( $at_check_trace; $GFS_MKFS -p lock_nolock -o test_topology=0:512:4194304:8388608:512 -b 1024 $GFS_TGT ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter echo stderr:; cat "$at_stderr" echo stdout:; cat "$at_stdout" -at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:131" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:132" $at_failed && at_fn_log_failure $at_traceon; } @@ -3403,8 +3441,8 @@ $at_traceon; } read at_status <"$at_status_file" #AT_STOP_19 #AT_START_20 -at_fn_group_banner 20 'mkfs.at:134' \ - "Values of rg_skip" " " 1 +at_fn_group_banner 20 'mkfs.at:135' \ + "Resource group alignment" " " 1 at_xfail=no ( $as_echo "20. $at_setup_line: testing $at_desc ..." @@ -3412,22 +3450,9 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/mkfs.at:136: \$GFS_MKFS -p lock_nolock -r 2048 \$GFS_TGT" -at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -r 2048 $GFS_TGT" "mkfs.at:136" -( $at_check_trace; $GFS_MKFS -p lock_nolock -r 2048 $GFS_TGT -) >>"$at_stdout" 2>>"$at_stderr" 5>&- -at_status=$? at_failed=false -$at_check_filter -echo stderr:; cat "$at_stderr" -echo stdout:; cat "$at_stdout" -at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:136" -$at_failed && at_fn_log_failure -$at_traceon; } - -{ set +x -$as_echo "$at_srcdir/mkfs.at:137: rgskipcheck.sh \$GFS_TGT; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" -at_fn_check_prepare_dynamic "rgskipcheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi" "mkfs.at:137" -( $at_check_trace; rgskipcheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi +$as_echo "$at_srcdir/mkfs.at:137: \$GFS_MKFS -p lock_nolock -o test_topology=0:512:65536:393216:512 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -o test_topology=0:512:65536:393216:512 $GFS_TGT" "mkfs.at:137" +( $at_check_trace; $GFS_MKFS -p lock_nolock -o test_topology=0:512:65536:393216:512 $GFS_TGT ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter @@ -3437,23 +3462,11 @@ at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:137" $at_failed && at_fn_log_failure $at_traceon; } +# Check rgrp alignment to minimum_io_size: 65536 / 4096 == 16 { set +x -$as_echo "$at_srcdir/mkfs.at:138: \$GFS_MKFS -p lock_nolock -r 1024 \$GFS_TGT" -at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -r 1024 $GFS_TGT" "mkfs.at:138" -( $at_check_trace; $GFS_MKFS -p lock_nolock -r 1024 $GFS_TGT -) >>"$at_stdout" 2>>"$at_stderr" 5>&- -at_status=$? at_failed=false -$at_check_filter -echo stderr:; cat "$at_stderr" -echo stdout:; cat "$at_stdout" -at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:138" -$at_failed && at_fn_log_failure -$at_traceon; } - -{ set +x -$as_echo "$at_srcdir/mkfs.at:139: rgskipcheck.sh \$GFS_TGT; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" -at_fn_check_prepare_dynamic "rgskipcheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi" "mkfs.at:139" -( $at_check_trace; rgskipcheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi +$as_echo "$at_srcdir/mkfs.at:139: gfs2_edit -p rindex \$GFS_TGT | grep ri_addr | awk '{print \$2, \$2 % 16; if (\$2 % 16 != 0) { exit 1 }}'" +at_fn_check_prepare_notrace 'a shell pipeline' "mkfs.at:139" +( $at_check_trace; gfs2_edit -p rindex $GFS_TGT | grep ri_addr | awk '{print $2, $2 % 16; if ($2 % 16 != 0) { exit 1 }}' ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter @@ -3463,23 +3476,11 @@ at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:139" $at_failed && at_fn_log_failure $at_traceon; } +# rhbz#1698858 { set +x -$as_echo "$at_srcdir/mkfs.at:140: \$GFS_MKFS -p lock_nolock -r 512 \$GFS_TGT" -at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -r 512 $GFS_TGT" "mkfs.at:140" -( $at_check_trace; $GFS_MKFS -p lock_nolock -r 512 $GFS_TGT -) >>"$at_stdout" 2>>"$at_stderr" 5>&- -at_status=$? at_failed=false -$at_check_filter -echo stderr:; cat "$at_stderr" -echo stdout:; cat "$at_stdout" -at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:140" -$at_failed && at_fn_log_failure -$at_traceon; } - -{ set +x -$as_echo "$at_srcdir/mkfs.at:141: rgskipcheck.sh \$GFS_TGT; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" -at_fn_check_prepare_dynamic "rgskipcheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi" "mkfs.at:141" -( $at_check_trace; rgskipcheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi +$as_echo "$at_srcdir/mkfs.at:141: \$GFS_MKFS -p lock_nolock -o test_topology=0:512:131072:6291456:512 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -o test_topology=0:512:131072:6291456:512 $GFS_TGT" "mkfs.at:141" +( $at_check_trace; $GFS_MKFS -p lock_nolock -o test_topology=0:512:131072:6291456:512 $GFS_TGT ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter @@ -3489,62 +3490,24 @@ at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:141" $at_failed && at_fn_log_failure $at_traceon; } -{ set +x -$as_echo "$at_srcdir/mkfs.at:142: \$GFS_MKFS -p lock_nolock -r 219 \$GFS_TGT" -at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -r 219 $GFS_TGT" "mkfs.at:142" -( $at_check_trace; $GFS_MKFS -p lock_nolock -r 219 $GFS_TGT -) >>"$at_stdout" 2>>"$at_stderr" 5>&- -at_status=$? at_failed=false -$at_check_filter -echo stderr:; cat "$at_stderr" -echo stdout:; cat "$at_stdout" -at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:142" -$at_failed && at_fn_log_failure -$at_traceon; } + set +x + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" +#AT_STOP_20 +#AT_START_21 +at_fn_group_banner 21 'mkfs.at:144' \ + "Values of rg_skip" " " 1 +at_xfail=no +( + $as_echo "21. $at_setup_line: testing $at_desc ..." + $at_traceon + { set +x -$as_echo "$at_srcdir/mkfs.at:143: rgskipcheck.sh \$GFS_TGT; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" -at_fn_check_prepare_dynamic "rgskipcheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi" "mkfs.at:143" -( $at_check_trace; rgskipcheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi -) >>"$at_stdout" 2>>"$at_stderr" 5>&- -at_status=$? at_failed=false -$at_check_filter -echo stderr:; cat "$at_stderr" -echo stdout:; cat "$at_stdout" -at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:143" -$at_failed && at_fn_log_failure -$at_traceon; } - -{ set +x -$as_echo "$at_srcdir/mkfs.at:144: \$GFS_MKFS -p lock_nolock -r 32 \$GFS_TGT" -at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -r 32 $GFS_TGT" "mkfs.at:144" -( $at_check_trace; $GFS_MKFS -p lock_nolock -r 32 $GFS_TGT -) >>"$at_stdout" 2>>"$at_stderr" 5>&- -at_status=$? at_failed=false -$at_check_filter -echo stderr:; cat "$at_stderr" -echo stdout:; cat "$at_stdout" -at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:144" -$at_failed && at_fn_log_failure -$at_traceon; } - -{ set +x -$as_echo "$at_srcdir/mkfs.at:145: rgskipcheck.sh \$GFS_TGT; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" -at_fn_check_prepare_dynamic "rgskipcheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi" "mkfs.at:145" -( $at_check_trace; rgskipcheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi -) >>"$at_stdout" 2>>"$at_stderr" 5>&- -at_status=$? at_failed=false -$at_check_filter -echo stderr:; cat "$at_stderr" -echo stdout:; cat "$at_stdout" -at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:145" -$at_failed && at_fn_log_failure -$at_traceon; } - -{ set +x -$as_echo "$at_srcdir/mkfs.at:146: \$GFS_MKFS -p lock_nolock -o test_topology=0:512:65536:393216:512 \$GFS_TGT" -at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -o test_topology=0:512:65536:393216:512 $GFS_TGT" "mkfs.at:146" -( $at_check_trace; $GFS_MKFS -p lock_nolock -o test_topology=0:512:65536:393216:512 $GFS_TGT +$as_echo "$at_srcdir/mkfs.at:146: \$GFS_MKFS -p lock_nolock -r 2048 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -r 2048 $GFS_TGT" "mkfs.at:146" +( $at_check_trace; $GFS_MKFS -p lock_nolock -r 2048 $GFS_TGT ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter @@ -3567,24 +3530,62 @@ at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:147" $at_failed && at_fn_log_failure $at_traceon; } - set +x - $at_times_p && times >"$at_times_file" -) 5>&1 2>&1 7>&- | eval $at_tee_pipe -read at_status <"$at_status_file" -#AT_STOP_20 -#AT_START_21 -at_fn_group_banner 21 'mkfs.at:150' \ - "Values of rg_data0, rg_data, rg_bitbytes" " " 1 -at_xfail=no -( - $as_echo "21. $at_setup_line: testing $at_desc ..." - $at_traceon - +{ set +x +$as_echo "$at_srcdir/mkfs.at:148: \$GFS_MKFS -p lock_nolock -r 1024 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -r 1024 $GFS_TGT" "mkfs.at:148" +( $at_check_trace; $GFS_MKFS -p lock_nolock -r 1024 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:148" +$at_failed && at_fn_log_failure +$at_traceon; } { set +x -$as_echo "$at_srcdir/mkfs.at:152: \$GFS_MKFS -p lock_nolock -r 2048 \$GFS_TGT" -at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -r 2048 $GFS_TGT" "mkfs.at:152" -( $at_check_trace; $GFS_MKFS -p lock_nolock -r 2048 $GFS_TGT +$as_echo "$at_srcdir/mkfs.at:149: rgskipcheck.sh \$GFS_TGT; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" +at_fn_check_prepare_dynamic "rgskipcheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi" "mkfs.at:149" +( $at_check_trace; rgskipcheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:149" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:150: \$GFS_MKFS -p lock_nolock -r 512 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -r 512 $GFS_TGT" "mkfs.at:150" +( $at_check_trace; $GFS_MKFS -p lock_nolock -r 512 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:150" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:151: rgskipcheck.sh \$GFS_TGT; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" +at_fn_check_prepare_dynamic "rgskipcheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi" "mkfs.at:151" +( $at_check_trace; rgskipcheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:151" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:152: \$GFS_MKFS -p lock_nolock -r 219 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -r 219 $GFS_TGT" "mkfs.at:152" +( $at_check_trace; $GFS_MKFS -p lock_nolock -r 219 $GFS_TGT ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter @@ -3595,9 +3596,9 @@ $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/mkfs.at:153: rgrifieldscheck.sh \$GFS_TGT; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" -at_fn_check_prepare_dynamic "rgrifieldscheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi" "mkfs.at:153" -( $at_check_trace; rgrifieldscheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi +$as_echo "$at_srcdir/mkfs.at:153: rgskipcheck.sh \$GFS_TGT; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" +at_fn_check_prepare_dynamic "rgskipcheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi" "mkfs.at:153" +( $at_check_trace; rgskipcheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter @@ -3608,9 +3609,9 @@ $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/mkfs.at:154: \$GFS_MKFS -p lock_nolock -r 1024 \$GFS_TGT" -at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -r 1024 $GFS_TGT" "mkfs.at:154" -( $at_check_trace; $GFS_MKFS -p lock_nolock -r 1024 $GFS_TGT +$as_echo "$at_srcdir/mkfs.at:154: \$GFS_MKFS -p lock_nolock -r 32 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -r 32 $GFS_TGT" "mkfs.at:154" +( $at_check_trace; $GFS_MKFS -p lock_nolock -r 32 $GFS_TGT ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter @@ -3621,9 +3622,9 @@ $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/mkfs.at:155: rgrifieldscheck.sh \$GFS_TGT; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" -at_fn_check_prepare_dynamic "rgrifieldscheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi" "mkfs.at:155" -( $at_check_trace; rgrifieldscheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi +$as_echo "$at_srcdir/mkfs.at:155: rgskipcheck.sh \$GFS_TGT; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" +at_fn_check_prepare_dynamic "rgskipcheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi" "mkfs.at:155" +( $at_check_trace; rgskipcheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter @@ -3634,9 +3635,9 @@ $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/mkfs.at:156: \$GFS_MKFS -p lock_nolock -r 512 \$GFS_TGT" -at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -r 512 $GFS_TGT" "mkfs.at:156" -( $at_check_trace; $GFS_MKFS -p lock_nolock -r 512 $GFS_TGT +$as_echo "$at_srcdir/mkfs.at:156: \$GFS_MKFS -p lock_nolock -o test_topology=0:512:65536:393216:512 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -o test_topology=0:512:65536:393216:512 $GFS_TGT" "mkfs.at:156" +( $at_check_trace; $GFS_MKFS -p lock_nolock -o test_topology=0:512:65536:393216:512 $GFS_TGT ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter @@ -3647,9 +3648,9 @@ $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/mkfs.at:157: rgrifieldscheck.sh \$GFS_TGT; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" -at_fn_check_prepare_dynamic "rgrifieldscheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi" "mkfs.at:157" -( $at_check_trace; rgrifieldscheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi +$as_echo "$at_srcdir/mkfs.at:157: rgskipcheck.sh \$GFS_TGT; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" +at_fn_check_prepare_dynamic "rgskipcheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi" "mkfs.at:157" +( $at_check_trace; rgskipcheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter @@ -3659,62 +3660,24 @@ at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:157" $at_failed && at_fn_log_failure $at_traceon; } -{ set +x -$as_echo "$at_srcdir/mkfs.at:158: \$GFS_MKFS -p lock_nolock -r 219 \$GFS_TGT" -at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -r 219 $GFS_TGT" "mkfs.at:158" -( $at_check_trace; $GFS_MKFS -p lock_nolock -r 219 $GFS_TGT -) >>"$at_stdout" 2>>"$at_stderr" 5>&- -at_status=$? at_failed=false -$at_check_filter -echo stderr:; cat "$at_stderr" -echo stdout:; cat "$at_stdout" -at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:158" -$at_failed && at_fn_log_failure -$at_traceon; } + set +x + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" +#AT_STOP_21 +#AT_START_22 +at_fn_group_banner 22 'mkfs.at:160' \ + "Values of rg_data0, rg_data, rg_bitbytes" " " 1 +at_xfail=no +( + $as_echo "22. $at_setup_line: testing $at_desc ..." + $at_traceon + { set +x -$as_echo "$at_srcdir/mkfs.at:159: rgrifieldscheck.sh \$GFS_TGT; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" -at_fn_check_prepare_dynamic "rgrifieldscheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi" "mkfs.at:159" -( $at_check_trace; rgrifieldscheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi -) >>"$at_stdout" 2>>"$at_stderr" 5>&- -at_status=$? at_failed=false -$at_check_filter -echo stderr:; cat "$at_stderr" -echo stdout:; cat "$at_stdout" -at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:159" -$at_failed && at_fn_log_failure -$at_traceon; } - -{ set +x -$as_echo "$at_srcdir/mkfs.at:160: \$GFS_MKFS -p lock_nolock -r 32 \$GFS_TGT" -at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -r 32 $GFS_TGT" "mkfs.at:160" -( $at_check_trace; $GFS_MKFS -p lock_nolock -r 32 $GFS_TGT -) >>"$at_stdout" 2>>"$at_stderr" 5>&- -at_status=$? at_failed=false -$at_check_filter -echo stderr:; cat "$at_stderr" -echo stdout:; cat "$at_stdout" -at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:160" -$at_failed && at_fn_log_failure -$at_traceon; } - -{ set +x -$as_echo "$at_srcdir/mkfs.at:161: rgrifieldscheck.sh \$GFS_TGT; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" -at_fn_check_prepare_dynamic "rgrifieldscheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi" "mkfs.at:161" -( $at_check_trace; rgrifieldscheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi -) >>"$at_stdout" 2>>"$at_stderr" 5>&- -at_status=$? at_failed=false -$at_check_filter -echo stderr:; cat "$at_stderr" -echo stdout:; cat "$at_stdout" -at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:161" -$at_failed && at_fn_log_failure -$at_traceon; } - -{ set +x -$as_echo "$at_srcdir/mkfs.at:162: \$GFS_MKFS -p lock_nolock -o test_topology=0:512:65536:393216:512 \$GFS_TGT" -at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -o test_topology=0:512:65536:393216:512 $GFS_TGT" "mkfs.at:162" -( $at_check_trace; $GFS_MKFS -p lock_nolock -o test_topology=0:512:65536:393216:512 $GFS_TGT +$as_echo "$at_srcdir/mkfs.at:162: \$GFS_MKFS -p lock_nolock -r 2048 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -r 2048 $GFS_TGT" "mkfs.at:162" +( $at_check_trace; $GFS_MKFS -p lock_nolock -r 2048 $GFS_TGT ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter @@ -3737,40 +3700,75 @@ at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:163" $at_failed && at_fn_log_failure $at_traceon; } - set +x - $at_times_p && times >"$at_times_file" -) 5>&1 2>&1 7>&- | eval $at_tee_pipe -read at_status <"$at_status_file" -#AT_STOP_21 -#AT_START_22 -at_fn_group_banner 22 'mkfs.at:166' \ - "Small filesystems" " " 1 -at_xfail=no -( - $as_echo "22. $at_setup_line: testing $at_desc ..." - $at_traceon - - { set +x -$as_echo "$at_srcdir/mkfs.at:168: rm -f \$GFS_TGT && truncate -s 32M \${GFS_TGT}" -at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:168" -( $at_check_trace; rm -f $GFS_TGT && truncate -s 32M ${GFS_TGT} +$as_echo "$at_srcdir/mkfs.at:164: \$GFS_MKFS -p lock_nolock -r 1024 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -r 1024 $GFS_TGT" "mkfs.at:164" +( $at_check_trace; $GFS_MKFS -p lock_nolock -r 1024 $GFS_TGT ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter echo stderr:; cat "$at_stderr" echo stdout:; cat "$at_stdout" -at_fn_check_skip $at_status "$at_srcdir/mkfs.at:168" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:164" $at_failed && at_fn_log_failure $at_traceon; } -$as_echo "mkfs.at:168" >"$at_check_line_file" -(test ! -f ${GFS_TGT}) \ - && at_fn_check_skip 77 "$at_srcdir/mkfs.at:168" { set +x -$as_echo "$at_srcdir/mkfs.at:169: \$GFS_MKFS -p lock_nolock \$GFS_TGT" -at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock $GFS_TGT" "mkfs.at:169" -( $at_check_trace; $GFS_MKFS -p lock_nolock $GFS_TGT +$as_echo "$at_srcdir/mkfs.at:165: rgrifieldscheck.sh \$GFS_TGT; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" +at_fn_check_prepare_dynamic "rgrifieldscheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi" "mkfs.at:165" +( $at_check_trace; rgrifieldscheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:165" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:166: \$GFS_MKFS -p lock_nolock -r 512 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -r 512 $GFS_TGT" "mkfs.at:166" +( $at_check_trace; $GFS_MKFS -p lock_nolock -r 512 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:166" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:167: rgrifieldscheck.sh \$GFS_TGT; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" +at_fn_check_prepare_dynamic "rgrifieldscheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi" "mkfs.at:167" +( $at_check_trace; rgrifieldscheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:167" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:168: \$GFS_MKFS -p lock_nolock -r 219 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -r 219 $GFS_TGT" "mkfs.at:168" +( $at_check_trace; $GFS_MKFS -p lock_nolock -r 219 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:168" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:169: rgrifieldscheck.sh \$GFS_TGT; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" +at_fn_check_prepare_dynamic "rgrifieldscheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi" "mkfs.at:169" +( $at_check_trace; rgrifieldscheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter @@ -3781,9 +3779,9 @@ $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/mkfs.at:170: fsck.gfs2 -n \$GFS_TGT" -at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:170" -( $at_check_trace; fsck.gfs2 -n $GFS_TGT +$as_echo "$at_srcdir/mkfs.at:170: \$GFS_MKFS -p lock_nolock -r 32 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -r 32 $GFS_TGT" "mkfs.at:170" +( $at_check_trace; $GFS_MKFS -p lock_nolock -r 32 $GFS_TGT ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter @@ -3794,25 +3792,22 @@ $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/mkfs.at:171: rm -f \$GFS_TGT && truncate -s 64M \${GFS_TGT}" -at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:171" -( $at_check_trace; rm -f $GFS_TGT && truncate -s 64M ${GFS_TGT} +$as_echo "$at_srcdir/mkfs.at:171: rgrifieldscheck.sh \$GFS_TGT; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" +at_fn_check_prepare_dynamic "rgrifieldscheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi" "mkfs.at:171" +( $at_check_trace; rgrifieldscheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter echo stderr:; cat "$at_stderr" echo stdout:; cat "$at_stdout" -at_fn_check_skip $at_status "$at_srcdir/mkfs.at:171" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:171" $at_failed && at_fn_log_failure $at_traceon; } -$as_echo "mkfs.at:171" >"$at_check_line_file" -(test ! -f ${GFS_TGT}) \ - && at_fn_check_skip 77 "$at_srcdir/mkfs.at:171" { set +x -$as_echo "$at_srcdir/mkfs.at:172: \$GFS_MKFS -p lock_nolock -j2 \$GFS_TGT" -at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -j2 $GFS_TGT" "mkfs.at:172" -( $at_check_trace; $GFS_MKFS -p lock_nolock -j2 $GFS_TGT +$as_echo "$at_srcdir/mkfs.at:172: \$GFS_MKFS -p lock_nolock -o test_topology=0:512:65536:393216:512 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -o test_topology=0:512:65536:393216:512 $GFS_TGT" "mkfs.at:172" +( $at_check_trace; $GFS_MKFS -p lock_nolock -o test_topology=0:512:65536:393216:512 $GFS_TGT ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter @@ -3823,9 +3818,9 @@ $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/mkfs.at:173: fsck.gfs2 -n \$GFS_TGT" -at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:173" -( $at_check_trace; fsck.gfs2 -n $GFS_TGT +$as_echo "$at_srcdir/mkfs.at:173: rgrifieldscheck.sh \$GFS_TGT; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" +at_fn_check_prepare_dynamic "rgrifieldscheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi" "mkfs.at:173" +( $at_check_trace; rgrifieldscheck.sh $GFS_TGT; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter @@ -3841,14 +3836,112 @@ $at_traceon; } read at_status <"$at_status_file" #AT_STOP_22 #AT_START_23 -at_fn_group_banner 23 'fsck.at:4' \ - "Conflicting options" " " 2 +at_fn_group_banner 23 'mkfs.at:176' \ + "Small filesystems" " " 1 at_xfail=no ( $as_echo "23. $at_setup_line: testing $at_desc ..." $at_traceon +{ set +x +$as_echo "$at_srcdir/mkfs.at:178: rm -f \$GFS_TGT && truncate -s 32M \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:178" +( $at_check_trace; rm -f $GFS_TGT && truncate -s 32M ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/mkfs.at:178" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "mkfs.at:178" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/mkfs.at:178" +{ set +x +$as_echo "$at_srcdir/mkfs.at:179: \$GFS_MKFS -p lock_nolock \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock $GFS_TGT" "mkfs.at:179" +( $at_check_trace; $GFS_MKFS -p lock_nolock $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:179" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:180: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:180" +( $at_check_trace; fsck.gfs2 -n $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:180" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:181: rm -f \$GFS_TGT && truncate -s 64M \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "mkfs.at:181" +( $at_check_trace; rm -f $GFS_TGT && truncate -s 64M ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_skip $at_status "$at_srcdir/mkfs.at:181" +$at_failed && at_fn_log_failure +$at_traceon; } + +$as_echo "mkfs.at:181" >"$at_check_line_file" +(test ! -f ${GFS_TGT}) \ + && at_fn_check_skip 77 "$at_srcdir/mkfs.at:181" +{ set +x +$as_echo "$at_srcdir/mkfs.at:182: \$GFS_MKFS -p lock_nolock -j2 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -j2 $GFS_TGT" "mkfs.at:182" +( $at_check_trace; $GFS_MKFS -p lock_nolock -j2 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:182" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/mkfs.at:183: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "mkfs.at:183" +( $at_check_trace; fsck.gfs2 -n $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/mkfs.at:183" +$at_failed && at_fn_log_failure +$at_traceon; } + + set +x + $at_times_p && times >"$at_times_file" +) 5>&1 2>&1 7>&- | eval $at_tee_pipe +read at_status <"$at_status_file" +#AT_STOP_23 +#AT_START_24 +at_fn_group_banner 24 'fsck.at:4' \ + "Conflicting options" " " 2 +at_xfail=no +( + $as_echo "24. $at_setup_line: testing $at_desc ..." + $at_traceon + + # Error code 16 is FSCK_USAGE { set +x $as_echo "$at_srcdir/fsck.at:7: fsck.gfs2 -y -n \$GFS_TGT" @@ -3932,13 +4025,13 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_23 -#AT_START_24 -at_fn_group_banner 24 'fsck.at:15' \ +#AT_STOP_24 +#AT_START_25 +at_fn_group_banner 25 'fsck.at:15' \ "Fix invalid block sizes" " " 2 at_xfail=no ( - $as_echo "24. $at_setup_line: testing $at_desc ..." + $as_echo "25. $at_setup_line: testing $at_desc ..." $at_traceon @@ -4286,13 +4379,13 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_24 -#AT_START_25 -at_fn_group_banner 25 'fsck.at:24' \ +#AT_STOP_25 +#AT_START_26 +at_fn_group_banner 26 'fsck.at:24' \ "Fix invalid goal blocks" " " 2 at_xfail=no ( - $as_echo "25. $at_setup_line: testing $at_desc ..." + $as_echo "26. $at_setup_line: testing $at_desc ..." $at_traceon @@ -4368,13 +4461,13 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_25 -#AT_START_26 -at_fn_group_banner 26 'fsck.at:29' \ +#AT_STOP_26 +#AT_START_27 +at_fn_group_banner 27 'fsck.at:29' \ "Fix bad resource group #0" " " 2 at_xfail=no ( - $as_echo "26. $at_setup_line: testing $at_desc ..." + $as_echo "27. $at_setup_line: testing $at_desc ..." $at_traceon @@ -4450,13 +4543,13 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_26 -#AT_START_27 -at_fn_group_banner 27 'fsck.at:34' \ +#AT_STOP_27 +#AT_START_28 +at_fn_group_banner 28 'fsck.at:34' \ "Fix bad resource group #1" " " 2 at_xfail=no ( - $as_echo "27. $at_setup_line: testing $at_desc ..." + $as_echo "28. $at_setup_line: testing $at_desc ..." $at_traceon @@ -4532,13 +4625,13 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_27 -#AT_START_28 -at_fn_group_banner 28 'fsck.at:44' \ +#AT_STOP_28 +#AT_START_29 +at_fn_group_banner 29 'fsck.at:44' \ "Fix bad rindex entry #1" " " 2 at_xfail=no ( - $as_echo "28. $at_setup_line: testing $at_desc ..." + $as_echo "29. $at_setup_line: testing $at_desc ..." $at_traceon @@ -4614,13 +4707,13 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_28 -#AT_START_29 -at_fn_group_banner 29 'fsck.at:49' \ +#AT_STOP_29 +#AT_START_30 +at_fn_group_banner 30 'fsck.at:49' \ "Rebuild bad journal" " " 2 at_xfail=no ( - $as_echo "29. $at_setup_line: testing $at_desc ..." + $as_echo "30. $at_setup_line: testing $at_desc ..." $at_traceon @@ -4696,13 +4789,13 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_29 -#AT_START_30 -at_fn_group_banner 30 'fsck.at:58' \ +#AT_STOP_30 +#AT_START_31 +at_fn_group_banner 31 'fsck.at:58' \ "gfs2 format versions" " " 2 at_xfail=no ( - $as_echo "30. $at_setup_line: testing $at_desc ..." + $as_echo "31. $at_setup_line: testing $at_desc ..." $at_traceon @@ -4736,9 +4829,9 @@ $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/fsck.at:62: echo \"set sb { sb_fs_format: 1802 }\" | gfs2l \${GFS_TGT}; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" +$as_echo "$at_srcdir/fsck.at:62: echo \"set sb { sb_fs_format: 1803 }\" | gfs2l \${GFS_TGT}; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" at_fn_check_prepare_notrace 'a ${...} parameter expansion' "fsck.at:62" -( $at_check_trace; echo "set sb { sb_fs_format: 1802 }" | gfs2l ${GFS_TGT}; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi +( $at_check_trace; echo "set sb { sb_fs_format: 1803 }" | gfs2l ${GFS_TGT}; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter @@ -4800,19 +4893,45 @@ echo stderr:; cat "$at_stderr" echo stdout:; cat "$at_stdout" at_fn_check_status 0 $at_status "$at_srcdir/fsck.at:68" $at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/fsck.at:69: mkfs.gfs2 -O -p lock_nolock -o format=1802 \${GFS_TGT}" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "fsck.at:69" +( $at_check_trace; mkfs.gfs2 -O -p lock_nolock -o format=1802 ${GFS_TGT} +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/fsck.at:69" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/fsck.at:70: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "fsck.at:70" +( $at_check_trace; fsck.gfs2 -n $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/fsck.at:70" +$at_failed && at_fn_log_failure $at_traceon; } set +x $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_30 -#AT_START_31 -at_fn_group_banner 31 'edit.at:4' \ +#AT_STOP_31 +#AT_START_32 +at_fn_group_banner 32 'edit.at:4' \ "Save/restoremeta, defaults" " " 3 at_xfail=no ( - $as_echo "31. $at_setup_line: testing $at_desc ..." + $as_echo "32. $at_setup_line: testing $at_desc ..." $at_traceon @@ -4920,13 +5039,13 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_31 -#AT_START_32 -at_fn_group_banner 32 'edit.at:17' \ +#AT_STOP_32 +#AT_START_33 +at_fn_group_banner 33 'edit.at:17' \ "Save/restoremeta, no compression" " " 3 at_xfail=no ( - $as_echo "32. $at_setup_line: testing $at_desc ..." + $as_echo "33. $at_setup_line: testing $at_desc ..." $at_traceon @@ -5018,13 +5137,13 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_32 -#AT_START_33 -at_fn_group_banner 33 'edit.at:27' \ +#AT_STOP_33 +#AT_START_34 +at_fn_group_banner 34 'edit.at:27' \ "Save/restoremeta, min. block size" " " 3 at_xfail=no ( - $as_echo "33. $at_setup_line: testing $at_desc ..." + $as_echo "34. $at_setup_line: testing $at_desc ..." $at_traceon @@ -5116,13 +5235,13 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_33 -#AT_START_34 -at_fn_group_banner 34 'edit.at:37' \ +#AT_STOP_34 +#AT_START_35 +at_fn_group_banner 35 'edit.at:37' \ "Save/restoremeta, 4 journals" " " 3 at_xfail=no ( - $as_echo "34. $at_setup_line: testing $at_desc ..." + $as_echo "35. $at_setup_line: testing $at_desc ..." $at_traceon @@ -5214,13 +5333,13 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_34 -#AT_START_35 -at_fn_group_banner 35 'edit.at:47' \ +#AT_STOP_35 +#AT_START_36 +at_fn_group_banner 36 'edit.at:47' \ "Save/restoremeta, min. block size, 4 journals" " " 3 at_xfail=no ( - $as_echo "35. $at_setup_line: testing $at_desc ..." + $as_echo "36. $at_setup_line: testing $at_desc ..." $at_traceon @@ -5312,13 +5431,13 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_35 -#AT_START_36 -at_fn_group_banner 36 'edit.at:57' \ +#AT_STOP_36 +#AT_START_37 +at_fn_group_banner 37 'edit.at:57' \ "Save metadata to /dev/null" " " 3 at_xfail=no ( - $as_echo "36. $at_setup_line: testing $at_desc ..." + $as_echo "37. $at_setup_line: testing $at_desc ..." $at_traceon @@ -5381,50 +5500,10 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_36 -#AT_START_37 -at_fn_group_banner 37 'libgfs2.at:3' \ - "meta.c" " " 4 -at_xfail=no -( - $as_echo "37. $at_setup_line: testing $at_desc ..." - $at_traceon - - -{ set +x -$as_echo "$at_srcdir/libgfs2.at:3: test x\"\$ENABLE_UNIT_TESTS\" = \"xyes\" || exit 77" -at_fn_check_prepare_dynamic "test x\"$ENABLE_UNIT_TESTS\" = \"xyes\" || exit 77" "libgfs2.at:3" -( $at_check_trace; test x"$ENABLE_UNIT_TESTS" = "xyes" || exit 77 -) >>"$at_stdout" 2>>"$at_stderr" 5>&- -at_status=$? at_failed=false -$at_check_filter -at_fn_diff_devnull "$at_stderr" || at_failed=: -at_fn_diff_devnull "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/libgfs2.at:3" -$at_failed && at_fn_log_failure -$at_traceon; } - -{ set +x -$as_echo "$at_srcdir/libgfs2.at:4: check_meta; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" -at_fn_check_prepare_dynamic "check_meta; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi" "libgfs2.at:4" -( $at_check_trace; check_meta; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi -) >>"$at_stdout" 2>>"$at_stderr" 5>&- -at_status=$? at_failed=false -$at_check_filter -echo stderr:; cat "$at_stderr" -echo stdout:; cat "$at_stdout" -at_fn_check_status 0 $at_status "$at_srcdir/libgfs2.at:4" -$at_failed && at_fn_log_failure -$at_traceon; } - - set +x - $at_times_p && times >"$at_times_file" -) 5>&1 2>&1 7>&- | eval $at_tee_pipe -read at_status <"$at_status_file" #AT_STOP_37 #AT_START_38 -at_fn_group_banner 38 'libgfs2.at:7' \ - "rgrp.c" " " 4 +at_fn_group_banner 38 'tune.at:4' \ + "Format version" " " 4 at_xfail=no ( $as_echo "38. $at_setup_line: testing $at_desc ..." @@ -5432,28 +5511,97 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/libgfs2.at:7: test x\"\$ENABLE_UNIT_TESTS\" = \"xyes\" || exit 77" -at_fn_check_prepare_dynamic "test x\"$ENABLE_UNIT_TESTS\" = \"xyes\" || exit 77" "libgfs2.at:7" -( $at_check_trace; test x"$ENABLE_UNIT_TESTS" = "xyes" || exit 77 -) >>"$at_stdout" 2>>"$at_stderr" 5>&- -at_status=$? at_failed=false -$at_check_filter -at_fn_diff_devnull "$at_stderr" || at_failed=: -at_fn_diff_devnull "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/libgfs2.at:7" -$at_failed && at_fn_log_failure -$at_traceon; } - -{ set +x -$as_echo "$at_srcdir/libgfs2.at:8: check_rgrp; x=\$?; if test \$x -eq 127; then exit 77; else exit \$x; fi" -at_fn_check_prepare_dynamic "check_rgrp; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi" "libgfs2.at:8" -( $at_check_trace; check_rgrp; x=$?; if test $x -eq 127; then exit 77; else exit $x; fi +$as_echo "$at_srcdir/tune.at:6: \$GFS_MKFS -p lock_nolock -o format=1802 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -o format=1802 $GFS_TGT" "tune.at:6" +( $at_check_trace; $GFS_MKFS -p lock_nolock -o format=1802 $GFS_TGT ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter echo stderr:; cat "$at_stderr" echo stdout:; cat "$at_stdout" -at_fn_check_status 0 $at_status "$at_srcdir/libgfs2.at:8" +at_fn_check_status 0 $at_status "$at_srcdir/tune.at:6" +$at_failed && at_fn_log_failure +$at_traceon; } + +# Exit code 65 == EX_DATAERR (sysexits.h) +{ set +x +$as_echo "$at_srcdir/tune.at:8: tunegfs2 -r 0 \$GFS_TGT" +at_fn_check_prepare_dynamic "tunegfs2 -r 0 $GFS_TGT" "tune.at:8" +( $at_check_trace; tunegfs2 -r 0 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 65 $at_status "$at_srcdir/tune.at:8" +$at_failed && at_fn_log_failure +$at_traceon; } + +# Regress not supported +{ set +x +$as_echo "$at_srcdir/tune.at:10: tunegfs2 -r 1801 \$GFS_TGT" +at_fn_check_prepare_dynamic "tunegfs2 -r 1801 $GFS_TGT" "tune.at:10" +( $at_check_trace; tunegfs2 -r 1801 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 65 $at_status "$at_srcdir/tune.at:10" +$at_failed && at_fn_log_failure +$at_traceon; } + +# Format 1803 does not exist +{ set +x +$as_echo "$at_srcdir/tune.at:12: tunegfs2 -r 1803 \$GFS_TGT" +at_fn_check_prepare_dynamic "tunegfs2 -r 1803 $GFS_TGT" "tune.at:12" +( $at_check_trace; tunegfs2 -r 1803 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 65 $at_status "$at_srcdir/tune.at:12" +$at_failed && at_fn_log_failure +$at_traceon; } + +# Normal version bump +{ set +x +$as_echo "$at_srcdir/tune.at:14: \$GFS_MKFS -p lock_nolock -o format=1801 \$GFS_TGT" +at_fn_check_prepare_dynamic "$GFS_MKFS -p lock_nolock -o format=1801 $GFS_TGT" "tune.at:14" +( $at_check_trace; $GFS_MKFS -p lock_nolock -o format=1801 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/tune.at:14" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/tune.at:15: tunegfs2 -r 1802 \$GFS_TGT" +at_fn_check_prepare_dynamic "tunegfs2 -r 1802 $GFS_TGT" "tune.at:15" +( $at_check_trace; tunegfs2 -r 1802 $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/tune.at:15" +$at_failed && at_fn_log_failure +$at_traceon; } + +{ set +x +$as_echo "$at_srcdir/tune.at:16: fsck.gfs2 -n \$GFS_TGT" +at_fn_check_prepare_dynamic "fsck.gfs2 -n $GFS_TGT" "tune.at:16" +( $at_check_trace; fsck.gfs2 -n $GFS_TGT +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo stderr:; cat "$at_stderr" +echo stdout:; cat "$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/tune.at:16" $at_failed && at_fn_log_failure $at_traceon; } From a074a7436dea5e323060c78a562136f33b0c82c5 Mon Sep 17 00:00:00 2001 From: Andrew Price Date: Mon, 15 Mar 2021 10:41:35 +0000 Subject: [PATCH 59/75] * Mon Mar 15 2021 Andrew Price - 3.4.1-1 - New upstream version --- .gitignore | 1 + gfs2-utils.spec | 5 ++++- sources | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index facb12a..2daf545 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /gfs2-utils-3.3.0.tar.gz /gfs2-utils-3.4.0.tar.gz +/gfs2-utils-3.4.1.tar.gz diff --git a/gfs2-utils.spec b/gfs2-utils.spec index 8616ac3..3b7c2cc 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -1,5 +1,5 @@ Name: gfs2-utils -Version: 3.4.0 +Version: 3.4.1 Release: 1%{?dist} License: GPLv2+ and LGPLv2+ Summary: Utilities for managing the global file system (GFS2) @@ -63,6 +63,9 @@ modifying, and correcting inconsistencies in GFS2 file systems. %{_prefix}/lib/udev/rules.d/82-gfs2-withdraw.rules %changelog +* Mon Mar 15 2021 Andrew Price - 3.4.1-1 +- New upstream version + * Mon Mar 08 2021 Andrew Price - 3.4.0-1 - New upstream version - Update testsuite script diff --git a/sources b/sources index f879e91..b779448 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (gfs2-utils-3.4.0.tar.gz) = 01d3f582705a5dc9ee9919d3cd5798118233797f1400a7d2387a2e5072cdc347c6d5c8140aa242c0d00a2b26f31ae19386938f22761c76b3dbfb7a71f97c7420 +SHA512 (gfs2-utils-3.4.1.tar.gz) = 998c6d15e2f4b00ffffe18b8ab84f3ae11daf7ba4d10bc4e5d602ecc370b8f4de2fe44af4d7b9926785d4a39680139a9ae8a66d6863ff19b1a60fd999a60495e From c1bedfabfa631a72a6ab8c83b82354c2cdc5df6d Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 22 Jul 2021 00:10:11 +0000 Subject: [PATCH 60/75] - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- gfs2-utils.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gfs2-utils.spec b/gfs2-utils.spec index 3b7c2cc..43f955e 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -1,6 +1,6 @@ Name: gfs2-utils Version: 3.4.1 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv2+ and LGPLv2+ Summary: Utilities for managing the global file system (GFS2) %ifnarch %{arm} @@ -63,6 +63,9 @@ modifying, and correcting inconsistencies in GFS2 file systems. %{_prefix}/lib/udev/rules.d/82-gfs2-withdraw.rules %changelog +* Thu Jul 22 2021 Fedora Release Engineering - 3.4.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + * Mon Mar 15 2021 Andrew Price - 3.4.1-1 - New upstream version From 009a3940f3987324440465ec08666c4d87480629 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 20 Jan 2022 04:21:55 +0000 Subject: [PATCH 61/75] - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- gfs2-utils.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gfs2-utils.spec b/gfs2-utils.spec index 43f955e..e79c924 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -1,6 +1,6 @@ Name: gfs2-utils Version: 3.4.1 -Release: 2%{?dist} +Release: 3%{?dist} License: GPLv2+ and LGPLv2+ Summary: Utilities for managing the global file system (GFS2) %ifnarch %{arm} @@ -63,6 +63,9 @@ modifying, and correcting inconsistencies in GFS2 file systems. %{_prefix}/lib/udev/rules.d/82-gfs2-withdraw.rules %changelog +* Thu Jan 20 2022 Fedora Release Engineering - 3.4.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + * Thu Jul 22 2021 Fedora Release Engineering - 3.4.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild From 56e8974ead862577d526a9e17918d3de3957b8ec Mon Sep 17 00:00:00 2001 From: Andrew Price Date: Thu, 23 Jun 2022 15:41:47 +0100 Subject: [PATCH 62/75] * Thu Jun 23 2022 Andrew Price - 3.4.1-4 - gfs2/edit: always use "%s"-style format for printf()-style functions - Custom patch to fix a printw() call missed by the above Fixes a build failure due to format-security warnings being treated as errors --- ...le_format_for_printf_style_functions.patch | 33 +++++++++++++++++++ 1-fix-missed-printw.patch | 12 +++++++ gfs2-utils.spec | 9 ++++- 3 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 0-gfs2_edit_always_use_s_style_format_for_printf_style_functions.patch create mode 100644 1-fix-missed-printw.patch diff --git a/0-gfs2_edit_always_use_s_style_format_for_printf_style_functions.patch b/0-gfs2_edit_always_use_s_style_format_for_printf_style_functions.patch new file mode 100644 index 0000000..1c5d7d7 --- /dev/null +++ b/0-gfs2_edit_always_use_s_style_format_for_printf_style_functions.patch @@ -0,0 +1,33 @@ +commit 17fb470356a6d55988f05ac70f06b382ef982604 +Author: Sergei Trofimovich +Date: Sun Nov 7 09:00:31 2021 +0000 + + gfs2/edit: always use "%s"-style format for printf()-style functions + + `ncurses-6.3` added printf-style function attributes and now makes + it easier to catch cases when user input is used in place of format + string when built with CFLAGS=-Werror=format-security: + + hexedit.c:227:9: error: format not a string literal and no format arguments [-Werror=format-security] + 227 | printw(s2); + | ^~~~~~ + + Let's wrap all the missing places with "%s" format. + +diff --git a/gfs2/edit/hexedit.c b/gfs2/edit/hexedit.c +index 798639b5..88ee3e5f 100644 +--- a/gfs2/edit/hexedit.c ++++ b/gfs2/edit/hexedit.c +@@ -221,10 +221,10 @@ static void gfs2instr(const char *s1, const char *s2) + { + COLORS_HIGHLIGHT; + move(line,0); +- printw(s1); ++ printw("%s", s1); + COLORS_NORMAL; + move(line,17); +- printw(s2); ++ printw("%s", s2); + line++; + } + diff --git a/1-fix-missed-printw.patch b/1-fix-missed-printw.patch new file mode 100644 index 0000000..be4c2d7 --- /dev/null +++ b/1-fix-missed-printw.patch @@ -0,0 +1,12 @@ +diff -urN gfs2-utils-3.4.1.old/gfs2/edit/gfs2hex.c gfs2-utils-3.4.1/gfs2/edit/gfs2hex.c +--- gfs2-utils-3.4.1.old/gfs2/edit/gfs2hex.c 2022-06-23 15:28:41.957428587 +0100 ++++ gfs2-utils-3.4.1/gfs2/edit/gfs2hex.c 2022-06-23 15:29:38.013944443 +0100 +@@ -374,7 +374,7 @@ + if (termlines) { + check_highlight(TRUE); + move(line,2); +- printw(title); ++ printw("%s", title); + check_highlight(FALSE); + } + else diff --git a/gfs2-utils.spec b/gfs2-utils.spec index e79c924..d0bcb5c 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -1,6 +1,6 @@ Name: gfs2-utils Version: 3.4.1 -Release: 3%{?dist} +Release: 4%{?dist} License: GPLv2+ and LGPLv2+ Summary: Utilities for managing the global file system (GFS2) %ifnarch %{arm} @@ -21,6 +21,8 @@ BuildRequires: bzip2-devel BuildRequires: make Source: https://releases.pagure.org/gfs2-utils/gfs2-utils-%{version}.tar.gz URL: https://pagure.io/gfs2-utils +Patch: 0-gfs2_edit_always_use_s_style_format_for_printf_style_functions.patch +Patch: 1-fix-missed-printw.patch %prep %autosetup -p1 @@ -63,6 +65,11 @@ modifying, and correcting inconsistencies in GFS2 file systems. %{_prefix}/lib/udev/rules.d/82-gfs2-withdraw.rules %changelog +* Thu Jun 23 2022 Andrew Price - 3.4.1-4 +- gfs2/edit: always use "%s"-style format for printf()-style functions +- Custom patch to fix a printw() call missed by the above + Fixes a build failure due to format-security warnings being treated as errors + * Thu Jan 20 2022 Fedora Release Engineering - 3.4.1-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild From 05ff9d3929e95a73b5d9437badaeb747b6e62999 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 21 Jul 2022 04:32:13 +0000 Subject: [PATCH 63/75] Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- gfs2-utils.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gfs2-utils.spec b/gfs2-utils.spec index d0bcb5c..d387ad7 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -1,6 +1,6 @@ Name: gfs2-utils Version: 3.4.1 -Release: 4%{?dist} +Release: 5%{?dist} License: GPLv2+ and LGPLv2+ Summary: Utilities for managing the global file system (GFS2) %ifnarch %{arm} @@ -65,6 +65,9 @@ modifying, and correcting inconsistencies in GFS2 file systems. %{_prefix}/lib/udev/rules.d/82-gfs2-withdraw.rules %changelog +* Thu Jul 21 2022 Fedora Release Engineering - 3.4.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + * Thu Jun 23 2022 Andrew Price - 3.4.1-4 - gfs2/edit: always use "%s"-style format for printf()-style functions - Custom patch to fix a printw() call missed by the above From 5af69c86ff0a4781a669d6435f993749fe836366 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 19 Jan 2023 04:47:19 +0000 Subject: [PATCH 64/75] Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- gfs2-utils.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gfs2-utils.spec b/gfs2-utils.spec index d387ad7..d70129c 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -1,6 +1,6 @@ Name: gfs2-utils Version: 3.4.1 -Release: 5%{?dist} +Release: 6%{?dist} License: GPLv2+ and LGPLv2+ Summary: Utilities for managing the global file system (GFS2) %ifnarch %{arm} @@ -65,6 +65,9 @@ modifying, and correcting inconsistencies in GFS2 file systems. %{_prefix}/lib/udev/rules.d/82-gfs2-withdraw.rules %changelog +* Thu Jan 19 2023 Fedora Release Engineering - 3.4.1-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + * Thu Jul 21 2022 Fedora Release Engineering - 3.4.1-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild From 1e1999af85f70a41f427c790668ed8eb34583378 Mon Sep 17 00:00:00 2001 From: Andrew Price Date: Thu, 9 Feb 2023 16:32:20 +0000 Subject: [PATCH 65/75] * Thu Feb 09 2023 Andrew Price - 3.5.0-1 - New upstream release - Drop all patches - Exclude i686 for https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval - Migrate to SPDX license identifier --- .gitignore | 1 + ...le_format_for_printf_style_functions.patch | 33 ------------------- 1-fix-missed-printw.patch | 12 ------- gfs2-utils.spec | 17 +++++++--- sources | 2 +- 5 files changed, 14 insertions(+), 51 deletions(-) delete mode 100644 0-gfs2_edit_always_use_s_style_format_for_printf_style_functions.patch delete mode 100644 1-fix-missed-printw.patch diff --git a/.gitignore b/.gitignore index 2daf545..e258909 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /gfs2-utils-3.3.0.tar.gz /gfs2-utils-3.4.0.tar.gz /gfs2-utils-3.4.1.tar.gz +/gfs2-utils-3.5.0.tar.gz diff --git a/0-gfs2_edit_always_use_s_style_format_for_printf_style_functions.patch b/0-gfs2_edit_always_use_s_style_format_for_printf_style_functions.patch deleted file mode 100644 index 1c5d7d7..0000000 --- a/0-gfs2_edit_always_use_s_style_format_for_printf_style_functions.patch +++ /dev/null @@ -1,33 +0,0 @@ -commit 17fb470356a6d55988f05ac70f06b382ef982604 -Author: Sergei Trofimovich -Date: Sun Nov 7 09:00:31 2021 +0000 - - gfs2/edit: always use "%s"-style format for printf()-style functions - - `ncurses-6.3` added printf-style function attributes and now makes - it easier to catch cases when user input is used in place of format - string when built with CFLAGS=-Werror=format-security: - - hexedit.c:227:9: error: format not a string literal and no format arguments [-Werror=format-security] - 227 | printw(s2); - | ^~~~~~ - - Let's wrap all the missing places with "%s" format. - -diff --git a/gfs2/edit/hexedit.c b/gfs2/edit/hexedit.c -index 798639b5..88ee3e5f 100644 ---- a/gfs2/edit/hexedit.c -+++ b/gfs2/edit/hexedit.c -@@ -221,10 +221,10 @@ static void gfs2instr(const char *s1, const char *s2) - { - COLORS_HIGHLIGHT; - move(line,0); -- printw(s1); -+ printw("%s", s1); - COLORS_NORMAL; - move(line,17); -- printw(s2); -+ printw("%s", s2); - line++; - } - diff --git a/1-fix-missed-printw.patch b/1-fix-missed-printw.patch deleted file mode 100644 index be4c2d7..0000000 --- a/1-fix-missed-printw.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -urN gfs2-utils-3.4.1.old/gfs2/edit/gfs2hex.c gfs2-utils-3.4.1/gfs2/edit/gfs2hex.c ---- gfs2-utils-3.4.1.old/gfs2/edit/gfs2hex.c 2022-06-23 15:28:41.957428587 +0100 -+++ gfs2-utils-3.4.1/gfs2/edit/gfs2hex.c 2022-06-23 15:29:38.013944443 +0100 -@@ -374,7 +374,7 @@ - if (termlines) { - check_highlight(TRUE); - move(line,2); -- printw(title); -+ printw("%s", title); - check_highlight(FALSE); - } - else diff --git a/gfs2-utils.spec b/gfs2-utils.spec index d70129c..586bcae 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -1,11 +1,14 @@ Name: gfs2-utils -Version: 3.4.1 -Release: 6%{?dist} -License: GPLv2+ and LGPLv2+ +Version: 3.5.0 +Release: 1%{?dist} +# Refer to doc/README.licence in the upstream tarball +License: GPL-2.0-or-later AND LGPL-2.1-or-later Summary: Utilities for managing the global file system (GFS2) %ifnarch %{arm} %{?fedora:Recommends: kmod(gfs2.ko) kmod(dlm.ko)} %endif +# https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval +ExcludeArch: %{ix86} BuildRequires: ncurses-devel BuildRequires: kernel-headers BuildRequires: automake @@ -21,8 +24,6 @@ BuildRequires: bzip2-devel BuildRequires: make Source: https://releases.pagure.org/gfs2-utils/gfs2-utils-%{version}.tar.gz URL: https://pagure.io/gfs2-utils -Patch: 0-gfs2_edit_always_use_s_style_format_for_printf_style_functions.patch -Patch: 1-fix-missed-printw.patch %prep %autosetup -p1 @@ -65,6 +66,12 @@ modifying, and correcting inconsistencies in GFS2 file systems. %{_prefix}/lib/udev/rules.d/82-gfs2-withdraw.rules %changelog +* Thu Feb 09 2023 Andrew Price - 3.5.0-1 +- New upstream release +- Drop all patches +- Exclude i686 for https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval +- Migrate to SPDX license identifier + * Thu Jan 19 2023 Fedora Release Engineering - 3.4.1-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild diff --git a/sources b/sources index b779448..310735a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (gfs2-utils-3.4.1.tar.gz) = 998c6d15e2f4b00ffffe18b8ab84f3ae11daf7ba4d10bc4e5d602ecc370b8f4de2fe44af4d7b9926785d4a39680139a9ae8a66d6863ff19b1a60fd999a60495e +SHA512 (gfs2-utils-3.5.0.tar.gz) = 9fb47bab0b082b4379ea0ccb5066a95a9dfb5912cde9ca950b7771a4699ecf3df1f99ebd709893866eaffa77f7d8894f6fadef423df79e3f7563d8f94d137765 From c378aa91c68f5dd977cd17499bfa2372c9ec3e43 Mon Sep 17 00:00:00 2001 From: Andrew Price Date: Tue, 11 Apr 2023 18:37:03 +0100 Subject: [PATCH 66/75] * Tue Apr 11 2023 Andrew Price - 3.5.1-1 - New upstream release --- .gitignore | 1 + gfs2-utils.spec | 5 ++++- sources | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index e258909..0c329f8 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ /gfs2-utils-3.4.0.tar.gz /gfs2-utils-3.4.1.tar.gz /gfs2-utils-3.5.0.tar.gz +/gfs2-utils-3.5.1.tar.gz diff --git a/gfs2-utils.spec b/gfs2-utils.spec index 586bcae..e95949b 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -1,5 +1,5 @@ Name: gfs2-utils -Version: 3.5.0 +Version: 3.5.1 Release: 1%{?dist} # Refer to doc/README.licence in the upstream tarball License: GPL-2.0-or-later AND LGPL-2.1-or-later @@ -66,6 +66,9 @@ modifying, and correcting inconsistencies in GFS2 file systems. %{_prefix}/lib/udev/rules.d/82-gfs2-withdraw.rules %changelog +* Tue Apr 11 2023 Andrew Price - 3.5.1-1 +- New upstream release + * Thu Feb 09 2023 Andrew Price - 3.5.0-1 - New upstream release - Drop all patches diff --git a/sources b/sources index 310735a..4278534 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (gfs2-utils-3.5.0.tar.gz) = 9fb47bab0b082b4379ea0ccb5066a95a9dfb5912cde9ca950b7771a4699ecf3df1f99ebd709893866eaffa77f7d8894f6fadef423df79e3f7563d8f94d137765 +SHA512 (gfs2-utils-3.5.1.tar.gz) = 08c7b1870b1fb76496f7ab4ce3c121e4e5f5a37760831536817ed880ef030d765a533c53ba9913ae080b4a98b4efaffa112fcf92acd4e939199d1dae8d0e6f9b From 8a2056d72b6047abdb5a38ddc0cafd2528231df3 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 19 Jul 2023 21:13:19 +0000 Subject: [PATCH 67/75] Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- gfs2-utils.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gfs2-utils.spec b/gfs2-utils.spec index e95949b..75a2f4f 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -1,6 +1,6 @@ Name: gfs2-utils Version: 3.5.1 -Release: 1%{?dist} +Release: 2%{?dist} # Refer to doc/README.licence in the upstream tarball License: GPL-2.0-or-later AND LGPL-2.1-or-later Summary: Utilities for managing the global file system (GFS2) @@ -66,6 +66,9 @@ modifying, and correcting inconsistencies in GFS2 file systems. %{_prefix}/lib/udev/rules.d/82-gfs2-withdraw.rules %changelog +* Wed Jul 19 2023 Fedora Release Engineering - 3.5.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + * Tue Apr 11 2023 Andrew Price - 3.5.1-1 - New upstream release From 2a63457c456237db8a83f32d94d847296b9ed00c Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 19 Jan 2024 20:41:10 +0000 Subject: [PATCH 68/75] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- gfs2-utils.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gfs2-utils.spec b/gfs2-utils.spec index 75a2f4f..5a3969b 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -1,6 +1,6 @@ Name: gfs2-utils Version: 3.5.1 -Release: 2%{?dist} +Release: 3%{?dist} # Refer to doc/README.licence in the upstream tarball License: GPL-2.0-or-later AND LGPL-2.1-or-later Summary: Utilities for managing the global file system (GFS2) @@ -66,6 +66,9 @@ modifying, and correcting inconsistencies in GFS2 file systems. %{_prefix}/lib/udev/rules.d/82-gfs2-withdraw.rules %changelog +* Fri Jan 19 2024 Fedora Release Engineering - 3.5.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Wed Jul 19 2023 Fedora Release Engineering - 3.5.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild From e87fb43e6fdc0d47d8d596a0e563854008c34cb0 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 24 Jan 2024 12:56:36 +0000 Subject: [PATCH 69/75] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- gfs2-utils.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gfs2-utils.spec b/gfs2-utils.spec index 5a3969b..b64b2dc 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -1,6 +1,6 @@ Name: gfs2-utils Version: 3.5.1 -Release: 3%{?dist} +Release: 4%{?dist} # Refer to doc/README.licence in the upstream tarball License: GPL-2.0-or-later AND LGPL-2.1-or-later Summary: Utilities for managing the global file system (GFS2) @@ -66,6 +66,9 @@ modifying, and correcting inconsistencies in GFS2 file systems. %{_prefix}/lib/udev/rules.d/82-gfs2-withdraw.rules %changelog +* Wed Jan 24 2024 Fedora Release Engineering - 3.5.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Fri Jan 19 2024 Fedora Release Engineering - 3.5.1-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From 5a9f1acadd7a7279e47c0b6cf9f4742bb46ccedc Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 18 Jul 2024 00:35:26 +0000 Subject: [PATCH 70/75] Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild --- gfs2-utils.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gfs2-utils.spec b/gfs2-utils.spec index b64b2dc..a8a7f45 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -1,6 +1,6 @@ Name: gfs2-utils Version: 3.5.1 -Release: 4%{?dist} +Release: 5%{?dist} # Refer to doc/README.licence in the upstream tarball License: GPL-2.0-or-later AND LGPL-2.1-or-later Summary: Utilities for managing the global file system (GFS2) @@ -66,6 +66,9 @@ modifying, and correcting inconsistencies in GFS2 file systems. %{_prefix}/lib/udev/rules.d/82-gfs2-withdraw.rules %changelog +* Thu Jul 18 2024 Fedora Release Engineering - 3.5.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + * Wed Jan 24 2024 Fedora Release Engineering - 3.5.1-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From 11929a37617d1c91789c8c47764c74797f2e4997 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 16 Jan 2025 19:57:40 +0000 Subject: [PATCH 71/75] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild --- gfs2-utils.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gfs2-utils.spec b/gfs2-utils.spec index a8a7f45..845a3ff 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -1,6 +1,6 @@ Name: gfs2-utils Version: 3.5.1 -Release: 5%{?dist} +Release: 6%{?dist} # Refer to doc/README.licence in the upstream tarball License: GPL-2.0-or-later AND LGPL-2.1-or-later Summary: Utilities for managing the global file system (GFS2) @@ -66,6 +66,9 @@ modifying, and correcting inconsistencies in GFS2 file systems. %{_prefix}/lib/udev/rules.d/82-gfs2-withdraw.rules %changelog +* Thu Jan 16 2025 Fedora Release Engineering - 3.5.1-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + * Thu Jul 18 2024 Fedora Release Engineering - 3.5.1-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild From 9914a4c60a73ccffb857a41715c2bc513544baf3 Mon Sep 17 00:00:00 2001 From: Andrew Price Date: Mon, 20 Jan 2025 18:06:53 +0000 Subject: [PATCH 72/75] * Mon Jan 20 2025 Andrew Price - 3.5.1-7 - Don't hardcode /usr/sbin in the spec --- gfs2-utils.spec | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/gfs2-utils.spec b/gfs2-utils.spec index 845a3ff..778e1d5 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -1,6 +1,6 @@ Name: gfs2-utils Version: 3.5.1 -Release: 6%{?dist} +Release: 7%{?dist} # Refer to doc/README.licence in the upstream tarball License: GPL-2.0-or-later AND LGPL-2.1-or-later Summary: Utilities for managing the global file system (GFS2) @@ -39,8 +39,8 @@ make check || { cat tests/testsuite.log; exit 1; } %install %make_install # Don't ship gfs2_{trace,lockcapture} in this package -rm -f %{buildroot}/usr/sbin/gfs2_trace -rm -f %{buildroot}/usr/sbin/gfs2_lockcapture +rm -f %{buildroot}%{_sbindir}/gfs2_trace +rm -f %{buildroot}%{_sbindir}/gfs2_lockcapture rm -f %{buildroot}%{_mandir}/man8/gfs2_trace.8 rm -f %{buildroot}%{_mandir}/man8/gfs2_lockcapture.8 @@ -66,6 +66,9 @@ modifying, and correcting inconsistencies in GFS2 file systems. %{_prefix}/lib/udev/rules.d/82-gfs2-withdraw.rules %changelog +* Mon Jan 20 2025 Andrew Price - 3.5.1-7 +- Don't hardcode /usr/sbin in the spec + * Thu Jan 16 2025 Fedora Release Engineering - 3.5.1-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild From 0d360ede59aafd48958f891bb7f5d79eb654b0d4 Mon Sep 17 00:00:00 2001 From: Andrew Price Date: Thu, 27 Feb 2025 17:13:30 +0000 Subject: [PATCH 73/75] * Thu Feb 27 2025 Andrew Price - 3.6.1-1 - New upstream release --- .gitignore | 1 + gfs2-utils.spec | 8 +++++--- sources | 2 +- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 0c329f8..3076a6f 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ /gfs2-utils-3.4.1.tar.gz /gfs2-utils-3.5.0.tar.gz /gfs2-utils-3.5.1.tar.gz +/gfs2-utils-3.6.1.tar.gz diff --git a/gfs2-utils.spec b/gfs2-utils.spec index 778e1d5..58beb29 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -1,6 +1,6 @@ Name: gfs2-utils -Version: 3.5.1 -Release: 7%{?dist} +Version: 3.6.1 +Release: 1%{?dist} # Refer to doc/README.licence in the upstream tarball License: GPL-2.0-or-later AND LGPL-2.1-or-later Summary: Utilities for managing the global file system (GFS2) @@ -55,7 +55,6 @@ modifying, and correcting inconsistencies in GFS2 file systems. %{_sbindir}/gfs2_grow %{_sbindir}/gfs2_jadd %{_sbindir}/mkfs.gfs2 -%{_sbindir}/gfs2_convert %{_sbindir}/gfs2_edit %{_sbindir}/tunegfs2 %{_sbindir}/glocktop @@ -66,6 +65,9 @@ modifying, and correcting inconsistencies in GFS2 file systems. %{_prefix}/lib/udev/rules.d/82-gfs2-withdraw.rules %changelog +* Thu Feb 27 2025 Andrew Price - 3.6.1-1 +- New upstream release + * Mon Jan 20 2025 Andrew Price - 3.5.1-7 - Don't hardcode /usr/sbin in the spec diff --git a/sources b/sources index 4278534..bf0a0ab 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (gfs2-utils-3.5.1.tar.gz) = 08c7b1870b1fb76496f7ab4ce3c121e4e5f5a37760831536817ed880ef030d765a533c53ba9913ae080b4a98b4efaffa112fcf92acd4e939199d1dae8d0e6f9b +SHA512 (gfs2-utils-3.6.1.tar.gz) = c620cd7cac29af927a6325ffe024f3090285083f8a094935f318026e7fadb9b63cdbccc4962141ff93a2994fe32d138bf1ff999a58dfe268c034156132785346 From 940e1380316390487b89742392d76a7e43575db4 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 23 Jul 2025 21:20:59 +0000 Subject: [PATCH 74/75] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild --- gfs2-utils.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gfs2-utils.spec b/gfs2-utils.spec index 58beb29..3f1220a 100644 --- a/gfs2-utils.spec +++ b/gfs2-utils.spec @@ -1,6 +1,6 @@ Name: gfs2-utils Version: 3.6.1 -Release: 1%{?dist} +Release: 2%{?dist} # Refer to doc/README.licence in the upstream tarball License: GPL-2.0-or-later AND LGPL-2.1-or-later Summary: Utilities for managing the global file system (GFS2) @@ -65,6 +65,9 @@ modifying, and correcting inconsistencies in GFS2 file systems. %{_prefix}/lib/udev/rules.d/82-gfs2-withdraw.rules %changelog +* Wed Jul 23 2025 Fedora Release Engineering - 3.6.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + * Thu Feb 27 2025 Andrew Price - 3.6.1-1 - New upstream release From 1cd5e8054480bdecdc4a5d84de6661712e19d329 Mon Sep 17 00:00:00 2001 From: Andrew Price Date: Mon, 28 Jul 2025 11:21:17 +0100 Subject: [PATCH 75/75] Migrate tests to tmt For https://fedoraproject.org/wiki/Changes/DisableSTI --- .fmf/version | 1 + plans/testsuite.fmf | 5 +++++ tests/tests.yml | 11 ----------- tests/testsuite.fmf | 2 ++ 4 files changed, 8 insertions(+), 11 deletions(-) create mode 100644 .fmf/version create mode 100644 plans/testsuite.fmf delete mode 100644 tests/tests.yml create mode 100644 tests/testsuite.fmf diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/plans/testsuite.fmf b/plans/testsuite.fmf new file mode 100644 index 0000000..2f86880 --- /dev/null +++ b/plans/testsuite.fmf @@ -0,0 +1,5 @@ +summary: Run testsuite +discover: + how: fmf +execute: + how: tmt diff --git a/tests/tests.yml b/tests/tests.yml deleted file mode 100644 index aaaac51..0000000 --- a/tests/tests.yml +++ /dev/null @@ -1,11 +0,0 @@ -- hosts: localhost - roles: - - role: standard-test-basic - tags: - - classic - environment: - PATH: ".:{{ ansible_env.PATH }}" - tests: - - upstream_test_suite: - dir: . - run: ./testsuite diff --git a/tests/testsuite.fmf b/tests/testsuite.fmf new file mode 100644 index 0000000..dd9714f --- /dev/null +++ b/tests/testsuite.fmf @@ -0,0 +1,2 @@ +summary: Upstream testsuite +test: ./testsuite