Re: Question about "An example of using LUKS device through libcryptsetup API"

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxx> 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@xxxxxxxx
http://www.saout.de/mailman/listinfo/dm-crypt



_______________________________________________
dm-crypt mailing list
dm-crypt@xxxxxxxx
http://www.saout.de/mailman/listinfo/dm-crypt

[Index of Archives]     [Device Mapper Devel]     [Fedora Desktop]     [ATA RAID]     [Fedora Marketing]     [Fedora Packaging]     [Fedora SELinux]     [Yosemite News]     [KDE Users]     [Fedora Tools]     [Fedora Docs]

  Powered by Linux