blk-cgroup: move blkcg_{get,set}_fc_appid out of line
No need to have these helpers inline. Also remove the stubs and just use an IS_ENABLED for the get side (the set side already is only built conditionlly). Signed-off-by: Christoph Hellwig <hch@lst.de> Acked-by: Tejun Heo <tj@kernel.org> Link: https://lore.kernel.org/r/20220420042723.1010598-5-hch@lst.de Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
c814153c83
commit
db05628435
4 changed files with 63 additions and 57 deletions
|
|
@ -218,61 +218,7 @@ static inline struct blkcg *bio_blkcg(struct bio *bio) { return NULL; }
|
|||
|
||||
#endif /* CONFIG_BLK_CGROUP */
|
||||
|
||||
#ifdef CONFIG_BLK_CGROUP_FC_APPID
|
||||
/*
|
||||
* Sets the fc_app_id field associted to blkcg
|
||||
* @app_id: application identifier
|
||||
* @cgrp_id: cgroup id
|
||||
* @app_id_len: size of application identifier
|
||||
*/
|
||||
static inline int blkcg_set_fc_appid(char *app_id, u64 cgrp_id, size_t app_id_len)
|
||||
{
|
||||
struct cgroup *cgrp;
|
||||
struct cgroup_subsys_state *css;
|
||||
struct blkcg *blkcg;
|
||||
int ret = 0;
|
||||
int blkcg_set_fc_appid(char *app_id, u64 cgrp_id, size_t app_id_len);
|
||||
char *blkcg_get_fc_appid(struct bio *bio);
|
||||
|
||||
if (app_id_len > FC_APPID_LEN)
|
||||
return -EINVAL;
|
||||
|
||||
cgrp = cgroup_get_from_id(cgrp_id);
|
||||
if (!cgrp)
|
||||
return -ENOENT;
|
||||
css = cgroup_get_e_css(cgrp, &io_cgrp_subsys);
|
||||
if (!css) {
|
||||
ret = -ENOENT;
|
||||
goto out_cgrp_put;
|
||||
}
|
||||
blkcg = css_to_blkcg(css);
|
||||
/*
|
||||
* There is a slight race condition on setting the appid.
|
||||
* Worst case an I/O may not find the right id.
|
||||
* This is no different from the I/O we let pass while obtaining
|
||||
* the vmid from the fabric.
|
||||
* Adding the overhead of a lock is not necessary.
|
||||
*/
|
||||
strlcpy(blkcg->fc_app_id, app_id, app_id_len);
|
||||
css_put(css);
|
||||
out_cgrp_put:
|
||||
cgroup_put(cgrp);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* blkcg_get_fc_appid - get the fc app identifier associated with a bio
|
||||
* @bio: target bio
|
||||
*
|
||||
* On success return the fc_app_id, on failure return NULL
|
||||
*/
|
||||
static inline char *blkcg_get_fc_appid(struct bio *bio)
|
||||
{
|
||||
if (bio && bio->bi_blkg &&
|
||||
(bio->bi_blkg->blkcg->fc_app_id[0] != '\0'))
|
||||
return bio->bi_blkg->blkcg->fc_app_id;
|
||||
return NULL;
|
||||
}
|
||||
#else
|
||||
static inline int blkcg_set_fc_appid(char *buf, u64 id, size_t len) { return -EINVAL; }
|
||||
static inline char *blkcg_get_fc_appid(struct bio *bio) { return NULL; }
|
||||
#endif /*CONFIG_BLK_CGROUP_FC_APPID*/
|
||||
#endif /* _BLK_CGROUP_H */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue