Fix problem with first stop command of IMSM raid during reshape
In addition - Remove Fedora 17 support - Fix pointless noise from rpm tools over date mismatches Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
This commit is contained in:
parent
6d157ec6dc
commit
f7e88a8ef4
@ -0,0 +1,54 @@
|
|||||||
|
From 2fdf559d74a48806900b63f1b4504a18dec048a9 Mon Sep 17 00:00:00 2001
|
||||||
|
From: NeilBrown <neilb@suse.de>
|
||||||
|
Date: Mon, 22 Apr 2013 17:05:33 +1000
|
||||||
|
Subject: [PATCH] Manage_runstop: call flush_mdmon if O_EXCL fails on stopping
|
||||||
|
mdmon array.
|
||||||
|
|
||||||
|
When stopping an mdmon array, at reshape might be being aborted
|
||||||
|
which inhibets O_EXCL. So if that is possible, call flush_mdmon
|
||||||
|
to make sure mdmon isn't still busy.
|
||||||
|
|
||||||
|
Reported-by: Pawel Baldysiak <pawel.baldysiak@intel.com>
|
||||||
|
Signed-off-by: NeilBrown <neilb@suse.de>
|
||||||
|
---
|
||||||
|
Manage.c | 29 ++++++++++++++++++++++++-----
|
||||||
|
1 file changed, 24 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/Manage.c b/Manage.c
|
||||||
|
index e3d3041..e37f415 100644
|
||||||
|
--- a/Manage.c
|
||||||
|
+++ b/Manage.c
|
||||||
|
@@ -221,8 +222,19 @@ int Manage_runstop(char *devname, int fd, int runstop,
|
||||||
|
/* Get EXCL access first. If this fails, then attempting
|
||||||
|
* to stop is probably a bad idea.
|
||||||
|
*/
|
||||||
|
- close(fd);
|
||||||
|
- fd = open(devname, O_RDONLY|O_EXCL);
|
||||||
|
+ mdi = sysfs_read(fd, -1, GET_LEVEL|GET_VERSION);
|
||||||
|
+ close(fd);
|
||||||
|
+ count = 5;
|
||||||
|
+ while (((fd = open(devname, O_RDONLY|O_EXCL)) < 0
|
||||||
|
+ || fd2devnum(fd) != devnum)
|
||||||
|
+ && mdi && !is_subarray(mdi->text_version)
|
||||||
|
+ && mdmon_running(devname2devnum(mdi->sys_name))
|
||||||
|
+ && count) {
|
||||||
|
+ if (fd >= 0)
|
||||||
|
+ close(fd);
|
||||||
|
+ flush_mdmon(mdi->sys_name);
|
||||||
|
+ count--;
|
||||||
|
+ }
|
||||||
|
if (fd < 0 || fd2devnum(fd) != devnum) {
|
||||||
|
if (fd >= 0)
|
||||||
|
close(fd);
|
||||||
|
@@ -237,7 +257,6 @@ int Manage_runstop(char *devname, int fd, int runstop,
|
||||||
|
devname);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
- mdi = sysfs_read(fd, -1, GET_LEVEL|GET_VERSION);
|
||||||
|
if (mdi &&
|
||||||
|
mdi->array.level > 0 &&
|
||||||
|
is_subarray(mdi->text_version)) {
|
||||||
|
|
||||||
|
--
|
||||||
|
1.8.3.1
|
||||||
|
|
64
mdadm.spec
64
mdadm.spec
@ -1,7 +1,7 @@
|
|||||||
Summary: The mdadm program controls Linux md devices (software RAID arrays)
|
Summary: The mdadm program controls Linux md devices (software RAID arrays)
|
||||||
Name: mdadm
|
Name: mdadm
|
||||||
Version: 3.2.6
|
Version: 3.2.6
|
||||||
Release: 20%{?dist}
|
Release: 21%{?dist}
|
||||||
Source: http://www.kernel.org/pub/linux/utils/raid/mdadm/mdadm-%{version}.tar.xz
|
Source: http://www.kernel.org/pub/linux/utils/raid/mdadm/mdadm-%{version}.tar.xz
|
||||||
Source1: mdmonitor.init
|
Source1: mdmonitor.init
|
||||||
Source2: raid-check
|
Source2: raid-check
|
||||||
@ -16,6 +16,7 @@ Patch2: mdadm-3.2.6-imsm-Forbid-spanning-between-multiple-controllers.patch
|
|||||||
Patch3: mdadm-3.2.6-query-udev-dir-via-pkg-config.patch
|
Patch3: mdadm-3.2.6-query-udev-dir-via-pkg-config.patch
|
||||||
Patch4: mdadm-3.2.6-Add-updating-component_size-to-manager-thread-of-mdm.patch
|
Patch4: mdadm-3.2.6-Add-updating-component_size-to-manager-thread-of-mdm.patch
|
||||||
Patch5: mdadm-3.2.6-imsm-monitor-do-not-finish-migration-if-there-are-no.patch
|
Patch5: mdadm-3.2.6-imsm-monitor-do-not-finish-migration-if-there-are-no.patch
|
||||||
|
Patch6: mdadm-3.2.6-Manage_runstop-call-flush_mdmon-if-O_EXCL-fails-on-s.patch
|
||||||
Patch93: mdadm-3.2.6-Remove-offroot-argument-and-default-to-always-settin.patch
|
Patch93: mdadm-3.2.6-Remove-offroot-argument-and-default-to-always-settin.patch
|
||||||
Patch94: mdadm-3.2.6-Add-support-for-launching-mdmon-via-systemctl-instea.patch
|
Patch94: mdadm-3.2.6-Add-support-for-launching-mdmon-via-systemctl-instea.patch
|
||||||
Patch95: mdadm-3.2.6-In-case-launching-mdmon-fails-print-an-error-message.patch
|
Patch95: mdadm-3.2.6-In-case-launching-mdmon-fails-print-an-error-message.patch
|
||||||
@ -30,22 +31,9 @@ License: GPLv2+
|
|||||||
Group: System Environment/Base
|
Group: System Environment/Base
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||||
Obsoletes: mdctl,raidtools
|
Obsoletes: mdctl,raidtools
|
||||||
%if 0%{?fedora} >= 18 || 0%{?rhel} >= 7
|
|
||||||
%define fedora17 0
|
|
||||||
%else
|
|
||||||
%define fedora17 1
|
|
||||||
%define _udevrulesdir /usr/lib/udev/rules.d
|
|
||||||
%define _tmpfilesdir %{_prefix}/usr/lib/tmpfiles.d
|
|
||||||
%endif
|
|
||||||
%if %{fedora17}
|
|
||||||
Requires(post): systemd-units systemd-sysv chkconfig coreutils
|
|
||||||
Requires: udev initscripts
|
|
||||||
Conflicts: dracut < 009-14
|
|
||||||
%else
|
|
||||||
Obsoletes: mdadm-sysvinit
|
Obsoletes: mdadm-sysvinit
|
||||||
Conflicts: dracut < 024-25
|
Conflicts: dracut < 024-25
|
||||||
Requires(post): systemd-units chkconfig coreutils
|
Requires(post): systemd-units chkconfig coreutils
|
||||||
%endif
|
|
||||||
BuildRequires: systemd-units binutils-devel
|
BuildRequires: systemd-units binutils-devel
|
||||||
Requires(preun): systemd-units
|
Requires(preun): systemd-units
|
||||||
Requires(postun): systemd-units coreutils
|
Requires(postun): systemd-units coreutils
|
||||||
@ -58,20 +46,6 @@ package. However, mdadm is a single program, and it can perform
|
|||||||
almost all functions without a configuration file, though a configuration
|
almost all functions without a configuration file, though a configuration
|
||||||
file can be used to help with some common tasks.
|
file can be used to help with some common tasks.
|
||||||
|
|
||||||
%if %{fedora17}
|
|
||||||
%package sysvinit
|
|
||||||
Group: System Environment/Base
|
|
||||||
Summary: SysV init script for mdadm
|
|
||||||
Requires: %{name} = %{version}-%{release}
|
|
||||||
Requires(post): /sbin/service
|
|
||||||
Requires(preun): /sbin/service
|
|
||||||
Requires(postun): /sbin/service
|
|
||||||
|
|
||||||
%description sysvinit
|
|
||||||
SysV style init script for mdadm. It needs to be installed only if systemd
|
|
||||||
is not used as the system init process.
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
%patch1 -p1 -b .raidsize
|
%patch1 -p1 -b .raidsize
|
||||||
@ -79,34 +53,24 @@ is not used as the system init process.
|
|||||||
%patch3 -p1 -b .udevquery
|
%patch3 -p1 -b .udevquery
|
||||||
%patch4 -p1 -b .component
|
%patch4 -p1 -b .component
|
||||||
%patch5 -p1 -b .migration
|
%patch5 -p1 -b .migration
|
||||||
|
%patch6 -p1 -b .runstop
|
||||||
|
|
||||||
# Use systemctl to launch mdmon on F18 and higher
|
# Use systemctl to launch mdmon on F18 and higher
|
||||||
%if !%{fedora17}
|
|
||||||
%patch93 -p1 -b .nooffroot
|
%patch93 -p1 -b .nooffroot
|
||||||
%patch94 -p1 -b .sysctl
|
%patch94 -p1 -b .sysctl
|
||||||
%patch95 -p1 -b .mdmonfail
|
%patch95 -p1 -b .mdmonfail
|
||||||
%patch96 -p1 -b .foreground
|
%patch96 -p1 -b .foreground
|
||||||
%endif
|
|
||||||
|
|
||||||
# Fedora customization patches
|
# Fedora customization patches
|
||||||
%patch97 -p1 -b .udev
|
%patch97 -p1 -b .udev
|
||||||
%patch98 -p1 -b .static
|
%patch98 -p1 -b .static
|
||||||
# Fedora 16, 17 - only
|
|
||||||
%if %{fedora17}
|
|
||||||
%patch99 -p1 -b .map-dir
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
make %{?_smp_mflags} CXFLAGS="$RPM_OPT_FLAGS" SYSCONFDIR="%{_sysconfdir}" mdadm mdmon
|
make %{?_smp_mflags} CXFLAGS="$RPM_OPT_FLAGS" SYSCONFDIR="%{_sysconfdir}" mdadm mdmon
|
||||||
|
|
||||||
%install
|
%install
|
||||||
rm -rf %{buildroot}
|
rm -rf %{buildroot}
|
||||||
%if !%{fedora17}
|
|
||||||
make DESTDIR=%{buildroot} MANDIR=%{_mandir} BINDIR=%{_sbindir} SYSTEMD_DIR=%{_unitdir} install install-systemd
|
make DESTDIR=%{buildroot} MANDIR=%{_mandir} BINDIR=%{_sbindir} SYSTEMD_DIR=%{_unitdir} install install-systemd
|
||||||
%else
|
|
||||||
make DESTDIR=%{buildroot} MANDIR=%{_mandir} BINDIR=%{_sbindir} SYSTEMD_DIR=%{_unitdir} install
|
|
||||||
install -Dp -m 755 %{SOURCE1} %{buildroot}%{_initrddir}/mdmonitor
|
|
||||||
%endif
|
|
||||||
install -Dp -m 755 %{SOURCE2} %{buildroot}%{_sbindir}/raid-check
|
install -Dp -m 755 %{SOURCE2} %{buildroot}%{_sbindir}/raid-check
|
||||||
install -Dp -m 644 %{SOURCE3} %{buildroot}%{_udevrulesdir}/65-md-incremental.rules
|
install -Dp -m 644 %{SOURCE3} %{buildroot}%{_udevrulesdir}/65-md-incremental.rules
|
||||||
install -Dp -m 644 %{SOURCE4} %{buildroot}%{_sysconfdir}/sysconfig/raid-check
|
install -Dp -m 644 %{SOURCE4} %{buildroot}%{_sysconfdir}/sysconfig/raid-check
|
||||||
@ -146,11 +110,6 @@ rm -rf %{buildroot}
|
|||||||
/sbin/chkconfig --del mdmonitor >/dev/null 2>&1 || :
|
/sbin/chkconfig --del mdmonitor >/dev/null 2>&1 || :
|
||||||
/bin/systemctl try-restart mdmonitor.service >/dev/null 2>&1 || :
|
/bin/systemctl try-restart mdmonitor.service >/dev/null 2>&1 || :
|
||||||
|
|
||||||
%if %{fedora17}
|
|
||||||
%triggerpostun -n %{name}-sysvinit -- %{name} < 3.2.2-3
|
|
||||||
/sbin/chkconfig --add mdmonitor >/dev/null 2>&1 || :
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%files
|
%files
|
||||||
%defattr(-,root,root,-)
|
%defattr(-,root,root,-)
|
||||||
%doc TODO ChangeLog mdadm.conf-example COPYING misc/*
|
%doc TODO ChangeLog mdadm.conf-example COPYING misc/*
|
||||||
@ -164,12 +123,13 @@ rm -rf %{buildroot}
|
|||||||
%config(noreplace) %{_tmpfilesdir}/%{name}.conf
|
%config(noreplace) %{_tmpfilesdir}/%{name}.conf
|
||||||
/etc/libreport/events.d/*
|
/etc/libreport/events.d/*
|
||||||
|
|
||||||
%if %{fedora17}
|
|
||||||
%files sysvinit
|
|
||||||
%{_initrddir}/*
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Aug 13 2013 Jes Sorensen <Jes.Sorensen@redhat.com> - 3.2.6-21
|
||||||
|
- Fix pointless rpmbuild noise over mismatching date info
|
||||||
|
- Remove Fedora 17 support
|
||||||
|
- Fix problem where first stop command doesn't stop container during
|
||||||
|
IMSM volume's reshape bz956053 (f18), bz956056 (f19)
|
||||||
|
|
||||||
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.2.6-20
|
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.2.6-20
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
|
||||||
|
|
||||||
@ -183,11 +143,11 @@ rm -rf %{buildroot}
|
|||||||
if an array was stopped during ongoing expansion of a RAID1/5 volume.
|
if an array was stopped during ongoing expansion of a RAID1/5 volume.
|
||||||
- Resolves bz948745
|
- Resolves bz948745
|
||||||
|
|
||||||
* Wed Apr 23 2013 Jes Sorensen <Jes.Sorensen@redhat.com> - 3.2.6-17
|
* Tue Apr 23 2013 Jes Sorensen <Jes.Sorensen@redhat.com> - 3.2.6-17
|
||||||
- Reorder patches to allow for udev query patch to be applied on
|
- Reorder patches to allow for udev query patch to be applied on
|
||||||
Fedora 17 as well.
|
Fedora 17 as well.
|
||||||
|
|
||||||
* Tue Apr 22 2013 Jes Sorensen <Jes.Sorensen@redhat.com> - 3.2.6-16
|
* Mon Apr 22 2013 Jes Sorensen <Jes.Sorensen@redhat.com> - 3.2.6-16
|
||||||
- Rely on rpm macros to place files in correct directories, and match /usr
|
- Rely on rpm macros to place files in correct directories, and match /usr
|
||||||
move
|
move
|
||||||
- Resolves bz955248
|
- Resolves bz955248
|
||||||
@ -960,7 +920,7 @@ rm -rf %{buildroot}
|
|||||||
- Added Obsoletes: mdctl
|
- Added Obsoletes: mdctl
|
||||||
- missingok for configfile
|
- missingok for configfile
|
||||||
|
|
||||||
* Wed Mar 12 2002 NeilBrown <neilb@cse.unsw.edu.au>
|
* Tue Mar 12 2002 NeilBrown <neilb@cse.unsw.edu.au>
|
||||||
- Add md.4 and mdadm.conf.5 man pages
|
- Add md.4 and mdadm.conf.5 man pages
|
||||||
|
|
||||||
* Fri Mar 08 2002 Chris Siebenmann <cks@cquest.utoronto.ca>
|
* Fri Mar 08 2002 Chris Siebenmann <cks@cquest.utoronto.ca>
|
||||||
|
Loading…
Reference in New Issue
Block a user