]> git.ipfire.org Git - thirdparty/mdadm.git/blobdiff - super1.c
Bitmap_offset is a signed number
[thirdparty/mdadm.git] / super1.c
index 20f4c866ee9e77309810794d7df6219fc7e2dea5..2770a7f54a53548aa1270a2aea199579ebcfaef6 100644 (file)
--- a/super1.c
+++ b/super1.c
@@ -620,7 +620,7 @@ static void getinfo_super1(struct supertype *st, struct mdinfo *info, char *map)
        info->data_offset = __le64_to_cpu(sb->data_offset);
        info->component_size = __le64_to_cpu(sb->size);
        if (sb->feature_map & __le32_to_cpu(MD_FEATURE_BITMAP_OFFSET))
-               info->bitmap_offset = __le32_to_cpu(sb->bitmap_offset);
+               info->bitmap_offset = (long)__le32_to_cpu(sb->bitmap_offset);
 
        info->disk.major = 0;
        info->disk.minor = 0;
@@ -1636,7 +1636,7 @@ add_internal_bitmap1(struct supertype *st,
                offset = -room;
        }
 
-       sb->bitmap_offset = __cpu_to_le32(offset);
+       sb->bitmap_offset = (long)__cpu_to_le32(offset);
 
        sb->feature_map = __cpu_to_le32(__le32_to_cpu(sb->feature_map)
                                        | MD_FEATURE_BITMAP_OFFSET);