| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
|
|
|
| |
....as this cannot work.
|
|
|
|
| |
The user of dup_super broke it.
|
|
|
|
|
| |
In particular, failing a device would give a silly
error message.
|
| |
|
|
|
|
|
| |
If the first device we look at has no superblock,
there is no 'st' to free, so don't free it.
|
|
|
|
| |
From: Hans Lambermont <hans.lambermont@newtec.eu>
|
|
|
|
|
|
|
| |
From: Kay Sievers <kay.sievers@vrfy.org>
Cc: David Zeuthen <david@fubar.dk>
Signed-off-by: Kay Sievers <kay.sievers@vrfy.org>
|
| |
|
|
|
|
|
|
| |
From: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
|
|
|
|
|
| |
Two places have code to find a free md device number. Make this
a subroutine.
|
|
|
|
|
|
| |
From: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
From: Bill Nottingham <notting@redhat.com>
mdadm --incremental doesn't really do any locking. If you get multiple
events in parallel for the same device (that has not yet started), they
will all go down the path to create the array. One will succeed, the
rest will have SET_ARRAY_INFO die with -EBUSY (md: array mdX already has disks!)
and will exit without adding the disk.
Original bug report is: https://bugzilla.redhat.com/show_bug.cgi?id=433932
This is solved by adding very very rudimentary locking. Incremental() now
opens the device with O_EXCL to ensure only one invocation is frobbing the
array at once. A simple loop just tries to open 5 times a second for 5
seconds. If the array stays locked that long, you probably have bigger
issues.
|
|
|
|
| |
From: Bill Nottingham <notting@redhat.com>
|
|
|
|
| |
The 'D' in 'RAID' stands for 'DISKS' even it md supports other 'devices'.
|
| |
|
|
|
|
| |
Debian bug 477273
|
| |
|
|
|
|
|
| |
When adding a device to an array, make sure we don't reserve
so much space for the bitmap that there isn't room for the data.
|
|
|
|
|
|
| |
There is still a problem: If array is partially assembled and started
read-only, the last device doesn't get added properly. Probably a kernel
problem.
|
|
|
|
|
|
|
|
| |
This did not work before as we couldn't mark it clean as there would
be some parity blocks out of sync, and raid6 will not assemble a
dirty degraded array.
So make such arrays doubly degraded (the last device becomes a spare)
and clean.
|
|
|
|
| |
Particularly, add the wiki on osdl.org
|
|
|
|
| |
Instead of MSW.LSW, just print it as a 64bit number.
|
|
|
|
|
|
|
|
|
|
|
| |
array.size is 32bits and counts K. So for arrays with
more than 4Terrabytes, it can overflow.
The correct number can be read from sysfs, but there are still
a few places that use array.size and risk truncation. What is worse.
they compare a number of kilobytes with a number of sectors !!
So use get_component_size() to read the sysfs information, and be
more consistent about units.
|
|
|
|
|
|
|
|
|
| |
Some kernel versions don't put a space between 'active' and '(auto-read-only)'
in /proc/mdstat. This causes a parsing problem leaving 'level' set to
NULL which causes a crash.
So synthesise a space there if it is missing, and check for 'level' to
be NULL and don't de-ref if it is.
|
| |
|
|
|
|
|
| |
Sure, mdinfo is bigger, but having a uniform structure for lots of things
will make life easier.
|
|
|
|
|
| |
there is needless duplicatiion between mdinfo and sysdev, so discard
the latter.
|
|
|
|
|
| |
use "mdinfo" in the devices list rather than just copying
ad-hoc fields in.
|
|
|
|
| |
We don't use the information at all (any longer).
|
|
|
|
|
| |
We used to use the major/minor numbers, but that isn't sufficient
any more, so pass the fd, and possibly check 'text' version.
|
|
|
|
| |
It is now in the 'supertype'
|
|
|
|
|
| |
As this function takes 2 superblocks, the change is a bit more subtle,
so is done separately.
|
|
|
|
| |
The 'superblock' will be moved into this structure soon.
|
|
|
|
|
|
| |
As the metadata handler allocates the superblock, it should free it
too. DDF will have a more complex 'superblock' which needs more complex
freeing.
|
|
|
|
| |
... just in case.
|
| |
|
|
|
|
| |
Thanks to Martin Bene.
|
| |
|
| |
|
|
|
|
|
| |
The 'remove_partitions' call is in the wrong place and applying
to the wrong file.
|
|
|
|
| |
Also use LEVEL_LINEAR, LEVEL_MULTIPATH in place of -1 or -4 in a few places.
|
|
|
|
|
| |
Not all of the device may be available. Of that, not all may be used
(if devices are of different sizes).
|
|
|
|
|
| |
This would only create partitioned devices if the device name was a
'standard' name. This this patch, any name will work.
|
|
|
|
|
|
|
|
| |
The last release broke the ability to assemble an array that
was in the middle of a reshape.
This patch adds code to test if the critical section needs
to be restored or not so that - if we have failed to restore it,
we know whether to fail or not.
|
| |
|
|
|
|
|
|
|
|
| |
Commit a40b4fe introduced a temporary supertype variable tst, instead of
manipulating st directly. However, it was forgotton to pass &tst into the
recursive load_super1 call, causing an infinite recursion.
Signed-off-by: martin f. krafft <madduck@debian.org>
|
|
|
|
|
|
|
| |
include limits.h directly instead of values.h
Signed-off-by: maximilian attems <max@stro.at>
Signed-off-by: Neil Brown <neilb@suse.de>
|