]> git.ipfire.org Git - thirdparty/mdadm.git/log
thirdparty/mdadm.git
15 years agoimsm: do not mark arrays 'clean' if resync still in progress
Dan Williams [Thu, 7 Aug 2008 06:53:44 +0000 (23:53 -0700)] 
imsm: do not mark arrays 'clean' if resync still in progress

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
15 years agoimsm: raid5 layout is left-asymmetric
Dan Williams [Thu, 7 Aug 2008 06:53:44 +0000 (23:53 -0700)] 
imsm: raid5 layout is left-asymmetric

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
15 years agomdmon: ignore inactive arrays and other manage_new() cleanups
Dan Williams [Wed, 30 Jul 2008 02:01:06 +0000 (19:01 -0700)] 
mdmon: ignore inactive arrays and other manage_new() cleanups

While mdadm is constructing an array mdmon may see an intermediate state
(some disks not yet added / redundancy attributes like sync_action not
available).  Waiting for mdstat->active == true ensures that the array
is ready to be handled.  This fixes a bug in create array via mdmon
update whereby failures are not detected in the new array.

Introduce aa_ready() to catch cases where the active_array is not
correctly initialized.  Barring a kernel bug this should never trigger,
nonetheless it precludes a class of bugs like the one mentioned above
from triggering.

Cleanup the exit paths and only call replace_array when the new array is
ready to be inserted into container->arrays.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
15 years agoimsm: trim some memory wastage
Dan Williams [Sat, 26 Jul 2008 00:45:13 +0000 (17:45 -0700)] 
imsm: trim some memory wastage

drop the previously loaded data as load_imsm_super_all loops through the
disks.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
15 years agoimsm: refactor mpb handling into parse and coalesce
Dan Williams [Fri, 25 Jul 2008 23:59:47 +0000 (16:59 -0700)] 
imsm: refactor mpb handling into parse and coalesce

Maintaining a single global buffer is unwieldly when extending/rewriting
sections of the metadata.  Parse the metadata into component data
structures upon reading and coalesce to a coherent buffer before
writing.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
15 years agomdmon: don't fork if DEBUG
Dan Williams [Fri, 25 Jul 2008 00:26:24 +0000 (17:26 -0700)] 
mdmon: don't fork if DEBUG

15 years agoimsm: use component_size not total array size in container_content_imsm
Dan Williams [Fri, 25 Jul 2008 00:26:24 +0000 (17:26 -0700)] 
imsm: use component_size not total array size in container_content_imsm

Also kill setting ->array.size as nothing appears to be using it.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
15 years agoimsm: take chunksize into account when calculating blocks_per_member
Dan Williams [Fri, 25 Jul 2008 00:26:24 +0000 (17:26 -0700)] 
imsm: take chunksize into account when calculating blocks_per_member

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
15 years agosysfs: deprecate sysfs_disk_to_sg
Dan Williams [Fri, 25 Jul 2008 00:26:24 +0000 (17:26 -0700)] 
sysfs: deprecate sysfs_disk_to_sg

The cmd_filter patch merged for 2.6.27 broke retrieving the serial
number via an ioctl to /dev/sgN.  In debugging this I found that other
utilities like sdparm simply run the ioctl on /dev/sdX.  So just convert
to that for protection in numbers, but scream on the mailing list for
the inconvenience grr...

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
15 years agoimsm: fix store_zero_imsm breakage from posix_memalign conversion
Dan Williams [Fri, 25 Jul 2008 00:26:23 +0000 (17:26 -0700)] 
imsm: fix store_zero_imsm breakage from posix_memalign conversion

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
15 years agoimsm: debug environment variable to use 'device name' as 'serial number'
Dan Williams [Fri, 25 Jul 2008 00:26:23 +0000 (17:26 -0700)] 
imsm: debug environment variable to use 'device name' as 'serial number'

Facilitate using loopback devices for the imsm regression suite

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
15 years agoimsm: allow --examine to succeed with damaged metadata
Dan Williams [Fri, 25 Jul 2008 00:26:23 +0000 (17:26 -0700)] 
imsm: allow --examine to succeed with damaged metadata

limp along after seeing mismatched serial numbers

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
15 years agoimsm: handle degraded->normal transitions in set_disk
Dan Williams [Fri, 25 Jul 2008 00:26:23 +0000 (17:26 -0700)] 
imsm: handle degraded->normal transitions in set_disk

Removes the need for the call to ->set_array_state when sync_action
transitions from 'recover' to 'idle'.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
15 years agoimsm: create array via update to mdmon
Dan Williams [Fri, 25 Jul 2008 00:26:19 +0000 (17:26 -0700)] 
imsm: create array via update to mdmon

15 years agoinstall mdmon to the same location as mdadm
Jacek Danecki [Tue, 22 Jul 2008 00:42:12 +0000 (17:42 -0700)] 
install mdmon to the same location as mdadm

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
15 years agoimsm: remove some casts
Dan Williams [Tue, 22 Jul 2008 00:42:10 +0000 (17:42 -0700)] 
imsm: remove some casts

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
15 years agoimsm: activate_spare: fix handling of data_offset
Dan Williams [Mon, 21 Jul 2008 18:08:20 +0000 (11:08 -0700)] 
imsm: activate_spare: fix handling of data_offset

Neil rightly points out that imsm_activate_spare may skip valid free space
on a spare, fix this up.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
15 years agoDocument MDADM_NO_MDMON
Dan Williams [Sat, 19 Jul 2008 00:47:34 +0000 (17:47 -0700)] 
Document MDADM_NO_MDMON

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
15 years agoDocumentation fixup for stripe_cache_size
Dan Williams [Sat, 19 Jul 2008 00:47:13 +0000 (17:47 -0700)] 
Documentation fixup for stripe_cache_size

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
15 years agoDocument preread_bypass_threshold
Dan Williams [Sat, 19 Jul 2008 00:14:44 +0000 (17:14 -0700)] 
Document preread_bypass_threshold

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
15 years agomsg: add a timeout to ping_monitor
NeilBrown [Fri, 18 Jul 2008 06:37:28 +0000 (16:37 +1000)] 
msg: add a timeout to ping_monitor

Though it should never bee needed, having a timeout in ping_monitor is
a sensible safeguard.

Signed-off-by: Neil Brown <neilb@suse.de>
15 years agomonitor: call get_resync_start on array shutdown.
NeilBrown [Fri, 18 Jul 2008 06:37:26 +0000 (16:37 +1000)] 
monitor: call get_resync_start on array shutdown.

If the array is shutdown as soon as resync finishes, we might not
notice the resync finish.  So on array shutdown, check for current
resync pos.

Signed-off-by: Neil Brown <neilb@suse.de>
15 years agoManage: sync with mdmon before stopping containers.
NeilBrown [Fri, 18 Jul 2008 06:37:25 +0000 (16:37 +1000)] 
Manage: sync with mdmon before stopping containers.

mdmon sometimes opens the container.  That will prevent 'stop'
from working.  So sync with mdmon first.

Signed-off-by: Neil Brown <neilb@suse.de>
15 years agoManage: fixed some error message in --stop
NeilBrown [Fri, 18 Jul 2008 06:37:24 +0000 (16:37 +1000)] 
Manage: fixed some error message in --stop

Explain the meaning of 'quiet' explicitly, and fix some grammar
and formatting.

Signed-off-by: Neil Brown <neilb@suse.de>
15 years agomdmon: fork and run as a daemon.
NeilBrown [Fri, 18 Jul 2008 06:37:20 +0000 (16:37 +1000)] 
mdmon: fork and run as a daemon.

start_mdmon now waits for mdmon to complete initialisation and,
importantly, listen on the socket, before continuing.

Signed-off-by: Neil Brown <neilb@suse.de>
15 years agosysfs: avoid possible data corruption in sys_load.
NeilBrown [Fri, 18 Jul 2008 06:37:18 +0000 (16:37 +1000)] 
sysfs: avoid possible data corruption in sys_load.

Don't retry to remove a newline from the end of an empty string.

Signed-off-by: Neil Brown <neilb@suse.de>
15 years agoCorrect readlink usage in sysfs.c
NeilBrown [Fri, 18 Jul 2008 06:37:16 +0000 (16:37 +1000)] 
Correct readlink usage in sysfs.c

readlink doesn't nul-terminate the returned string, so we must
be sure to do that.

Signed-off-by: Neil Brown <neilb@suse.de>
15 years agoDon't assume that mdmon is in the current directory.
NeilBrown [Fri, 18 Jul 2008 06:37:13 +0000 (16:37 +1000)] 
Don't assume that mdmon is in the current directory.

Rather, assume that it is in the same directory from which
mdadm was run.  If not, then maybe /sbin or current directory.

Signed-off-by: Neil Brown <neilb@suse.de>
15 years agoFactor common code into new "start_mdmon".
NeilBrown [Fri, 18 Jul 2008 06:37:11 +0000 (16:37 +1000)] 
Factor common code into new "start_mdmon".

Signed-off-by: Neil Brown <neilb@suse.de>
15 years agoStop managed arrays more carefully.
Neil Brown [Fri, 18 Jul 2008 06:37:09 +0000 (16:37 +1000)] 
Stop managed arrays more carefully.

If an array is being managed by mdmon, then just
write "inactive" to stop it, and let mdmon do the
final "clear".  This makes sure mdmon has a chance
to read the final state and update the metadata properly.

After writing "inactive" with use "ping_monitor" to synchronise
with mdadm, then STOP the array just in case it is still running,
else we will get into an infinite loop in "mdadm -Ss".

Signed-off-by: Neil Brown <neilb@suse.de>
15 years agomdmon: ping will wait for manage_mon to catch up.
NeilBrown [Fri, 18 Jul 2008 06:37:06 +0000 (16:37 +1000)] 
mdmon: ping will wait for manage_mon to catch up.

When a 'ping' (empty message) is sent to mdmon, we wait for
'monitor' to do a full loop to make sure it has caught up
with anything that needs doing.
This allows synchronisation between mdadm and mdmon.

Maybe monitor should signal managemon rather than managemon polling...

Signed-off-by: Neil Brown <neilb@suse.de>
15 years agoMake sure resync_start is initialised properly and maintained properly
Neil Brown [Fri, 18 Jul 2008 06:37:04 +0000 (16:37 +1000)] 
Make sure resync_start is initialised properly and maintained properly

Signed-off-by: Neil Brown <neilb@suse.de>
15 years agoddf: endian fixes.
Neil Brown [Fri, 18 Jul 2008 06:37:03 +0000 (16:37 +1000)] 
ddf: endian fixes.

We forgot to convert endian for lba_offset at one point,
and use le32 instead of be32 right nearby!!

Signed-off-by: Neil Brown <neilb@suse.de>
15 years agomdmon: close possibility of re-marking the metadata dirty on shutdown
Dan Williams [Mon, 14 Jul 2008 21:59:39 +0000 (14:59 -0700)] 
mdmon: close possibility of re-marking the metadata dirty on shutdown

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
15 years agomdmon: notify metadata of recovery completion
Dan Williams [Mon, 14 Jul 2008 21:59:39 +0000 (14:59 -0700)] 
mdmon: notify metadata of recovery completion

Array may no longer be degraded.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
15 years agomdmon: initialize component_size in manage_new
Dan Williams [Mon, 14 Jul 2008 21:59:39 +0000 (14:59 -0700)] 
mdmon: initialize component_size in manage_new

When we go to activate a spare for an array we expect ->info.component_size
is valid.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
15 years agomdmon: close small window of invalid mon_tid
Dan Williams [Mon, 14 Jul 2008 21:59:39 +0000 (14:59 -0700)] 
mdmon: close small window of invalid mon_tid

There is a small chance that the manager tries to wake the monitor before
mon_tid is set.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
15 years agomdadm: add an environment variable to prevent auto-launching mdmon
Dan Williams [Mon, 14 Jul 2008 21:59:32 +0000 (14:59 -0700)] 
mdadm: add an environment variable to prevent auto-launching mdmon

Useful for attaching gdb to mdmon before any action is taken on the array.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
15 years agomanagemon: don't treat sysfs_add_disk as boolean function
Dan Williams [Mon, 14 Jul 2008 21:10:02 +0000 (14:10 -0700)] 
managemon: don't treat sysfs_add_disk as boolean function

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
15 years agoimsm: process update
Dan Williams [Mon, 14 Jul 2008 21:10:02 +0000 (14:10 -0700)] 
imsm: process update

Handle 'activate_spare' events

15 years agoimsm: activate_spare
Dan Williams [Wed, 25 Jun 2008 05:21:21 +0000 (22:21 -0700)] 
imsm: activate_spare

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
15 years agoimsm: metadata only supports a global 'data_offset'
Dan Williams [Mon, 14 Jul 2008 20:59:56 +0000 (13:59 -0700)] 
imsm: metadata only supports a global 'data_offset'

When creating a volume a drive must have free space starting at the same
location as all the other drives in the array.

15 years agoimsm: fix raid1 creation
Dan Williams [Wed, 25 Jun 2008 04:56:19 +0000 (21:56 -0700)] 
imsm: fix raid1 creation

Need to supply dummy values for the chunk size and number of data stripes

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
15 years agoimsm: fail ->open_new if container_member is out of range
Dan Williams [Mon, 14 Jul 2008 20:57:33 +0000 (13:57 -0700)] 
imsm: fail ->open_new if container_member is out of range

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
15 years agoimsm: kill obsolete call to fsync() in store_imsm_mpb
Dan Williams [Mon, 14 Jul 2008 20:56:42 +0000 (13:56 -0700)] 
imsm: kill obsolete call to fsync() in store_imsm_mpb

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
15 years agoimsm: fix insufficient mpb buffer allocation
Dan Williams [Sat, 21 Jun 2008 07:19:53 +0000 (00:19 -0700)] 
imsm: fix insufficient mpb buffer allocation

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
15 years agoimsm: catch posix_memalign allocation failures
Dan Williams [Mon, 14 Jul 2008 20:55:12 +0000 (13:55 -0700)] 
imsm: catch posix_memalign allocation failures

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
15 years agoimsm: remove extra superswitches
Dan Williams [Tue, 24 Jun 2008 13:16:44 +0000 (06:16 -0700)] 
imsm: remove extra superswitches

Following the lead of 75ede16d.  This incidentally fixes creation of a second
array by gating call to getinfo_super_imsm_volume with a valid ->current_vol.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
15 years agoimsm: fix store_imsm_mpb() alignment for O_DIRECT
Dan Williams [Mon, 14 Jul 2008 20:55:02 +0000 (13:55 -0700)] 
imsm: fix store_imsm_mpb() alignment for O_DIRECT

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
15 years agoPrint used message in place of "default metadata" message.
Neil Brown [Sat, 12 Jul 2008 10:28:38 +0000 (20:28 +1000)] 
Print used message in place of "default metadata" message.

When creating an array in a container, print e.g.
   Creating array inside ddf container /dev/whatever
rather than
   Defaulting to version /md127/1 metadata

15 years agoIntroduce devname2devnum
Neil Brown [Sat, 12 Jul 2008 10:28:38 +0000 (20:28 +1000)] 
Introduce devname2devnum

and use it instead of opencoding.

15 years agoFix fd comparison in Incremental
Neil Brown [Sat, 12 Jul 2008 10:28:38 +0000 (20:28 +1000)] 
Fix fd comparison in Incremental

fd==0 is theoretically possible...

15 years agoPass 'verbose' flag to validate_geometry
Neil Brown [Sat, 12 Jul 2008 10:28:38 +0000 (20:28 +1000)] 
Pass 'verbose' flag to validate_geometry

That way it can be silent when we are just trying to figure out
which metadata to use, and noisy when detecting a real problem.

15 years agoCorrect unit conversion for component_size and dev/size in sysfs.
Neil Brown [Sat, 12 Jul 2008 10:28:38 +0000 (20:28 +1000)] 
Correct unit conversion for component_size and dev/size in sysfs.

These are both Kilobytes, so do the conversion to sectors properly.

15 years agoUse O_DIRECT for all IO to devices.
Neil Brown [Sat, 12 Jul 2008 10:28:33 +0000 (20:28 +1000)] 
Use O_DIRECT for all IO to devices.

Using buffered IO risks non-atomic updates to parts of the
device that we don't actually want to write to.  This isn't in
general safe.
So switch to O_DIRECT for all that IO and make sure we have
properly aligned buffers.

15 years agoStop all arrays before running each test in regression test driver.
Neil Brown [Sat, 12 Jul 2008 10:27:42 +0000 (20:27 +1000)] 
Stop all arrays before running each test in regression test driver.

Sometimes I forget to stop arrays at the end of scripts, and
that shows errors in the next script, which is confusing.

15 years agoddf: Set container_member from subarray in getinfo_super.
Neil Brown [Sat, 12 Jul 2008 10:27:42 +0000 (20:27 +1000)] 
ddf: Set container_member from subarray in getinfo_super.

Also go direct from subarray to text_version.

15 years agoReduce the number of metadata updates done by ddf.
Neil Brown [Sat, 12 Jul 2008 10:27:42 +0000 (20:27 +1000)] 
Reduce the number of metadata updates done by ddf.

1/ track if there are any actual updates pending, and only
   write metadata when we have changed something.

2/ when writing null virtual-configs, write full blocks,
   not just the first 4 bytes.  This will allow O_DIRECT
   writes in a subsequent patch.

15 years agoImprove shutdown for container-based arrays.
Neil Brown [Sat, 12 Jul 2008 10:27:42 +0000 (20:27 +1000)] 
Improve shutdown for container-based arrays.

1/ close a race where multiple arrays disappear at once
   and monitor isn't woken up to find out that the last one
   has gone.
2/ "mdadm -Ss" needs to pause briefly for mdmon to exit.

15 years agoKeep container device open in monitor
Neil Brown [Sat, 12 Jul 2008 10:27:42 +0000 (20:27 +1000)] 
Keep container device open in monitor

... so that it cannot be stopped while there are active arrays.
I don't know where that second 'close' came from ....

15 years agoMake sure we remove pid file in monitor before manager exits.
Neil Brown [Sat, 12 Jul 2008 10:27:42 +0000 (20:27 +1000)] 
Make sure we remove pid file in monitor before manager exits.

15 years agoRemove some noisy printfs.
Neil Brown [Sat, 12 Jul 2008 10:27:41 +0000 (20:27 +1000)] 
Remove some noisy printfs.

15 years agoCreate arrays via metadata-update
Neil Brown [Sat, 12 Jul 2008 10:27:40 +0000 (20:27 +1000)] 
Create arrays via metadata-update

Support creating arrays inside an active ddf container by
sending a metadata update over a pipe to mdmon.

15 years agoRevise message passing code.
Neil Brown [Sat, 12 Jul 2008 10:27:40 +0000 (20:27 +1000)] 
Revise message passing code.

More here

15 years agoRemove mgr_pipe for communicating from manage to monitor.
Neil Brown [Sat, 12 Jul 2008 10:27:40 +0000 (20:27 +1000)] 
Remove mgr_pipe for communicating from manage to monitor.

Data is being passed in shared memory, so the pipe is only being
use as a wakeup.  This can more easily be done with a thread-signal.

15 years agoRemove mon_pipe for communicating from monitor to manager
Neil Brown [Sat, 12 Jul 2008 10:27:40 +0000 (20:27 +1000)] 
Remove mon_pipe for communicating from monitor to manager

The returned value was never used, and we don't really want
this return path anyway as writing to a pipe could conceivably
block, and the monitor must not block.

15 years agoHandle device removal from container
Neil Brown [Sat, 12 Jul 2008 10:27:40 +0000 (20:27 +1000)] 
Handle device removal from container

This really should be done in mdadm, not mdmon.
We ensure the device won't be suddenly commited as a hot-spare
using O_EXCL, then check the 'holders' sysfs directory
to make sure it is only in use once.

15 years agoFix kernel patch
Neil Brown [Sat, 12 Jul 2008 10:27:39 +0000 (20:27 +1000)] 
Fix kernel patch

15 years agoMake super super0.c function static.
Neil Brown [Sat, 12 Jul 2008 10:27:39 +0000 (20:27 +1000)] 
Make super super0.c function static.

So only 'super0' is externally visible.

15 years agoRemove the multiple super_switchs for ddf.
Neil Brown [Sat, 12 Jul 2008 10:27:39 +0000 (20:27 +1000)] 
Remove the multiple super_switchs for ddf.

It is simpler if there is just one, and the methods
make decisions as appropriate.

15 years agoRemove silly convention that major='-1' means 'zero superblock'.
Neil Brown [Sat, 12 Jul 2008 10:27:39 +0000 (20:27 +1000)] 
Remove silly convention that major='-1' means 'zero superblock'.

Use 'info pointer is NULL' instead.

15 years agoRemove getinfo_super_n and do some other cleaning up.
Neil Brown [Sat, 12 Jul 2008 10:27:39 +0000 (20:27 +1000)] 
Remove getinfo_super_n and do some other cleaning up.

Getting close to a sensible description of what some of the
superswitch methods are supposed to do!

15 years agoExternal metadata shouldn't set array.*_version
Neil Brown [Sat, 12 Jul 2008 10:27:39 +0000 (20:27 +1000)] 
External metadata shouldn't set array.*_version

It doesn't mean anything and is never used.

15 years agoAdd subarray field to supertype.
Neil Brown [Sat, 12 Jul 2008 10:27:38 +0000 (20:27 +1000)] 
Add subarray field to supertype.

When loading the metadata for a subarray (super_by_fd), we set
->subarray to be the name read from md/metadata_version so that
getinfo_super can return info about the correct array.

With this we can differentiate between a container and
an array within the container by looking at ->subarray[0].

15 years agoAdd some comments to explain some of the bits of superswitch.
Neil Brown [Sat, 12 Jul 2008 10:27:38 +0000 (20:27 +1000)] 
Add some comments to explain some of the bits of superswitch.

15 years agoHide subordinate superswitch structures.
Neil Brown [Sat, 12 Jul 2008 10:27:38 +0000 (20:27 +1000)] 
Hide subordinate superswitch structures.

Only one superswitch should be externally visible for each
general type.  Others which handle different flavours
(e.g. container/data-array) should be internal only.

15 years agoRemove 'major' from superswitch.
Neil Brown [Sat, 12 Jul 2008 10:27:37 +0000 (20:27 +1000)] 
Remove 'major' from superswitch.

It isn't generally meaningful.

15 years agoUse text_version in map_file rather than major.minor.
Neil Brown [Sat, 12 Jul 2008 10:27:37 +0000 (20:27 +1000)] 
Use text_version in map_file rather than major.minor.

15 years agoAssorted cleanups to DDF
Neil Brown [Sat, 12 Jul 2008 10:27:37 +0000 (20:27 +1000)] 
Assorted cleanups to DDF

15 years agoFix write_init_super usage when hot-adding a spare
Neil Brown [Sat, 12 Jul 2008 10:27:36 +0000 (20:27 +1000)] 
Fix write_init_super usage when hot-adding a spare

Using write_init_super to add a spare to an active array is quite
different to how it is used when creating an array.

It mostly works, but if we are adding two devices to an array,
then when we add the second, there are still traces of the first
which confuse write_init_super.

So get write_init_super to ignore those traces.  Longer term, we
probably want to do this differently as for DDF, hot-adding to
an active array will have to be quite different - it will want to
write to all metadata, possibly via mdmon.

15 years agoAlways zero a struct ddf_super on allocation.
Neil Brown [Sat, 12 Jul 2008 10:27:36 +0000 (20:27 +1000)] 
Always zero a struct ddf_super on allocation.

15 years agoAlways initialise a struct super_type to zero
Neil Brown [Sat, 12 Jul 2008 10:27:36 +0000 (20:27 +1000)] 
Always initialise a struct super_type to zero

15 years agoFix freeing of updates that have been handled by monitor.
Neil Brown [Sat, 12 Jul 2008 10:27:33 +0000 (20:27 +1000)] 
Fix freeing of updates that have been handled by monitor.

Yes, we do want to free the buf, and the space too if it is still
there.

15 years agoAlways assume_clean for raid0, linear, multipath, faulty
Neil Brown [Thu, 10 Jul 2008 22:50:06 +0000 (08:50 +1000)] 
Always assume_clean for raid0, linear, multipath, faulty

For arrays that don't have redundancy (raid0, linear etc), the
clean/dirty distinction doesn't mean anything.  So always
'assume clean' for these arrays.

15 years agoMerge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/mdadm...
Neil Brown [Fri, 20 Jun 2008 05:13:27 +0000 (15:13 +1000)] 
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/mdadm into devel-3.0

15 years agoMerge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/mdadm...
Neil Brown [Thu, 19 Jun 2008 06:41:25 +0000 (16:41 +1000)] 
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/mdadm into devel-3.0

15 years agoMerge branch 'master' into devel-3.0
Neil Brown [Thu, 19 Jun 2008 06:38:37 +0000 (16:38 +1000)] 
Merge branch 'master' into devel-3.0

Conflicts:

Makefile

15 years agoFix bug in forced assemble.
Chris Webb [Thu, 19 Jun 2008 06:30:39 +0000 (16:30 +1000)] 
Fix bug in forced assemble.

From: Chris Webb <chris@arachsys.com>

We are loading into the already-loaded 'st' instead of the
newly create 'tst', which is clearly wrong.

15 years agoFix an error when assembling arrays that are in the middle of a reshape.
Neil Brown [Thu, 19 Jun 2008 06:30:36 +0000 (16:30 +1000)] 
Fix an error when assembling arrays that are in the middle of a reshape.

It is important that dup_super always returns an 'st' with the same
->ss and ->minor_version as the st that was passed.
This wasn't happening for 0.91 metadata (i.e. in the middle of a reshape).

15 years agomdmon: add debug print statements for profiling mdmon
Dan Williams [Mon, 16 Jun 2008 22:50:07 +0000 (15:50 -0700)] 
mdmon: add debug print statements for profiling mdmon

for development only as console output can block leading to monitor deadlocks
in low mem situations

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
15 years agoimsm: set map state depending on sync state
Dan Williams [Mon, 16 Jun 2008 22:36:41 +0000 (15:36 -0700)] 
imsm: set map state depending on sync state

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
15 years agoimsm: reenable mdmon
Dan Williams [Mon, 16 Jun 2008 22:36:41 +0000 (15:36 -0700)] 
imsm: reenable mdmon

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
15 years agoimsm: write anchor last
Dan Williams [Mon, 16 Jun 2008 22:36:41 +0000 (15:36 -0700)] 
imsm: write anchor last

Ensure that newly written anchors reflect a consistent metadata block.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
15 years agoimsm: implement store_zero_imsm and init_zero_imsm
Dan Williams [Mon, 16 Jun 2008 22:36:40 +0000 (15:36 -0700)] 
imsm: implement store_zero_imsm and init_zero_imsm

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
15 years agoimsm: ->getinfo_super set raid_disk to disk.number
Dan Williams [Mon, 16 Jun 2008 22:36:40 +0000 (15:36 -0700)] 
imsm: ->getinfo_super set raid_disk to disk.number

A spare device by definition will have raid_disk set to -1, but when
assembling the container we want this disk to by included.

Fixes a SIGSEGV when doing:
mdadm -A /dev/imsm -e imsm /dev/sd[b-e]

...where /dev/sde is marked as a global spare device

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
15 years agoimsm: add 'Create' support
Dan Williams [Mon, 16 Jun 2008 22:36:38 +0000 (15:36 -0700)] 
imsm: add 'Create' support

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
15 years agoimsm: 'volume' is the proper name for imsm container members
Dan Williams [Sat, 14 Jun 2008 00:42:09 +0000 (17:42 -0700)] 
imsm: 'volume' is the proper name for imsm container members

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
15 years agoimsm: ->container_dev needs to be set in load_super_imsm_all
Dan Williams [Sat, 14 Jun 2008 00:42:09 +0000 (17:42 -0700)] 
imsm: ->container_dev needs to be set in load_super_imsm_all

It is used later by container_content_imsm to determine set the
text_version of the member arrays.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
15 years agoimsm: add 'mpb_size' to --examine output
Dan Williams [Sat, 14 Jun 2008 00:42:09 +0000 (17:42 -0700)] 
imsm: add 'mpb_size' to --examine output

Break out sector_count() for use elsewhere.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
15 years agosysfs: helper routine to retrieve the scsi id
Dan Williams [Sat, 14 Jun 2008 00:27:30 +0000 (17:27 -0700)] 
sysfs: helper routine to retrieve the scsi id

imsm records this information in its metadata

Signed-off-by: Dan Williams <dan.j.williams@intel.com>