ubifs became broken on contigous power-fails

Alexander Pazdnikov pazdnikov at prosoft.ural.ru
Wed May 12 03:30:07 EDT 2010


recovery proccess of ubi2:dbfs prints

ubifs_rcvry_gc_commit: could not find a dirty LEB

but we have plenty of free space

# df
Filesystem                Size      Used Available Use% Mounted on
ubi0:rootfs              13.2M      7.5M      5.7M  57% /
tmpfs                     4.0K         0      4.0K   0% /dev
shm                       1.0M         0      1.0M   0% /dev/shm
tmpfs                     1.0M      8.0K   1016.0K   1% /tmp
tmpfs                     1.0M      4.0K   1020.0K   0% /root
ubi1:logs                11.5M    908.0K     10.0M   8% /var/log
ubi1:tmp                 13.4M     16.0K     12.7M   0% /usr/local/ecom/tmp
ubi0:local                2.1M     64.0K      1.9M   3% /var/local
ubi:config                2.0M     68.0K      1.9M   3% /usr/local/ecom/conf
ubi2:dbfs               169.1M     36.0M    128.4M  22% /usr/local/ecom/db


ubifs/recovery.c: 1044

int ubifs_rcvry_gc_commit(struct ubifs_info *c)
{
	...

	err = ubifs_find_dirty_leb(c, &lp, wbuf->offs, 2);
	if (err) {
		if (err == -ENOSPC)
			dbg_err("could not find a dirty LEB");
		return err;
	}
	ubifs_assert(!(lp.flags & LPROPS_INDEX));
	lnum = lp.lnum;

Why <ubifs_find_dirty_leb> returns -ENOSPC ? we have enough of free space 
according to <df> report

--
Best regards,
Sasha



More information about the linux-mtd mailing list