[packages] quagga-unstable: fix mini_fo assertion triggered by cross-fs link() (#5960)
git-svn-id: svn://svn.openwrt.org/openwrt/packages@19137 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
parent
16b71edf35
commit
30fdc15703
@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (C) 2009 OpenWrt.org
|
||||
# Copyright (C) 2009-2010 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=quagga-unstable
|
||||
PKG_VERSION:=0.99.15
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE:=quagga-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=http://www.quagga.net/download/ \
|
||||
|
40
net/quagga-unstable/patches/150-no-cross-fs-link.patch
Normal file
40
net/quagga-unstable/patches/150-no-cross-fs-link.patch
Normal file
@ -0,0 +1,40 @@
|
||||
--- a/lib/command.c
|
||||
+++ b/lib/command.c
|
||||
@@ -2601,6 +2601,13 @@
|
||||
VTY_NEWLINE);
|
||||
goto finished;
|
||||
}
|
||||
+
|
||||
+#if 0
|
||||
+ /* This code fails on UNION MOUNTs and similar filesystems if the
|
||||
+ * config file is still on the RO layer. Hardlinks across layers
|
||||
+ * will not work and cause quagga to fail saving the configuration...
|
||||
+ * should use rename() to move files around...
|
||||
+ */
|
||||
if (link (config_file, config_file_sav) != 0)
|
||||
{
|
||||
vty_out (vty, "Can't backup old configuration file %s.%s", config_file_sav,
|
||||
@@ -2614,7 +2621,23 @@
|
||||
VTY_NEWLINE);
|
||||
goto finished;
|
||||
}
|
||||
+#else
|
||||
+ /* And this is the code that hopefully does work */
|
||||
+ if (rename (config_file, config_file_sav) != 0)
|
||||
+ {
|
||||
+ vty_out (vty, "Can't backup old configuration file %s.%s", config_file_sav,
|
||||
+ VTY_NEWLINE);
|
||||
+ goto finished;
|
||||
+ }
|
||||
+ sync ();
|
||||
+#endif
|
||||
+
|
||||
+#if 0
|
||||
+ /* same here. Please no cross-filesystem hardlinks... */
|
||||
if (link (config_file_tmp, config_file) != 0)
|
||||
+#else
|
||||
+ if (rename (config_file_tmp, config_file) != 0)
|
||||
+#endif
|
||||
{
|
||||
vty_out (vty, "Can't save configuration file %s.%s", config_file,
|
||||
VTY_NEWLINE);
|
Loading…
x
Reference in New Issue
Block a user