summaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2006-04-10 22:52:48 -0700
committerLinus Torvalds <torvalds@g5.osdl.org>2006-04-11 06:18:30 -0700
commit6f91fe88e4e28b40b4f08d99e0ea6d17b70e9567 (patch)
tree035ac07180e058579ee8023ed0fcb12e40315594 /include/linux
parent54404e72cd3758e465fb6362f6d71e22b705c589 (diff)
downloadkernel-crypto-6f91fe88e4e28b40b4f08d99e0ea6d17b70e9567.tar.gz
kernel-crypto-6f91fe88e4e28b40b4f08d99e0ea6d17b70e9567.tar.xz
kernel-crypto-6f91fe88e4e28b40b4f08d99e0ea6d17b70e9567.zip
[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>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/raid/md_p.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/include/linux/raid/md_p.h b/include/linux/raid/md_p.h
index 774e1acfb8c..f1fbae7e390 100644
--- a/include/linux/raid/md_p.h
+++ b/include/linux/raid/md_p.h
@@ -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) */