Re: block: properly handle flush/fua requests inblk_insert_cloned_request

From: Tejun Heo
Date: Tue Aug 09 2011 - 13:55:42 EST


On Tue, Aug 09, 2011 at 01:52:37PM -0400, Vivek Goyal wrote:
> > + /*
> > + * All FLUSH/FUA requests are expected to have gone through the
> > + * flush machinary. If a request's cmd_flags doesn't match the
> > + * flush_flags of the underlying request_queue it is a bug.
> > + */
> > + BUG_ON((rq->cmd_flags & REQ_FLUSH) && !(q->flush_flags & REQ_FLUSH));
> > + BUG_ON((rq->cmd_flags & REQ_FUA) && !(q->flush_flags & REQ_FUA));
> > +
>
> Actually this makes sense and is simple. :-) Is BUG_ON() too harsh, how
> about WARN_ONCE() variants? To me system continues to work so warning
> is probably good enough.

I don't really think this is the right thing to do. It makes the
cloning a special case. It looks easy now but puts it in its own
special box which usually ends up ugly in the long run. Let's get the
thing fixed and let it play like others do. There's nothing
fundamentally broken with the usual mechanism.

Thanks.

--
tejun
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/