The comment for op_is_sync() says "Reads are always treated as
synchronous", but it only checks for REQ_OP_READ.

Use op_is_write() to detect read ops and treat them as synchronous.

Fixes: aebf526b53ae ("block: fold cmd_type into the REQ_OP_ space")
Signed-off-by: Jeffy Chen <jeffy.c...@rock-chips.com>
---

Changes in v2:
Rewrite commit message.

 include/linux/blk_types.h | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/include/linux/blk_types.h b/include/linux/blk_types.h
index 3385c89f402e..b6a71c2eec36 100644
--- a/include/linux/blk_types.h
+++ b/include/linux/blk_types.h
@@ -288,8 +288,7 @@ static inline bool op_is_flush(unsigned int op)
  */
 static inline bool op_is_sync(unsigned int op)
 {
-       return (op & REQ_OP_MASK) == REQ_OP_READ ||
-               (op & (REQ_SYNC | REQ_FUA | REQ_PREFLUSH));
+       return !op_is_write(op) || (op & (REQ_SYNC | REQ_FUA | REQ_PREFLUSH));
 }
 
 typedef unsigned int blk_qc_t;
-- 
2.11.0


Reply via email to