From: NeilBrown <neilb@cse.unsw.edu.au>

1/ Must typecast int to (sector_t) before inverting or we
 might not invert enough bits.

2/ When "bitmap_offset" was added to mdp_superblock_1, we didn't increase
   the count of words-used (96 to 100).

Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 drivers/md/md.c           |    2 +-
 include/linux/raid/md_p.h |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff -puN drivers/md/md.c~md-two-small-fixes-for-md-verion-1-superblocks drivers/md/md.c
--- 25/drivers/md/md.c~md-two-small-fixes-for-md-verion-1-superblocks	2005-05-09 22:34:01.000000000 -0700
+++ 25-akpm/drivers/md/md.c	2005-05-09 22:34:01.000000000 -0700
@@ -847,7 +847,7 @@ static int super_1_load(mdk_rdev_t *rdev
 	case 0:
 		sb_offset = rdev->bdev->bd_inode->i_size >> 9;
 		sb_offset -= 8*2;
-		sb_offset &= ~(4*2-1);
+		sb_offset &= ~(sector_t)(4*2-1);
 		/* convert from sectors to K */
 		sb_offset /= 2;
 		break;
diff -puN include/linux/raid/md_p.h~md-two-small-fixes-for-md-verion-1-superblocks include/linux/raid/md_p.h
--- 25/include/linux/raid/md_p.h~md-two-small-fixes-for-md-verion-1-superblocks	2005-05-09 22:34:01.000000000 -0700
+++ 25-akpm/include/linux/raid/md_p.h	2005-05-09 22:34:01.000000000 -0700
@@ -202,7 +202,7 @@ struct mdp_superblock_1 {
 				 * NOTE: signed, so bitmap can be before superblock
 				 * only meaningful of feature_map[0] is set.
 				 */
-	__u8	pad1[128-96];	/* set to 0 when written */
+	__u8	pad1[128-100];	/* set to 0 when written */
 
 	/* constant this-device information - 64 bytes */
 	__u64	data_offset;	/* sector start of data, often 0 */
_