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

Commit 431102fe authored by Artem Bityutskiy's avatar Artem Bityutskiy
Browse files

UBIFS: clean up free space checking



recovery.c has 'is_empty()' helper and it is better to use
this helper instead of re-implementing it in several places.
This patch does this and removes some amount of unneeded code.

Signed-off-by: default avatarArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
Reviewed-by: default avatarAdrian Hunter <Adrian.Hunter@nokia.com>
parent ed43f2f0
Loading
Loading
Loading
Loading
+3 −19
Original line number Diff line number Diff line
@@ -357,11 +357,7 @@ static int is_last_write(const struct ubifs_info *c, void *buf, int offs)
	empty_offs = ALIGN(offs + 1, c->min_io_size);
	check_len = c->leb_size - empty_offs;
	p = buf + empty_offs - offs;

	for (; check_len > 0; check_len--)
		if (*p++ != 0xff)
			return 0;
	return 1;
	return is_empty(p, check_len);
}

/**
@@ -814,7 +810,7 @@ struct ubifs_scan_leb *ubifs_recover_log_leb(struct ubifs_info *c, int lnum,
static int recover_head(const struct ubifs_info *c, int lnum, int offs,
			void *sbuf)
{
	int len, err, need_clean = 0;
	int len, err;

	if (c->min_io_size > 1)
		len = c->min_io_size;
@@ -828,19 +824,7 @@ static int recover_head(const struct ubifs_info *c, int lnum, int offs,

	/* Read at the head location and check it is empty flash */
	err = ubi_read(c->ubi, lnum, sbuf, offs, len);
	if (err)
		need_clean = 1;
	else {
		uint8_t *p = sbuf;

		while (len--)
			if (*p++ != 0xff) {
				need_clean = 1;
				break;
			}
	}

	if (need_clean) {
	if (err || !is_empty(sbuf, len)) {
		dbg_rcvry("cleaning head at %d:%d", lnum, offs);
		if (offs == 0)
			return ubifs_leb_unmap(c, lnum);