Skip to content

Commit

Permalink
Initialize max_slots early
Browse files Browse the repository at this point in the history
Functions such as ocfs2_recovery_init() make use of osb->max_slots.
Initialize osb->max_slots early so the functions may use the correct
value.

Signed-off-by: Goldwyn Rodrigues <rgoldwyn@suse.de>
Signed-off-by: Joel Becker <joel.becker@oracle.com>
  • Loading branch information
Goldwyn Rodrigues authored and Joel Becker committed Oct 11, 2010
1 parent f30d44f commit 75d9bbc
Showing 1 changed file with 9 additions and 9 deletions.
18 changes: 9 additions & 9 deletions fs/ocfs2/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -2105,6 +2105,15 @@ static int ocfs2_initialize_super(struct super_block *sb,
snprintf(osb->dev_str, sizeof(osb->dev_str), "%u,%u",
MAJOR(osb->sb->s_dev), MINOR(osb->sb->s_dev));

osb->max_slots = le16_to_cpu(di->id2.i_super.s_max_slots);
if (osb->max_slots > OCFS2_MAX_SLOTS || osb->max_slots == 0) {
mlog(ML_ERROR, "Invalid number of node slots (%u)\n",
osb->max_slots);
status = -EINVAL;
goto bail;
}
mlog(0, "max_slots for this device: %u\n", osb->max_slots);

ocfs2_orphan_scan_init(osb);

status = ocfs2_recovery_init(osb);
Expand Down Expand Up @@ -2143,15 +2152,6 @@ static int ocfs2_initialize_super(struct super_block *sb,
goto bail;
}

osb->max_slots = le16_to_cpu(di->id2.i_super.s_max_slots);
if (osb->max_slots > OCFS2_MAX_SLOTS || osb->max_slots == 0) {
mlog(ML_ERROR, "Invalid number of node slots (%u)\n",
osb->max_slots);
status = -EINVAL;
goto bail;
}
mlog(0, "max_slots for this device: %u\n", osb->max_slots);

osb->slot_recovery_generations =
kcalloc(osb->max_slots, sizeof(*osb->slot_recovery_generations),
GFP_KERNEL);
Expand Down

0 comments on commit 75d9bbc

Please sign in to comment.