block-extroot, block-mount: Fixed multiple bugs which prevented e2fsck from being...
authorDaniel Dickinson <crazycshore@gmail.com>
Wed, 30 Jun 2010 23:09:13 +0000 (23:09 +0000)
committerDaniel Dickinson <crazycshore@gmail.com>
Wed, 30 Jun 2010 23:09:13 +0000 (23:09 +0000)
SVN-Revision: 22002

package/block-extroot/files/50_determine_usb_root
package/block-mount/files/fsck.sh
package/block-mount/files/mount.sh
package/e2fsprogs/Makefile
package/e2fsprogs/files/e2fsck.conf [new file with mode: 0644]

index 0de9be3846878cc11afe83fd772b2531f3d48898..98ec0016e2951bcba861daa000c0d91b5a478e72 100644 (file)
@@ -4,11 +4,11 @@
 # See /LICENSE for more information.
 
 
-. /etc/functions.sh
-. /lib/functions/extmount.sh
-. /lib/functions/mount.sh
-
 determine_external_root() {
+       . /etc/functions.sh
+       . /lib/functions/extmount.sh
+       . /lib/functions/mount.sh
+
        local OLD_UCI_CONFIG_DIR="$UCI_CONFIG_DIR"
        set_jffs_mp
        determine_root_device
index d80e71693eef5aa3a82b5f613f050b91f2721b42..2b6402563547168b87b293d351f254839165355d 100644 (file)
@@ -12,20 +12,18 @@ libmount_fsck() {
        local found_fsck=0
        
 
-       [ -n "$fsck_type" ] && [ "$fsck_type" != "swap" ] && {
-               grep -q "$device" /proc/swaps || grep -q "$device" /proc/mounts || {
-                       [ -e "$device" ] && [ "$fsck_enabled" -eq 1 ] && {
-                               for known_type in $libmount_known_fsck; do
-                                       if [ "$known_type" = "$fsck_fstype" ]; then
-                                               fsck_${known_type} "$device"
-                                               found_fsck=1
-                                               break
-                                       fi
-                               done
-                               if [ "$found_fsck" -ne 1 ]; then
-                                       logger -t 'fstab' "Unable to check/repair $device; no known fsck for filesystem type $fstype"
+       grep -q "$device" /proc/swaps || grep -q "$device" /proc/mounts || {
+               [ -e "$device" ] && [ "$fsck_enabled" -eq 1 ] && {
+                       for known_type in $libmount_known_fsck; do
+                               if [ "$known_type" = "$fsck_fstype" ]; then
+                                       fsck_${known_type} "$device"
+                                       found_fsck=1
+                                       break
                                fi
-                       }
+                       done
+                       if [ "$found_fsck" -ne 1 ]; then
+                               logger -t 'fstab' "Unable to check/repair $device; no known fsck for filesystem type $fstype"
+                       fi
                }
        }
 }
index 1616ca7a139cc90393bb6c50d72467e359ded17e..db0fbad1ab39963944361bccc875b0597ec390a7 100644 (file)
@@ -28,14 +28,13 @@ config_mount_by_section() {
                local is_rootfs="$9"
                shift
                local found_device=""
-               local fsck_type=""
                
                found_device="$(libmount_find_device_by_id "$uuid" "$label" "$device" "$cfgdevice")"
                if [ -n "$found_device" ]; then
                        if [ -z "$find_rootfs" ] || [ "$find_rootfs" -eq 0 ] || [ "$is_rootfs" -eq 1 ]; then
                                [ "$enabled_fsck" -eq 1 ] && {
                                        grep -q "$found_device" /proc/swaps || grep -q "$found_device" /proc/mounts || {
-                                               libmount_fsck "$found_device" "$fsck_type" "$enabled_fsck"
+                                               libmount_fsck "$found_device" "$fstype" "$enabled_fsck"
                                        }
                                }                                                               
        
@@ -72,7 +71,6 @@ config_swapon_by_section() {
                local label
                
                local found_device=""
-               local fsck_type=""
                
                found_device="$(libmount_find_device_by_id "$uuid" "$label" "$device" "$cfgdevice")"
 
index 21942ef0dd87ae9835c6279022f8e9f1063274c6..d05e9d8b1e0f0abb2d10a1047f89be04be8e236c 100644 (file)
@@ -158,6 +158,7 @@ define Package/e2fsprogs/install
        $(INSTALL_DIR) $(1)/etc/init.d
        $(INSTALL_DIR) $(1)/lib/functions/fsck
        $(INSTALL_DATA) ./files/e2fsck.sh $(1)/lib/functions/fsck/
+       $(INSTALL_DATA) ./files/e2fsck.conf $(1)/etc/e2fsck.conf
 endef
 
 define Package/libuuid/install
diff --git a/package/e2fsprogs/files/e2fsck.conf b/package/e2fsprogs/files/e2fsck.conf
new file mode 100644 (file)
index 0000000..9c96b49
--- /dev/null
@@ -0,0 +1,3 @@
+[options]
+broken_system_clock = true
+