Skip to contentSkip to conversation

block: Extend cmd_flags in struct request

PATCH Superseded Tanya Brokhman 1 participant 1 message Jun 6, 2013

Subsystems (3)

v7 of 9 Superseded Latest is v9 →

lore
Share & tools
lore
#0 lore raw

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.

block/blk-core.c +2 -0
index fe3683c..3a14987 100644
@@ -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
index fa1abeb..40a921f 100644
@@ -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
index 968720f..aa36278 100644
@@ -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