summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
f252188)
If underlying device disappears (failed drive, removed flash drive etc)
cryptsetup cannot report LUKS parameters (header no longer available).
Fix return code of init_by name in this situation (crypt
context is NULL).
Report visible error if deactivation fails and device is still busy.
Fixes issue#149.
free(cd->type);
cd->type = NULL;
r = 0;
free(cd->type);
cd->type = NULL;
r = 0;
+ } else {
+ log_dbg("LUKS device header not available.");
+ free(cd->type);
+ cd->type = NULL;
+ r = 0;
}
} else if (isTCRYPT(cd->type)) {
r = TCRYPT_init_by_name(cd, name, &dmd, &cd->device,
}
} else if (isTCRYPT(cd->type)) {
r = TCRYPT_init_by_name(cd, name, &dmd, &cd->device,
r = TCRYPT_deactivate(cd, name);
else
r = dm_remove_device(cd, name, 0, 0);
r = TCRYPT_deactivate(cd, name);
else
r = dm_remove_device(cd, name, 0, 0);
+ if (r < 0 && crypt_status(cd, name) == CRYPT_BUSY) {
+ log_err(cd, _("Device %s is still in use.\n"), name);
+ r = -EBUSY;
+ }
break;
case CRYPT_INACTIVE:
log_err(cd, _("Device %s is not active.\n"), name);
break;
case CRYPT_INACTIVE:
log_err(cd, _("Device %s is not active.\n"), name);