Re: [PATCH] fuse: fix return value of inode_inline_reclaim_one_dmap in error path

From: Jingbo Xu
Date: Tue May 16 2023 - 20:08:05 EST


ping...

On 4/24/23 8:32 PM, Jingbo Xu wrote:
> When range already got reclaimed by somebody else, return NULL so that
> the caller could retry to allocate or reclaim another range, instead of
> mistakenly returning the range already got reclaimed and reused by
> others.
>
> Reported-by: Liu Jiang <gerry@xxxxxxxxxxxxxxxxx>
> Fixes: 9a752d18c85a ("virtiofs: add logic to free up a memory range")
> Signed-off-by: Jingbo Xu <jefflexu@xxxxxxxxxxxxxxxxx>
> ---
> fs/fuse/dax.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/fs/fuse/dax.c b/fs/fuse/dax.c
> index 8e74f278a3f6..59aadfd89ee5 100644
> --- a/fs/fuse/dax.c
> +++ b/fs/fuse/dax.c
> @@ -985,6 +985,7 @@ inode_inline_reclaim_one_dmap(struct fuse_conn_dax *fcd, struct inode *inode,
> node = interval_tree_iter_first(&fi->dax->tree, start_idx, start_idx);
> /* Range already got reclaimed by somebody else */
> if (!node) {
> + dmap = NULL;
> if (retry)
> *retry = true;
> goto out_write_dmap_sem;

--
Thanks,
Jingbo