3 # remountresizereiserfs /mountpoint
6 fail () { echo >&2 "$*"; exit 1; }
7 case "$#.$1" in 1.[^-]*);; *) fail 'bad usage';; esac
12 dfl2=`printf "%s" "$df" | sed 1d`
15 /dev/*" "[0-9]*" "[0-9]*" "[0-9]*" "[0-9]*"% "/*)
18 if [ "x$mp2" != "x$mp" ]; then fail "mountpoint is $mp2 not $mp"; fi
20 *) fail "could not parse df output" ;;
23 lvi=$(lvdisplay -c $dev)
26 vgsz_le=${lvi#*:*:*:*:*:*:*:*:}
27 vgsz_le=${vgsz_le%%:*}
29 vgi=$(vgdisplay -c $vg)
30 pesz_blk=${vgi#*:*:*:*:*:*:*:*:*:*:*:*:}
31 pesz_blk=${pesz_blk%%:*}
33 pesz_by=$(( $pesz_blk * 512 ))
35 dbrfs=$(debugreiserfs $dev)
36 blksz_by=$(printf "%s" "$dbrfs" | egrep '^Blocksize: ' || fail "blocksize?")
37 blksz_by=${blksz_by#*: }
39 if [ $(( $pesz_by % $blksz_by )) != 0 ]; then
40 fail "extent size ${pesz}by does not divide block size ${blksz_by}by"
43 pesz_blk=$(( $pesz_by / $blksz_by ))
44 vgsz_blk=$(( $vgsz_le * $pesz_blk ))
46 echo mount -o remount,resize=$vgsz_blk $dev $mp