mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-03-02 02:55:23 +07:00
blk-throttle: Introduce a helper function to fill in device details
A helper function for the code which is used at 2-3 places. Makes reading code little easier. Signed-off-by: Vivek Goyal <vgoyal@redhat.com> Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
This commit is contained in:
parent
29b125892f
commit
269f541555
@ -188,16 +188,34 @@ throtl_add_group_to_td_list(struct throtl_data *td, struct throtl_grp *tg)
|
|||||||
td->nr_undestroyed_grps++;
|
td->nr_undestroyed_grps++;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void throtl_init_add_tg_lists(struct throtl_data *td,
|
static void
|
||||||
struct throtl_grp *tg, struct blkio_cgroup *blkcg)
|
__throtl_tg_fill_dev_details(struct throtl_data *td, struct throtl_grp *tg)
|
||||||
{
|
{
|
||||||
struct backing_dev_info *bdi = &td->queue->backing_dev_info;
|
struct backing_dev_info *bdi = &td->queue->backing_dev_info;
|
||||||
unsigned int major, minor;
|
unsigned int major, minor;
|
||||||
|
|
||||||
|
if (!tg || tg->blkg.dev)
|
||||||
|
return;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Fill in device details for a group which might not have been
|
||||||
|
* filled at group creation time as queue was being instantiated
|
||||||
|
* and driver had not attached a device yet
|
||||||
|
*/
|
||||||
|
if (bdi->dev && dev_name(bdi->dev)) {
|
||||||
|
sscanf(dev_name(bdi->dev), "%u:%u", &major, &minor);
|
||||||
|
tg->blkg.dev = MKDEV(major, minor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void throtl_init_add_tg_lists(struct throtl_data *td,
|
||||||
|
struct throtl_grp *tg, struct blkio_cgroup *blkcg)
|
||||||
|
{
|
||||||
|
__throtl_tg_fill_dev_details(td, tg);
|
||||||
|
|
||||||
/* Add group onto cgroup list */
|
/* Add group onto cgroup list */
|
||||||
sscanf(dev_name(bdi->dev), "%u:%u", &major, &minor);
|
|
||||||
blkiocg_add_blkio_group(blkcg, &tg->blkg, (void *)td,
|
blkiocg_add_blkio_group(blkcg, &tg->blkg, (void *)td,
|
||||||
MKDEV(major, minor), BLKIO_POLICY_THROTL);
|
tg->blkg.dev, BLKIO_POLICY_THROTL);
|
||||||
|
|
||||||
tg->bps[READ] = blkcg_get_read_bps(blkcg, tg->blkg.dev);
|
tg->bps[READ] = blkcg_get_read_bps(blkcg, tg->blkg.dev);
|
||||||
tg->bps[WRITE] = blkcg_get_write_bps(blkcg, tg->blkg.dev);
|
tg->bps[WRITE] = blkcg_get_write_bps(blkcg, tg->blkg.dev);
|
||||||
@ -225,8 +243,6 @@ throtl_grp *throtl_find_tg(struct throtl_data *td, struct blkio_cgroup *blkcg)
|
|||||||
{
|
{
|
||||||
struct throtl_grp *tg = NULL;
|
struct throtl_grp *tg = NULL;
|
||||||
void *key = td;
|
void *key = td;
|
||||||
struct backing_dev_info *bdi = &td->queue->backing_dev_info;
|
|
||||||
unsigned int major, minor;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This is the common case when there are no blkio cgroups.
|
* This is the common case when there are no blkio cgroups.
|
||||||
@ -237,12 +253,7 @@ throtl_grp *throtl_find_tg(struct throtl_data *td, struct blkio_cgroup *blkcg)
|
|||||||
else
|
else
|
||||||
tg = tg_of_blkg(blkiocg_lookup_group(blkcg, key));
|
tg = tg_of_blkg(blkiocg_lookup_group(blkcg, key));
|
||||||
|
|
||||||
/* Fill in device details for root group */
|
__throtl_tg_fill_dev_details(td, tg);
|
||||||
if (tg && !tg->blkg.dev && bdi->dev && dev_name(bdi->dev)) {
|
|
||||||
sscanf(dev_name(bdi->dev), "%u:%u", &major, &minor);
|
|
||||||
tg->blkg.dev = MKDEV(major, minor);
|
|
||||||
}
|
|
||||||
|
|
||||||
return tg;
|
return tg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user