- There don't have to be a lock file. - Be more userfriendly and allow to specify gbde device name in those forms: device device.bde /dev/device /dev/device.bde - Fix stop routine: + There don't have to be file system mounted on gbde device, so ignore errors from umount(8). + Only detach existing gbde devices. Index: gbde =================================================================== RCS file: /private/FreeBSD/src/etc/rc.d/gbde,v retrieving revision 1.5.2.1 diff -u -p -r1.5.2.1 gbde --- gbde 10 Oct 2004 09:50:53 -0000 1.5.2.1 +++ gbde 14 Oct 2004 19:58:10 -0000 @@ -79,22 +79,25 @@ find_gbde_devices() gbde_start() { for device in $gbde_devices; do - parentdev=${device%.bde} - parent=${parentdev#/dev/} + parent=${device%.bde} + parent=${parent#/dev/} eval "lock=\${gbde_lock_${parent}-\"${gbde_lockdir}/${parent}.lock\"}" - if [ -e "${lock}" -a ! -e "${device}" ]; then - echo "Configuring Disk Encryption for ${device}." + if [ -e "/dev/${parent}" -a ! -e "/dev/${parent}.bde" ]; then + echo "Configuring Disk Encryption for ${parent}." count=1 while [ ${count} -le ${gbde_attach_attempts} ]; do - gbde attach ${parentdev} -l ${lock} - if [ -e ${device} ]; then + if [ -e "${lock}" ]; then + gbde attach ${parent} -l ${lock} + else + gbde attach ${parent} + fi + if [ -e "/dev/${parent}.bde" ]; then break fi echo "Attach failed; attempt ${count} of ${gbde_attach_attempts}." count=$((${count} + 1)) done - fi done } @@ -102,8 +105,12 @@ gbde_start() gbde_stop() { for device in $gbde_devices; do - umount ${device} - gbde detach ${device%.bde} + parent=${device%.bde} + parent=${parent#/dev/} + if [ -e "/dev/${parent}.bde" ]; then + umount "/dev/${parent}.bde" 2>/dev/null + gbde detach "${parent}" + fi done }