summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
| * | imsm: set array size at Create/AssembleDan Williams2009-04-124-0/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | imsm arrays round down the effective array size to the closest 1 megabyte boundary so teach get_info_super_imsm and sysfs_set_array to set 'md/array_size' if available (and make sure ddf uses the default size). Signed-off-by: Dan Williams <dan.j.williams@intel.com>
| * | imsm: turn off curr_migr_unit updatesDan Williams2009-04-121-8/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | New documentation shows that this field is not equivalent to md/resync_start. Disable updates until full support can be developed. Writing '0' when a migration starts/re-starts remains correct. Signed-off-by: Dan Williams <dan.j.williams@intel.com>
| * | imsm: defend against unsupported migrations (temporary)Dan Williams2009-04-121-1/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Until support for higher order migrations (online capacity expansion, raid level migration, chunk size migration...) are implemented do not allow arrays in these states to be assembled. Signed-off-by: Dan Williams <dan.j.williams@intel.com>
| * | imsm: add 'verify', 'verify with fixup', and 'general' migration typesDan Williams2009-04-121-12/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | imsm distinguishes parity initialization from parity checking in the metadata. Older option roms marked the repair operation with the 'verify' type and a 'with fixup' flag in the raid device 'status' field. Signed-off-by: Dan Williams <dan.j.williams@intel.com>
| * | imsm: fix imsm_map.num_domainsDan Williams2009-04-121-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 'num_domains' is the number of parity domains. I.e. 2 in the raid10 case (2-mirrors), while raid0 through raid5 have 1 parity domain (even though raid0 does not have parity). Signed-off-by: Dan Williams <dan.j.williams@intel.com>
| * | imsm: ensure mpb buffer is zeroedDan Williams2009-04-121-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | Don't leak unitialized data into the mpb. Signed-off-by: Dan Williams <dan.j.williams@intel.com>
| * | imsm: support --examine --exportDan Williams2009-04-111-0/+16
| | | | | | | | | | | | Signed-off-by: Dan Williams <dan.j.williams@intel.com>
| * | imsm: make uuid separator consistent with ddfDan Williams2009-04-111-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | '-' to ':' Signed-off-by: Dan Williams <dan.j.williams@intel.com>
| * | imsm: extract right-most whitespace stripped serial numberDan Williams2009-04-081-16/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | According to new documentation the metadata expects that all whitespace (characters <= 0x20) are stripped from the incoming serial number. If the length remains longer than MAX_RAID_SERIAL_LEN then only the right-most characters are preserved. Signed-off-by: Dan Williams <dan.j.williams@intel.com>
* | | udev rules fix for partitions.NeilBrown2009-04-141-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | sysfs directories for partitions do not have md/* files, but should not for that reason be ignored. Thanks to Michal Soltys for original fix. Signed-off-by: Michal Soltys <soltys@ziu.info> Signed-off-by: NeilBrown <neilb@suse.de>
* | | mapfile: optionally store map file in /devNeilBrown2009-04-141-44/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | During early boot, /var/run may not exist or be writable. If that happens, sore the mapfile (which is very important for incremental assembly) in /dev (which should exist for udev). Thanks to Doug Ledford <dledford@redhat.com> for identify this problem and suggesting a solution. Signed-off-by: NeilBrown <neilb@suse.de>
* | | tests: basic ddf testsNeilBrown2009-04-141-0/+76
| | | | | | | | | | | | | | | | | | | | | Test script to create a ddf with three different member arrays, and assemble it in a variety of ways. Signed-off-by: NeilBrown <neilb@suse.de>
* | | tests: add some simple data integrity tests for raid5/raid6NeilBrown2009-04-142-0/+82
| | | | | | | | | | | | | | | | | | Make sure the data is preserved even when the array is degraded. Signed-off-by: NeilBrown <neilb@suse.de>
* | | .gitignore updateNeilBrown2009-04-141-0/+4
| | | | | | | | | | | | | | | | | | Add a few more generated files to .gitignore Signed-off-by: NeilBrown <neilb@suse.de>
* | | incremental_container: preserve 'in_sync' flag when adding to existing array.NeilBrown2009-04-146-7/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When building container members with -IR, we need to ensure that devices added to an active array preserve the 'in_sync' status so they don't needlessly get rebuilt. So allow sysfs_add_disk to do this (only works in kernels since 2.6.30) and pass the relevant flag down. Signed-off-by: NeilBrown <neilb@suse.de>
* | | mdadm udev rules changeDoug Ledford2009-04-081-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I'm not attaching a patch for this because it's so simple. Long story short, watching both add and change events in udev rules is bad for md devices. Specifically, the kernel will generate a change event on things like array stop, and on things like fdisk close. In the case of array stop, it can result in the array being assembled again immediately. In the case of fdisk close, the situation is worse. Let's say you stop all the md devices on some block device in order to repartition. You run fdisk, change the partition table, then issue a write of the table. The write of the table triggers the change event *before* the kernel updates the partition table in memory for the block device, causing udev to rerun the incremental rules on the old partition table and restart all the arrays you just stopped with the old partition table layout, at which point the kernel is unable to reread the partition table. So, once you've enable incremental assembly, it becomes apparent that what we really want is to only start devices on add, not on add|change. -- Doug Ledford <dledford@redhat.com>
* | | super-ddf: fix compile warnings on ppc64Doug Ledford2009-04-081-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | Simple patch to silence some compile warnings that only show up on 64bit arches. Signed-off-by: Doug Ledford <dledford@redhat.com> Signed-off-by: NeilBrown <neilb@suse.de>
* | | Incremental - avoid NULL dereference.NeilBrown2009-04-071-25/+27
| | | | | | | | | | | | | | | | | | | | | There structure returned by sysfs_read might not have any 'devs', don't assume it does. Signed-off-by: NeilBrown <neilb@suse.de>
* | | test: minor fixesNeilBrown2009-04-071-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | - allow core files to be dumped. - modprobe md_mod if needed to write to /sys/module/md_mod/parameters/.... Signed-off-by: NeilBrown <neilb@suse.de>
* | | Incremental: be more relaxed about member arrays not completely assembling.NeilBrown2009-04-071-7/+10
| | | | | | | | | | | | | | | | | | | | | During incremental assembly, if the member array doesn't assemble properly (yet), that isn't an error. Signed-off-by: NeilBrown <neilb@suse.de>
* | | Assemble: call map_update even when not starting the array.NeilBrown2009-04-071-4/+7
| | | | | | | | | | | | | | | | | | | | | For incremental assembly to work, we need to keep the 'map' up-to-date even when not starting the array yet. Signed-off-by: NeilBrown <neilb@suse.de>
* | | ddf: fixed 'working_disks' reported by container_content.NeilBrown2009-04-071-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | The 'work_disks' number should be the number that is expected, not the number found so far. This is needed for Incremental assembly to start the array at the right time. Signed-off-by: NeilBrown <neilb@suse.de>
* | | ddf: improve print out of physical devices.NeilBrown2009-04-071-4/+4
| | | | | | | | | | | | | | | | | | Just add some more space really. Signed-off-by: NeilBrown <neilb@suse.de>
* | | ddf: fix variable name overloadNeilBrown2009-04-071-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | The variable 'i' was being used as a loop variable, and also for something else inside the loop. So make the larger loop have a more meaningful name. Signed-off-by: NeilBrown <neilb@suse.de>
* | | wait_for improvement.NeilBrown2009-04-076-12/+19
| | | | | | | | | | | | | | | | | | | | | | | | wait not only for the name to appear, but for it to refer to the correct device. Sometimes old symlinks left lying around can be confusing. Signed-off-by: NeilBrown <neilb@suse.de>
* | | config: treat "container=" and "member=" and providing the required identity ↵NeilBrown2009-04-061-1/+3
| | | | | | | | | | | | | | | | | | information. Signed-off-by: NeilBrown <neilb@suse.de>
* | | Detail: use meaningful names with --scan.NeilBrown2009-04-061-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When reporting "--detail --scan", use names like /dev/md/foo where available rather than /dev/md/127 This is particularly needed for containers where the member arrays will report "container=/dev/md/foo" and we want the container to have the same name. Signed-off-by: NeilBrown <neilb@suse.de>
* | | Create: round to chunk sizeNeilBrown2009-04-061-0/+2
| | | | | | | | | | | | | | | | | | | | | There are probably other places where rounding size to chunksize is needed, or useful, but this is a good start. Signed-off-by: NeilBrown <neilb@suse.de>
* | | test: support testing DDFNeilBrown2009-04-061-3/+8
| | | | | | | | | | | | | | | | | | | | | | | | DDF requires larger devices as 32Meg is reserved. So allocated larger loop devices for DDF tests. Signed-off-by: NeilBrown <neilb@suse.de>
* | | util.c: use correct range for minor numbers when finding free device.NeilBrown2009-04-061-1/+1
| | | | | | | | | | | | | | | | | | Minor numbers are 20 bits, not 22. So when looking for a free, high minor number, try (1<<20)-1, not (1<<22)-1.
* | | ddf: make sure Create fails if devices are too small.NeilBrown2009-04-021-0/+2
| | | | | | | | | | | | Signed-off-by: NeilBrown <neilb@suse.de>
* | | ddf: fix bug with error returns.NeilBrown2009-04-021-6/+4
| | | | | | | | | | | | | | | | | | | | | | | | In some cases we should only print an error message if 'devname' is defined. In fact we were only returning the error at all in that case!! Signed-off-by: NeilBrown <neilb@suse.de>
* | | ism-tests: fix the imsm-create-fail-rebuild testNeilBrown2009-04-011-2/+3
| | | | | | | | | | | | | | | it was testing the return status of mdadm wrongly, and I found I needed a 'udevadm settle'.
* | | test: return correct error status for mdadmNeilBrown2009-04-011-0/+2
| | | | | | | | | | | | | | | mdadm's return status is being hidden by the 'test' script so individual tests cannot see it.
* | | Makefile: build 'mdmon' for 'test'NeilBrown2009-04-011-1/+1
| | | | | | | | | | | | | | | | | | Else make test might not prepare everything for running tests.
* | | grow: don't wait forever for critical section to pass.NeilBrown2009-04-013-0/+29
|/ / | | | | | | | | | | | | | | | | | | If an array reshape completed within 1 second, then --grow will not notice that it has finished and will keep waiting for the critical section to pass. So be more cautious in the test. Signed-off-by: NeilBrown <neilb@suse.de>
* | Release mdadm-3.0-devel3NeilBrown2009-03-109-7/+135
| |
* | Merge branch 'master' in devel-3.0NeilBrown2009-03-106-8/+65
|\|
| * Release mdadm-2.6.9NeilBrown2009-03-108-9/+64
| |
| * super1: make sure max_dev grows enough when adding a device to an array.NeilBrown2009-03-091-0/+3
| | | | | | | | | | | | | | | | | | | | There was a few kernel releases where the kernel would shrink max_dev to be just enough to hold the current number of devices. More recent kernels never shrink it. However to be as compatible as possible, if we notice that max_dev is too small to successfully add a device, increase it. Signed-off-by: NeilBrown <neilb@suse.de>
| * Monitor: send --test message for arrays in /proc/mdstat that aren't in ↵NeilBrown2009-02-051-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | mdadm.conf "mdadm --monitor --test --scan" currently only sends test messages for arrays listed on the command line or in /etc/mdadm.conf. With this patch it also reports on any active arrays, which is more in line with the description in the manpage. Thanks to Andrew Walrond <andrew@walrond.org> for reporting this error. Signed-off-by: NeilBrown <neilb@suse.de>
* | mdmon: allow incremental assembly of containers.NeilBrown2009-03-102-0/+22
| | | | | | | | | | | | | | | | If mdmon sees a device added to a container, it should assume it is a new spare. It could be a part of the array that just hadn't been assembled yet. So check first. Signed-off-by: NeilBrown <neilb@suse.de>
* | DDF: fix up container_contentNeilBrown2009-03-101-3/+4
| | | | | | | | | | | | | | If we haven't got hold of all the devices yet, we need to be ready to skip over some while gathering content information. Signed-off-by: NeilBrown <neilb@suse.de>
* | Assemble/container: catch errors when starting a partial container.NeilBrown2009-03-101-11/+21
| | | | | | | | | | | | | | | | | | | | | | If we are assembling an array in a container and it isn't complete enough to start yet, then - don't start mdmon - don't say the array is started - don't wait for the device to appear in /dev Signed-off-by: NeilBrown <neilb@suse.de>
* | Incremental/container: don't create when we should just be opening.NeilBrown2009-03-101-7/+10
| | | | | | | | | | | | | | When incr-assembling in a container, if the array already exists, don't try to create it again, just open it. Signed-off-by: NeilBrown <neilb@suse.de>
* | mdopen: be more careful when adding digit to names.NeilBrown2009-03-101-1/+1
| | | | | | | | | | | | | | | | If we need to add digits to a name to make it unique, but don't have to add '_', we need to avoid adding a digit immediately after a digit. So if the last character of the name is a digit, add the '_' anyway. Signed-off-by: NeilBrown <neilb@suse.de>
* | Incremental: fix some handling of trustworthy.NeilBrown2009-03-101-12/+14
| | | | | | | | | | | | | | | | | | | | | | 1/ if homehost matches, then we need to set trustworthy to 'LOCAL' 2/ if we decide to set trustworthy to 'METADATA' because we have to use the metadata version name, do that *after* we have checked if we are going to assemble within a container, as inside the container there could be different sources of names to use. Signed-off-by: NeilBrown <neilb@suse.de>
* | ddf: use better random number generation.NeilBrown2009-03-101-8/+15
| | | | | | | | | | | | use /dev/urandom rather than calls to 'random()' if possible. Signed-off-by: NeilBrown <neilb@suse.de>
* | Examine: add examine_export for ddf and avoid crashes.NeilBrown2009-03-092-1/+15
| | | | | | | | | | | | If the personality doesn't provide export_examine_super, don't crash. Signed-off-by: NeilBrown <neilb@suse.de>
* | ddf: fix memory corruption bug.NeilBrown2009-03-091-1/+1
| | | | | | | | | | When adding to a point, you don't need to multiple by the size of the pointer - C does that for you!