- Update to latest upstream version (should resolve #444237)

- Drop incremental patch as it's now part of upstream
- Clean up all the open() calls in the code (#437145)
- Fix the build process to actually generate mdassemble (#446988)
- Update the udev rules to get additional info about arrays being assembled
    from the /etc/mdadm.conf file (--scan option) (#447818)
- Update the udev rules to run degraded arrays (--run option) (#452459)
This commit is contained in:
Doug Ledford 2008-06-26 23:48:40 +00:00
parent 8fe36f4e44
commit a8863c5bdb
6 changed files with 140 additions and 16 deletions

View File

@ -8,3 +8,4 @@ mdadm-2.6.tgz
mdadm-2.6.1.tgz
mdadm-2.6.2.tgz
mdadm-2.6.4.tgz
mdadm-2.6.7.tar.bz2

View File

@ -1,6 +1,6 @@
--- mdadm-2.6.4/Makefile.build 2007-10-19 12:32:03.000000000 -0400
+++ mdadm-2.6.4/Makefile 2007-10-19 12:32:17.000000000 -0400
@@ -102,13 +102,15 @@ mdadm.static : $(OBJS) $(STATICOBJS)
--- mdadm-2.6.7/Makefile.build 2008-06-26 19:23:12.000000000 -0400
+++ mdadm-2.6.7/Makefile 2008-06-26 19:31:56.000000000 -0400
@@ -104,13 +104,15 @@ mdadm.static : $(OBJS) $(STATICOBJS)
$(CC) $(CFLAGS) $(LDFLAGS) -static -o mdadm.static $(OBJS) $(STATICOBJS)
mdadm.tcc : $(SRCS) mdadm.h
@ -17,14 +17,16 @@
gcc -nostdinc -iwithprefix include -I$(KLIBC)/klibc/include -I$(KLIBC)/linux/include -I$(KLIBC)/klibc/arch/i386/include -I$(KLIBC)/klibc/include/bits32 $(CFLAGS) $(SRCS)
mdadm.Os : $(SRCS) mdadm.h
@@ -121,15 +123,15 @@ test_stripe : restripe.c mdadm.h
@@ -122,12 +124,12 @@ mdadm.O2 : $(SRCS) mdadm.h
test_stripe : restripe.c mdadm.h
$(CC) $(CXFLAGS) $(LDFLAGS) -o test_stripe -DMAIN restripe.c
mdassemble : $(ASSEMBLE_SRCS) mdadm.h
-mdassemble : $(ASSEMBLE_SRCS) mdadm.h
- rm -f $(OBJS)
- $(DIET_GCC) $(ASSEMBLE_FLAGS) -o mdassemble $(ASSEMBLE_SRCS) $(STATICSRC)
+mdassemble : $(ASSEMBLE_SRCS) $(STATICSRC) mdadm.h
+ rm -f $(OBJS) $(STATICOBJS)
+ $(CC) $(ASSEMBLE_FLAGS) $(LDFLAGS) -DHAVE_STDINT_H -o mdassemble.static $(ASSEMBLE_SRCS) $(STATICSRC)
+ $(CC) $(ASSEMBLE_FLAGS) $(LDFLAGS) -DHAVE_STDINT_H -o mdassemble $(ASSEMBLE_SRCS) $(STATICSRC)
-mdassemble.static : $(ASSEMBLE_SRCS) mdadm.h
- rm -f $(OBJS)
@ -32,14 +34,30 @@
+ rm -f $(OBJS) $(STATICOBJS)
$(CC) $(ASSEMBLE_FLAGS) $(LDFLAGS) -static -DHAVE_STDINT_H -o mdassemble.static $(ASSEMBLE_SRCS) $(STATICSRC)
mdassemble.auto : $(ASSEMBLE_SRCS) mdadm.h $(ASSEMBLE_AUTO_SRCS)
@@ -135,8 +137,8 @@ mdassemble.auto : $(ASSEMBLE_SRCS) mdadm
$(MAKE) MDASSEMBLE_AUTO=1 mdassemble.static
mv mdassemble.static mdassemble.auto
-mdassemble.uclibc : $(ASSEMBLE_SRCS) mdadm.h
- rm -f $(OJS)
+mdassemble.uclibc : $(ASSEMBLE_SRCS) $(STATICSRC) mdadm.h
+ rm -f $(OBJS) $(STATICOBJS)
+ rm -f $(OJS) $(STATICOBJS)
$(UCLIBC_GCC) $(ASSEMBLE_FLAGS) -DUCLIBC -DHAVE_STDINT_H -static -o mdassemble.uclibc $(ASSEMBLE_SRCS) $(STATICSRC)
# This doesn't work
@@ -172,10 +174,10 @@ install-klibc : mdadm.klibc install-man
@@ -161,8 +163,9 @@ $(OBJS) : mdadm.h bitmap.h
sha1.o : sha1.c sha1.h md5.h
$(CC) $(CFLAGS) -DHAVE_STDINT_H -o sha1.o -c sha1.c
-install : mdadm mdadm.static mdassemble.static install-man
+install : mdadm mdadm.static mdassemble mdassemble.static install-man
$(INSTALL) -D -m 755 mdadm $(DESTDIR)$(BINDIR)/mdadm
+ $(INSTALL) -D -m 755 mdassemble $(DESTDIR)$(BINDIR)/mdassemble
$(INSTALL) -D -m 755 mdadm.static $(DESTDIR)$(BINDIR)/mdadm.static
$(INSTALL) -D -m 755 mdassemble.static $(DESTDIR)$(BINDIR)/mdassemble.static
@@ -179,10 +182,10 @@ install-klibc : mdadm.klibc install-man
$(INSTALL) -D -m 755 mdadm.klibc $(DESTDIR)$(BINDIR)/mdadm
install-man: mdadm.8 mdassemble.8 md.4 mdadm.conf.5

95
mdadm-2.6.4-open.patch Normal file
View File

@ -0,0 +1,95 @@
--- mdadm-2.6.7/Create.c.open 2008-06-05 22:11:04.000000000 -0400
+++ mdadm-2.6.7/Create.c 2008-06-26 19:34:48.000000000 -0400
@@ -212,7 +212,7 @@ int Create(struct supertype *st, char *m
info.array.working_disks++;
if (dnum < raiddisks)
info.array.active_disks++;
- fd = open(dname, O_RDONLY|O_EXCL, 0);
+ fd = open(dname, O_RDONLY|O_EXCL);
if (fd <0 ) {
fprintf(stderr, Name ": Cannot open %s: %s\n",
dname, strerror(errno));
@@ -543,7 +543,7 @@ int Create(struct supertype *st, char *m
info.disk.minor = 0;
info.disk.state = (1<<MD_DISK_FAULTY);
} else {
- fd = open(dv->devname, O_RDONLY|O_EXCL, 0);
+ fd = open(dv->devname, O_RDONLY|O_EXCL);
if (fd < 0) {
fprintf(stderr, Name ": failed to open %s after earlier success - aborting\n",
dv->devname);
--- mdadm-2.6.7/mdassemble.c.open 2008-06-01 19:12:21.000000000 -0400
+++ mdadm-2.6.7/mdassemble.c 2008-06-26 19:33:42.000000000 -0400
@@ -57,7 +57,7 @@ mapping_t pers[] = {
/* from mdopen.c */
int open_mddev(char *dev, int autof/*unused */)
{
- int mdfd = open(dev, O_RDWR, 0);
+ int mdfd = open(dev, O_RDWR);
if (mdfd < 0)
fprintf(stderr, Name ": error opening %s: %s\n",
dev, strerror(errno));
--- mdadm-2.6.7/mdopen.c.open 2008-06-01 19:12:21.000000000 -0400
+++ mdadm-2.6.7/mdopen.c 2008-06-26 19:33:42.000000000 -0400
@@ -173,7 +173,7 @@ int open_mddev(char *dev, int autof)
must_remove = 1;
if (stb.st_mode && !must_remove) {
/* looks ok, see if it is available */
- mdfd = open(dev, O_RDWR, 0);
+ mdfd = open(dev, O_RDWR);
if (mdfd < 0) {
fprintf(stderr, Name ": error opening %s: %s\n",
dev, strerror(errno));
@@ -254,7 +254,7 @@ int open_mddev(char *dev, int autof)
make_parts(dev,parts, ci->symlinks);
}
}
- mdfd = open(dev, O_RDWR, 0);
+ mdfd = open(dev, O_RDWR);
if (mdfd < 0)
fprintf(stderr, Name ": error opening %s: %s\n",
dev, strerror(errno));
--- mdadm-2.6.7/Detail.c.open 2008-06-01 19:12:20.000000000 -0400
+++ mdadm-2.6.7/Detail.c 2008-06-26 19:33:42.000000000 -0400
@@ -38,7 +38,7 @@ int Detail(char *dev, int brief, int exp
* GET_ARRAY_INFO and GET_DISK_INFO ioctl calls
*/
- int fd = open(dev, O_RDONLY, 0);
+ int fd = open(dev, O_RDONLY);
int vers;
mdu_array_info_t array;
mdu_disk_info_t *disks;
--- mdadm-2.6.7/Grow.c.open 2008-06-01 19:12:20.000000000 -0400
+++ mdadm-2.6.7/Grow.c 2008-06-26 19:33:42.000000000 -0400
@@ -685,7 +685,7 @@ int Grow_reshape(char *devname, int fd,
}
spares = sra->array.spare_disks;
if (backup_file) {
- fdlist[d] = open(backup_file, O_RDWR|O_CREAT|O_EXCL, 0600);
+ fdlist[d] = open(backup_file, O_RDWR|O_CREAT|O_EXCL, S_IRUSR | S_IWUSR);
if (fdlist[d] < 0) {
fprintf(stderr, Name ": %s: cannot create backup file %s: %s\n",
devname, backup_file, strerror(errno));
--- mdadm-2.6.7/Query.c.open 2008-06-01 19:12:21.000000000 -0400
+++ mdadm-2.6.7/Query.c 2008-06-26 19:33:42.000000000 -0400
@@ -37,7 +37,7 @@ int Query(char *dev)
* whether it is an md device and whether it has
* a superblock
*/
- int fd = open(dev, O_RDONLY, 0);
+ int fd = open(dev, O_RDONLY);
int vers;
int ioctlerr;
int superror, superrno;
--- mdadm-2.6.7/Monitor.c.open 2008-06-01 19:12:21.000000000 -0400
+++ mdadm-2.6.7/Monitor.c 2008-06-26 19:33:42.000000000 -0400
@@ -156,7 +156,7 @@ int Monitor(mddev_dev_t devlist,
return 1;
}
close(0);
- open("/dev/null", 3);
+ open("/dev/null", O_RDWR);
dup2(0,1);
dup2(0,2);
setsid();

View File

@ -3,4 +3,4 @@
# See udev(8) for syntax
SUBSYSTEM=="block", ACTION=="add|change", ENV{ID_FS_TYPE}=="linux_raid*", \
RUN+="/sbin/mdadm --incremental $root/%k"
RUN+="/sbin/mdadm --incremental --run --scan $root/%k"

View File

@ -1,8 +1,8 @@
Summary: The mdadm program controls Linux md devices (software RAID arrays)
Name: mdadm
Version: 2.6.4
Release: 4%{?dist}
Source: http://www.cse.unsw.edu.au/~neilb/source/mdadm/mdadm-%{version}.tgz
Version: 2.6.7
Release: 1%{?dist}
Source: http://www.kernel.org/pub/linux/utils/raid/mdadm/mdadm-%{version}.tar.bz2
Source1: mdmonitor.init
Source2: mdadm.rules
Patch1: mdadm-2.5.2-s390-build.patch
@ -10,9 +10,9 @@ Patch2: mdadm-2.5.2-static.patch
Patch3: mdadm-2.2-nodiet.patch
Patch4: mdadm-2.5.2-cflags.patch
Patch5: mdadm-2.6.1-build.patch
Patch6: mdadm-2.6.4-incremental.patch
URL: http://www.cse.unsw.edu.au/~neilb/source/mdadm/
License: GPL
Patch6: mdadm-2.6.4-open.patch
URL: http://www.kernel.org/pub/linux/utils/raid/mdadm/
License: GPLv2+
Group: System Environment/Base
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Obsoletes: mdctl,raidtools
@ -34,7 +34,7 @@ file can be used to help with some common tasks.
%patch3 -p1 -b .nodiet
%patch4 -p1 -b .cflags
%patch5 -p1 -b .build
%patch6 -p1 -b .incremental
%patch6 -p1 -b .open
%build
make %{?_smp_mflags} CXFLAGS="$RPM_OPT_FLAGS" SYSCONFDIR="%{_sysconfdir}" MDASSEMBLE_AUTO=1 mdassemble.static mdassemble mdadm.static mdadm
@ -85,6 +85,15 @@ fi
%attr(0700,root,root) %dir /var/run/mdadm
%changelog
* Thu Jun 26 2008 Doug Ledford <dledford@redhat.com> - 2.6.7-1
- Update to latest upstream version (should resolve #444237)
- Drop incremental patch as it's now part of upstream
- Clean up all the open() calls in the code (#437145)
- Fix the build process to actually generate mdassemble (#446988)
- Update the udev rules to get additional info about arrays being assembled
from the /etc/mdadm.conf file (--scan option) (#447818)
- Update the udev rules to run degraded arrays (--run option) (#452459)
* Thu Apr 17 2008 Bill Nottingham <notting@redhat.com> - 2.6.4-4
- make /dev/md if necessary in incremental mode (#429604)
- open RAID devices with O_EXCL to avoid racing against other --incremental processes (#433932)

View File

@ -1 +1,2 @@
4235fc330c9d51e6e613a6eee7ebca76 mdadm-2.6.4.tgz
d0aeb5c44281a1d0e8a32a11dca1b481 mdadm-2.6.7.tar.bz2