1 /* SPDX-License-Identifier: GPL-2.0 */
5 * Common Block IO controller cgroup interface
7 * Based on ideas and code from CFQ, CFS and BFQ:
8 * Copyright (C) 2003 Jens Axboe <axboe@kernel.dk>
10 * Copyright (C) 2008 Fabio Checconi <fabio@gandalf.sssup.it>
11 * Paolo Valente <paolo.valente@unimore.it>
13 * Copyright (C) 2009 Vivek Goyal <vgoyal@redhat.com>
14 * Nauman Rafique <nauman@google.com>
17 #include <linux/types.h>
20 struct cgroup_subsys_state
;
23 #define FC_APPID_LEN 129
25 #ifdef CONFIG_BLK_CGROUP
26 extern struct cgroup_subsys_state
* const blkcg_root_css
;
28 void blkcg_schedule_throttle(struct gendisk
*disk
, bool use_memdelay
);
29 void blkcg_maybe_throttle_current(void);
30 bool blk_cgroup_congested(void);
31 void blkcg_pin_online(struct cgroup_subsys_state
*blkcg_css
);
32 void blkcg_unpin_online(struct cgroup_subsys_state
*blkcg_css
);
33 struct list_head
*blkcg_get_cgwb_list(struct cgroup_subsys_state
*css
);
34 struct cgroup_subsys_state
*bio_blkcg_css(struct bio
*bio
);
36 #else /* CONFIG_BLK_CGROUP */
38 #define blkcg_root_css ((struct cgroup_subsys_state *)ERR_PTR(-EINVAL))
40 static inline void blkcg_maybe_throttle_current(void) { }
41 static inline bool blk_cgroup_congested(void) { return false; }
42 static inline struct cgroup_subsys_state
*bio_blkcg_css(struct bio
*bio
)
46 #endif /* CONFIG_BLK_CGROUP */
48 int blkcg_set_fc_appid(char *app_id
, u64 cgrp_id
, size_t app_id_len
);
49 char *blkcg_get_fc_appid(struct bio
*bio
);
51 #endif /* _BLK_CGROUP_H */