UBIFS: do not write master node if need recovery
authorSheng Yong <shengyong1@huawei.com>
Wed, 4 Mar 2015 10:46:16 +0000 (10:46 +0000)
committerArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
Wed, 25 Mar 2015 09:08:40 +0000 (11:08 +0200)
commit2c84599ca4c2ffd81301f23eabc69c5180ff2f64
tree0201240875221688874339ad49b6d5ac4e17563e
parent9401a795c6478953e10226471ba5990db5000e05
UBIFS: do not write master node if need recovery

The commits 781c571 ("UBIFS: intialize LPT earlier") and 0980119 ("UBIFS:
fix-up free space earlier") move some initialization before marking the
master node dirty. But the modification changes the conditions of writing
master.

If unclean umount happens, ubifs may fail when mounting. But trying to
mount it will write new master nodes on the flash. This is useless but
increasing sqnum. So check need_recovery before writing master node, and
don't create new master node if filesystem needs recovery.

The behavour of the bug shows at:
http://lists.infradead.org/pipermail/linux-mtd/2015-February/057712.html

Signed-off-by: Sheng Yong <shengyong1@huawei.com>
Reviewed-by: Ben Gardiner <ben.l.gardiner@gmail.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
fs/ubifs/super.c