Btrfs: add correct parent to check_dirs when dir got moved
We only added the parent for the new position of a moved dir. We also need to add the old parent of the moved dir. Reported-by: Alex Lyakas <alex.bolshoy.btrfs@gmail.com> Signed-off-by: Alexander Block <ablock84@googlemail.com>
This commit is contained in:
Родитель
9ea3ef516d
Коммит
ccf1626b49
|
@ -2805,6 +2805,17 @@ verbose_printk("btrfs: process_recorded_refs %llu\n", sctx->cur_ino);
|
|||
if (ret < 0)
|
||||
goto out;
|
||||
}
|
||||
} else if (S_ISDIR(sctx->cur_inode_mode) &&
|
||||
!list_empty(&sctx->deleted_refs)) {
|
||||
/*
|
||||
* We have a moved dir. Add the old parent to check_dirs
|
||||
*/
|
||||
cur = list_entry(sctx->deleted_refs.next, struct recorded_ref,
|
||||
list);
|
||||
ret = ulist_add(check_dirs, cur->dir, cur->dir_gen,
|
||||
GFP_NOFS);
|
||||
if (ret < 0)
|
||||
goto out;
|
||||
} else if (!S_ISDIR(sctx->cur_inode_mode)) {
|
||||
/*
|
||||
* We have a non dir inode. Go through all deleted refs and
|
||||
|
|
Загрузка…
Ссылка в новой задаче