diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-09-25 09:51:54 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-09-25 09:51:54 -0700 |
commit | 56162badadb91aae93843d8d6558c7d7780e3cb2 (patch) | |
tree | 6ec96e5b1e41672b45cacf9080d5f3f0db97118a | |
parent | e7553b19da07fffbefe83119f25738e2cc90c426 (diff) | |
parent | f281fb5fe54e15a7ab802945e42f8e24fceb56b2 (diff) |
Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block
* 'for-linus' of git://git.kernel.dk/linux-2.6-block:
block: prevent merges of discard and write requests
-rw-r--r-- | block/blk-merge.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/block/blk-merge.c b/block/blk-merge.c index 3b0cd4249671..eafc94f68d79 100644 --- a/block/blk-merge.c +++ b/block/blk-merge.c @@ -362,6 +362,18 @@ static int attempt_merge(struct request_queue *q, struct request *req, 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 */ if (blk_rq_pos(req) + blk_rq_sectors(req) != blk_rq_pos(next)) |