Commit c72df9f9 authored by Yongqiang Yang's avatar Yongqiang Yang Committed by Theodore Ts'o

ext4: pass verify_reserved_gdb() the number of group decriptors

The 64bit resizer adds a flex group each time, so verify_reserved_gdb
can not use s_groups_count directly, it should use the number of group
decriptors before the added group.
Signed-off-by: default avatarYongqiang Yang <xiaoqiangnk@gmail.com>
Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
parent 2e10e2f2
...@@ -656,10 +656,10 @@ static unsigned ext4_list_backups(struct super_block *sb, unsigned *three, ...@@ -656,10 +656,10 @@ static unsigned ext4_list_backups(struct super_block *sb, unsigned *three,
* groups in current filesystem that have BACKUPS, or -ve error code. * groups in current filesystem that have BACKUPS, or -ve error code.
*/ */
static int verify_reserved_gdb(struct super_block *sb, static int verify_reserved_gdb(struct super_block *sb,
ext4_group_t end,
struct buffer_head *primary) struct buffer_head *primary)
{ {
const ext4_fsblk_t blk = primary->b_blocknr; const ext4_fsblk_t blk = primary->b_blocknr;
const ext4_group_t end = EXT4_SB(sb)->s_groups_count;
unsigned three = 1; unsigned three = 1;
unsigned five = 5; unsigned five = 5;
unsigned seven = 7; unsigned seven = 7;
...@@ -734,7 +734,7 @@ static int add_new_gdb(handle_t *handle, struct inode *inode, ...@@ -734,7 +734,7 @@ static int add_new_gdb(handle_t *handle, struct inode *inode,
if (!gdb_bh) if (!gdb_bh)
return -EIO; return -EIO;
gdbackups = verify_reserved_gdb(sb, gdb_bh); gdbackups = verify_reserved_gdb(sb, group, gdb_bh);
if (gdbackups < 0) { if (gdbackups < 0) {
err = gdbackups; err = gdbackups;
goto exit_bh; goto exit_bh;
...@@ -897,7 +897,8 @@ static int reserve_backup_gdb(handle_t *handle, struct inode *inode, ...@@ -897,7 +897,8 @@ static int reserve_backup_gdb(handle_t *handle, struct inode *inode,
err = -EIO; err = -EIO;
goto exit_bh; goto exit_bh;
} }
if ((gdbackups = verify_reserved_gdb(sb, primary[res])) < 0) { gdbackups = verify_reserved_gdb(sb, group, primary[res]);
if (gdbackups < 0) {
brelse(primary[res]); brelse(primary[res]);
err = gdbackups; err = gdbackups;
goto exit_bh; goto exit_bh;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment