2023-08-08 03:14:03

by xiaoshoukui

[permalink] [raw]
Subject: Re: [PATCH] btrfs: fix race between balance and cancel/pause

I think this patch does not fully fix the issue.

This patch just fix assertion panic, but in the race situation, the ioctl pause
request still returns an incorrect value 0 to the user which mislead the user the
pause request finished successfully. In fact, the balance request has not been paused.

Test results and analysis are as follows:
https://lore.kernel.org/linux-btrfs/[email protected]/T/#me125d17fa59e9e671149cc76d410ced747f488b1


2023-08-09 13:51:46

by Josef Bacik

[permalink] [raw]
Subject: Re: [PATCH] btrfs: fix race between balance and cancel/pause

On Mon, Aug 07, 2023 at 10:47:48PM -0400, xiaoshoukui wrote:
> I think this patch does not fully fix the issue.
>
> This patch just fix assertion panic, but in the race situation, the ioctl pause
> request still returns an incorrect value 0 to the user which mislead the user the
> pause request finished successfully. In fact, the balance request has not been paused.
>
> Test results and analysis are as follows:
> https://lore.kernel.org/linux-btrfs/[email protected]/T/#me125d17fa59e9e671149cc76d410ced747f488b1

They're just two different issues. My patch is concerned with the panic, yours
is concerned with getting the correct return value out to the user.

Rebase your patch ontop of Sterba's tree with my fix and send it along, getting
an accurate errno out to the user is a reasonable goal. Thanks,

Josef

2023-08-10 06:18:47

by xiaoshoukui

[permalink] [raw]
Subject: Re: [PATCH] btrfs: fix race between balance and cancel/pause

> They're just two different issues. My patch is concerned with the panic, yours
> is concerned with getting the correct return value out to the user.

Agreed.

> Rebase your patch ontop of Sterba's tree with my fix and send it along, getting
> an accurate errno out to the user is a reasonable goal. Thanks,

Send the patch through below thread, pls review. Thanks.
https://lore.kernel.org/linux-btrfs/[email protected]/T/#u