• S
    ubifs: drop false positive assertion · d3bdc016
    Sascha Hauer 提交于
    The following sequence triggers
    
    	ubifs_assert(c, c->lst.taken_empty_lebs > 0);
    
    at the end of ubifs_remount_fs():
    
    mount -t ubifs /dev/ubi0_0 /mnt
    echo 1 > /sys/kernel/debug/ubifs/ubi0_0/ro_error
    umount /mnt
    mount -t ubifs -o ro /dev/ubix_y /mnt
    mount -o remount,ro /mnt
    
    The resulting
    
    UBIFS assert failed in ubifs_remount_fs at 1878 (pid 161)
    
    is a false positive. In the case above c->lst.taken_empty_lebs has
    never been changed from its initial zero value. This will only happen
    when the deferred recovery is done.
    
    Fix this by doing the assertion only when recovery has been done
    already.
    Signed-off-by: NSascha Hauer <s.hauer@pengutronix.de>
    Signed-off-by: NRichard Weinberger <richard@nod.at>
    d3bdc016
super.c 61.5 KB