Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4aae4f63 authored by Dolev Raviv's avatar Dolev Raviv Committed by Matt Wagantall
Browse files

block: Definition for barrier requests flag



A barrier request is a type of flush request used to control ordering of
write requests without clearing the device's cache. LLD support for
barrier is optional. To maintain backward compatibility, barrier request
has to maintain flush s/w path and flags.
This patch introduces those flags to define interface between the block
layer and the LLD.

Change-Id: Iefa8e9a5c1b5e8256eaeb0322c435becd4669de9
Signed-off-by: default avatarDolev Raviv <draviv@codeaurora.org>
[imaund@codeaurora.org: Resolved context conflicts]
Signed-off-by: default avatarIan Maund <imaund@codeaurora.org>
parent 532db2ae
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -171,6 +171,7 @@ enum rq_flag_bits {
	__REQ_INTEGRITY,	/* I/O includes block integrity payload */
	__REQ_FUA,		/* forced unit access */
	__REQ_FLUSH,		/* request for cache flush */
	__REQ_BARRIER,		/* marks flush req as barrier */

	/* bio only flags */
	__REQ_RAHEAD,		/* read ahead, can fail anytime */
@@ -218,7 +219,7 @@ enum rq_flag_bits {
#define REQ_COMMON_MASK \
	(REQ_WRITE | REQ_FAILFAST_MASK | REQ_SYNC | REQ_META | REQ_PRIO | \
	 REQ_DISCARD | REQ_WRITE_SAME | REQ_NOIDLE | REQ_FLUSH | REQ_FUA | \
	 REQ_SECURE | REQ_INTEGRITY)
	 REQ_SECURE | REQ_INTEGRITY | REQ_BARRIER)
#define REQ_CLONE_MASK		REQ_COMMON_MASK

#define BIO_NO_ADVANCE_ITER_MASK	(REQ_DISCARD|REQ_WRITE_SAME)
@@ -233,6 +234,7 @@ enum rq_flag_bits {
#define REQ_SORTED		(1ULL << __REQ_SORTED)
#define REQ_SOFTBARRIER		(1ULL << __REQ_SOFTBARRIER)
#define REQ_FUA			(1ULL << __REQ_FUA)
#define REQ_BARRIER		(1ULL << __REQ_BARRIER)
#define REQ_NOMERGE		(1ULL << __REQ_NOMERGE)
#define REQ_STARTED		(1ULL << __REQ_STARTED)
#define REQ_DONTPREP		(1ULL << __REQ_DONTPREP)