[package] block-mount: remove explicit lock waits, solves some potential race conditions
authorjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sun, 19 Jun 2011 18:15:14 +0000 (18:15 +0000)
committerjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sun, 19 Jun 2011 18:15:14 +0000 (18:15 +0000)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27226 3c298f89-4303-0410-b956-a3cf2f4a3e73

package/block-mount/Makefile
package/block-mount/files/block.sh
package/block-mount/files/fstab.init

index c2c9d33..657f727 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=block-mount
 PKG_VERSION:=0.2.0
 
 PKG_NAME:=block-mount
 PKG_VERSION:=0.2.0
-PKG_RELEASE:=5
+PKG_RELEASE:=6
 
 include $(INCLUDE_DIR)/package.mk
 
 
 include $(INCLUDE_DIR)/package.mk
 
index 72d6c3a..80f74b2 100644 (file)
@@ -119,17 +119,15 @@ config_create_swap_fstab_entry() {
        [ -n "$device" ] || return 0
 
        local fstabnew
        [ -n "$device" ] || return 0
 
        local fstabnew
-       
+
        mkdir -p /var/lock
        mkdir -p /var/lock
-       lock -w /var/lock/fstab.lck && {
-               lock /var/lock/fstab.lck
-               fstabnew="$(mktemp -t '.fstab.XXXXXXXX')"
-               cat /tmp/fstab | grep -E -v "^$device[[:blank:]]" >>"$fstabnew"
-               [ "$enabled" -eq 1 ] && echo "$device   none    swap    sw      0       0" >> "$fstabnew"
-               cat "$fstabnew" >/tmp/fstab
-               rm -f $fstabnew
-               lock -u /var/lock/fstab.lck
-       }
+       lock /var/lock/fstab.lck
+       fstabnew="$(mktemp -t '.fstab.XXXXXXXX')"
+       cat /tmp/fstab | grep -E -v "^$device[[:blank:]]" >>"$fstabnew"
+       [ "$enabled" -eq 1 ] && echo "$device   none    swap    sw      0       0" >> "$fstabnew"
+       cat "$fstabnew" >/tmp/fstab
+       rm -f $fstabnew
+       lock -u /var/lock/fstab.lck
 }
 
 config_create_mount_fstab_entry() {
 }
 
 config_create_mount_fstab_entry() {
@@ -144,17 +142,15 @@ config_create_mount_fstab_entry() {
        [ -n "$device" ] || return 0
 
        local fstabnew
        [ -n "$device" ] || return 0
 
        local fstabnew
-       
+
        mkdir -p /var/lock
        mkdir -p /var/lock
-       lock -w /var/lock/fstab.lck && {
-               lock /var/lock/fstab.lck
-               fstabnew="$(mktemp -t '.fstab.XXXXXXXX')"
-               cat /tmp/fstab | grep -E -v "^$device[[:blank:]]" | grep -v "$target" >>"$fstabnew"
-               echo "$device   $target $fstype $options        0       0" >>"$fstabnew"
-               cat "$fstabnew" >/tmp/fstab             
-               rm -f $fstabnew
-               lock -u /var/lock/fstab.lck
-       }
+       lock /var/lock/fstab.lck
+       fstabnew="$(mktemp -t '.fstab.XXXXXXXX')"
+       cat /tmp/fstab | grep -E -v "^$device[[:blank:]]" | grep -v "$target" >>"$fstabnew"
+       echo "$device   $target $fstype $options        0       0" >>"$fstabnew"
+       cat "$fstabnew" >/tmp/fstab             
+       rm -f $fstabnew
+       lock -u /var/lock/fstab.lck
 }
 
 libmount_find_token() {
 }
 
 libmount_find_token() {
index aba50ba..f54051e 100644 (file)
@@ -66,13 +66,11 @@ start() {
 
        config_load fstab
        mkdir -p /var/lock
 
        config_load fstab
        mkdir -p /var/lock
-       lock -w /var/lock/fstab.lck && {
-               lock /var/lock/fstab.lck
-               [ -e /tmp/fstab ] || { 
-                       echo '# WARNING: this is an auto generated file, please use uci to set defined filesystems' > /tmp/fstab
-               }
-               lock -u /var/lock/fstab.lck
+       lock /var/lock/fstab.lck
+       [ -e /tmp/fstab ] || {
+               echo '# WARNING: this is an auto generated file, please use uci to set defined filesystems' > /tmp/fstab
        }
        }
+       lock -u /var/lock/fstab.lck
        config_foreach do_swapon swap
        config_foreach do_mount mount
        config_foreach do_swapon swap  # do swap a second time so that swap on filesystems is enabled
        config_foreach do_swapon swap
        config_foreach do_mount mount
        config_foreach do_swapon swap  # do swap a second time so that swap on filesystems is enabled