summaryrefslogtreecommitdiff
path: root/ubifs-utils/fsck.ubifs/fsck.ubifs.c
diff options
context:
space:
mode:
authorZhihao Cheng <chengzhihao1@huawei.com>2024-11-11 17:08:15 +0800
committerDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2024-11-11 10:32:46 +0100
commit2400ee616991542f39a154fe8c3cafe8ef940003 (patch)
tree5c098dbf863076b00f9b80b7afee0d6716794fc6 /ubifs-utils/fsck.ubifs/fsck.ubifs.c
parentfda7068da735d3e574bc46b70d3af62a5db8e908 (diff)
fsck.ubifs: Handle disconnected files
This is the 17/18 step of fsck. Recover disconnected files into lost+found. If there is no free space left to recover the disconnected files, fsck may delete the files to make filesystem be consistent. 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/fsck.ubifs.c')
-rw-r--r--ubifs-utils/fsck.ubifs/fsck.ubifs.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/ubifs-utils/fsck.ubifs/fsck.ubifs.c b/ubifs-utils/fsck.ubifs/fsck.ubifs.c
index 550d3f9..423a753 100644
--- a/ubifs-utils/fsck.ubifs/fsck.ubifs.c
+++ b/ubifs-utils/fsck.ubifs/fsck.ubifs.c
@@ -541,6 +541,13 @@ static int do_fsck(void)
goto free_disconnected_files_2;
}
+ log_out(c, "Handle disconnected files");
+ err = handle_disonnected_files(c);
+ if (err) {
+ exit_code |= FSCK_ERROR;
+ goto free_disconnected_files_2;
+ }
+
free_disconnected_files_2:
destroy_file_list(c, &FSCK(c)->disconnected_files);
return err;
@@ -596,6 +603,7 @@ int main(int argc, char *argv[])
* Step 14: Check and correct the index size
* Step 15: Check and create root dir
* Step 16: Check and create lost+found
+ * Step 17: Handle disconnected files
*/
err = do_fsck();
if (err && FSCK(c)->try_rebuild) {