Skip to content
  • Natanael Copa's avatar
    nlplug-findfs: fix cryptsetup race condition · e4af128b
    Natanael Copa authored
    We need run cryptsetup in parallel so that keyboard drivers are loaded
    while waiting for password input.
    
    But cryptsetup will recreate the device which means that the uevent for
    new device node will first be added then changed and finally will it
    create the /dev/mapper/* device node. We handle the first generated
    uevent and while handling, the device node might have disappeared
    causeing blkid not find any UUID, and the /dev/mapper/* does not yet
    exist.
    
    This means that we need to:
    - handle uevents in parallel while waiting for password input
    - block uevent handling while actually setting up the crypt device
    
    So we use libcryptsetup and add a mutex while setting up the crypt
    device.
    e4af128b