[dm-crypt] Question about "An example of using LUKS device through libcryptsetup API"

H McCurdy hmccurdy at yahoo.com
Sat Sep 26 21:13:16 CEST 2015


Thanks Milan,
What I'm trying to do is write my own program that is fairly automatic and smart.  If the device is busy, it may want to try again.
The information you provided helps me.  Thank you.
Hugh 


     On Saturday, September 26, 2015 2:12 AM, Milan Broz <gmazyland at gmail.com> wrote:
   

 On 09/26/2015 03:03 AM, H McCurdy wrote:
> Hi,
> 
> The program code is published at
> https://gitlab.com/cryptsetup/cryptsetup/wikis/API/index.html
> 
> Looking in 
> 
> static int handle_active_device(const char *device_name)
> 
> at
>        if (crypt_status(cd, device_name) == CRYPT_ACTIVE)
>                printf("Device %s is still active.\n", device_name);
>        else {
>                printf("Something failed perhaps, device %s is not active.\n", device_name);
>                crypt_free(cd);
>                return -1;
>        }
> 
>        /*
>          * crypt_deactivate() is used to deactivate device
>          */
>        r = crypt_deactivate(cd, device_name);
>        if (r < 0) {
>                printf("crypt_deactivate() failed.\n");
>                crypt_free(cd);
>                return r;
>        }
> 
> But if I look in /usr/include/libcryptsetup.h, I see
> 
> typedef enum {
>  CRYPT_INVALID, /**< device mapping is invalid in this context */
>  CRYPT_INACTIVE, /**< no such mapped device */
>  CRYPT_ACTIVE, /**< device is active */
>  CRYPT_BUSY /**< device is active and has open count > 0 */
> } crypt_status_info;
> 
> and
> 
> crypt_status_info crypt_status(struct crypt_device *cd, const char *name);
> 
> It appears to me that the code flow is good since we probably can't deactivate a busy container
> but it appears to me that the error is misleading in the event of CRYPT_BUSY because the message
> indicates the device isn't active.
> 
> Am I interpreting correctly?

Yes, that example should probably handle busy device differently.

Anyway, you will receive error message "Device ... is still in use." before the printf above.

Milan
_______________________________________________
dm-crypt mailing list
dm-crypt at saout.de
http://www.saout.de/mailman/listinfo/dm-crypt


  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.saout.de/pipermail/dm-crypt/attachments/20150926/0fefedcc/attachment.html>


More information about the dm-crypt mailing list