[dm-devel] Re: [PATCH] Fix Null pointer Exception

Andrew Morton akpm at linux-foundation.org
Tue Sep 9 00:21:53 UTC 2008


On Mon, 08 Sep 2008 17:40:59 +0200
Stefan Raspl <raspl at linux.vnet.ibm.com> wrote:

> Here's a trivial patch for the kernel panics that we reported last week
> when testing various ways to forcefully disconnect or temporarily disable
> DASD disks from an IBM System z machine. We ran into NULL pointer exceptions
> at the respective places.
> 

Please look at the above text and consider how it will look to people
who read it in the git repository in 2011.

And consider how it looks today, to people who don't know anything
about "the kernel panics that we reported last week".

> 
> Signed-off-by: Stefan Raspl <raspl at linux.vnet.ibm.com>
> 
> 
> ---
>  drivers/md/dm-table.c |    6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> --- a/drivers/md/dm-table.c
> +++ b/drivers/md/dm-table.c
> @@ -943,7 +943,8 @@ int dm_table_any_congested(struct dm_tab
>  
>  	list_for_each_entry(dd, devices, list) {
>  		struct request_queue *q = bdev_get_queue(dd->bdev);
> -		r |= bdi_congested(&q->backing_dev_info, bdi_bits);
> +		if (q)
> +			r |= bdi_congested(&q->backing_dev_info, bdi_bits);
>  	}
>  
>  	return r;
> @@ -957,7 +958,8 @@ void dm_table_unplug_all(struct dm_table
>  	list_for_each_entry(dd, devices, list) {
>  		struct request_queue *q = bdev_get_queue(dd->bdev);
>  
> -		blk_unplug(q);
> +		if (q)
> +			blk_unplug(q);
>  	}
>  }
>  

And it's not just a trivial matter of getting the paperwork right. 
This could be the wrong fix - how did these null pointers come about? 
What was the workload?  It seems strange to have a blockdev which has
no queue associated with it.

It takes no more than five minutes to fully describe a patch of this
kind.  Please expend that time.




More information about the dm-devel mailing list