summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* | Don't give array name in --examine --brief output if it is doubtful.NeilBrown2008-11-043-7/+10
| | | | | | | | | | Now that mdadm.conf doesn't need an array name, we don't need to give one if the array cannot reliably provide one.
* | config: Support container=uuid as alternative to container=/dev/name in ↵NeilBrown2008-11-043-8/+32
| | | | | | | | | | | | | | | | | | | | mdadm.conf When mdadm.conf is automatically generated, we might not know a suitable /dev/name. But we do know the uuid of the container. So allow that as an option. Signed-off-by: NeilBrown <neilb@suse.de>
* | config: Don't require an array to have a device name.NeilBrown2008-11-044-25/+23
| | | | | | | | | | | | | | | | | | | | i.e. in mdadm.conf you can have a line like ARRAY uuid=whatever and it will use auto-name-generation to give a name to the array at assemble-time. The is different from blind auto-assembly in that the array will be treated as 'local'.
* | Incremental: adjust to the new naming scheme.NeilBrown2008-11-044-264/+54
| | | | | | | | | | --incremental now uses exactly the same create_mddev that other code uses.
* | mdopen: Restore creation of partition devices and symlink.NeilBrown2008-11-041-33/+36
| | | | | | | | | | Using the 'new' name scheme we restore the creation of partition links (in the case the udev isn't used).
* | mdopen: Introduce new rules for creating device name.NeilBrown2008-11-046-185/+242
| | | | | | | | MORE CONTENT HERE
* | util: make env checking more genericNeilBrown2008-11-044-17/+6
| | | | | | | | | | | | | | Change the "env_check_mdmon" function to be more generic, accepting and environment variable name, as soon we will have a new use for it. Signed-off-by: NeilBrown <neilb@suse.de>
* | assemble: combine the two create_mddev calls in to one.NeilBrown2008-11-041-71/+56
| | | | | | | | | | | | This delays the create_mddev call even further in the case where an array device name is given for --assemble. It is now delayed until the 'name' of the array is also available.
* | intel: Avoid 'may be used before initialised' warning.NeilBrown2008-11-041-1/+2
| | | | | | | | | | When compile with -Os, the compile doesn't work out that the variable is always initialised before usage, so we tell it.
* | Delay creation of array devices for assemble/build/createNeilBrown2008-11-046-129/+181
| | | | | | | | | | | | | | | | | | | | | | | | | | We will shortly be feeding more information into the process of creating array devices, so delay the creation. Still open them early if the device already exists. This involves making sure the autof flag is in the right place so that it can be found at creation time. Also, Assemble, Build, and Create now always close 'mdfd'. Signed-off-by: NeilBrown <neilb@suse.de>
* | Avoid opening md device twice in particular '--assemble' instance.NeilBrown2008-11-041-8/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | When mdadm --assemble /dev/whatever is given, mdadm will treat it as though '--scan' were given, even though it wasn't. In this case, the code opens /dev/whatever twice, which is pointless. We already know /dev/whatever is open at this point, so remove the 'open' and the tests, and make sure it is always closed afterwards. Signed-off-by: NeilBrown <neilb@suse.de>
* | Introduce new open_mddev which just does an open.NeilBrown2008-11-043-12/+29
| | | | | | | | | | | | | | Some cases we aren't interested in creating the mddev, just opening it. Make those more explicit. Signed-off-by: NeilBrown <neilb@suse.de>
* | Rename open_mddev to create_mddevNeilBrown2008-11-046-17/+17
| | | | | | | | | | | | | | This reflect that fact that more often than not it is creating things in /dev, and allows for a new open_mddev which does just that. Signed-off-by: NeilBrown <neilb@suse.de>
* | Initialise ->container and ->member properly.NeilBrown2008-11-041-0/+2
| | | | | | | | | | | | | | Now that we are using these values, we need to initialise them properly. Signed-off-by: NeilBrown <neilb@suse.de>
* | Move recently merged /sys/dev/ lookup into stat2devnum.NeilBrown2008-11-042-41/+34
| | | | | | | | | | | | | | | | But sysfs_init and stat2devnum try to convert stat information into an md devnum. Combine all the value of both pieces of code into stat2devnum and have sysfs_init call that. Signed-off-by: NeilBrown <neilb@suse.de>
* | cleanup an unused call to container2devnameDan Williams2008-11-041-19/+0
| | | | | | | | | | Signed-off-by: Dan Williams <dan.j.williams@intel.com> Signed-off-by: NeilBrown <neilb@suse.de>
* | Merge branch 'master' into scratch-3.0NeilBrown2008-11-031-1/+1
|\|
| * mapfile: fix bug in testing for /var/run/mdadm/NeilBrown2008-11-031-1/+1
| | | | | | | | | | | | | | | | There was a bug. If /var/run/mdadm/ did not exist as a directory, the map file should have been created in /var/run/mdadm.map, but due to bug it would never get created. Signed-off-by: NeilBrown <neilb@suse.de>
* | Merge branch 'master' into scratch-3.0NeilBrown2008-11-031-2/+3
|\|
| * Incremental: change precedence order for autof setting.NeilBrown2008-11-031-3/+4
| | | | | | | | | | | | | | | | | | It doesn't really make sense for the --auto setting to ever over-ride the setting on an ARRAY line. That could cause failure if the ARRAY line has a 'standard' now. So revert to the array line having precedence over command line, then CREATE line last. Signed-off-by: NeilBrown <neilb@suse.de>
* | Merge branch 'master' into devel-3.0NeilBrown2008-10-302-4/+27
|\|
| * Adjust major number testing to allow for extended minor number in 2.6.28NeilBrown2008-10-302-4/+27
| | | | | | | | | | | | | | | | | | | | | | | | From 2.6.28, normal md device will be able to have partitions. These partitions will have a different major number. Sometimes mdadm tests the major number and so can get confused. Change these tests to test against get_mdp_major(). mdp does not use extended minor number and so this test will always be accurate. Also use /sys/dev links to map major/minor to devnum in sysfs. Signed-off-by: NeilBrown <neilb@suse.de>
* | Merge branch 'master' into devel-3.0NeilBrown2008-10-305-19/+36
|\| | | | | | | | | | | | | | | Conflicts: Incremental.c super0.c super1.c
| * Incremental: allow assembly of foreign array.NeilBrown2008-10-302-7/+13
| | | | | | | | | | | | | | | | | | | | | | If a foreign (i.e. not known to be local) array is discovered by --incremental assembly, we now assemble it. However we ignore any name information in the array so as not to potentially create a name that conflict with a 'local' array. Also, foreign arrays are always assembled 'read-auto' to avoid writing anything until the array is actually used. Signed-off-by: NeilBrown <neilb@suse.de>
| * Incremental: fix setting of 'autof' flag.NeilBrown2008-10-301-4/+10
| | | | | | | | | | | | | | When doing auto-assembly, the 'autof' flag from array lines in mdadm.conf was being ignored. Signed-off-by: NeilBrown <neilb@suse.de>
| * Fix --incremental assembly of partitions arrays.NeilBrown2008-10-302-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If incremental assembly finds an array mentioned in mdadm.conf, with a 'standard partitioned' name like /dev/md_d0 or /dev/md/d0, it will not create a partitioned array like it should. This is because it mishandled the 'devnum' returned by is_standard. That is a devnum that does not have the partition-or-not encoded into it. So we need to check the actual return value of is_standard and encode the partition-or-not info into the devnum. Also fix a couple of comments. Signed-off-by: NeilBrown <neilb@suse.de>
| * Fix NULL pointer oopsDoug Ledford2008-10-301-4/+10
| | | | | | | | | | | | | | | | | | | | | | | | RAID10 is the only raid level that uses the avail char array pointer during the enough() operation, so it was the only one that saw this. The code in incremental assumes unconditionally that count_active will allocate the avail char array, that it might be used by enough, and that it will need to be freed afterward. Once you make count_active actually do that, then the oops goes away. Signed-off-by: Doug Ledford <dledford@redhat.com> Signed-off-by: NeilBrown <neilb@suse.de>
| * Fix bad metadata formattingDoug Ledford2008-10-303-4/+10
| | | | | | | | | | | | | | | | | | | | | | Certain operations (Detail.c mainly) would print out the metadata of an array in a format that the scan operation in super0.c and super1.c would later reject as unknown when it was found in the mdadm.conf file. Use a consistent format, but also modify the super0 and super1 match methods to accept the other format without complaint. Signed-off-by: Doug Ledford <dledford@redhat.com> Signed-off-by: NeilBrown <neilb@suse.de>
* | Preliminary -As support for container member arraysDan Williams2008-10-286-9/+64
| | | | | | | | | | | | | | | | | | | | | | | | Given an mdadm.conf like the following allow /dev/imsm and /dev/md/r1 to be created by "mdadm -As". DEVICES partitions ARRAY /dev/imsm metadata=imsm auto=md UUID=b98f5dbe-aa859e7b-0e369b89-a80986d4 ARRAY /dev/md/r1 container=/dev/imsm member=0 auto=mdp UUID=3538e39c-b397c2e9-1aa031f9-2bc0eca4 spares=1 Signed-off-by: Dan Williams <dan.j.williams@intel.com>
* | imsm: include members in ->brief_examineDan Williams2008-10-281-1/+15
| | | | | | | | A prerquisite for getting imsm arrays assembled by mdadm -As.
* | imsm: copy raid device info when associating sparesDan Williams2008-10-281-0/+18
| | | | | | | | | | | | | | If a spare is included in the list of examined disks we need to copy in at least enough information to get the uuid of the populated container. Signed-off-by: Dan Williams <dan.j.williams@intel.com>
* | imsm: return associated uuid for sparesDan Williams2008-10-281-1/+5
| | | | | | | | | | | | | | This prevents a uuid of all f's from being displayed when an imsm spare is listed along with active disks for mdadm -Eb. Signed-off-by: Dan Williams <dan.j.williams@intel.com>
* | Examine: fix MD_DISK_SYNC is a bit not a flagDan Williams2008-10-282-8/+5
| | | | | | | | | | | | | | Examine() is actually looking at the ACTIVE bit. This happened to work for imsm spares but now it needs to be fixed up. Signed-off-by: Dan Williams <dan.j.williams@intel.com>
* | imsm: update metadata immediately on "add spare" eventsDan Williams2008-10-281-0/+2
| | | | | | | | | | | | | | ...without this the spare record is delayed until the next metadata event. Signed-off-by: Dan Williams <dan.j.williams@intel.com>
* | update copyright headersDan Williams2008-10-286-2/+79
| | | | | | | | Signed-off-by: Dan Williams <dan.j.williams@intel.com>
* | Merge branch 'master' into devel-3.0NeilBrown2008-10-277-21/+29
|\| | | | | | | | | | | | | Conflicts: Create.c Manage.c
| * Allow WRITEMOSTLY to be cleared on --readd using --readwrite.NeilBrown2008-10-257-21/+29
| | | | | | | | | | | | | | | | Previously it was possible to set the WRITEMOSTLY flag when adding a device to an array, but not to clear the flag when re-adding. This is now possible with --readwrite. Signed-off-by: NeilBrown <neilb@suse.de>
* | ddf: get endian-ness of CRC correct.NeilBrown2008-10-271-1/+4
| | | | | | | | | | | | | | All numeric fields in a DDF header big-endian, including the CRC, so better fix that. Signed-off-by: NeilBrown <neilb@suse.de>
* | Makefile: Include bitmap.o in mdmonNeilBrown2008-10-271-1/+1
| | | | | | | | | | | | | | A recent change causes mdmon to appear to need 'bitmap_sectors', which is in bitmap.o. Signed-off-by: NeilBrown <neilb@suse.de>
* | Merge branch 'master' into devel-3.0NeilBrown2008-10-178-32/+86
|\| | | | | | | | | | | Conflicts: Manage.c
| * Remove .UR .UE macros from man page because the don't do what we want.NeilBrown2008-10-171-7/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | .UR URL text .UE is meant to create a hyperlink from the 'text' to the 'URL'. But I wanted just to have the URL, so UR isn't really the right tool - the URL gets displayed twice. So just display the URL in bold and assume man2html etc can recognise it and do the right thing. Signed-off-by: NeilBrown <neilb@suse.de>
| * Grow: Fix linear-growth when devices are not all the same size.NeilBrown2008-10-151-1/+20
| | | | | | | | | | | | If we add a device to a linear array which is a difference size to the other devices in the array then, for v1.x metadata, we need to make sure the size is correctly reflected in the superblock.
| * Improve reporting of layout for raid10.NeilBrown2008-10-135-16/+31
| | | | | | | | | | | | | | | | | | | | | | | | Showing e.g. near=1, far=2 for the 'far2' layout of raid10 is confusing even though there is a sense in which is it correct. Make it less confusing by only printing whichever number is not 1. If both are 1, make that clear too (i.e. no redundancy).
| * Manage: allow adding device that is just large enough to v1.x array.NeilBrown2008-10-134-9/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | When adding a device to an array, we check that it is large enough. Currently the check makes sure there is also room for a reasonably sized bitmap. But if the array doesn't have a bitmap, then this test might be too restrictive. So when adding, only insist there is enough space for the current bitmap. When Creating, still require room for the standard sized bitmap. This resolved Debian Bug 500309
* | mdmon: suicide preventionDan Williams2008-10-151-0/+4
| | | | | | | | | | | | | | | | | | | | mdmon cannot remove the pidfile at shutdown becuase it needs to stay running across the "mount -o remount,ro /" event. When it relaunches after a reboot there is a good chance that the pid will match what was there previously. The result is that the "take over for unresponsive mdmon" logic results in self termination. Signed-off-by: Dan Williams <dan.j.williams@intel.com>
* | quiet WaitClean()Dan Williams2008-10-154-8/+10
| | | | | | | | Signed-off-by: Dan Williams <dan.j.williams@intel.com>
* | mdmon: --switch-rootDan Williams2008-10-151-55/+94
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For raid rootfs we cannot run the array unmonitored for any length of time. At least XFS will not mount/replay the journal if the underlying block device is readonly (FIXME it also seems that XFS does not always honor the ro status of the backing device as I was able to hit the BUG_ON(mddev->ro == 1) in md_write_start... but I digress). So we need to start mdmon in the initramfs before '/' is mounted and then restart it after the real rootfs is available. Upon seeing the --switch-root option, mdmon will kill any victims in the current /var/run/mdadm directory and then chroot(2) before continuing. The option is deliberately called 'switch-root' instead of 'chroot' to hopefully indicate that this is different than doing "chroot mdmon /dev/imsm". Signed-off-by: Dan Williams <dan.j.williams@intel.com>
* | mdmon: wait after trying to killDan Williams2008-10-154-30/+50
| | | | | | | | | | | | | | | | | | | | | | | | Now that mdmon handles sigterm if another monitor wants to take over it should wait until all managed arrays are clean. So make WaitClean() available to mdmon and teach try_kill_monitor() to wait on each subarray in the container. ...since we may be communicating with a dieing process, we need to block SIGPIPE earlier. Signed-off-by: Dan Williams <dan.j.williams@intel.com>
* | mdmon: terminate cleanDan Williams2008-10-154-7/+63
| | | | | | | | | | | | | | | | | | | | | | We generally don't want mdmon to be terminated, but if a SIGTERM gets through try to leave the monitored arrays in a clean state, block attempts to mark the array dirty, and stop servicing the socket. When we are killed by sigterm don't remove the pidfile let that be cleaned up by the next monitor. Signed-off-by: Dan Williams <dan.j.williams@intel.com>
* | Treat all devices at the container level as sparesDan Williams2008-10-152-3/+1
| | | | | | | | | | | | | | | | | | Raid disk and disk number information is not relevant at the container level, especially for imsm. So arrange for getinfo_super_imsm() to always publish devices as spares and report the number of spares at Assemble() time. Signed-off-by: Dan Williams <dan.j.williams@intel.com>