#!/bin/sh

. /lib/partman/definitions.sh

has_boot=no
for dev in $DEVICES/*; do
    [ -d $dev ] || continue
    cd $dev
    open_dialog PARTITIONS
    while { read_line num id size type fs path name; [ "$id" ]; }; do
	[ $fs != free ] || continue
	[ -f "$id/method" ] || continue
	[ -f "$id/acting_filesystem" ] || continue
	[ -f "$id/mountpoint" ] || continue
	mountpoint=$(cat $id/mountpoint)
	if [ "$mountpoint" = /boot ]; then
	    has_boot=yes
	fi
    done
    close_dialog
done

for dev in $DEVICES/*; do
    [ -d $dev ] || continue
    cd $dev
    open_dialog PARTITIONS
    while { read_line num id size type fs path name; [ "$id" ]; }; do
	[ $fs != free ] || continue
	[ -f "$id/method" ] || continue
	[ -f "$id/acting_filesystem" ] || continue
	[ -f "$id/mountpoint" ] || continue
	mountpoint=$(cat $id/mountpoint)
	filesystem=$(cat $id/acting_filesystem)
	case "$filesystem" in
	    reiserfs)
    		# due to #249322, #255135, #258117:
    		if [ "$mountpoint" = /tmp ]; then
		    rm -f $id/options/noexec
    		fi
    		if [ "$mountpoint" = /boot \
	  	     -o \( "$mountpoint" = / -a "$has_boot" = no \) ]; then
			> $id/options/notail
    		fi
    		options=$(get_mountoptions $dev $id)
    		if [ "$mountpoint" = / ]; then
			pass=1
    		else
			pass=2
    		fi
    		echo "$path" "$mountpoint" reiserfs $options 0 $pass
		;;
	esac
    done
    close_dialog
done
