diff options
author | Zhihao Cheng <chengzhihao1@huawei.com> | 2024-11-11 17:08:07 +0800 |
---|---|---|
committer | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2024-11-11 10:32:46 +0100 |
commit | 59dd2cf5ad8e32c7b38b3287b9d05a2d809e93e4 (patch) | |
tree | 2befa580b46a60f2abd91981af43215059f4fe44 /jffsX-utils/sumtool.c | |
parent | d0b66b0e5bb346e795a4c0ac3cafd287a6e4db9d (diff) |
fsck.ubifs: Check whether the TNC is empty
This is the 11/18 step of fsck. Check whether the TNC is empty, turn to
rebuild_fs if it is not found. Can we recreate a new root dir to avoid
empty TNC? The answer is no, lpt fixing should be done before creating
new entry, but lpt fixing needs a committing before new dirty data
generated to ensure that bud data won't be overwritten(bud LEB could
become freeable after replaying journal, corrected lpt may treat it as
a free one to hold new data, see details in space checking & correcting
step). Then we have to create the new root dir after fixing lpt and a
committing, znode without children(empty TNC) maybe written on disk at
the moment of committing, which corrupts the UBIFS image. So we choose
to rebuild the filesystem if the TNC is empty, this case is equivalent
to corrupted TNC.
Signed-off-by: Zhihao Cheng <chengzhihao1@huawei.com>
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Diffstat (limited to 'jffsX-utils/sumtool.c')
0 files changed, 0 insertions, 0 deletions