diff options
author | Artem Bityutskiy <Artem.Bityutskiy@nokia.com> | 2008-12-28 03:17:23 -0500 |
---|---|---|
committer | Artem Bityutskiy <Artem.Bityutskiy@nokia.com> | 2009-09-15 10:09:48 -0400 |
commit | be9e62a7307583594d88f6ccf57a4e30308e7b21 (patch) | |
tree | b30b5ccb97f583c4bbc2095923f6f5f9fd18890a /fs/ubifs/lprops.c | |
parent | 055da1b704e95fea39597bd84d64cea7d4f7d2aa (diff) |
UBIFS: improve lprops dump
Improve 'dbg_dump_lprop()' and print dark and dead space there,
decode flags, and journal heads.
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Diffstat (limited to 'fs/ubifs/lprops.c')
-rw-r--r-- | fs/ubifs/lprops.c | 27 |
1 files changed, 12 insertions, 15 deletions
diff --git a/fs/ubifs/lprops.c b/fs/ubifs/lprops.c index 89b355aff887..4d4ca388889b 100644 --- a/fs/ubifs/lprops.c +++ b/fs/ubifs/lprops.c | |||
@@ -461,21 +461,18 @@ static void change_category(struct ubifs_info *c, struct ubifs_lprops *lprops) | |||
461 | } | 461 | } |
462 | 462 | ||
463 | /** | 463 | /** |
464 | * calc_dark - calculate LEB dark space size. | 464 | * ubifs_calc_dark - calculate LEB dark space size. |
465 | * @c: the UBIFS file-system description object | 465 | * @c: the UBIFS file-system description object |
466 | * @spc: amount of free and dirty space in the LEB | 466 | * @spc: amount of free and dirty space in the LEB |
467 | * | 467 | * |
468 | * This function calculates amount of dark space in an LEB which has @spc bytes | 468 | * This function calculates and returns amount of dark space in an LEB which |
469 | * of free and dirty space. Returns the calculations result. | 469 | * has @spc bytes of free and dirty space. |
470 | * | 470 | * |
471 | * Dark space is the space which is not always usable - it depends on which | 471 | * UBIFS is trying to account the space which might not be usable, and this |
472 | * nodes are written in which order. E.g., if an LEB has only 512 free bytes, | 472 | * space is called "dark space". For example, if an LEB has only %512 free |
473 | * it is dark space, because it cannot fit a large data node. So UBIFS cannot | 473 | * bytes, it is dark space, because it cannot fit a large data node. |
474 | * count on this LEB and treat these 512 bytes as usable because it is not true | ||
475 | * if, for example, only big chunks of uncompressible data will be written to | ||
476 | * the FS. | ||
477 | */ | 474 | */ |
478 | static int calc_dark(struct ubifs_info *c, int spc) | 475 | int ubifs_calc_dark(const struct ubifs_info *c, int spc) |
479 | { | 476 | { |
480 | ubifs_assert(!(spc & 7)); | 477 | ubifs_assert(!(spc & 7)); |
481 | 478 | ||
@@ -575,7 +572,7 @@ const struct ubifs_lprops *ubifs_change_lp(struct ubifs_info *c, | |||
575 | if (old_spc < c->dead_wm) | 572 | if (old_spc < c->dead_wm) |
576 | c->lst.total_dead -= old_spc; | 573 | c->lst.total_dead -= old_spc; |
577 | else | 574 | else |
578 | c->lst.total_dark -= calc_dark(c, old_spc); | 575 | c->lst.total_dark -= ubifs_calc_dark(c, old_spc); |
579 | 576 | ||
580 | c->lst.total_used -= c->leb_size - old_spc; | 577 | c->lst.total_used -= c->leb_size - old_spc; |
581 | } | 578 | } |
@@ -616,7 +613,7 @@ const struct ubifs_lprops *ubifs_change_lp(struct ubifs_info *c, | |||
616 | if (new_spc < c->dead_wm) | 613 | if (new_spc < c->dead_wm) |
617 | c->lst.total_dead += new_spc; | 614 | c->lst.total_dead += new_spc; |
618 | else | 615 | else |
619 | c->lst.total_dark += calc_dark(c, new_spc); | 616 | c->lst.total_dark += ubifs_calc_dark(c, new_spc); |
620 | 617 | ||
621 | c->lst.total_used += c->leb_size - new_spc; | 618 | c->lst.total_used += c->leb_size - new_spc; |
622 | } | 619 | } |
@@ -1107,7 +1104,7 @@ static int scan_check_cb(struct ubifs_info *c, | |||
1107 | "- continuing checking"); | 1104 | "- continuing checking"); |
1108 | lst->empty_lebs += 1; | 1105 | lst->empty_lebs += 1; |
1109 | lst->total_free += c->leb_size; | 1106 | lst->total_free += c->leb_size; |
1110 | lst->total_dark += calc_dark(c, c->leb_size); | 1107 | lst->total_dark += ubifs_calc_dark(c, c->leb_size); |
1111 | return LPT_SCAN_CONTINUE; | 1108 | return LPT_SCAN_CONTINUE; |
1112 | } | 1109 | } |
1113 | 1110 | ||
@@ -1117,7 +1114,7 @@ static int scan_check_cb(struct ubifs_info *c, | |||
1117 | "- continuing checking"); | 1114 | "- continuing checking"); |
1118 | lst->total_free += lp->free; | 1115 | lst->total_free += lp->free; |
1119 | lst->total_dirty += lp->dirty; | 1116 | lst->total_dirty += lp->dirty; |
1120 | lst->total_dark += calc_dark(c, c->leb_size); | 1117 | lst->total_dark += ubifs_calc_dark(c, c->leb_size); |
1121 | return LPT_SCAN_CONTINUE; | 1118 | return LPT_SCAN_CONTINUE; |
1122 | } | 1119 | } |
1123 | data->err = PTR_ERR(sleb); | 1120 | data->err = PTR_ERR(sleb); |
@@ -1235,7 +1232,7 @@ static int scan_check_cb(struct ubifs_info *c, | |||
1235 | if (spc < c->dead_wm) | 1232 | if (spc < c->dead_wm) |
1236 | lst->total_dead += spc; | 1233 | lst->total_dead += spc; |
1237 | else | 1234 | else |
1238 | lst->total_dark += calc_dark(c, spc); | 1235 | lst->total_dark += ubifs_calc_dark(c, spc); |
1239 | } | 1236 | } |
1240 | 1237 | ||
1241 | ubifs_scan_destroy(sleb); | 1238 | ubifs_scan_destroy(sleb); |