* [PATCH] md: Make sure 64bit fields in version-1 metadata are 64-bit aligned.
[not found] <20060407142239.19652.patches@notabene>
@ 2006-04-07 4:25 ` NeilBrown
0 siblings, 0 replies; only message in thread
From: NeilBrown @ 2006-04-07 4:25 UTC (permalink / raw)
To: Andrew Morton; +Cc: linux-raid, linux-kernel
This patch should go in 2.6.17-rc2 if at all possible. If the problem
gets left much longer, a more ugly solution might be needed.
### Comments for Changeset
reshape_position is a 64bit field that was not 64bit aligned.
So swap with new_level.
NOTE: this is a user-visible change. However:
- The bad code has not appeared in a released kernel
- This code is still marked 'experimental'
- This only affects version-1 superblock, which are not in wide use
- These field are only used (rather than simply reported) by user-space
tools in extemely rare circumstances : after a reshape crashes in the
first second of the reshape process.
So I believe that, at this stage, the change is safe. Especially if
people heed the 'help' message on use mdadm-2.4.1.
Signed-off-by: Neil Brown <neilb@suse.de>
### Diffstat output
./drivers/md/Kconfig | 11 ++++++-----
./include/linux/raid/md_p.h | 2 +-
2 files changed, 7 insertions(+), 6 deletions(-)
diff ./drivers/md/Kconfig~current~ ./drivers/md/Kconfig
--- ./drivers/md/Kconfig~current~ 2006-04-07 14:15:42.000000000 +1000
+++ ./drivers/md/Kconfig 2006-04-07 14:16:35.000000000 +1000
@@ -139,11 +139,12 @@ config MD_RAID5_RESHAPE
is online. However it is still EXPERIMENTAL code. It should
work, but please be sure that you have backups.
- You will need a version of mdadm newer than 2.3.1. During the
- early stage of reshape there is a critical section where live data
- is being over-written. A crash during this time needs extra care
- for recovery. The newer mdadm takes a copy of the data in the
- critical section and will restore it, if necessary, after a crash.
+ You will need mdadm verion 2.4.1 or later to use this
+ feature safely. During the early stage of reshape there is
+ a critical section where live data is being over-written. A
+ crash during this time needs extra care for recovery. The
+ newer mdadm takes a copy of the data in the critical section
+ and will restore it, if necessary, after a crash.
The mdadm usage is e.g.
mdadm --grow /dev/md1 --raid-disks=6
diff ./include/linux/raid/md_p.h~current~ ./include/linux/raid/md_p.h
--- ./include/linux/raid/md_p.h~current~ 2006-04-07 14:11:53.000000000 +1000
+++ ./include/linux/raid/md_p.h 2006-04-07 14:14:48.000000000 +1000
@@ -227,8 +227,8 @@ struct mdp_superblock_1 {
*/
/* These are only valid with feature bit '4' */
- __u64 reshape_position; /* next address in array-space for reshape */
__u32 new_level; /* new level we are reshaping to */
+ __u64 reshape_position; /* next address in array-space for reshape */
__u32 delta_disks; /* change in number of raid_disks */
__u32 new_layout; /* new layout */
__u32 new_chunk; /* new chunk size (bytes) */
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2006-04-07 4:25 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <20060407142239.19652.patches@notabene>
2006-04-07 4:25 ` [PATCH] md: Make sure 64bit fields in version-1 metadata are 64-bit aligned NeilBrown
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).