rpms/mdadm/devel mdadm-3.1.2-lock.patch, NONE, 1.1 mdadm.spec, 1.96, 1.97
Doug Ledford
dledford at fedoraproject.org
Tue Jul 20 21:51:07 UTC 2010
- Previous message: rpms/bcfg2/devel .cvsignore, 1.24, 1.25 bcfg2.spec, 1.37, 1.38 sources, 1.24, 1.25
- Next message: rpms/mdadm/F-13 mdadm-3.1.2-lock.patch, NONE, 1.1 mdadm-3.1.3-read.patch, NONE, 1.1 .cvsignore, 1.29, 1.30 mdadm.spec, 1.89, 1.90 sources, 1.29, 1.30 mdadm-3.1.1-endian.patch, 1.3, NONE mdadm-3.1.2-container-2.patch, 1.2, NONE mdadm-3.1.2-container.patch, 1.2, NONE mdadm-3.1.2-decremental-2.patch, 1.1, NONE mdadm-3.1.2-decremental-3.patch, 1.1, NONE mdadm-3.1.2-decremental.patch, 1.1, NONE mdadm-3.1.2-directory.patch, 1.1, NONE mdadm-3.1.2-mapfile.patch, 1.1, NONE mdadm-3.1.2-mapname.patch, 1.1, NONE mdadm-3.1.2-powerpc-compile.patch, 1.1, NONE mdadm-3.1.2-rebuild.patch, 1.1, NONE
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: dledford
Update of /cvs/extras/rpms/mdadm/devel
In directory cvs01.phx2.fedoraproject.org:/tmp/cvs-serv6594
Modified Files:
mdadm.spec
Added Files:
mdadm-3.1.2-lock.patch
Log Message:
* Tue Jul 20 2010 Doug Ledford <dledford at redhat.com> - 3.1.3-0.git07202010.2
- Fix racy locking of mapfile (bz616596)
mdadm-3.1.2-lock.patch:
Incremental.c | 8 ++++++--
mapfile.c | 16 +++++-----------
2 files changed, 11 insertions(+), 13 deletions(-)
--- NEW FILE mdadm-3.1.2-lock.patch ---
--- mdadm-3.1.2/Incremental.c.lock 2010-07-20 17:21:41.879217630 -0400
+++ mdadm-3.1.2/Incremental.c 2010-07-20 17:21:41.916342431 -0400
@@ -285,7 +285,9 @@ int Incremental(char *devname, int verbo
/* 4/ Check if array exists.
*/
- map_lock(&map);
+ if (map_lock(&map))
+ fprintf(stderr, Name ": failed to get exclusive lock on "
+ "mapfile\n");
mp = map_by_uuid(&map, info.uuid);
if (mp)
mdfd = open_dev(mp->devnum);
@@ -769,7 +771,9 @@ int Incremental_container(struct superty
struct mdinfo *ra;
struct map_ent *map = NULL;
- map_lock(&map);
+ if (map_lock(&map))
+ fprintf(stderr, Name ": failed to get exclusive lock on "
+ "mapfile\n");
for (ra = list ; ra ; ra = ra->next) {
int mdfd;
--- mdadm-3.1.2/mapfile.c.lock 2010-07-20 17:21:41.687217302 -0400
+++ mdadm-3.1.2/mapfile.c 2010-07-20 17:23:23.038096346 -0400
@@ -58,7 +58,7 @@ char *mapname[2][3] = {
};
char *mapdir[2] = { MAP_DIR, NULL };
-int mapmode[3] = { O_RDONLY, O_RDWR|O_CREAT, O_RDWR|O_CREAT|O_TRUNC };
+int mapmode[3] = { O_RDONLY, O_RDWR|O_CREAT, O_RDWR|O_CREAT|O_EXCL };
char *mapsmode[3] = { "r", "w", "w"};
FILE *open_map(int modenum, int *choice)
@@ -120,14 +120,11 @@ static int lwhich = 0;
int map_lock(struct map_ent **melp)
{
if (lf == NULL) {
- lf = open_map(2, &lwhich);
+ do {
+ lf = open_map(2, &lwhich);
+ } while (lf == NULL && errno == EEXIST);
if (lf == NULL)
return -1;
- if (flock(fileno(lf), LOCK_EX) != 0) {
- fclose(lf);
- lf = NULL;
- return -1;
- }
}
if (*melp)
map_free(*melp);
@@ -137,10 +134,7 @@ int map_lock(struct map_ent **melp)
void map_unlock(struct map_ent **melp)
{
- if (lf) {
- flock(fileno(lf), LOCK_UN);
- fclose(lf);
- }
+ fclose(lf);
unlink(mapname[lwhich][2]);
lf = NULL;
}
Index: mdadm.spec
===================================================================
RCS file: /cvs/extras/rpms/mdadm/devel/mdadm.spec,v
retrieving revision 1.96
retrieving revision 1.97
diff -u -p -r1.96 -r1.97
--- mdadm.spec 20 Jul 2010 16:57:55 -0000 1.96
+++ mdadm.spec 20 Jul 2010 21:51:06 -0000 1.97
@@ -1,13 +1,14 @@
Summary: The mdadm program controls Linux md devices (software RAID arrays)
Name: mdadm
Version: 3.1.3
-Release: 0.git07202010.1%{?dist}
+Release: 0.git07202010.2%{?dist}
Source: http://www.kernel.org/pub/linux/utils/raid/mdadm/mdadm-%{version}-git07202010.tar.bz2
Source1: mdmonitor.init
Source2: raid-check
Source3: mdadm.rules
Source4: mdadm-raid-check-sysconfig
Patch0: mdadm-3.1.3-read.patch
+PAtch1: mdadm-3.1.2-lock.patch
Patch20: mdadm-2.5.2-static.patch
URL: http://www.kernel.org/pub/linux/utils/raid/mdadm/
License: GPLv2+
@@ -30,6 +31,7 @@ file can be used to help with some commo
%prep
%setup -q -n mdadm-3.1.3-git07202010
%patch0 -p1 -b .read
+%patch1 -p1 -b .lock
%patch20 -p1 -b .static
%build
@@ -75,6 +77,9 @@ fi
%attr(0700,root,root) %dir /var/run/mdadm
%changelog
+* Tue Jul 20 2010 Doug Ledford <dledford at redhat.com> - 3.1.3-0.git07202010.2
+- Fix racy locking of mapfile (bz616596)
+
* Tue Jul 20 2010 Doug Ledford <dledford at redhat.com> - 3.1.3-0.git07202010.1
- Update to latest git repo (3.1.2 plus pending changes, fixes bz602457)
- Add in 64-md-raid.rules to compensate for it no longer being in udev
- Previous message: rpms/bcfg2/devel .cvsignore, 1.24, 1.25 bcfg2.spec, 1.37, 1.38 sources, 1.24, 1.25
- Next message: rpms/mdadm/F-13 mdadm-3.1.2-lock.patch, NONE, 1.1 mdadm-3.1.3-read.patch, NONE, 1.1 .cvsignore, 1.29, 1.30 mdadm.spec, 1.89, 1.90 sources, 1.29, 1.30 mdadm-3.1.1-endian.patch, 1.3, NONE mdadm-3.1.2-container-2.patch, 1.2, NONE mdadm-3.1.2-container.patch, 1.2, NONE mdadm-3.1.2-decremental-2.patch, 1.1, NONE mdadm-3.1.2-decremental-3.patch, 1.1, NONE mdadm-3.1.2-decremental.patch, 1.1, NONE mdadm-3.1.2-directory.patch, 1.1, NONE mdadm-3.1.2-mapfile.patch, 1.1, NONE mdadm-3.1.2-mapname.patch, 1.1, NONE mdadm-3.1.2-powerpc-compile.patch, 1.1, NONE mdadm-3.1.2-rebuild.patch, 1.1, NONE
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the scm-commits
mailing list