Browse Source

block-mount: Fixed two bugs in fstab.init. /etc/fstab was used where /tmp/fstab should have been, and locking was insufficiently careful and was such that it could result in deadlock when hotplug was in use.

SVN-Revision: 22148
Daniel Dickinson 15 years ago
parent
commit
117590a2ce
1 changed files with 7 additions and 3 deletions
  1. 7 3
      package/block-mount/files/fstab.init

+ 7 - 3
package/block-mount/files/fstab.init

@@ -41,9 +41,13 @@ do_swapoff() {
 start() {
 	config_load fstab
 	mkdir -p /var/lock
-	lock /var/lock/fstab.lck
-	echo '# WARNING: this is an auto generated file, please use uci to set defined filesystems' > /etc/fstab
-	lock -u /var/lock/fstab.lck
+	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
+	}
 	config_foreach do_swapon swap
 	config_foreach do_mount mount
 }