@@ -195,7 +195,11 @@ DEV2=$(stat -c "%t:%T" "$LO2")
195195
196196wait_a_moment
197197
198- step " create DM devices (spans)"
198+ SPAN1=__kpt__
199+ SPAN2=$( basename " $LO2 " )
200+ # This is a non-kpartx pseudo "partition" mapping
201+ USER1=user1
202+ step " create DM devices => $SPAN1 , $SPAN2 , $USER1 "
199203# Create two linear mappings spanning two loopdevs.
200204# One of them gets a pathological name colliding with
201205# the loop device name.
@@ -206,17 +210,12 @@ TABLE="\
2062100 $(( SIZE/ SECTSIZ- OFFS)) linear $DEV1 $OFFS
207211$(( SIZE/ SECTSIZ- OFFS)) $(( SIZE/ SECTSIZ- OFFS)) linear $DEV2 $OFFS "
208212
209- # This must end in a normal letter
210- SPAN1=__kpt__
211- SPAN2=$( basename " $LO2 " )
212213dmsetup create " $SPAN1 " <<< " $TABLE"
213214push_cleanup ' dmsetup remove -f "$SPAN1"'
214215
215216dmsetup create " $SPAN2 " <<< " $TABLE"
216217push_cleanup ' dmsetup remove -f "$SPAN2"'
217218
218- # This is a non-kpartx pseudo "partition" mapping
219- USER1=user1
220219push_cleanup ' dmsetup remove -f "$USER1"'
221220dmsetup create " $USER1 " << EOF
2222210 $(( SIZE/ SECTSIZ- OFFS)) linear $DEV1 $OFFS
@@ -227,7 +226,7 @@ wait_a_moment
227226[[ -b " /dev/mapper/$SPAN2 " ]]
228227[[ -b " /dev/mapper/$USER1 " ]]
229228
230- step " create vg on $LO3 "
229+ step " create vg and lv on $LO3 => $VG - $LV , $USER1 "
231230# On the 3rd loop device, we create a VG and an LV
232231# The LV should not be removed by kpartx.
233232# shellcheck disable=SC2090
@@ -246,38 +245,38 @@ current_state
246245# dmsetup table /dev/mapper/$VG-$LV
247246# dmsetup info /dev/mapper/$VG-$LV
248247
249- step " create partitions on loop devices"
248+ step " create partitions on loop devices => $LO1 $LO2 $LO4 "
250249
251250mk_partitions " $LO1 "
252251mk_partitions " $LO2 "
253252mk_partitions " $LO4 "
254253
255- step " run kpartx on regular file"
256254
257255# Test invocation of kpartx with regular file here
258256LO2P1=/dev/mapper/$( basename " $LO2 " ) -foo1
259257push_cleanup ' dmsetup remove -f "$(basename $LO2P1)"'
258+ step " run kpartx on regular file $FILE2 => $LO2P1 "
260259# shellcheck disable=2086
261260$KPARTX $KPARTX_OPTS -a -p -foo " $FILE2 "
262261current_state
263262[[ -b " $LO2P1 " ]]
264263
265- step " remove partitions with deleted ptable "
264+ step " deleting partition table on $LO2 => - $LO2P1 "
266265wipe_ptable " $LO2 "
267266# shellcheck disable=2086
268267$KPARTX $KPARTX_OPTS -d " $LO2 "
269268current_state
270269[[ ! -b " $LO2P1 " ]]
271270
272- step " re-add just removed partions"
271+ step " re-add just removed partions on $LO2 => $LO2P1 "
273272mk_partitions " $LO2 "
274273# shellcheck disable=2086
275274$KPARTX $KPARTX_OPTS -a -p -foo " $FILE2 "
276275current_state
277276[[ -b " $LO2P1 " ]]
278277
279- step " run kpartx on loop device"
280278LO1P1=/dev/mapper/$( basename " $LO1 " ) -eggs1
279+ step " run kpartx on loop device $LO1 => $LO1P1 "
281280push_cleanup ' dmsetup remove -f $(basename "$LO1P1")'
282281# shellcheck disable=2086
283282$KPARTX $KPARTX_OPTS -a -p -eggs " $LO1 "
@@ -289,7 +288,7 @@ current_state
289288
290289# dmsetup info $LO2P1
291290
292- step " rename $( basename " $LO1P1 " ) to $( basename " $LO1 " ) "
291+ step " rename $( basename " $LO1P1 " ) -> $( basename " $LO1 " ) "
293292# Set pathological name for partition on $LO1 (same as loop device itself)
294293dmsetup rename " $( basename " $LO1P1 " ) " " $( basename " $LO1 " ) "
295294LO1P1=/dev/mapper/$( basename " $LO1 " )
@@ -299,21 +298,22 @@ push_cleanup 'dmsetup remove -f "$(basename "$LO1P1")"'
299298current_state
300299[[ -b " $LO1P1 " ]]
301300
302- # dmsetup info $LO1P1
303-
304- step " create partitions on DM devices"
305301mk_partitions " /dev/mapper/$SPAN2 "
306-
302+ SPAN2P1=/dev/mapper/${SPAN2} -bar1
303+ step " create partitions on DM device $SPAN2 => $SPAN2P1 "
307304# shellcheck disable=2086
308305$KPARTX $KPARTX_OPTS -a -p -bar " /dev/mapper/$SPAN2 "
309- SPAN2P1=/dev/mapper/${SPAN2} -bar1
306+ wait_a_moment
307+ current_state
308+ [[ -b " $SPAN2P1 " ]]
310309
311310# udev rules may have created partition mappings without UUIDs
312311# which aren't removed by default (if system standard kpartx doesn't
313312# set the UUID). Remove them using -f
314313push_cleanup ' $CLEANUP_KPARTX $KPARTX_OPTS -f -d "/dev/mapper/$SPAN2"'
315314push_cleanup ' dmsetup remove -f "$(basename "$SPAN2P1")"'
316315
316+ step " create partitions on DM device $SPAN1 => $SPAN1P1 "
317317# shellcheck disable=2086
318318$KPARTX $KPARTX_OPTS -a -p -spam " /dev/mapper/$SPAN1 "
319319SPAN1P1=/dev/mapper/${SPAN1} -spam1
@@ -326,22 +326,22 @@ current_state
326326[[ -b " $SPAN2P1 " ]]
327327[[ -b " $SPAN1P1 " ]]
328328
329- step " rename partitions on DM device with default delimiter"
329+ step " rename partitions on $SPAN1 with default delimiter => $SPAN1P1 -> $( partname " $SPAN1 " 1 ) "
330330# shellcheck disable=2086
331331$KPARTX $KPARTX_OPTS -u " /dev/mapper/$SPAN1 "
332332current_state
333333[[ ! -b " $SPAN1P1 " ]]
334334# This assumes that $SPAN1 ends in a non-digit
335335[[ -b " $( partname " $SPAN1 " 1) " ]]
336336
337- step " rename partitions on DM device with delimiter -spam"
337+ step " rename partitions on DM device with delimiter -spam => $( partname " $SPAN1 " 1 ) -> $SPAN1P1 "
338338# shellcheck disable=2086
339339$KPARTX $KPARTX_OPTS -u -p -spam " /dev/mapper/$SPAN1 "
340340current_state
341341[[ -b " $SPAN1P1 " ]]
342342[[ ! -b " $( partname " $SPAN1 " 1) " ]]
343343
344- step " delete partitions on DM devices "
344+ step " delete partitions on DM device $SPAN1 => - $SPAN1P1 "
345345# shellcheck disable=2086
346346$KPARTX $KPARTX_OPTS -d " /dev/mapper/$SPAN1 " >&2
347347wait_a_moment
@@ -352,68 +352,78 @@ current_state
352352[[ -b " $LO2P1 " ]]
353353[[ ! -b " $SPAN1P1 " ]]
354354
355+ step " delete partitions on DM device $SPAN2 => -$SPAN2P1 "
355356# shellcheck disable=2086
356357$KPARTX $KPARTX_OPTS -d " /dev/mapper/$SPAN2 "
357358wait_a_moment
358-
359359current_state
360360[[ -b " $LO1P1 " ]]
361361[[ -b " $LO2P1 " ]]
362362[[ ! -b " $SPAN2P1 " ]]
363363
364- step " rename partitions on loop device with delimiter -spam"
364+ step " rename on $LO2 with delimiter -spam => $LO2P1 -> ${LO2P1 // -foo / -spam} "
365365# shellcheck disable=2086
366366$KPARTX $KPARTX_OPTS -u -p -spam " $LO2 "
367+ wait_a_moment
367368current_state
368369[[ ! -b " $LO2P1 " ]]
369370[[ -b " ${LO2P1// -foo/ -spam} " ]]
370371
371- step " rename partitions on loop device with delimiter -foo"
372+ step " rename partitions on $LO2 with delimiter -foo => ${LO2P1 // -foo / -spam} -> $LO2P1 "
372373# shellcheck disable=2086
373374$KPARTX $KPARTX_OPTS -u -p -foo " $LO2 "
375+ wait_a_moment
374376current_state
375377[[ -b " $LO2P1 " ]]
376378[[ ! -b " ${LO2P1// -foo/ -spam} " ]]
377379
378- step " rename partitions on loop device with default delimiter"
380+ step " rename partitions on $LO2 with default delimiter => $LO2P1 -> $( partname " $LO2 " 1 ) "
379381# shellcheck disable=2086
380382$KPARTX $KPARTX_OPTS -u " $LO2 "
381- # read a
383+ wait_a_moment
382384current_state
383385[[ ! -b " $LO2P1 " ]]
384386[[ -b " $( partname " $LO2 " 1) " ]]
385387
386- step " rename partitions on loop device with delimiter -foo"
388+ step " rename partitions on $LO2 with delimiter -foo => $( partname " $LO2 " 1 ) -> $LO2P1 "
387389# shellcheck disable=2086
388390$KPARTX $KPARTX_OPTS -u -p -foo " $LO2 "
389391current_state
390392[[ -b " $LO2P1 " ]]
391393[[ ! -b " $( partname " $LO2 " 1) " ]]
392394
393- step " rename partitions on loop devices "
395+ step " rename partitions on $LO2 with delimiter spam => $LO2P1 -> ${LO2P1 // -foo / spam} "
394396# shellcheck disable=2086
395397$KPARTX $KPARTX_OPTS -u -p spam " $LO2 "
398+ wait_a_moment
399+ current_state
400+ [[ ! -b " $LO2P1 " ]]
401+ [[ -b " ${LO2P1// -foo/ spam} " ]]
396402
397- step " delete partitions on loop devices"
398-
403+ step " delete partitions on loop device $LO3 "
399404# shellcheck disable=2086
400405$KPARTX $KPARTX_OPTS -d " $LO3 "
406+ wait_a_moment
407+ current_state
401408
409+ step " delete partitions on file $FILE2 / $LO2 "
402410# This will also delete the loop device
403411# shellcheck disable=2086
404412$KPARTX $KPARTX_OPTS -d " $FILE2 "
413+ wait_a_moment
414+ current_state
415+
416+ step " delete partitions on file $LO1 "
405417# shellcheck disable=2086
406418$KPARTX $KPARTX_OPTS -d " $LO1 "
407419wait_a_moment
408-
409- # ls -l /dev/mapper
410420current_state
411421[[ ! -b " $LO1P1 " ]]
412- # 'dmsetup remove -f $(basename "$SPAN1P1")'
413- pop_cleanup
422+
423+ pop_cleanup # 'dmsetup remove -f $(basename "$SPAN1P1")'
414424[[ ! -b " $LO2P1 " ]]
415- # '$CLEANUP_KPARTX $KPARTX_OPTS -f -d /dev/mapper/$SPAN1'
416- pop_cleanup
425+ pop_cleanup # '$CLEANUP_KPARTX $KPARTX_OPTS -f -d /dev/mapper/$SPAN1'
426+
417427# spans should not have been removed
418428current_state
419429[[ -b " /dev/mapper/$SPAN1 " ]]
0 commit comments