[dm-devel] [PATCH 2/6] dm: introduce dm_accept_partial_bio

Mike Snitzer snitzer at redhat.com
Tue Mar 18 00:49:52 UTC 2014


On Mon, Mar 17 2014 at  6:45pm -0400,
Mikulas Patocka <mpatocka at redhat.com> wrote:

> 
> 
> On Mon, 17 Mar 2014, Mike Snitzer wrote:
> 
> > > > I do however want you to add yet another BUG_ON for any bio that isn't
> > > > meant to be sent to this interface (only one so far is REQ_FLUSH AFAIK).
> > > 
> > > Then, it triggers NULL pointer dereference. You don't have to add BUG_ON 
> > > for it, it crashes anyway.
> > 
> > I understand it'll NULL pointer, but that is _always_ confusing for
> > someone who wasn't the original developer.  Please add the explicit
> > BUG_ON() for REQ_FLUSH.
> 
> The user will not hit a BUG with REQ_FLUSH. Regarding the developer - it 
> is expected that the kernel developer is able to decode the oops message, 
> compare it with disassembled code and find out which variable was NULL. 
> The function is small, so it's an easy task.

By that logic then no BUG_ON() should ever be needed.  You need to know
to quit while you're ahead ;)

> We don't really need
> BUG_ON(!pointer);
> variable = *pointer;

Right, we don't.. but it helps resolve issues quicker if thoughtful
BUG_ON()s hit before more obscure crashes do.  Whereby obviating the
need to reverse engineer _why_ the NULL pointer occurred.




More information about the dm-devel mailing list