diff options
Diffstat (limited to 'scripts/live-helpers')
| -rw-r--r-- | scripts/live-helpers | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/scripts/live-helpers b/scripts/live-helpers index 06bd186..7f8649f 100644 --- a/scripts/live-helpers +++ b/scripts/live-helpers @@ -283,10 +283,13 @@ find_cow_device () { # Returns a device containing a partition labeled "${pers_label}" or containing a file named the same way # in the latter case the partition containing the file is left mounted - # if is not in black_listed_devices + # if is not in black_listed_devices. + # Additionally, if the white_listed_devices list is non-empty, the + # parent block device of the returned device must be part of this list. pers_label="${1}" cow_backing="/${pers_label}-backing" black_listed_devices="${2}" + white_listed_devices="${3}" if [ -z "${PERSISTENT_PATH}" ] then @@ -305,6 +308,15 @@ find_cow_device () break fi + if [ -n "${white_listed_devices}" ] + then + if echo "${white_listed_devices}" | grep -v -q -w "${fulldevname}" + then + # skip this device entirely + break + fi + fi + for dev in $(subdevices "${sysblock}") do devname=$(sys2dev "${dev}") @@ -383,11 +395,15 @@ find_cow_device () find_files () { # return the a string composed by device name, mountpoint an the first of ${filenames} found on a supported partition + # if is not in black_listed_devices. + # Additionally, if the white_listed_devices list is non-empty, the + # parent block device of the returned device must be part of this list. # FIXME: merge with above function filenames="${1}" snap_backing="/snap-backing" black_listed_devices="${2}" + white_listed_devices="${3}" for sysblock in $(echo /sys/block/* | tr ' ' '\n' | grep -v loop | grep -v ram | grep -v fd) do @@ -399,6 +415,15 @@ find_files () break fi + if [ -n "${white_listed_devices}" ] + then + if echo "${white_listed_devices}" | grep -v -q -w "${fulldevname}" + then + # skip this device entirely + break + fi + fi + for dev in $(subdevices "${sysblock}") do devname=$(sys2dev "${dev}") |
