|
@@ -563,7 +563,8 @@ static int reserve_backup_gdb(handle_t *handle, struct inode *inode,
|
|
|
}
|
|
|
|
|
|
blk = EXT4_SB(sb)->s_sbh->b_blocknr + 1 + EXT4_SB(sb)->s_gdb_count;
|
|
|
- data = (__le32 *)dind->b_data + EXT4_SB(sb)->s_gdb_count;
|
|
|
+ data = (__le32 *)dind->b_data + (EXT4_SB(sb)->s_gdb_count %
|
|
|
+ EXT4_ADDR_PER_BLOCK(sb));
|
|
|
end = (__le32 *)dind->b_data + EXT4_ADDR_PER_BLOCK(sb);
|
|
|
|
|
|
/* Get each reserved primary GDT block and verify it holds backups */
|