Messages in this thread |  | | | Date | Sun, 26 Sep 2010 23:30:31 -0400 | | From | Kyle McMartin <> | | Subject | Re: [PATCH] block: prevent merges of discard and write requests |
| |
On Sat, Sep 25, 2010 at 12:40:48PM +0200, Jens Axboe wrote: > On 2010-09-25 12:36, Adrian Hunter wrote: > > Add logic to prevent two I/O requests being merged if > > only one of them is a discard. Ditto secure discard. > > > > Without this fix, it is possible for write requests > > to transform into discard requests. For example: > > > > Submit bio 1 to discard 8 sectors from sector n > > Submit bio 2 to write 8 sectors from sector n + 16 > > Submit bio 3 to write 8 sectors from sector n + 8 > > > > Bio 1 becomes request 1. Bio 2 becomes request 2. > > Bio 3 is merged with request 2, and then subsequently > > request 2 is merged with request 1 resulting in just > > one I/O request which discards all 24 sectors. > > Wow, that's a disaster. We can now have requests in the > same direction and of the same type (fs), but not mergeable. > > I would move the check up above the position calculations. > I will apply this and upstream it right away. Thanks a lot! >
Jens, is this (the REQ_DISCARD hunk) required for stable as well? It appears there's not much change relating to merging requests between HEAD and v2.6.35, so I assume it is?
--Kyle
|  |