On 6/13/19 7:16 AM, Chaitanya Kulkarni wrote:
+#define REQ_OP_NAME(name) [REQ_OP_##name] = #name
+static const char *const op_name[] = {
+       REQ_OP_NAME(READ),
+       REQ_OP_NAME(WRITE),
+       REQ_OP_NAME(FLUSH),
+       REQ_OP_NAME(DISCARD),
+       REQ_OP_NAME(SECURE_ERASE),
+       REQ_OP_NAME(ZONE_RESET),
+       REQ_OP_NAME(WRITE_SAME),
+       REQ_OP_NAME(WRITE_ZEROES),
+       REQ_OP_NAME(SCSI_IN),
+       REQ_OP_NAME(SCSI_OUT),
+       REQ_OP_NAME(DRV_IN),
+       REQ_OP_NAME(DRV_OUT),
+};
+
+static inline const char *op_str(int op)
+{
+       const char *op_str = "REQ_OP_UNKNOWN";
+
+       if (op < ARRAY_SIZE(op_name) && op_name[op])
+               op_str = op_name[op];
+
+       return op_str;
+}

If this patch gets applied there will be three copies in the upstream code that convert a REQ_OP_* constant into a string: one in blk-core.c, one in blk-mq-debugfs.c and one in include/trace/events/f2fs.h. Is it possible to avoid that duplication and have only one function that does the number-to-string conversion?

Bart.

Reply via email to