Mark some files FD_CLOEXEC to protect sendmail from them.
From: Doug Ledford <dledford@redhat.com>
When running with SELinux enabled and using mdadm to monitor devices,
attempts to send emails to an admin will be blocked because mdadm is
holding open /proc/mdstat without setting the FD_CLOEXEC flag. As a
result, sendmail has an open descriptor to /proc/mdstat after the
popen() call, which SELinux decides isn't really any of sendmail's
business and so sendmail gets denied.
Improve error message when trying to create an array that already exists.
From: Doug Ledford <dledford@redhat.com>
Simple bugfix. If an array already exists and we are asked to create
this array, error out with an error message that makes sense to people
instead of an error that the SET_ARRAY_INFO ioctl had an invalid
argument. Plus a typo correction.
Interpret "--metadata=1" with --assemble to imply any version-1, not just 1.0
From: Doug Ledford <dledford@redhat.com>
OK, this one fixes an issue where people were doing manual array
creation and specifying superblock types other than 1.0 (aka, 1.1, 1.2)
and then using mdadm -Ebs to populate their mdadm.conf file. The
general problem is that if you specify a superblock type in the ARRAY
line (or on the command line), then you must specify the superblock type
*exactly*, including the minor version. Unfortunately, mdadm -Ebs
prints out all version 1 superblocks, regardless of minor version, as
just plain old 1. This breaks the mdadm.conf file for anything other
than plain version 1 superblock devices.
So, since I thought it was basically backwards that the mdadm -E output
was lax on specifying the location of the superblock where as the mdadm
-A input was strict, I reversed that. With this patch, the mdadm -E
output is now exact for any given superblock. But, in addition, the
mdadm -A input is now lax for any superblock that doesn't specifically
list the minor version, aka version 1 now means version 1, not version
0.90, but any minor version. So does default/large.
Neil Brown [Mon, 21 May 2007 04:25:37 +0000 (14:25 +1000)]
Fix --grow --add for linear arrays.
The new superblock needs to have a new disk.number. This is a bit of a hack...
Fix handling of negative bitmap offsets on 64bit hosts.
The bitmap offset is a signed 32bit number, so casting to (long)
isn't sufficient. We must cast to (int32_t).
Fix various problems with --grow --add for linear.
The code to add a drive to a live linear array had never
been tested properly and so was buggy. This tidies it up
and means that the new regression-test passes.
Kay Sievers [Tue, 8 May 2007 07:17:33 +0000 (17:17 +1000)]
Add --export option to --detail to use key=value pairs.
udev likes to get information about a device as key=value pairs so it
can create disk/by-id links etc. So add --export flag which causes
the output of --detail to easily parsable.
Peter Samuelson [Tue, 8 May 2007 07:13:44 +0000 (17:13 +1000)]
Hyphens and Other Manpage Typography, 4/4: literal ASCII hyphens.
From: Peter Samuelson <peter@p12n.org>
nroff formats "-" as the very short hyphen used for hyphenated terms
and for splitting a word across two lines. When you want a literal
ASCII "-", like for typing on a command line, you're supposed to use
"\-" instead.
Yeah, it sounds pedantic, but it actually makes a difference. With
modern Unicode-capable terminals, "man" actually renders these with
different characters, so if you try to search for "--create" in your
favorite pager, you won't find it unless the nroff source says
"\-\-create". This discrepancy doesn't generally show up with
non-Unicode terminals.
Neil Brown [Thu, 14 Dec 2006 06:31:41 +0000 (17:31 +1100)]
Change handling for "--assemble --force" when two drives disappeared at once.
If two drives in a raid5 disappear at the same time, then "-Af"
will add them both in rather than just one and forcing the array
to 'clean'. This is slightly safer in some cases.
Neil Brown [Thu, 14 Dec 2006 06:31:00 +0000 (17:31 +1100)]
Improve allocation and use of space for bitmaps in version1 metadata
Depending on the size of the array we reserve space for up to 128K
of bitmap, and we use it where possible.
When hot-adding to a version 1.0 we can still only use the 3K at the
end though - need a sysfs interface to improve that.
If a small chunksize is requested on Create, we don't auto-enlarge
the reserved space - this still needs to be fixed.
Neil Brown [Wed, 8 Nov 2006 22:38:50 +0000 (09:38 +1100)]
Fixed problems that could cause infinitel loop with auto assemble.
If an auto-assembly attempt failes because the array cannot be
opened or because the array has already been created, then we
get into an infinite loop.
Reported-by: Dan Pascu <dan@ag-projects.com>
Fixes-debian-bug: 396582
Luca Berra [Mon, 16 Oct 2006 05:26:53 +0000 (15:26 +1000)]
Mdassemble improvements
From: Luca Berra <bluca@comedia.it>
- Fix a bug where mdassemble didn't close a filedescriptor and so couldn't assembele
stacked arrays.
- Allow mdassemble, when run a second time, to mark all arrays as writable.
This is useful if they are started read-only as is best at boot-time.
Neil Brown [Mon, 9 Oct 2006 21:06:24 +0000 (07:06 +1000)]
Improve the message when mdadm detects similar superblocks
If they are for a partition and a whole device (common case)
they old message doesn't really cover the situation. So add
the "overlap" option to the text.
Also detect whether the device list was in mdadm.conf and
act accordingly.
Neil Brown [Fri, 11 Aug 2006 07:59:53 +0000 (17:59 +1000)]
Remove indeterminism from names in --examine --brief output.
It is much better for this sort of thing to be predictable
rather than depending on what devices exist, especially as
these days entries in /dev/ often don't pre-exist.
So make it always
/dev/mdX
Neil Brown [Mon, 26 Jun 2006 02:26:12 +0000 (12:26 +1000)]
Fix a recently introduced bug, and make --assemble more resilient to it.
Make -assemble a bit more resilient to finding strange
information in superblocks.
Don't claim newly added spares are InSync!! (don't know why that
code was ever in there)
Neil Brown [Mon, 26 Jun 2006 02:26:09 +0000 (12:26 +1000)]
Work around bug in --add handling for version-1 superblocks
In 2.6.17 (and prior), the dev_number is ignored when a device
is added to an active array. Rather the first free number is used.
So we work around this by making sure we use the first free
number for dev_number.