Add a helper to find the REQ_OP_XYZ constant from the "XYZ" string. This will be used for the error injection debugfs interface.
Signed-off-by: Christoph Hellwig <[email protected]> --- block/blk-core.c | 13 +++++++++++++ block/blk.h | 1 + 2 files changed, 14 insertions(+) diff --git a/block/blk-core.c b/block/blk-core.c index 19a4d0672b3d..8bbc03ce924f 100644 --- a/block/blk-core.c +++ b/block/blk-core.c @@ -132,6 +132,19 @@ inline const char *blk_op_str(enum req_op op) } EXPORT_SYMBOL_GPL(blk_op_str); +enum req_op str_to_blk_op(const char *op) +{ + int i; + + for (i = 0; i < ARRAY_SIZE(blk_op_name); i++) { + if (blk_op_name[i] && + !strcmp(blk_op_name[i], op)) + return i; + } + + return REQ_OP_LAST; +} + #define ENT(_tag, _errno, _desc) \ [BLK_STS_##_tag] = { \ .errno = _errno, \ diff --git a/block/blk.h b/block/blk.h index 1e80338af858..4857b899e2b6 100644 --- a/block/blk.h +++ b/block/blk.h @@ -52,6 +52,7 @@ void blk_free_flush_queue(struct blk_flush_queue *q); const char *blk_status_to_str(blk_status_t status); const char *blk_status_to_tag(blk_status_t status); blk_status_t tag_to_blk_status(const char *tag); +enum req_op str_to_blk_op(const char *op); bool __blk_mq_unfreeze_queue(struct request_queue *q, bool force_atomic); bool blk_queue_start_drain(struct request_queue *q); -- 2.53.0
