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: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Reviewed-by: Adrian Hunter <Adrian.Hunter@nokia.com>
This commit is contained in:
Artem Bityutskiy 2009-06-29 18:58:34 +03:00
parent ed43f2f06c
commit 431102fed3

View file

@ -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);