diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2013-11-21 00:24:23 +0100 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2013-11-21 00:25:16 +0100 |
commit | 4d550247ec47c862e034878efac62c8bc44fd68f (patch) | |
tree | 1fd56c2c0a881205ec2c35e9a98937f6542699a8 | |
parent | 314d3023d8cbfcd164fcd7a08827e2dc63feed22 (diff) | |
parent | dd1164c7a26e411c59154f0560717315b22bb014 (diff) |
Merge branch 'master' of git.debian.org:/git/pkg-hurd/hurd
-rw-r--r-- | debian/changelog | 7 | ||||
-rw-r--r-- | debian/control | 2 | ||||
-rw-r--r-- | debian/patches/exec_filename_fs.patch | 2 | ||||
-rw-r--r-- | debian/patches/rc.patch | 6 | ||||
-rw-r--r-- | procfs/rootdir.c | 55 |
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, } }, |