- sb->total_bytes = (fsw_u64)vol->sb->s_blocks_count_lo * vol->g.log_blocksize;
- sb->free_bytes = (fsw_u64)vol->sb->s_free_blocks_count_lo * vol->g.log_blocksize;
+ fsw_u64 count;
+
+ count = vol->sb->s_blocks_count_lo;
+ if (vol->sb->s_desc_size >= EXT4_MIN_DESC_SIZE_64BIT)
+ count |= (fsw_u64)vol->sb->s_blocks_count_hi << 32;
+ sb->total_bytes = count * vol->g.log_blocksize;
+
+ count = vol->sb->s_free_blocks_count_lo;
+ if (vol->sb->s_desc_size >= EXT4_MIN_DESC_SIZE_64BIT)
+ count |= (fsw_u64)vol->sb->s_free_blocks_count_hi << 32;
+ sb->free_bytes = count * vol->g.log_blocksize;
+