packages: mdadm/mdadm.spec, mdadm/mdadm-bitmap.patch (NEW)=?UTF-8?Q?=20?=- rel 3; fix but...
arekm
arekm at pld-linux.org
Thu Mar 8 22:15:08 CET 2012
Author: arekm Date: Thu Mar 8 21:15:08 2012 GMT
Module: packages Tag: HEAD
---- Log message:
- rel 3; fix but when activating bitmap on array fails sometimes
---- Files affected:
packages/mdadm:
mdadm.spec (1.115 -> 1.116) , mdadm-bitmap.patch (NONE -> 1.1) (NEW)
---- Diffs:
================================================================
Index: packages/mdadm/mdadm.spec
diff -u packages/mdadm/mdadm.spec:1.115 packages/mdadm/mdadm.spec:1.116
--- packages/mdadm/mdadm.spec:1.115 Thu Feb 16 06:40:45 2012
+++ packages/mdadm/mdadm.spec Thu Mar 8 22:15:03 2012
@@ -9,7 +9,7 @@
Summary(pl.UTF-8): Narzędzie do tworzenia i obsługi programowych macierzy RAID
Name: mdadm
Version: 3.2.3
-Release: 2
+Release: 3
License: GPL v2+
Group: Base
Source0: http://www.kernel.org/pub/linux/utils/raid/mdadm/%{name}-%{version}.tar.bz2
@@ -21,6 +21,7 @@
Source5: %{name}-initramfs-hook
Source6: %{name}-initramfs-local-top
Patch0: %{name}-segv.patch
+Patch1: %{name}-bitmap.patch
URL: http://www.kernel.org/pub/linux/utils/raid/mdadm/
BuildRequires: groff
BuildRequires: rpmbuild(macros) >= 1.213
@@ -80,6 +81,7 @@
%prep
%setup -q
%patch0 -p1
+%patch1 -p1
%build
%if %{with initrd}
@@ -195,6 +197,9 @@
All persons listed below can be reached at <cvs_login>@pld-linux.org
$Log$
+Revision 1.116 2012/03/08 21:15:03 arekm
+- rel 3; fix but when activating bitmap on array fails sometimes
+
Revision 1.115 2012/02/16 05:40:45 arekm
- rel 2; fix segv at assemble (sometimes only)
================================================================
Index: packages/mdadm/mdadm-bitmap.patch
diff -u /dev/null packages/mdadm/mdadm-bitmap.patch:1.1
--- /dev/null Thu Mar 8 22:15:09 2012
+++ packages/mdadm/mdadm-bitmap.patch Thu Mar 8 22:15:03 2012
@@ -0,0 +1,83 @@
+commit 6ef89052d85b8137b8a7100f761d896ae6f61001
+Author: NeilBrown <neilb at suse.de>
+Date: Tue Feb 7 11:55:18 2012 +1100
+
+ super1: make aread/awrite always use an aligned buffer.
+
+ A recently change to write_bitmap1 meant awrite would sometimes
+ write from a non-aligned buffer which of course break.
+
+ So change awrite (and aread) to always use their own aligned
+ buffer to ensure safety.
+
+ Reported-by: Alexander Lyakas <alex.bolshoy at gmail.com>
+ Signed-off-by: NeilBrown <neilb at suse.de>
+
+diff --git a/super1.c b/super1.c
+index d23d6e8..cfa237a 100644
+--- a/super1.c
++++ b/super1.c
+@@ -143,17 +143,19 @@ static int aread(int fd, void *buf, int len)
+ * the full sector and copy relevant bits into
+ * the buffer
+ */
+- int bsize;
++ int bsize, iosize;
+ char *b;
+ int n;
+- if (ioctl(fd, BLKSSZGET, &bsize) != 0 ||
+- bsize <= len)
+- return read(fd, buf, len);
+- if (bsize > 4096)
++ if (ioctl(fd, BLKSSZGET, &bsize) != 0)
++ bsize = 512;
++
++ if (bsize > 4096 || len > 4096)
+ return -1;
+ b = (char*)(((long)(abuf+4096))&~4095UL);
+
+- n = read(fd, b, bsize);
++ for (iosize = 0; iosize < len; iosize += bsize)
++ ;
++ n = read(fd, b, iosize);
+ if (n <= 0)
+ return n;
+ lseek(fd, len - n, 1);
+@@ -171,22 +173,27 @@ static int awrite(int fd, void *buf, int len)
+ * than the write.
+ * The address must be sector-aligned.
+ */
+- int bsize;
++ int bsize, iosize;
+ char *b;
+ int n;
+- if (ioctl(fd, BLKSSZGET, &bsize) != 0 ||
+- bsize <= len)
+- return write(fd, buf, len);
+- if (bsize > 4096)
++ if (ioctl(fd, BLKSSZGET, &bsize) != 0)
++ bsize = 512;
++ if (bsize > 4096 || len > 4096)
+ return -1;
+ b = (char*)(((long)(abuf+4096))&~4095UL);
+
+- n = read(fd, b, bsize);
+- if (n <= 0)
+- return n;
+- lseek(fd, -n, 1);
++ for (iosize = 0; iosize < len ; iosize += bsize)
++ ;
++
++ if (len != iosize) {
++ n = read(fd, b, iosize);
++ if (n <= 0)
++ return n;
++ lseek(fd, -n, 1);
++ }
++
+ memcpy(b, buf, len);
+- n = write(fd, b, bsize);
++ n = write(fd, b, iosize);
+ if (n <= 0)
+ return n;
+ lseek(fd, len - n, 1);
================================================================
---- CVS-web:
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/mdadm/mdadm.spec?r1=1.115&r2=1.116&f=u
More information about the pld-cvs-commit
mailing list