Re: [PATCH BUGFIX V3] block: add missing group association in bio-cloning functions

From: Nikolay Borisov
Date: Wed May 11 2016 - 02:43:15 EST




On 05/11/2016 09:38 AM, Nikolay Borisov wrote:
>
>
> On 05/11/2016 01:01 AM, Paolo Valente wrote:
>> When a bio is cloned, the newly created bio must be associated with
>> the same blkcg as the original bio (if BLK_CGROUP is enabled). If
>> this operation is not performed, then the new bio is not associated
>> with any group, and the group of the current task is returned when
>> the group of the bio is requested.
>>
>> Depending on the cloning frequency, this may cause a large
>> percentage of the bios belonging to a given group to be treated
>> as if belonging to other groups (in most cases as if belonging to
>> the root group). The expected group isolation may thereby be broken.
>>
>> This commit adds the missing association in bio-cloning functions.
>>
>> Signed-off-by: Paolo Valente <paolo.valente@xxxxxxxxxx>
>> ---
>> block/bio.c | 15 +++++++++++++++
>> fs/btrfs/extent_io.c | 6 ------
>> include/linux/bio.h | 3 +++
>> 3 files changed, 18 insertions(+), 6 deletions(-)
>>
>
> Just for reference something like that was already proposed (and tested)
> before, though it never got merged :
>
> https://www.redhat.com/archives/dm-devel/2016-March/msg00007.html
>
> So you might also want to patch __bio_clone_fast to also apply this for
> dm backed devices.

Right, to correct myself: You might want to move the association to
__blk_clone_fast that way you are also covering dm devices as well as
users of bio_clone_fast.


>
> Otherwise:
>
> Reviewed-by: Nikolay Borisov <kernel@xxxxxxxx>
>