Re: Block regression since 3.1-rc3

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2011/10/9 Shaohua Li <shli@xxxxxxxxxx>:
> 2011/10/9 Mike Snitzer <snitzer@xxxxxxxxxx>:
>> On Sat, Oct 08 2011 at  7:02am -0400,
>> Shaohua Li <shli@xxxxxxxxxx> wrote:
>>
>>> Looks the dm request based flush logic is broken.
>>>
>>> saved_make_request_fn
>>>   __make_request
>>>     blk_insert_flush
>>> but blk_insert_flush doesn't put the original request to list, instead, the
>>> q->flush_rq is in list.
>>> then
>>> dm_request_fn
>>>   blk_peek_request
>>>     dm_prep_fn
>>>       clone_rq
>>>   map_request
>>>     blk_insert_cloned_request
>>> so q->flush_rq is cloned, and get dispatched. but we can't clone q->flush_rq
>>> and use it to do flush. map_request even could assign a different blockdev to
>>> the cloned request.
>>
>> You haven't explained why cloning q->flush_rq is broken.  What is the
>> problem with map_request changing the blockdev?  For the purposes of
>> request-based DM the flush machinery has already managed the processing
>> of the flush at the higher level request_queue.
> hmm, looks I overlook the issue. cloned flush_rq has some problems but can
> be fixed.
> 1. it doesn't set requet->bio, request->bio_tail
> 2. REQ_CLONE_MASK should set REQ_FLUSH_SEQ
oh, don't need set REQ_FLUSH_SEQ, the low level queue will set it
anyway. sorry for
the noise. Jeff's patch looks ok then.

--
dm-devel mailing list
dm-devel@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/dm-devel



[Index of Archives]     [DM Crypt]     [Fedora Desktop]     [ATA RAID]     [Fedora Marketing]     [Fedora Packaging]     [Fedora SELinux]     [Yosemite Discussion]     [KDE Users]     [Fedora Docs]

  Powered by Linux