summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2014-05-07 13:03:09 +0200
committerWaldemar Brodkorb <wbx@openadk.org>2014-05-07 13:03:42 +0200
commit36d7c1cb639843bc89e5510fd7486e1b75e41aaf (patch)
tree014e8382255045cd9e8dda918797306732a8dced
parent3dbaf8534d28ac57b4b6f51e8552539b162d9d4a (diff)
wait for mount points for 9 seconds, when registered in /etc/fstab
-rw-r--r--package/samba/Makefile2
-rw-r--r--package/samba/files/samba.init21
2 files changed, 22 insertions, 1 deletions
diff --git a/package/samba/Makefile b/package/samba/Makefile
index a8e1bb36f..9f32076dd 100644
--- a/package/samba/Makefile
+++ b/package/samba/Makefile
@@ -5,7 +5,7 @@ include ${TOPDIR}/rules.mk
PKG_NAME:= samba
PKG_VERSION:= 3.6.23
-PKG_RELEASE:= 4
+PKG_RELEASE:= 5
PKG_MD5SUM:= 2f7aee1dc5d31aefcb364600915b31dc
PKG_DESCR:= NetBIOS/SMB file and print server
PKG_SECTION:= net/fs
diff --git a/package/samba/files/samba.init b/package/samba/files/samba.init
index b7e370484..f181db1cd 100644
--- a/package/samba/files/samba.init
+++ b/package/samba/files/samba.init
@@ -3,6 +3,26 @@
#INIT 80
. /etc/rc.conf
+check_mount() {
+ sed -n -e '/^#/d' -e '/path/s/^.*=//p' \
+ /etc/samba/smb.conf | while read path; do
+ grep -v '^#' /etc/fstab | fgrep -q "$path" || continue
+ count=0
+ while :; do
+ if fgrep -q "$path" /proc/mounts; then
+ logger -t smb "Device mounted, starting samba"
+ break
+ fi
+ if test $count -eq 9; then
+ logger -s "required filesystem missing"
+ exit 1
+ fi
+ sleep 1
+ count=$(($count+1))
+ done
+ done
+}
+
case $1 in
autostop) ;;
autostart)
@@ -11,6 +31,7 @@ autostart)
exec sh $0 start
;;
start)
+ check_mount
[ -d /var/run/samba ] || mkdir -p /var/run/samba
[ -d /var/log/samba ] || mkdir -p /var/log/samba
/usr/sbin/nmbd -D