+if [ ! -f "$tmp/$tag/iso" ]; then
+ run "$DVD_SECTOR_COPY" -cs ${params+"-B$params"} \
+ -b"$tmp/$tag/badblocks.new" "$@" "$dev" "$tmp/$tag/iso.new"
+ run mv "$tmp/$tag/iso.new" "$tmp/$tag/iso"
+ accumulate_badblocks
+ rm -f "$tmp/$tag/device"
+ case $retry in t) rm -f "$tmp/$tag/badblocks.retry" ;; esac
+ if [ -f "$tmp/$tag/badblocks" ]; then
+ fail "bad sectors found: check \`$tmp/$tag/iso', run again if ok"
+ fi
+ case $msz in
+ nil) ;;
+ *)
+ newmsz=$(blockdev --getsize64 "$dev")
+ case $newmsz in
+ $msz) ;;
+ *) fail "medium size changed ($msz -> $newmsz): try again" ;;
+ esac
+ ;;
+ esac
+fi
+
+rm -f "$tmp/$tag/device"
+run mv "$tmp/$tag/dest.new" "$tmp/$tag/dest"
+if [ -f "$tmp/$tag/eject" ]; then eject=t; else eject=nil; fi
+if [ -f "$tmp/$tag/ding" ]; then ding=t; else ding=nil; fi