summaryrefslogtreecommitdiff
path: root/debian/patches/procfs-filesystems.patch
diff options
context:
space:
mode:
authorJustus Winter <4winter@informatik.uni-hamburg.de>2014-09-22 11:23:52 +0200
committerJustus Winter <4winter@informatik.uni-hamburg.de>2014-09-22 11:23:52 +0200
commit6f2296c5ac808a50ca336b43235f91a9fc02347f (patch)
tree93717923c9f3e66b64c2568d33526019d88aab69 /debian/patches/procfs-filesystems.patch
parent1ca2f69fd0e5546f8da92ed48ac8e38d18fe1306 (diff)
new procfs patch series
Diffstat (limited to 'debian/patches/procfs-filesystems.patch')
-rw-r--r--debian/patches/procfs-filesystems.patch105
1 files changed, 0 insertions, 105 deletions
diff --git a/debian/patches/procfs-filesystems.patch b/debian/patches/procfs-filesystems.patch
deleted file mode 100644
index cfa28db3..00000000
--- a/debian/patches/procfs-filesystems.patch
+++ /dev/null
@@ -1,105 +0,0 @@
-From 4b30ee4249c752d935e1863365bef457a5389169 Mon Sep 17 00:00:00 2001
-From: Justus Winter <4winter@informatik.uni-hamburg.de>
-Date: Thu, 18 Sep 2014 19:38:04 +0200
-Subject: [PATCH 2/2] procfs: implement /proc/filesystems
-
-* procfs/rootdir.c (rootdir_gc_filesystems): New function.
-(rootdir_entries): Use the new function to implement /proc/filesystems.
----
- procfs/rootdir.c | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
- 1 file changed, 60 insertions(+), 1 deletion(-)
-
-diff --git a/procfs/rootdir.c b/procfs/rootdir.c
-index 0b13119..e500c3a 100644
---- a/procfs/rootdir.c
-+++ b/procfs/rootdir.c
-@@ -1,5 +1,5 @@
- /* Hurd /proc filesystem, permanent files of the root directory.
-- Copyright (C) 2010,13 Free Software Foundation, Inc.
-+ Copyright (C) 2010,13,14 Free Software Foundation, Inc.
-
- This file is part of the GNU Hurd.
-
-@@ -32,6 +32,7 @@
- #include <sys/stat.h>
- #include <argz.h>
- #include <ps.h>
-+#include <glob.h>
- #include "procfs.h"
- #include "procfs_dir.h"
- #include "main.h"
-@@ -535,6 +536,57 @@ rootdir_gc_slabinfo (void *hook, char **contents, ssize_t *contents_len)
- cache_info, cache_info_count * sizeof *cache_info);
- return err;
- }
-+
-+static error_t
-+rootdir_gc_filesystems (void *hook, char **contents, ssize_t *contents_len)
-+{
-+ error_t err = 0;
-+ size_t i;
-+ int glob_ret;
-+ glob_t matches;
-+ FILE *m;
-+
-+ m = open_memstream (contents, contents_len);
-+ if (m == NULL)
-+ return errno;
-+
-+ glob_ret = glob (_HURD "*fs", 0, NULL, &matches);
-+ switch (glob_ret)
-+ {
-+ case 0:
-+ for (i = 0; i < matches.gl_pathc; i++)
-+ {
-+ /* Get ith entry, shave off the prefix. */
-+ char *name = &matches.gl_pathv[i][sizeof _HURD - 1];
-+
-+ /* Linux naming convention is a bit inconsistent. */
-+ if (strncmp (name, "ext", 3) == 0
-+ || strcmp (name, "procfs") == 0)
-+ /* Drop the fs suffix. */
-+ name[strlen (name) - 2] = 0;
-+
-+ fprintf (m, "\t%s\n", name);
-+ }
-+
-+ globfree (&matches);
-+ break;
-+
-+ case GLOB_NOMATCH:
-+ /* Poor fellow. */
-+ break;
-+
-+ case GLOB_NOSPACE:
-+ err = ENOMEM;
-+ break;
-+
-+ default:
-+ /* This should not happen. */
-+ err = EGRATUITOUS;
-+ }
-+
-+ fclose (m);
-+ return err;
-+}
-
- /* Glue logic and entries table */
-
-@@ -635,6 +687,13 @@ static const struct procfs_dir_entry rootdir_entries[] = {
- .cleanup_contents = procfs_cleanup_contents_with_free,
- },
- },
-+ {
-+ .name = "filesystems",
-+ .hook = & (struct procfs_node_ops) {
-+ .get_contents = rootdir_gc_filesystems,
-+ .cleanup_contents = procfs_cleanup_contents_with_free,
-+ },
-+ },
- #ifdef PROFILE
- /* In order to get a usable gmon.out file, we must apparently use exit(). */
- {
---
-2.1.0
-