1 |
commit: 66dc589e7478dc380c038c29073d8e438d80ed93 |
2 |
Author: Robin H. Johnson <robbat2 <AT> gentoo <DOT> org> |
3 |
AuthorDate: Tue Nov 14 19:14:12 2017 +0000 |
4 |
Commit: Robin H. Johnson <robbat2 <AT> gentoo <DOT> org> |
5 |
CommitDate: Tue Nov 14 19:14:12 2017 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/netifrc.git/commit/?id=66dc589e |
7 |
|
8 |
init.d/net.lo: atomically create moduleslist. |
9 |
|
10 |
Bug: https://bugs.gentoo.org/637474 |
11 |
Signed-off-by: Robin H. Johnson <robbat2 <AT> gentoo.org> |
12 |
|
13 |
init.d/net.lo.in | 17 ++++++++++------- |
14 |
1 file changed, 10 insertions(+), 7 deletions(-) |
15 |
|
16 |
diff --git a/init.d/net.lo.in b/init.d/net.lo.in |
17 |
index 33cc932..b78a342 100644 |
18 |
--- a/init.d/net.lo.in |
19 |
+++ b/init.d/net.lo.in |
20 |
@@ -353,21 +353,24 @@ _gen_module_list() |
21 |
visit "${MODULE}" |
22 |
done |
23 |
|
24 |
- printf "" > "${MODULESLIST}" |
25 |
+ # Create atomically |
26 |
+ TMPMODULESLIST=${MODULESLIST}.$$ |
27 |
+ printf "" > "${TMPMODULESLIST}" |
28 |
i=0 |
29 |
for MODULE in ${SORTED}; do |
30 |
eval PROGRAM=\$${MODULE}_program |
31 |
eval PROGRAM_START=\$${MODULE}_program_start |
32 |
eval PROGRAM_STOP=\$${MODULE}_program_stop |
33 |
eval PROVIDE=\$${MODULE}_provide |
34 |
- echo "module_${i}='${MODULE}'" >> "${MODULESLIST}" |
35 |
- echo "module_${i}_program='${PROGRAM}'" >> "${MODULESLIST}" |
36 |
- echo "module_${i}_program_start='${PROGRAM_START}'" >> "${MODULESLIST}" |
37 |
- echo "module_${i}_program_stop='${PROGRAM_STOP}'" >> "${MODULESLIST}" |
38 |
- echo "module_${i}_provide='${PROVIDE}'" >> "${MODULESLIST}" |
39 |
+ echo "module_${i}='${MODULE}'" >> "${TMPMODULESLIST}" |
40 |
+ echo "module_${i}_program='${PROGRAM}'" >> "${TMPMODULESLIST}" |
41 |
+ echo "module_${i}_program_start='${PROGRAM_START}'" >> "${TMPMODULESLIST}" |
42 |
+ echo "module_${i}_program_stop='${PROGRAM_STOP}'" >> "${TMPMODULESLIST}" |
43 |
+ echo "module_${i}_provide='${PROVIDE}'" >> "${TMPMODULESLIST}" |
44 |
: $(( i += 1 )) |
45 |
done |
46 |
- echo "module_${i}=" >> "${MODULESLIST}" |
47 |
+ echo "module_${i}=" >> "${TMPMODULESLIST}" |
48 |
+ mv -f "${TMPMODULESLIST}" "${MODULESLIST}" |
49 |
) |
50 |
|
51 |
return 0 |