mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-02 00:24:12 +08:00
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:
parent
ed43f2f06c
commit
431102fed3
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user