diff options
| author | Artem Bityutskiy <artem.bityutskiy@linux.intel.com> | 2012-10-10 03:55:28 -0400 |
|---|---|---|
| committer | Artem Bityutskiy <artem.bityutskiy@linux.intel.com> | 2012-10-26 09:00:26 -0400 |
| commit | 98a1eebda3cb2a84ecf1f219bb3a95769033d1bf (patch) | |
| tree | 65256d8adfa13534fcbf5c8e79d6774383daaa21 | |
| parent | 6f0c0580b70c89094b3422ba81118c7b959c7556 (diff) | |
UBIFS: introduce categorized lprops counter
This commit is a preparation for a subsequent bugfix. We introduce a
counter for categorized lprops.
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Cc: stable@vger.kernel.org
| -rw-r--r-- | fs/ubifs/lprops.c | 6 | ||||
| -rw-r--r-- | fs/ubifs/ubifs.h | 3 |
2 files changed, 9 insertions, 0 deletions
diff --git a/fs/ubifs/lprops.c b/fs/ubifs/lprops.c index e5a2a35a46dc..46190a7c42a6 100644 --- a/fs/ubifs/lprops.c +++ b/fs/ubifs/lprops.c | |||
| @@ -300,8 +300,11 @@ void ubifs_add_to_cat(struct ubifs_info *c, struct ubifs_lprops *lprops, | |||
| 300 | default: | 300 | default: |
| 301 | ubifs_assert(0); | 301 | ubifs_assert(0); |
| 302 | } | 302 | } |
| 303 | |||
| 303 | lprops->flags &= ~LPROPS_CAT_MASK; | 304 | lprops->flags &= ~LPROPS_CAT_MASK; |
| 304 | lprops->flags |= cat; | 305 | lprops->flags |= cat; |
| 306 | c->in_a_category_cnt += 1; | ||
| 307 | ubifs_assert(c->in_a_category_cnt <= c->main_lebs); | ||
| 305 | } | 308 | } |
| 306 | 309 | ||
| 307 | /** | 310 | /** |
| @@ -334,6 +337,9 @@ static void ubifs_remove_from_cat(struct ubifs_info *c, | |||
| 334 | default: | 337 | default: |
| 335 | ubifs_assert(0); | 338 | ubifs_assert(0); |
| 336 | } | 339 | } |
| 340 | |||
| 341 | c->in_a_category_cnt -= 1; | ||
| 342 | ubifs_assert(c->in_a_category_cnt >= 0); | ||
| 337 | } | 343 | } |
| 338 | 344 | ||
| 339 | /** | 345 | /** |
diff --git a/fs/ubifs/ubifs.h b/fs/ubifs/ubifs.h index 5486346d0a3f..d133c276fe05 100644 --- a/fs/ubifs/ubifs.h +++ b/fs/ubifs/ubifs.h | |||
| @@ -1183,6 +1183,8 @@ struct ubifs_debug_info; | |||
| 1183 | * @freeable_list: list of freeable non-index LEBs (free + dirty == @leb_size) | 1183 | * @freeable_list: list of freeable non-index LEBs (free + dirty == @leb_size) |
| 1184 | * @frdi_idx_list: list of freeable index LEBs (free + dirty == @leb_size) | 1184 | * @frdi_idx_list: list of freeable index LEBs (free + dirty == @leb_size) |
| 1185 | * @freeable_cnt: number of freeable LEBs in @freeable_list | 1185 | * @freeable_cnt: number of freeable LEBs in @freeable_list |
| 1186 | * @in_a_category_cnt: count of lprops which are in a certain category, which | ||
| 1187 | * basically meants that they were loaded from the flash | ||
| 1186 | * | 1188 | * |
| 1187 | * @ltab_lnum: LEB number of LPT's own lprops table | 1189 | * @ltab_lnum: LEB number of LPT's own lprops table |
| 1188 | * @ltab_offs: offset of LPT's own lprops table | 1190 | * @ltab_offs: offset of LPT's own lprops table |
| @@ -1412,6 +1414,7 @@ struct ubifs_info { | |||
| 1412 | struct list_head freeable_list; | 1414 | struct list_head freeable_list; |
| 1413 | struct list_head frdi_idx_list; | 1415 | struct list_head frdi_idx_list; |
| 1414 | int freeable_cnt; | 1416 | int freeable_cnt; |
| 1417 | int in_a_category_cnt; | ||
| 1415 | 1418 | ||
| 1416 | int ltab_lnum; | 1419 | int ltab_lnum; |
| 1417 | int ltab_offs; | 1420 | int ltab_offs; |
