Re: [PATCH] btrfs: Remove unneeded cast to s64 for qgroup rfer state

From: Alexandru Moise
Date: Mon Aug 31 2015 - 02:35:45 EST


On Mon, Aug 31, 2015 at 09:44:49AM +0800, Qu Wenruo wrote:
> >> >From the perspective of users, qgroup's referenced or exclusive
> >> is negative,but user can not continue to write data! a workaround
> >> way is to cast u64 to s64 when doing qgroup reservation
> >
> >I am unable to reproduce this problem without his modification.
> >I could be wrong in reverting this, so I'm gonna CC Wang as well so
> >he is aware of this patch.
>
> The cast is a workaround for a quite old qgroup bug, which will
> cause excl/rfer overflow to minus.
>
> The remove of cast rfer/exel now is OK, as qgroup keeps maturing,
> especially after 4.2-rc1 rfer/exel will keep sane under most case
> (exception will be qgroup reassign and subvolume deletion, but will
> not case minus value even under than case).

rfer/exel and reserved are all of type unsigned int, how exactly would
they overflow to minus?

>
> But I'm not a fan to remove it now.
> As qgroup still has a known huge bug for the qg->reserved part, we
> are aware of it and working on it actively.

Can you tell me more about this known huge bug and how you can
reproduce it using the present implementation?

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/