Re: [RESEND PATCH 2/2] erofs-utils: lib: honor rebuild whiteouts for recreated dirs

Gao Xiang <[email protected]>
Newsgroups org.ozlabs.lists.linux-erofs
Message-ID <[email protected]>

On 2026/6/22 11:42, Yifan Zhao wrote:
> When rebuilding from upper to lower, a whiteout below an already
> recreated directory should keep that directory but stop older lower
> entries from being merged into it.
> 
> Mark the existing directory opaque before applying the generic
> non-directory bailout.
> 
> Reported-by: cayoub-oai <[email protected]>

I hope it could be a real email if the reporter
can give us, which helps us to give the exact
credits too..

> Closes: https://github.com/erofs/erofs-utils/issues/49
> Assisted-by: Codex:GPT-5.5
> Signed-off-by: Yifan Zhao <[email protected]>
> ---
>   lib/rebuild.c | 8 +++++++-
>   1 file changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/lib/rebuild.c b/lib/rebuild.c
> index 51dfe18..108a464 100644
> --- a/lib/rebuild.c
> +++ b/lib/rebuild.c
> @@ -401,7 +401,13 @@ static int erofs_rebuild_dirent_iter(struct erofs_dir_context *ctx)
>   			.nid = ctx->de_nid
>   		};
>   		ret = erofs_read_inode_from_disk(&src);
> -		if (ret || !S_ISDIR(src.i_mode))
> +		if (ret)
> +			goto out;

		if (S_ISDIR(d->inode->i_mode) &&
		    erofs_inode_is_whiteout(&src))

I guess?  If the upper is not a directory, I think
it should be ignored instead?

Thanks,
Gao Xiang
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.