mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 14:11:52 +00:00
blkcg: add sanity check for blkcg policy operations
blkcg policy should keep cpd/pd's alloc_fn and free_fn in pairs, otherwise policy would register fail. Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de> Signed-off-by: weiping zhang <zhangweiping@didichuxing.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
88022d7201
commit
e840107322
@ -1419,6 +1419,11 @@ int blkcg_policy_register(struct blkcg_policy *pol)
|
||||
if (i >= BLKCG_MAX_POLS)
|
||||
goto err_unlock;
|
||||
|
||||
/* Make sure cpd/pd_alloc_fn and cpd/pd_free_fn in pairs */
|
||||
if ((!pol->cpd_alloc_fn ^ !pol->cpd_free_fn) ||
|
||||
(!pol->pd_alloc_fn ^ !pol->pd_free_fn))
|
||||
goto err_unlock;
|
||||
|
||||
/* register @pol */
|
||||
pol->plid = i;
|
||||
blkcg_policy[pol->plid] = pol;
|
||||
|
Loading…
Reference in New Issue
Block a user