summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys-fs/submount/ChangeLog8
-rw-r--r--sys-fs/submount/files/submount-0.9-sem2mutex.patch42
-rw-r--r--sys-fs/submount/submount-0.9-r2.ebuild7
3 files changed, 53 insertions, 4 deletions
diff --git a/sys-fs/submount/ChangeLog b/sys-fs/submount/ChangeLog
index f396041fc145..baa0b113d71c 100644
--- a/sys-fs/submount/ChangeLog
+++ b/sys-fs/submount/ChangeLog
@@ -1,6 +1,10 @@
# ChangeLog for sys-fs/submount
-# Copyright 2000-2005 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-fs/submount/ChangeLog,v 1.18 2005/10/18 13:08:33 agriffis Exp $
+# Copyright 2000-2006 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/sys-fs/submount/ChangeLog,v 1.19 2006/03/25 13:49:49 dsd Exp $
+
+ 25 Mar 2006; Daniel Drake <dsd@gentoo.org>
+ +files/submount-0.9-sem2mutex.patch, submount-0.9-r2.ebuild:
+ sem2mutex compile fix for 2.6.16, thanks to Patrizio Bassi in bug #119538
18 Oct 2005; Aron Griffis <agriffis@gentoo.org> submount-0.9-r2.ebuild:
Mark 0.9-r2 stable on alpha
diff --git a/sys-fs/submount/files/submount-0.9-sem2mutex.patch b/sys-fs/submount/files/submount-0.9-sem2mutex.patch
new file mode 100644
index 000000000000..a40648c0f5f1
--- /dev/null
+++ b/sys-fs/submount/files/submount-0.9-sem2mutex.patch
@@ -0,0 +1,42 @@
+--- submount-0.9/subfs-0.9/subfs.c.orig 2006-03-22 10:06:33.000000000 +0100
++++ submount-0.9/subfs-0.9/subfs.c 2006-03-22 10:08:11.000000000 +0100
+@@ -25,6 +25,7 @@
+ #include <asm/signal.h>
+ #include <linux/signal.h>
+ #include <linux/sched.h>
++#include <linux/version.h>
+
+ #include "subfs.h"
+
+@@ -221,14 +222,30 @@
+ struct vfsmount *child;
+
+ /* This is ugly, but prevents a lockup during mount. */
++
++#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,15)
++ mutex_unlock(&dir->i_mutex);
++#else
+ up(&dir->i_sem);
++#endif
++
+ if (down_interruptible(&sfs_mnt->sem)) {
+- down(&dir->i_sem);/*put the dir sem back down if interrupted*/
++
++# if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,15)
++ mutex_lock(&dir->i_mutex); /*put the dir sem back down if interrupted*/
++#else
++ down(&dir->i_sem); /*put the dir sem back down if interrupted*/
++#endif
+ return ERR_PTR(-ERESTARTSYS);
+ }
+ child = get_child_mount(sfs_mnt);
+ up(&sfs_mnt->sem);
++
++#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,15)
++ mutex_lock(&dir->i_mutex); /*put the dir sem back down if interrupted*/
++#else
+ down(&dir->i_sem);
++#endif
+ if (IS_ERR(child))
+ return (void *) child;
+ subfs_send_signal();
diff --git a/sys-fs/submount/submount-0.9-r2.ebuild b/sys-fs/submount/submount-0.9-r2.ebuild
index 1191d488177a..796f2caae497 100644
--- a/sys-fs/submount/submount-0.9-r2.ebuild
+++ b/sys-fs/submount/submount-0.9-r2.ebuild
@@ -1,6 +1,6 @@
-# Copyright 1999-2005 Gentoo Foundation
+# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-fs/submount/submount-0.9-r2.ebuild,v 1.6 2005/10/18 13:08:33 agriffis Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-fs/submount/submount-0.9-r2.ebuild,v 1.7 2006/03/25 13:49:49 dsd Exp $
inherit linux-mod
@@ -37,6 +37,9 @@ src_unpack() {
unpack ${A}
cd ${S}
convert_to_m ${S}/subfs-${MY_PV}/Makefile
+
+ # Fix compile on 2.6.16, bug #119538
+ epatch ${FILESDIR}/${P}-sem2mutex.patch
}
src_compile() {