Commit 98a1eebd authored by Artem Bityutskiy's avatar Artem Bityutskiy

UBIFS: introduce categorized lprops counter

This commit is a preparation for a subsequent bugfix. We introduce a
counter for categorized lprops.
Signed-off-by: default avatarArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
Cc: stable@vger.kernel.org
parent 6f0c0580
...@@ -300,8 +300,11 @@ void ubifs_add_to_cat(struct ubifs_info *c, struct ubifs_lprops *lprops, ...@@ -300,8 +300,11 @@ void ubifs_add_to_cat(struct ubifs_info *c, struct ubifs_lprops *lprops,
default: default:
ubifs_assert(0); ubifs_assert(0);
} }
lprops->flags &= ~LPROPS_CAT_MASK; lprops->flags &= ~LPROPS_CAT_MASK;
lprops->flags |= cat; lprops->flags |= cat;
c->in_a_category_cnt += 1;
ubifs_assert(c->in_a_category_cnt <= c->main_lebs);
} }
/** /**
...@@ -334,6 +337,9 @@ static void ubifs_remove_from_cat(struct ubifs_info *c, ...@@ -334,6 +337,9 @@ static void ubifs_remove_from_cat(struct ubifs_info *c,
default: default:
ubifs_assert(0); ubifs_assert(0);
} }
c->in_a_category_cnt -= 1;
ubifs_assert(c->in_a_category_cnt >= 0);
} }
/** /**
......
...@@ -1183,6 +1183,8 @@ struct ubifs_debug_info; ...@@ -1183,6 +1183,8 @@ struct ubifs_debug_info;
* @freeable_list: list of freeable non-index LEBs (free + dirty == @leb_size) * @freeable_list: list of freeable non-index LEBs (free + dirty == @leb_size)
* @frdi_idx_list: list of freeable index LEBs (free + dirty == @leb_size) * @frdi_idx_list: list of freeable index LEBs (free + dirty == @leb_size)
* @freeable_cnt: number of freeable LEBs in @freeable_list * @freeable_cnt: number of freeable LEBs in @freeable_list
* @in_a_category_cnt: count of lprops which are in a certain category, which
* basically meants that they were loaded from the flash
* *
* @ltab_lnum: LEB number of LPT's own lprops table * @ltab_lnum: LEB number of LPT's own lprops table
* @ltab_offs: offset of LPT's own lprops table * @ltab_offs: offset of LPT's own lprops table
...@@ -1412,6 +1414,7 @@ struct ubifs_info { ...@@ -1412,6 +1414,7 @@ struct ubifs_info {
struct list_head freeable_list; struct list_head freeable_list;
struct list_head frdi_idx_list; struct list_head frdi_idx_list;
int freeable_cnt; int freeable_cnt;
int in_a_category_cnt;
int ltab_lnum; int ltab_lnum;
int ltab_offs; int ltab_offs;
......
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