[PATCH] md: make sure 64bit fields in version-1 metadata are 64-bit aligned
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>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
committed by
Linus Torvalds
parent
54404e72cd
commit
6f91fe88e4
@@ -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) */
|
||||
|
||||
Reference in New Issue
Block a user