block: add missing group association in bio-cloning functions
authorPaolo Valente <paolo.valente@linaro.org>
Wed, 27 Jul 2016 05:22:05 +0000 (07:22 +0200)
committerJens Axboe <axboe@fb.com>
Wed, 27 Jul 2016 18:52:01 +0000 (12:52 -0600)
commita5cecd616623aff480a1ae6e3d66087c0669ff53
treee9f111f31d8383c22b004e8f0929e8ec3f374470
parentae191a1b7ff7bda8947421fa8926a602aed333ab
block: add missing group association in bio-cloning functions

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.

Fixes: da2f0f74cf7d ("Btrfs: add support for blkio controllers")
Cc: stable@vger.kernel.org # v4.3+
Signed-off-by: Paolo Valente <paolo.valente@linaro.org>
Reviewed-by: Nikolay Borisov <kernel@kyup.com>
Reviewed-by: Jeff Moyer <jmoyer@redhat.com>
Acked-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Jens Axboe <axboe@fb.com>
block/bio.c
fs/btrfs/extent_io.c
include/linux/bio.h