On 2019/2/25 23:51, Greg Kroah-Hartman wrote:
> On Mon, Feb 25, 2019 at 11:07:19PM +0800, Gao Xiang wrote:
>>
>> On 2019/2/25 23:04, Greg Kroah-Hartman wrote:
>>> On Wed, Feb 20, 2019 at 05:18:48PM +0800, Gao Xiang wrote:
>>>> commit 51232df5e4b268936beccde5248f312a316800be upstream.
>>>>
>>>> When the managed cache is enabled, the last reference count
>>>> of a workgroup must be used for its workstation.
>>>>
>>>> Otherwise, it could lead to incorrect (un)freezes in
>>>> the reclaim path, and it would be harmful.
>>>>
>>>> A typical race as follows:
>>>>
>>>> Thread 1 (In the reclaim path)  Thread 2
>>>> workgroup_freeze(grp, 1)                                refcnt = 1
>>>> ...
>>>> workgroup_unfreeze(grp, 1)                              refcnt = 1
>>>>                                 workgroup_get(grp)      refcnt = 2 (x)
>>>> workgroup_put(grp)                                      refcnt = 1 (x)
>>>>                                 ...unexpected behaviors
>>>>
>>>> * grp is detached but still used, which violates cache-managed
>>>>   freeze constraint.
>>>>
>>>> Reviewed-by: Chao Yu <yuch...@huawei.com>
>>>> Signed-off-by: Gao Xiang <gaoxian...@huawei.com>
>>>> Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>
>>>> Signed-off-by: Gao Xiang <gaoxian...@huawei.com>
>>>>
>>>> Conflicts:
>>>>    drivers/staging/erofs/utils.c
>>>> Updates:
>>>>    include/linux/xarray.h:
>>>>            add xa_untag_pointer,xa_tag_pointer,xa_pointer_tag
>>>>            from upstream 3159f943aafd in order to reduce
>>>>            conflicts.
>>> No, sorry, I don't want to add xarray.h to 4.19.y, that's crazy.
>> Or can I define these xa_untag_pointer,xa_tag_pointer,xa_pointer_tag in
>> a erofs header internally? it is acceptable?
> No, that's not ok.
>
> If you want to backport a subset of the api, and Matthew agrees with it
> (I think he did), then let's backport a subset, as a single patch, that
> matches the original patch comments and git id.

OK, I will backport a minimum subset of upstream 3159f943aafd only with
xa_untag_pointer,xa_tag_pointer,xa_pointer_tag as the only valid part.

I will do this soon and thanks Greg and Matthew for taking time on this patch :)

Thanks,
Gao Xiang


>
> thanks,
>
> greg k-h

Reply via email to