--- a/functions_losetup.sh
+++ b/functions_losetup.sh
@@ -67,13 +67,28 @@
 	FILESYSTEM="${2}"
 
 	case "${FILESYSTEM}" in
-		ext2|ext3|ext4)
+		ext2)
 			PERCENT="6"
+		ext3|ext4)
+			PERCENT="6"
+
+			NUM_BLOCKS=$(expr ${ORIGINAL_SIZE} / 4)
+			if [ "${NUM_BLOCKS}" -lt "2" ]; then # 2048/1024
+				JOURNAL_SIZE=0
+			elif [ "${NUM_BLOCKS}" -lt "32" ]; then # 32768/1024
+				JOURNAL_SIZE=1
+			elif [ "${NUM_BLOCKS}" -lt "256" ]; then # 256*1024/1024
+				JOURNAL_SIZE=16
+			elif [ "${NUM_BLOCKS}" -lt "512" ]; then # 512*1024/1024
+				JOURNAL_SIZE=32
+			elif [ "${NUM_BLOCKS}" -lt "1024" ]; then # 1024*1024/1024
+				JOURNAL_SIZE=64
+			fi
 			;;
 		*)
 			PERCENT="3"
 			;;
 	esac
 
-	echo $(expr ${ORIGINAL_SIZE} + ${ORIGINAL_SIZE} \* ${PERCENT} / 100 + 1)
+	echo $(expr ${JOURNAL_SIZE:-0} + ${ORIGINAL_SIZE} + ${ORIGINAL_SIZE} \* ${PERCENT} / 100 + 1)
 }
