diff options
author | Zhihao Cheng <chengzhihao1@huawei.com> | 2024-11-11 17:01:13 +0800 |
---|---|---|
committer | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2024-11-11 10:32:46 +0100 |
commit | 7ff702596bd5590a93ae55d217753fe4b671c6f4 (patch) | |
tree | 822b879f55e17ab6238ce2f9898e201c8e90215d /ubifs-utils/fsck.ubifs/rebuild_fs.c | |
parent | 5292e1cb94d038fe9588038f2bb8282b41efe12f (diff) |
fsck.ubifs: rebuild_fs: Check and correct files' information
This is the 6/12 step of rebuilding. Correct the file information.
Traverse all files and calculate information (nlink, size, xattr_cnt,
etc.) for each file just like check_leaf() does, correct inode node
based on the calculated information.
Now, all files are consistent, and UBIFS will pass chk_fs after mounting.
Signed-off-by: Zhihao Cheng <chengzhihao1@huawei.com>
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Diffstat (limited to 'ubifs-utils/fsck.ubifs/rebuild_fs.c')
-rw-r--r-- | ubifs-utils/fsck.ubifs/rebuild_fs.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/ubifs-utils/fsck.ubifs/rebuild_fs.c b/ubifs-utils/fsck.ubifs/rebuild_fs.c index 669b61d..ecf6b0c 100644 --- a/ubifs-utils/fsck.ubifs/rebuild_fs.c +++ b/ubifs-utils/fsck.ubifs/rebuild_fs.c @@ -677,6 +677,12 @@ int ubifs_rebuild_filesystem(struct ubifs_info *c) log_out(c, "Extract reachable files"); extract_dentry_tree(c); + /* Step 6: Check & correct files' information. */ + log_out(c, "Check & correct file information"); + err = check_and_correct_files(c); + if (err) + exit_code |= FSCK_ERROR; + out: destroy_scanned_info(c, &si); destroy_rebuild_info(c); |