md: add possibility to change data-offset for devices.
When reshaping we can avoid costly intermediate backup by
changing the 'start' address of the array on the device
(if there is enough room).
So as a first step, allow such a change to be requested
through sysfs, and recorded in v1.x metadata.
(As we didn't previous check that all 'pad' fields were zero,
we need a new FEATURE flag for this.
A (belatedly) check that all remaining 'pad' fields are
zero to avoid a repeat of this)
The new data offset must be requested separately for each device.
This allows each to have a different change in the data offset.
This is not likely to be used often but as data_offset can be
set per-device, new_data_offset should be too.
This patch also removes the 'acknowledged' arg to rdev_set_badblocks as
it is never used and never will be. At the same time we add a new
arg ('in_new') which is currently always zero but will be used more
soon.
When a reshape finishes we will need to update the data_offset
and rdev->sectors. So provide an exported function to do that.
Signed-off-by:
NeilBrown <neilb@suse.de>
Showing
- drivers/md/md.c 196 additions, 21 deletionsdrivers/md/md.c
- drivers/md/md.h 5 additions, 2 deletionsdrivers/md/md.h
- drivers/md/raid1.c 2 additions, 2 deletionsdrivers/md/raid1.c
- drivers/md/raid10.c 4 additions, 4 deletionsdrivers/md/raid10.c
- drivers/md/raid5.c 7 additions, 3 deletionsdrivers/md/raid5.c
- include/linux/raid/md_p.h 8 additions, 2 deletionsinclude/linux/raid/md_p.h
Loading
Please register or sign in to comment