more btrfs fixes and simplification

This commit is contained in:
Tobias Powalowski 2010-06-26 21:41:17 +02:00
parent 5bb51a0fa5
commit 9c75272e69

View file

@ -1873,6 +1873,19 @@ partition() {
S_PART=1 S_PART=1
} }
# mount btrfs for checks
mount_btrfs() {
btrfs_scan
BTRFSMP="$(mktemp -d /tmp/brtfsmp.XXXX)"
mount $PART $BTRFSMP
}
# unmount btrfs after checks done
umount_btrfs() {
umount $BTRFSMP
rm -r $BTRFSMP
}
remove_btrfs_parts() { remove_btrfs_parts() {
BTRFS_DEVICES="" BTRFS_DEVICES=""
if [ -n /tmp/.btrfs-devices ]; then if [ -n /tmp/.btrfs-devices ]; then
@ -1942,17 +1955,14 @@ btrfs_scan() {
# check btrfs subvolume # check btrfs subvolume
check_btrfs_subvolume(){ check_btrfs_subvolume(){
btrfs_scan mount_btrfs
BTRFSMP="$(mktemp -d /tmp/brtfsmp.XXXX)"
mount $PART $BTRFSMP
for i in $(btrfs subvolume list $BTRFSMP | cut -d " " -f 7); do for i in $(btrfs subvolume list $BTRFSMP | cut -d " " -f 7); do
if [ "$(echo $i | grep "$BTRFS_SUBVOLUME"$)" ]; then if [ "$(echo $i | grep "$BTRFS_SUBVOLUME"$)" ]; then
DIALOG --msgbox "ERROR: You have defined 2 identical SUBVOLUME names! Please enter another name." 8 65 DIALOG --msgbox "ERROR: You have defined 2 identical SUBVOLUME names! Please enter another name." 8 65
BTRFS_SUBVOLUME="" BTRFS_SUBVOLUME=""
fi fi
done done
umount $BTRFSMP umount_btrfs
rm -r $BTRFSMP
} }
prepare_btrfs_subvolume() { prepare_btrfs_subvolume() {
@ -1969,46 +1979,31 @@ prepare_btrfs_subvolume() {
fi fi
} }
# ask for btrfs compress option
btrfs_compress() { btrfs_compress() {
BTRFS_COMPRESS="" BTRFS_COMPRESS="NONE"
DIALOG --defaultno --yesno "Would you like to compress the data on $PART?" 0 0 && DOCOMPRESS="yes" DIALOG --defaultno --yesno "Would you like to compress the data on $PART?" 0 0 && BTRFS_COMPRESS="compress"
if [ "$DOCOMPRESS" = "yes" ]; then
BTRFS_COMPRESS="compress"
else
BTRFS_COMPRESS="NONE"
fi
} }
# ask for btrfs ssd option
btrfs_ssd() { btrfs_ssd() {
BTRFS_SSD="" BTRFS_SSD="NONE"
DIALOG --defaultno --yesno "Would you like to optimize the data for ssd disk usage on $PART?" 0 0 && DOSSD="yes" DIALOG --defaultno --yesno "Would you like to optimize the data for ssd disk usage on $PART?" 0 0 && BTRFS_SSD="ssd"
if [ "$DOSSD" = "yes" ]; then
BTRFS_SSD="ssd"
else
BTRFS_SSD="NONE"
fi
} }
create_btrfs_subvolume() { create_btrfs_subvolume() {
btrfs_scan mount_btrfs
BTRFSMP="$(mktemp -d /tmp/brtfsmp.XXXX)"
mount $PART $BTRFSMP
btrfs subvolume create $BTRFSMP/$_btrfssubvolume >$LOG btrfs subvolume create $BTRFSMP/$_btrfssubvolume >$LOG
umount $BTRFSMP umount_btrfs
rm -r $BTRFSMP
} }
# find btrfs subvolume # find btrfs subvolume
find_btrfs_subvolume(){ find_btrfs_subvolume(){
btrfs_scan mount_btrfs
BTRFSMP="$(mktemp -d /tmp/brtfsmp.XXXX)"
mount $PART $BTRFSMP
for i in $(btrfs subvolume list $BTRFSMP | cut -d " " -f 7); do for i in $(btrfs subvolume list $BTRFSMP | cut -d " " -f 7); do
echo $i echo $i
[ "$1" ] && echo $1 [ "$1" ] && echo $1
done done
umount $BTRFSMP umount_btrfs
rm -r $BTRFSMP
} }
choose_btrfs_subvolume () { choose_btrfs_subvolume () {
@ -2069,9 +2064,15 @@ create_filesystem() {
choose_btrfs_subvolume || return 1 choose_btrfs_subvolume || return 1
fi fi
fi fi
# Set values, to not confuse mkfs call!
[ "$FS_OPTIONS" = "" ] && FS_OPTIONS="NONE" [ "$FS_OPTIONS" = "" ] && FS_OPTIONS="NONE"
[ "$BTRFS_DEVICES" = "" ] && BTRFS_DEVICES="NONE" [ "$BTRFS_DEVICES" = "" ] && BTRFS_DEVICES="NONE"
[ "$BTRFS_LEVEL" = "" ] && BTRFS_LEVEL="NONE" [ "$BTRFS_LEVEL" = "" ] && BTRFS_LEVEL="NONE"
if [ "$LABEL_NAME" = "" -a -n "$(blkid -c=/dev/null -o value -s LABEL $PART)" ]; then
LABEL_NAME="$(blkid -c=/dev/null -o value -s LABEL $PART)"
else
LABEL_NAME="NONE"
fi
if [ "$FSTYPE" = "btrfs" ]; then if [ "$FSTYPE" = "btrfs" ]; then
btrfs_compress || return 1 btrfs_compress || return 1
btrfs_ssd || return 1 btrfs_ssd || return 1