Commit d7002d66 authored by Joe Thornber's avatar Joe Thornber Committed by Trond Myklebust

[PATCH] dm: Don't let the ioctl interface drop a suspended device

Don't let the ioctl interface drop a suspended device.
parent a10edc31
...@@ -812,6 +812,24 @@ static int remove(struct dm_ioctl *param, struct dm_ioctl *user) ...@@ -812,6 +812,24 @@ static int remove(struct dm_ioctl *param, struct dm_ioctl *user)
return -EINVAL; return -EINVAL;
} }
/*
* You may ask the interface to drop its reference to an
* in use device. This is no different to unlinking a
* file that someone still has open. The device will not
* actually be destroyed until the last opener closes it.
* The name and uuid of the device (both are interface
* properties) will be available for reuse immediately.
*
* You don't want to drop a _suspended_ device from the
* interface, since that will leave you with no way of
* resuming it.
*/
if (dm_suspended(hc->md)) {
DMWARN("refusing to remove a suspended device.");
up_write(&_hash_lock);
return -EPERM;
}
__hash_remove(hc); __hash_remove(hc);
up_write(&_hash_lock); up_write(&_hash_lock);
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment