-lvcreate -L $adt_fs_size -n $adt_lvm_baselv $adt_lvm_vg
-lvcreate -L $adt_fs_snapsize -n $adt_lvm_cowdatalv $adt_lvm_vg
-dd if=/dev/zero of=$lvm_baselv_namepath
-mkfs -t $adt_fs_type $adt_mkfs_args $lvm_baselv_namepath
+#----- create fs base
+
+lvm_create_base () {
+ xl lvcreate -L $3 -n $2 $1 $4
+ xl lvcreate -L $6 -n $5 $1 $7
+ if $8; then
+ basesize=`lvdisplay -c $9 8>&- 3>&-`
+ basesize="${basesize#*:*:*:*:*:*:}"
+ basesize="${basesize%%:*}"
+ x dd if=/dev/zero of=$9 bs=512 count="$basesize"
+ fi
+}
+
+lvm_create_base $adt_lvm_vg \
+ $adt_lvm_baselv $adt_fs_size $adt_lvm_pv_fsbase \
+ $adt_lvm_cowdatalv $adt_fs_snapsize $adt_lvm_pv_fssnap \
+ $adt_lvm_erasebase $lvm_baselv_namepath
+
+x mkfs -t $adt_fs_type $adt_mkfs_args $lvm_baselv_namepath
+
+#----- create swap base
+
+if $provide_swap; then
+ lvm_create_base $adt_lvm_swapvg \
+ $adt_lvm_swapbaselv $adt_swap_size $adt_lvm_pv_swapbase \
+ $adt_lvm_swapcowdatalv $adt_swap_snapsize $adt_lvm_pv_swapsnap \
+ $adt_lvm_eraseswap $lvm_baselv_swapnamepath
+ x mkswap $lvm_baselv_swapnamepath
+ swapdisk=", \"phy:$lvm_swaplink_ptrrhs,hda2,w\""
+fi
+
+#----- create base filesystem and info