On Sat, Mar 8, 2014 at 10:52 AM, Christoph Hellwig <hch@xxxxxxxxxxxxx> wrote:Hey, calm down.
On Fri, Mar 07, 2014 at 03:45:09PM -0500, Jeff Moyer wrote:
Hi, Christoph,
Did you mean to switch from list_add to list_add_tail? That seems like
a change that warrants mention.
No, that wasn't intentional and should be fixed. Btw, there was another
issue with that commit, in that dm-multipath also needs to allocate
->flush_rq. I saw a patch from Hannes fixing it in the SuSE tree, and
would really love to see him submit that for mainline as well.
Ugh, rq-based DM calls blk_init_allocated_queue.. (ah, looks like best
to move q->flush_rq allocation from blk_init_queue_node to
blk_alloc_queue_node?). Anyway, this all makes sense given the
crashes we've been dealing with.. we couldn't immediately understand
how the q->flush_rq would be NULL... grr. I guess I should've checked
with you sooner. I reverted commit 1874198 "blk-mq: rework flush
sequencing logic" from RHEL7 just yesterday because we were seeing
crashes on flush with dm-mpath. But can easily re-apply for RHEL7.1
(since the request_queue's embedded flush_rq takes up so much space we
get ample kABI padding).
Not overly proud of the revert, but I deemed easier to revert than
hunt down the fix given RHEL7 won't actually be providing any blk-mq
enabled drivers. That'll change for RHEL7.1.
Unfortunately SuSE seems to have lots of block and dm fixes and even
features that they don't submit upstream.
Yeah, it is certainly disturbing. No excuse for sitting on fixes like this.
Hannes, _please_ get this dm-mpath flush_rq fix for 3.14 posted ASAP.
Jens or I will need to get it to Linus next week.