Ack

On Thu, Mar 27, 2025 at 10:56 PM Liu Kui <kui....@virtuozzo.com> wrote:
>
> The BUG_ON condition here is legitimate that can happen during fuse
> connection teardown. So a fatal error should be returned instead of
> crash.
>
> Fixes #VSTOR-102865
>
> Signed-off-by: Liu Kui <kui....@virtuozzo.com>
> ---
>  fs/fuse/kio/pcs/pcs_krpc.c | 8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/fs/fuse/kio/pcs/pcs_krpc.c b/fs/fuse/kio/pcs/pcs_krpc.c
> index 115bd67aa0d2..323205a3e2df 100644
> --- a/fs/fuse/kio/pcs/pcs_krpc.c
> +++ b/fs/fuse/kio/pcs/pcs_krpc.c
> @@ -486,7 +486,10 @@ static int pcs_krpc_ioctl_send_msg(struct pcs_krpc 
> *krpc, struct pcs_krpc_ioc_se
>         chunk->type = KRPC_CHUNK_TYPE_MR;
>
>         chunk->mr = pcs_mr_get(&cc_from_krpc(krpc)->mrs, 
> iocmsg->hdr_chunk.mr_id);
> -       BUG_ON(!chunk->mr);
> +       if (!chunk->mr) {
> +               res = -ENXIO;
> +               goto err_free_data_chunk;
> +       }
>
>         kreq->hdr_buf = (char *) kmap(pcs_umem_page(chunk->mr->umem, 
> chunk->addr));
>         kreq->hdr_kv.iov_base = kreq->hdr_buf;
> @@ -595,7 +598,8 @@ static int pcs_krpc_ioctl_send_msg(struct pcs_krpc *krpc, 
> struct pcs_krpc_ioc_se
>
>  err_free_data_chunk:
>         kreq_release_data_chunks(kreq);
> -       pcs_mr_put(kreq->hdr_chunk.mr);
> +       if (kreq->hdr_chunk.mr)
> +               pcs_mr_put(kreq->hdr_chunk.mr);
>
>  err_free_kreq:
>         krpc_req_free(kreq);
> --
> 2.39.5 (Apple Git-154)

_______________________________________________
Devel mailing list
Devel@openvz.org
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to