diff options
author | Scott Garman <scott.a.garman@intel.com> | 2010-09-28 18:58:33 -0700 |
---|---|---|
committer | Richard Purdie <rpurdie@linux.intel.com> | 2010-10-07 19:52:32 +0100 |
commit | 62625d0ca006153169efc3378ad2d30c30e12612 (patch) | |
tree | d557f7fff2b59438544552a21c77eed7544cdc75 | |
parent | fcbd67c047f02052cc87f2d0dcbfde83a23921bd (diff) | |
download | poky-62625d0ca006153169efc3378ad2d30c30e12612.tar.gz |
poky-qemu-internal: use lockfile-progs for network interface locking
The 'lockfile' utility originally used comes from the procmail
package, which users shouldn't have to install. This uses the
more general lockfile-progs utilities to acheive the same end.
This fixes [BUGID #389]
Signed-off-by: Scott Garman <scott.a.garman@intel.com>
-rwxr-xr-x | scripts/poky-qemu-internal | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/scripts/poky-qemu-internal b/scripts/poky-qemu-internal index c65e0f1de2..c3720d9ce2 100755 --- a/scripts/poky-qemu-internal +++ b/scripts/poky-qemu-internal | |||
@@ -55,6 +55,13 @@ QEMUIFDOWN=`which poky-qemu-ifdown` | |||
55 | 55 | ||
56 | NFSRUNNING="false" | 56 | NFSRUNNING="false" |
57 | 57 | ||
58 | LOCKUTIL=`which lockfile-create` | ||
59 | if [ -z "$LOCKUTIL" ]; then | ||
60 | echo "Error: Unable to find the lockfile-create utility" | ||
61 | echo "On Ubuntu systems this is included in the lockfile-progs package" | ||
62 | return | ||
63 | fi | ||
64 | |||
58 | LOCKDIR="/tmp/qemu-tap-locks" | 65 | LOCKDIR="/tmp/qemu-tap-locks" |
59 | [ ! -d "$LOCKDIR" ] && mkdir $LOCKDIR | 66 | [ ! -d "$LOCKDIR" ] && mkdir $LOCKDIR |
60 | 67 | ||
@@ -63,10 +70,14 @@ TAP="" | |||
63 | LOCKFILE="" | 70 | LOCKFILE="" |
64 | for tap in $POSSIBLE; do | 71 | for tap in $POSSIBLE; do |
65 | LOCKFILE="$LOCKDIR/$tap" | 72 | LOCKFILE="$LOCKDIR/$tap" |
66 | if lockfile -2 -r 1 $LOCKFILE; then | 73 | echo "Acquiring lockfile for $tap..." |
74 | if lockfile-create --use-pid -r 1 $LOCKFILE; then | ||
75 | # the --use-pid option to lockfile-create will give use | ||
76 | # the subshell's pid, so override it with the shell's pid: | ||
77 | echo $$ > $LOCKFILE.lock | ||
67 | TAP=$tap | 78 | TAP=$tap |
68 | break; | 79 | break |
69 | fi | 80 | fi |
70 | done | 81 | done |
71 | 82 | ||
72 | if [ "$TAP" = "" ]; then | 83 | if [ "$TAP" = "" ]; then |
@@ -79,7 +90,11 @@ if [ "$TAP" = "" ]; then | |||
79 | return | 90 | return |
80 | fi | 91 | fi |
81 | LOCKFILE="$LOCKDIR/$tap" | 92 | LOCKFILE="$LOCKDIR/$tap" |
82 | if lockfile $LOCKFILE; then | 93 | echo "Acquiring lockfile for $tap..." |
94 | if lockfile-create --use-pid -r 1 $LOCKFILE; then | ||
95 | # the --use-pid option to lockfile-create will give us | ||
96 | # the subshell's pid, so override it with the shell's pid: | ||
97 | echo $$ > $LOCKFILE.lock | ||
83 | TAP=$tap | 98 | TAP=$tap |
84 | fi | 99 | fi |
85 | else | 100 | else |
@@ -91,7 +106,7 @@ release_lock() { | |||
91 | $QEMUIFDOWN $TAP $POKY_NATIVE_SYSROOT | 106 | $QEMUIFDOWN $TAP $POKY_NATIVE_SYSROOT |
92 | else | 107 | else |
93 | echo "Releasing lockfile of preconfigured tap device '$TAP'" | 108 | echo "Releasing lockfile of preconfigured tap device '$TAP'" |
94 | rm -f $LOCKFILE | 109 | lockfile-remove $LOCKFILE |
95 | fi | 110 | fi |
96 | 111 | ||
97 | if [ "$NFSRUNNING" = "true" ]; then | 112 | if [ "$NFSRUNNING" = "true" ]; then |