Btrfs-progs: create missing root dirid
If we just don't have the root dirid stuff go ahead and re-create it, since it is easily recreated. Thanks, Signed-off-by: Josef Bacik <jbacik@fb.com> Signed-off-by: David Sterba <dsterba@suse.cz>
This commit is contained in:
parent
9151febadd
commit
e4e7058173
1 changed files with 20 additions and 0 deletions
20
cmds-check.c
20
cmds-check.c
|
@ -1987,6 +1987,26 @@ static int check_inode_recs(struct btrfs_root *root,
|
|||
error++;
|
||||
}
|
||||
} else {
|
||||
if (repair) {
|
||||
struct btrfs_trans_handle *trans;
|
||||
|
||||
trans = btrfs_start_transaction(root, 1);
|
||||
if (IS_ERR(trans)) {
|
||||
err = PTR_ERR(trans);
|
||||
return err;
|
||||
}
|
||||
|
||||
fprintf(stderr,
|
||||
"root %llu missing its root dir, recreating\n",
|
||||
(unsigned long long)root->objectid);
|
||||
|
||||
ret = btrfs_make_root_dir(trans, root, root_dirid);
|
||||
BUG_ON(ret);
|
||||
|
||||
btrfs_commit_transaction(trans, root);
|
||||
return -EAGAIN;
|
||||
}
|
||||
|
||||
fprintf(stderr, "root %llu root dir %llu not found\n",
|
||||
(unsigned long long)root->root_key.objectid,
|
||||
(unsigned long long)root_dirid);
|
||||
|
|
Loading…
Reference in a new issue