Lines Matching full:rqos
26 void __rq_qos_cleanup(struct rq_qos *rqos, struct bio *bio) in __rq_qos_cleanup() argument
29 if (rqos->ops->cleanup) in __rq_qos_cleanup()
30 rqos->ops->cleanup(rqos, bio); in __rq_qos_cleanup()
31 rqos = rqos->next; in __rq_qos_cleanup()
32 } while (rqos); in __rq_qos_cleanup()
35 void __rq_qos_done(struct rq_qos *rqos, struct request *rq) in __rq_qos_done() argument
38 if (rqos->ops->done) in __rq_qos_done()
39 rqos->ops->done(rqos, rq); in __rq_qos_done()
40 rqos = rqos->next; in __rq_qos_done()
41 } while (rqos); in __rq_qos_done()
44 void __rq_qos_issue(struct rq_qos *rqos, struct request *rq) in __rq_qos_issue() argument
47 if (rqos->ops->issue) in __rq_qos_issue()
48 rqos->ops->issue(rqos, rq); in __rq_qos_issue()
49 rqos = rqos->next; in __rq_qos_issue()
50 } while (rqos); in __rq_qos_issue()
53 void __rq_qos_requeue(struct rq_qos *rqos, struct request *rq) in __rq_qos_requeue() argument
56 if (rqos->ops->requeue) in __rq_qos_requeue()
57 rqos->ops->requeue(rqos, rq); in __rq_qos_requeue()
58 rqos = rqos->next; in __rq_qos_requeue()
59 } while (rqos); in __rq_qos_requeue()
62 void __rq_qos_throttle(struct rq_qos *rqos, struct bio *bio) in __rq_qos_throttle() argument
65 if (rqos->ops->throttle) in __rq_qos_throttle()
66 rqos->ops->throttle(rqos, bio); in __rq_qos_throttle()
67 rqos = rqos->next; in __rq_qos_throttle()
68 } while (rqos); in __rq_qos_throttle()
71 void __rq_qos_track(struct rq_qos *rqos, struct request *rq, struct bio *bio) in __rq_qos_track() argument
74 if (rqos->ops->track) in __rq_qos_track()
75 rqos->ops->track(rqos, rq, bio); in __rq_qos_track()
76 rqos = rqos->next; in __rq_qos_track()
77 } while (rqos); in __rq_qos_track()
80 void __rq_qos_merge(struct rq_qos *rqos, struct request *rq, struct bio *bio) in __rq_qos_merge() argument
83 if (rqos->ops->merge) in __rq_qos_merge()
84 rqos->ops->merge(rqos, rq, bio); in __rq_qos_merge()
85 rqos = rqos->next; in __rq_qos_merge()
86 } while (rqos); in __rq_qos_merge()
89 void __rq_qos_done_bio(struct rq_qos *rqos, struct bio *bio) in __rq_qos_done_bio() argument
92 if (rqos->ops->done_bio) in __rq_qos_done_bio()
93 rqos->ops->done_bio(rqos, bio); in __rq_qos_done_bio()
94 rqos = rqos->next; in __rq_qos_done_bio()
95 } while (rqos); in __rq_qos_done_bio()
98 void __rq_qos_queue_depth_changed(struct rq_qos *rqos) in __rq_qos_queue_depth_changed() argument
101 if (rqos->ops->queue_depth_changed) in __rq_qos_queue_depth_changed()
102 rqos->ops->queue_depth_changed(rqos); in __rq_qos_queue_depth_changed()
103 rqos = rqos->next; in __rq_qos_queue_depth_changed()
104 } while (rqos); in __rq_qos_queue_depth_changed()
291 struct rq_qos *rqos = q->rq_qos; in rq_qos_exit() local
292 q->rq_qos = rqos->next; in rq_qos_exit()
293 rqos->ops->exit(rqos); in rq_qos_exit()
298 int rq_qos_add(struct rq_qos *rqos, struct gendisk *disk, enum rq_qos_id id, in rq_qos_add() argument
305 rqos->disk = disk; in rq_qos_add()
306 rqos->id = id; in rq_qos_add()
307 rqos->ops = ops; in rq_qos_add()
310 * No IO can be in-flight when adding rqos, so freeze queue, which in rq_qos_add()
315 if (rq_qos_id(q, rqos->id)) in rq_qos_add()
317 rqos->next = q->rq_qos; in rq_qos_add()
318 q->rq_qos = rqos; in rq_qos_add()
322 if (rqos->ops->debugfs_attrs) { in rq_qos_add()
324 blk_mq_debugfs_register_rqos(rqos); in rq_qos_add()
334 void rq_qos_del(struct rq_qos *rqos) in rq_qos_del() argument
336 struct request_queue *q = rqos->disk->queue; in rq_qos_del()
343 if (*cur == rqos) { in rq_qos_del()
344 *cur = rqos->next; in rq_qos_del()
351 blk_mq_debugfs_unregister_rqos(rqos); in rq_qos_del()