[dm-devel] [RFC, PATCH] remove signal handling from dm-io.c, sync_io()

Dave Olien dmo at osdl.org
Mon Jun 14 04:21:13 UTC 2004


I like this solution.  It makes a lot of sense in every regard.

On Sun, Jun 13, 2004 at 08:23:50AM -0500, Kevin Corry wrote:
> 
> In my opinion, we should simply prevent the case of deleting a suspended 
> device, with the following patch.
> 
> --- diff/drivers/md/dm-ioctl.c	2004-06-13 08:14:46.000000000 -0500
> +++ source/drivers/md/dm-ioctl.c	2004-06-13 08:14:43.000000000 -0500
> @@ -632,6 +632,12 @@
>  		return -ENXIO;
>  	}
>  
> +	if (dm_suspended(md)) {
> +		DMWARN("cannot remove suspended device.");
> +		up_write(&_hash_lock);
> +		return -EINVAL;
> +	}
> +
>  	__hash_remove(hc);
>  	up_write(&_hash_lock);
>  	param->data_size = 0;
> 
> This means you can ensure you'll always have a reference to the device to 
> unsuspend it and make sure all the pending I/Os will complete. If we want to 
> reject all pending I/O, there's no need for a new ioctl. You can simply load 
> an error mapping for the device before it's resumed.
> 
> If we take this approach, we should be able to remove the signal handling from 
> sync_io(), and simply use a wait_event() for that loop.
> 
> -- 
> Kevin Corry
> kevcorry at us.ibm.com
> http://evms.sourceforge.net



More information about the dm-devel mailing list