|
@@ -361,6 +361,18 @@ static int attempt_merge(struct request_queue *q, struct request *req,
|
|
if (!rq_mergeable(req) || !rq_mergeable(next))
|
|
if (!rq_mergeable(req) || !rq_mergeable(next))
|
|
return 0;
|
|
return 0;
|
|
|
|
|
|
|
|
+ /*
|
|
|
|
+ * Don't merge file system requests and discard requests
|
|
|
|
+ */
|
|
|
|
+ if ((req->cmd_flags & REQ_DISCARD) != (next->cmd_flags & REQ_DISCARD))
|
|
|
|
+ return 0;
|
|
|
|
+
|
|
|
|
+ /*
|
|
|
|
+ * Don't merge discard requests and secure discard requests
|
|
|
|
+ */
|
|
|
|
+ if ((req->cmd_flags & REQ_SECURE) != (next->cmd_flags & REQ_SECURE))
|
|
|
|
+ return 0;
|
|
|
|
+
|
|
/*
|
|
/*
|
|
* not contiguous
|
|
* not contiguous
|
|
*/
|
|
*/
|