Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8d7819b4 authored by Artem Bityutskiy's avatar Artem Bityutskiy Committed by Artem Bityutskiy
Browse files

UBIFS: lessen amount of debugging check types



We have too many different debugging checks - lessen the amount by merging all
index-related checks into one. At the same time, move the "force in-the-gap"
test to the "index checks" class, because it is too heavy for the "general"
class.

This patch merges TNC, Old index, and Index size check and calles this just
"index checks".

Signed-off-by: default avatarArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
parent 2b1844a8
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -123,10 +123,8 @@ debug_chks Selects extra checks that UBIFS can do while running:
		Check					Flag value

		General checks				1
		Check Tree Node Cache (TNC)		2
		Check indexing tree size		4
		Check the index				2
		Check orphan area			8
		Check old indexing tree			16
		Check LEB properties (lprops)		32
		Check leaf nodes and inodes		64

+1 −1
Original line number Diff line number Diff line
@@ -576,7 +576,7 @@ int dbg_check_old_index(struct ubifs_info *c, struct ubifs_zbranch *zroot)
	struct idx_node *i;
	size_t sz;

	if (!dbg_is_chk_old_idx(c))
	if (!dbg_is_chk_index(c))
		return 0;

	INIT_LIST_HEAD(&list);
+2 −2
Original line number Diff line number Diff line
@@ -1544,7 +1544,7 @@ int dbg_check_tnc(struct ubifs_info *c, int extra)
	long clean_cnt = 0, dirty_cnt = 0;
	int err, last;

	if (!dbg_is_chk_tnc(c))
	if (!dbg_is_chk_index(c))
		return 0;

	ubifs_assert(mutex_is_locked(&c->tnc_mutex));
@@ -1791,7 +1791,7 @@ int dbg_check_idx_size(struct ubifs_info *c, long long idx_size)
	int err;
	long long calc = 0;

	if (!dbg_is_chk_idx_sz(c))
	if (!dbg_is_chk_index(c))
		return 0;

	err = dbg_walk_index(c, NULL, add_size, &calc);
+5 −19
Original line number Diff line number Diff line
@@ -173,19 +173,15 @@ extern spinlock_t dbg_lock;
 * Debugging check flags.
 *
 * UBIFS_CHK_GEN: general checks
 * UBIFS_CHK_TNC: check TNC
 * UBIFS_CHK_IDX_SZ: check index size
 * UBIFS_CHK_INDEX: check the index
 * UBIFS_CHK_ORPH: check orphans
 * UBIFS_CHK_OLD_IDX: check the old index
 * UBIFS_CHK_LPROPS: check lprops
 * UBIFS_CHK_FS: check the file-system
 */
enum {
	UBIFS_CHK_GEN     = 0x1,
	UBIFS_CHK_TNC     = 0x2,
	UBIFS_CHK_IDX_SZ  = 0x4,
	UBIFS_CHK_INDEX   = 0x2,
	UBIFS_CHK_ORPH    = 0x8,
	UBIFS_CHK_OLD_IDX = 0x10,
	UBIFS_CHK_LPROPS  = 0x20,
	UBIFS_CHK_FS      = 0x40,
};
@@ -207,22 +203,14 @@ static inline int dbg_is_chk_gen(const struct ubifs_info *c)
{
	return !!(ubifs_chk_flags & UBIFS_CHK_GEN);
}
static inline int dbg_is_chk_tnc(const struct ubifs_info *c)
static inline int dbg_is_chk_index(const struct ubifs_info *c)
{
	return !!(ubifs_chk_flags & UBIFS_CHK_TNC);
}
static inline int dbg_is_chk_idx_sz(const struct ubifs_info *c)
{
	return !!(ubifs_chk_flags & UBIFS_CHK_IDX_SZ);
	return !!(ubifs_chk_flags & UBIFS_CHK_INDEX);
}
static inline int dbg_is_chk_orph(const struct ubifs_info *c)
{
	return !!(ubifs_chk_flags & UBIFS_CHK_ORPH);
}
static inline int dbg_is_chk_old_idx(const struct ubifs_info *c)
{
	return !!(ubifs_chk_flags & UBIFS_CHK_OLD_IDX);
}
static inline int dbg_is_chk_lprops(const struct ubifs_info *c)
{
	return !!(ubifs_chk_flags & UBIFS_CHK_LPROPS);
@@ -462,10 +450,8 @@ dbg_check_nondata_nodes_order(struct ubifs_info *c,
			      struct list_head *head)             { return 0; }

static inline int dbg_is_chk_gen(const struct ubifs_info *c)      { return 0; }
static inline int dbg_is_chk_tnc(const struct ubifs_info *c)      { return 0; }
static inline int dbg_is_chk_idx_sz(const struct ubifs_info *c)   { return 0; }
static inline int dbg_is_chk_index(const struct ubifs_info *c)    { return 0; }
static inline int dbg_is_chk_orph(const struct ubifs_info *c)     { return 0; }
static inline int dbg_is_chk_old_idx(const struct ubifs_info *c)  { return 0; }
static inline int dbg_is_chk_lprops(const struct ubifs_info *c)   { return 0; }
static inline int dbg_is_chk_fs(const struct ubifs_info *c)       { return 0; }
static inline int dbg_is_tst_rcvry(const struct ubifs_info *c)    { return 0; }
+1 −0
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@

#include <linux/crc16.h>
#include <linux/slab.h>
#include <linux/random.h>
#include "ubifs.h"

#ifdef CONFIG_UBIFS_FS_DEBUG
Loading