block: Extend cmd_flags in struct request
Subsystems (3)
PATCH v7 2/4 block: Extend cmd_flags in struct request
At the moment no new request flags can be added to enum rq_flag_bits due to cmd_flags field size limitation. This commit adds a new filed to be used as an extensions to cmd_flags.
Signed-off-by Tanya Brokhman <[email protected]>
block/blk-core.c +2 -0
@@ -3226,6 +3226,8 @@ int __init blk_dev_init(void) {BUILD_BUG_ON (__REQ_NR_BITS >8 *sizeof (((struct request *)0 )->cmd_flags)); +BUILD_BUG_ON (__REQ_EXT_NR_BITS >8 * +sizeof (((struct request *)0 )->cmd_flags_ext));/* used for unplugging and affects IO latency/throughput - HIGHPRI */ kblockd_workqueue = alloc_workqueue("kblockd",
include/linux/blk_types.h +5 -0
@@ -181,6 +181,11 @@ enum rq_flag_bits { __REQ_NR_BITS, /* stops here */ }; +/* Request flags. For use in the cmd_flags_ext field of struct request */ +enum ext_rq_flag_bits { + __REQ_EXT_NR_BITS,/* stops here */ +}; +#define REQ_WRITE (1 << __REQ_WRITE)#define REQ_FAILFAST_DEV (1 << __REQ_FAILFAST_DEV)#define REQ_FAILFAST_TRANSPORT (1 << __REQ_FAILFAST_TRANSPORT)
include/linux/blkdev.h +1 -0
@@ -100,6 +100,7 @@ struct request {struct request_queue *q;unsigned int cmd_flags; +unsigned int cmd_flags_ext;enum rq_cmd_type_bits cmd_type;unsigned long atomic_flags;
Signature · 5 lines
1.7.6 -- QUALCOMM ISRAEL, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation