summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2013-11-21 00:24:23 +0100
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2013-11-21 00:25:16 +0100
commit4d550247ec47c862e034878efac62c8bc44fd68f (patch)
tree1fd56c2c0a881205ec2c35e9a98937f6542699a8
parent314d3023d8cbfcd164fcd7a08827e2dc63feed22 (diff)
parentdd1164c7a26e411c59154f0560717315b22bb014 (diff)
Merge branch 'master' of git.debian.org:/git/pkg-hurd/hurd
-rw-r--r--debian/changelog7
-rw-r--r--debian/control2
-rw-r--r--debian/patches/exec_filename_fs.patch2
-rw-r--r--debian/patches/rc.patch6
-rw-r--r--procfs/rootdir.c55
5 files changed, 52 insertions, 20 deletions
diff --git a/debian/changelog b/debian/changelog
index 03e16e42..d035979d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-hurd (1:0.5.git20130928-2) UNRELEASED; urgency=low
+hurd (1:0.5.git20131101-2) UNRELEASED; urgency=low
[ Justus Winter ]
* patches/exec_filename_fix.patch: Fix passing path in hurdish
@@ -6,9 +6,12 @@ hurd (1:0.5.git20130928-2) UNRELEASED; urgency=low
-- Samuel Thibault <sthibault@debian.org> Tue, 19 Nov 2013 00:21:47 +0100
-hurd (1:0.5.git20130928-2) UNRELEASED; urgency=low
+hurd (1:0.5.git20131101-1) UNRELEASED; urgency=low
[ Samuel Thibault ]
+ * New upstream snapshot.
+ * control: bump libc0.3-dev dependency to make sure we don't get internal
+ inlines exported by previous versions.
* patches/proc_set_init_task.patch: Fix kernel pid in procfs too.
* Remove dpkg | install-info dependency.
* Bump Standards-Version to 3.9.5.
diff --git a/debian/control b/debian/control
index 82a9bc88..0aec1b13 100644
--- a/debian/control
+++ b/debian/control
@@ -4,7 +4,7 @@ Priority: required
Maintainer: GNU Hurd Maintainers <debian-hurd@lists.debian.org>
Standards-Version: 3.9.5
Build-Depends: mig (>= 1.3-2), gnumach-dev (>= 2:1.3.99.dfsg.cvs20070526),
- libc0.3-dev (>= 2.17-93~), texinfo, libncursesw5-dev,
+ libc0.3-dev (>= 2.17-94~), texinfo, libncursesw5-dev,
debhelper (>= 7.0.50~), gcc-4.7, autoconf, dh-autoreconf,
libparted-dev, libpciaccess-dev, libx11-dev, x11proto-core-dev, pkg-config,
xkb-data, gawk, flex, bison, autotools-dev, libdaemon-dev, libpcap0.8-dev
diff --git a/debian/patches/exec_filename_fs.patch b/debian/patches/exec_filename_fs.patch
index b92a13a5..51f5aaa4 100644
--- a/debian/patches/exec_filename_fs.patch
+++ b/debian/patches/exec_filename_fs.patch
@@ -136,8 +136,8 @@ Index: hurd-debian/exec/hashexec.c
+
+
mach_port_deallocate (mach_task_self (), interp_file);
+ munmap (new_argv, new_argvlen);
- if (! e->error)
Index: hurd-debian/hurd/fs.defs
===================================================================
--- hurd-debian.orig/hurd/fs.defs 2013-06-19 23:32:37.000000000 +0000
diff --git a/debian/patches/rc.patch b/debian/patches/rc.patch
index fffbb467..a4be4aa5 100644
--- a/debian/patches/rc.patch
+++ b/debian/patches/rc.patch
@@ -19,11 +19,11 @@ More debianish rc scripts
+ fsysopts / --update --writable
;;
# Filesystem modified (but ok now)
- 1 | 2)
+ 1)
+ fsysopts / --update --writable
;;
- # Fsck couldn't fix it.
- 4 | 8)
+ # Filesystem modified, filesystem should be restarted
+ # Ideally we would only restart the filesystem
@@ -85,12 +88,25 @@ if test -d /tmp; then
fi
diff --git a/procfs/rootdir.c b/procfs/rootdir.c
index 34bf91ce..94b0ddb2 100644
--- a/procfs/rootdir.c
+++ b/procfs/rootdir.c
@@ -407,6 +407,47 @@ rootdir_gc_fakeself (void *hook, char **contents, ssize_t *contents_len)
/* The mtab translator to use by default for the "mounts" node. */
#define MTAB_TRANSLATOR "/hurd/mtab"
+static struct node *rootdir_mounts_node;
+static pthread_spinlock_t rootdir_mounts_node_lock =
+ PTHREAD_SPINLOCK_INITIALIZER;
+
+static struct node *
+rootdir_mounts_make_node (void *dir_hook, const void *entry_hook)
+{
+ struct node *np, *prev;
+
+ pthread_spin_lock (&rootdir_mounts_node_lock);
+ np = rootdir_mounts_node;
+ pthread_spin_unlock (&rootdir_mounts_node_lock);
+
+ if (np != NULL)
+ {
+ netfs_nref (np);
+ return np;
+ }
+
+ np = procfs_make_node (entry_hook, dir_hook);
+ if (np == NULL)
+ return NULL;
+
+ procfs_node_chtype (np, S_IFREG | S_IPTRANS);
+ procfs_node_chmod (np, 0444);
+
+ pthread_spin_lock (&rootdir_mounts_node_lock);
+ prev = rootdir_mounts_node;
+ if (rootdir_mounts_node == NULL)
+ rootdir_mounts_node = np;
+ pthread_spin_unlock (&rootdir_mounts_node_lock);
+
+ if (prev != NULL)
+ {
+ procfs_cleanup (np);
+ np = prev;
+ }
+
+ return np;
+}
+
static error_t
rootdir_mounts_get_translator (void *hook, char **argz, size_t *argz_len)
{
@@ -451,18 +492,6 @@ rootdir_symlink_make_node (void *dir_hook, const void *entry_hook)
return np;
}
-static struct node *
-rootdir_translator_make_node (void *dir_hook, const void *entry_hook)
-{
- struct node *np = procfs_make_node (entry_hook, dir_hook);
- if (np)
- {
- procfs_node_chtype (np, S_IFREG | S_IPTRANS);
- procfs_node_chmod (np, 0444);
- }
- return np;
-}
-
static const struct procfs_dir_entry rootdir_entries[] = {
{
.name = "self",
@@ -530,7 +559,7 @@ static const struct procfs_dir_entry rootdir_entries[] = {
.get_translator = rootdir_mounts_get_translator,
},
.ops = {
- .make_node = rootdir_translator_make_node,
+ .make_node = rootdir_mounts_make_node,
.exists = rootdir_mounts_exists,
}
},