ubifs: Pass struct ubifs_info to ubifs_assert()
This allows us to have more context in ubifs_assert() and take different actions depending on the configuration. Signed-off-by: Richard Weinberger <richard@nod.at>
This commit is contained in:
@@ -87,8 +87,8 @@ static int make_idx_node(struct ubifs_info *c, struct ubifs_idx_node *idx,
|
||||
|
||||
atomic_long_dec(&c->dirty_zn_cnt);
|
||||
|
||||
ubifs_assert(ubifs_zn_dirty(znode));
|
||||
ubifs_assert(ubifs_zn_cow(znode));
|
||||
ubifs_assert(c, ubifs_zn_dirty(znode));
|
||||
ubifs_assert(c, ubifs_zn_cow(znode));
|
||||
|
||||
/*
|
||||
* Note, unlike 'write_index()' we do not add memory barriers here
|
||||
@@ -115,9 +115,9 @@ static int fill_gap(struct ubifs_info *c, int lnum, int gap_start, int gap_end,
|
||||
{
|
||||
int len, gap_remains, gap_pos, written, pad_len;
|
||||
|
||||
ubifs_assert((gap_start & 7) == 0);
|
||||
ubifs_assert((gap_end & 7) == 0);
|
||||
ubifs_assert(gap_end >= gap_start);
|
||||
ubifs_assert(c, (gap_start & 7) == 0);
|
||||
ubifs_assert(c, (gap_end & 7) == 0);
|
||||
ubifs_assert(c, gap_end >= gap_start);
|
||||
|
||||
gap_remains = gap_end - gap_start;
|
||||
if (!gap_remains)
|
||||
@@ -131,7 +131,7 @@ static int fill_gap(struct ubifs_info *c, int lnum, int gap_start, int gap_end,
|
||||
const int alen = ALIGN(len, 8);
|
||||
int err;
|
||||
|
||||
ubifs_assert(alen <= gap_remains);
|
||||
ubifs_assert(c, alen <= gap_remains);
|
||||
err = make_idx_node(c, c->ileb_buf + gap_pos, znode,
|
||||
lnum, gap_pos, len);
|
||||
if (err)
|
||||
@@ -259,7 +259,7 @@ static int layout_leb_in_gaps(struct ubifs_info *c, int *p)
|
||||
struct ubifs_idx_node *idx;
|
||||
int in_use, level;
|
||||
|
||||
ubifs_assert(snod->type == UBIFS_IDX_NODE);
|
||||
ubifs_assert(c, snod->type == UBIFS_IDX_NODE);
|
||||
idx = snod->node;
|
||||
key_read(c, ubifs_idx_key(c, idx), &snod->key);
|
||||
level = le16_to_cpu(idx->level);
|
||||
@@ -373,7 +373,7 @@ static int layout_in_gaps(struct ubifs_info *c, int cnt)
|
||||
|
||||
p = c->gap_lebs;
|
||||
do {
|
||||
ubifs_assert(p < c->gap_lebs + c->lst.idx_lebs);
|
||||
ubifs_assert(c, p < c->gap_lebs + c->lst.idx_lebs);
|
||||
written = layout_leb_in_gaps(c, p);
|
||||
if (written < 0) {
|
||||
err = written;
|
||||
@@ -639,7 +639,7 @@ static int get_znodes_to_commit(struct ubifs_info *c)
|
||||
}
|
||||
cnt += 1;
|
||||
while (1) {
|
||||
ubifs_assert(!ubifs_zn_cow(znode));
|
||||
ubifs_assert(c, !ubifs_zn_cow(znode));
|
||||
__set_bit(COW_ZNODE, &znode->flags);
|
||||
znode->alt = 0;
|
||||
cnext = find_next_dirty(znode);
|
||||
@@ -652,7 +652,7 @@ static int get_znodes_to_commit(struct ubifs_info *c)
|
||||
cnt += 1;
|
||||
}
|
||||
dbg_cmt("committing %d znodes", cnt);
|
||||
ubifs_assert(cnt == atomic_long_read(&c->dirty_zn_cnt));
|
||||
ubifs_assert(c, cnt == atomic_long_read(&c->dirty_zn_cnt));
|
||||
return cnt;
|
||||
}
|
||||
|
||||
@@ -760,7 +760,7 @@ int ubifs_tnc_start_commit(struct ubifs_info *c, struct ubifs_zbranch *zroot)
|
||||
err = layout_commit(c, no_space, cnt);
|
||||
if (err)
|
||||
goto out_free;
|
||||
ubifs_assert(atomic_long_read(&c->dirty_zn_cnt) == 0);
|
||||
ubifs_assert(c, atomic_long_read(&c->dirty_zn_cnt) == 0);
|
||||
err = free_unused_idx_lebs(c);
|
||||
if (err)
|
||||
goto out;
|
||||
@@ -781,7 +781,7 @@ int ubifs_tnc_start_commit(struct ubifs_info *c, struct ubifs_zbranch *zroot)
|
||||
* budgeting subsystem to assume the index is already committed,
|
||||
* even though it is not.
|
||||
*/
|
||||
ubifs_assert(c->bi.min_idx_lebs == ubifs_calc_min_idx_lebs(c));
|
||||
ubifs_assert(c, c->bi.min_idx_lebs == ubifs_calc_min_idx_lebs(c));
|
||||
c->bi.old_idx_sz = c->calc_idx_sz;
|
||||
c->bi.uncommitted_idx = 0;
|
||||
c->bi.min_idx_lebs = ubifs_calc_min_idx_lebs(c);
|
||||
@@ -887,8 +887,8 @@ static int write_index(struct ubifs_info *c)
|
||||
/* Grab some stuff from znode while we still can */
|
||||
cnext = znode->cnext;
|
||||
|
||||
ubifs_assert(ubifs_zn_dirty(znode));
|
||||
ubifs_assert(ubifs_zn_cow(znode));
|
||||
ubifs_assert(c, ubifs_zn_dirty(znode));
|
||||
ubifs_assert(c, ubifs_zn_cow(znode));
|
||||
|
||||
/*
|
||||
* It is important that other threads should see %DIRTY_ZNODE
|
||||
|
Reference in New Issue
Block a user