From c469cade06f72c66fca2f0278faed8804bcc6e66 Mon Sep 17 00:00:00 2001
From: Justus Winter <justus@gnupg.org>
Date: Thu, 21 Apr 2016 17:58:06 +0200
Subject: drop old patch series

---
 ...help-pass-cookie-to-the-callback-function.patch |  30 --
 ...fication0002-libnetfs-rename-error-to-err.patch | 259 --------------
 ...on0003-libnetfs-rename-diruser-to-dircred.patch | 226 ------------
 ...nification0004-libdiskfs-cosmetic-changes.patch | 314 -----------------
 ...-Unify-the-short-circuit-translator-logic.patch | 391 ---------------------
 debian/patches/series                              |   5 -
 6 files changed, 1225 deletions(-)
 delete mode 100644 debian/patches/fs_unification0001-libfshelp-pass-cookie-to-the-callback-function.patch
 delete mode 100644 debian/patches/fs_unification0002-libnetfs-rename-error-to-err.patch
 delete mode 100644 debian/patches/fs_unification0003-libnetfs-rename-diruser-to-dircred.patch
 delete mode 100644 debian/patches/fs_unification0004-libdiskfs-cosmetic-changes.patch
 delete mode 100644 debian/patches/fs_unification0005-YYY-Unify-the-short-circuit-translator-logic.patch

diff --git a/debian/patches/fs_unification0001-libfshelp-pass-cookie-to-the-callback-function.patch b/debian/patches/fs_unification0001-libfshelp-pass-cookie-to-the-callback-function.patch
deleted file mode 100644
index b6bee27c..00000000
--- a/debian/patches/fs_unification0001-libfshelp-pass-cookie-to-the-callback-function.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From c220ebb1de81ae4ee21943b7e2d81b9a45d28e53 Mon Sep 17 00:00:00 2001
-From: Justus Winter <justus@gnupg.org>
-Date: Wed, 20 Apr 2016 16:42:02 +0200
-Subject: [PATCH hurd 1/5] libfshelp: pass cookie to the callback function
-
-Previously, NULL was passed as cookie.  That notably caused some
-'peropen' objects to be created without context.
-
-* libfshelp/fetch-root.c (fshelp_fetch_root): Pass cookie to the
-callback function.
----
- libfshelp/fetch-root.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/libfshelp/fetch-root.c b/libfshelp/fetch-root.c
-index cc9fa50..eb0f315 100644
---- a/libfshelp/fetch-root.c
-+++ b/libfshelp/fetch-root.c
-@@ -134,7 +134,7 @@ fshelp_fetch_root (struct transbox *box, void *cookie,
- 
-       fds[STDERR_FILENO] = reauth (getdport (STDERR_FILENO));
- 
--      err = fshelp_start_translator_long (fetch_underlying, NULL,
-+      err = fshelp_start_translator_long (fetch_underlying, cookie,
- 					  argz, argz, argz_len,
- 					  fds, MACH_MSG_TYPE_COPY_SEND,
- 					  STDERR_FILENO + 1,
--- 
-2.1.4
-
diff --git a/debian/patches/fs_unification0002-libnetfs-rename-error-to-err.patch b/debian/patches/fs_unification0002-libnetfs-rename-error-to-err.patch
deleted file mode 100644
index 7503f1c5..00000000
--- a/debian/patches/fs_unification0002-libnetfs-rename-error-to-err.patch
+++ /dev/null
@@ -1,259 +0,0 @@
-From eac2e69368d4380eeae9bae285ed8f97a19cd528 Mon Sep 17 00:00:00 2001
-From: Justus Winter <justus@gnupg.org>
-Date: Mon, 18 Apr 2016 19:00:31 +0200
-Subject: [PATCH hurd 2/5] libnetfs: rename 'error' to 'err'
-
-* libnetfs/dir-lookup.c (netfs_S_dir_lookup): Rename 'error' to 'err'.
----
- libnetfs/dir-lookup.c | 92 +++++++++++++++++++++++++--------------------------
- 1 file changed, 46 insertions(+), 46 deletions(-)
-
-diff --git a/libnetfs/dir-lookup.c b/libnetfs/dir-lookup.c
-index cbe2941..9a92c29 100644
---- a/libnetfs/dir-lookup.c
-+++ b/libnetfs/dir-lookup.c
-@@ -48,7 +48,7 @@ netfs_S_dir_lookup (struct protid *diruser,
-   struct node *dnp, *np;
-   char *nextname;
-   char *relpath;
--  error_t error;
-+  error_t err;
-   struct protid *newpi = NULL;
-   struct iouser *user;
- 
-@@ -132,7 +132,7 @@ netfs_S_dir_lookup (struct protid *diruser,
- 	      strcpy (retry_name, "/");
- 	    else if (!lastcomp)
- 	      strcpy (retry_name, nextname);
--	    error = 0;
-+	    err = 0;
- 	    pthread_mutex_unlock (&dnp->lock);
- 	    goto out;
- 	  }
-@@ -148,40 +148,40 @@ netfs_S_dir_lookup (struct protid *diruser,
- 	      strcpy (retry_name, "/");
- 	    else if (!lastcomp)
- 	      strcpy (retry_name, nextname);
--	    error = 0;
-+	    err = 0;
- 	    pthread_mutex_unlock (&dnp->lock);
- 	    goto out;
- 	  }
- 	else
- 	  /* We are global root */
- 	  {
--	    error = 0;
-+	    err = 0;
- 	    np = dnp;
- 	    netfs_nref (np);
- 	  }
-       else
- 	/* Attempt a lookup on the next pathname component. */
--	error = netfs_attempt_lookup (diruser->user, dnp, filename, &np);
-+	err = netfs_attempt_lookup (diruser->user, dnp, filename, &np);
- 
-       /* At this point, DNP is unlocked */
- 
-       /* Implement O_EXCL flag here */
--      if (lastcomp && create && excl && !error)
--	error = EEXIST;
-+      if (lastcomp && create && excl && !err)
-+	err = EEXIST;
- 
-       /* Create the new node if necessary */
--      if (lastcomp && create && error == ENOENT)
-+      if (lastcomp && create && err == ENOENT)
- 	{
- 	  mode &= ~(S_IFMT | S_ISPARE | S_ISVTX);
- 	  mode |= S_IFREG;
- 	  pthread_mutex_lock (&dnp->lock);
--	  error = netfs_attempt_create_file (diruser->user, dnp,
--					     filename, mode, &np);
-+	  err = netfs_attempt_create_file (diruser->user, dnp,
-+					   filename, mode, &np);
- 
- 	  /* If someone has already created the file (between our lookup
- 	     and this create) then we just got EEXIST.  If we are
- 	     EXCL, that's fine; otherwise, we have to retry the lookup. */
--	  if (error == EEXIST && !excl)
-+	  if (err == EEXIST && !excl)
- 	    {
- 	      pthread_mutex_lock (&dnp->lock);
- 	      goto retry_lookup;
-@@ -191,11 +191,11 @@ netfs_S_dir_lookup (struct protid *diruser,
- 	}
- 
-       /* All remaining errors get returned to the user */
--      if (error)
-+      if (err)
- 	goto out;
- 
--      error = netfs_validate_stat (np, diruser->user);
--      if (error)
-+      err = netfs_validate_stat (np, diruser->user);
-+      if (err)
- 	goto out;
- 
-       if ((((flags & O_NOTRANS) == 0) || !lastcomp || mustbedir)
-@@ -251,21 +251,21 @@ netfs_S_dir_lookup (struct protid *diruser,
- 
- 	  /* Create an unauthenticated port for DNP, and then
- 	     unlock it. */
--	  error = iohelp_create_empty_iouser (&user);
--	  if (! error)
-+	  err = iohelp_create_empty_iouser (&user);
-+	  if (! err)
- 	    {
- 	      newpi = netfs_make_protid (netfs_make_peropen (dnp, 0,
- 							     diruser->po),
- 					 user);
- 	      if (! newpi)
- 	        {
--		  error = errno;
-+		  err = errno;
- 		  iohelp_free_iouser (user);
- 		}
- 	    }
- 
- 	  boolean_t register_translator = 0;
--	  if (! error)
-+	  if (! err)
- 	    {
- 	      dirport = ports_get_send_right (newpi);
- 
-@@ -275,24 +275,24 @@ netfs_S_dir_lookup (struct protid *diruser,
- 		 translators.  */
- 	      register_translator = np->transbox.active == MACH_PORT_NULL;
- 
--	      error = fshelp_fetch_root (&np->transbox, diruser->po,
--					 dirport,
--					 diruser->user,
--					 lastcomp ? flags : 0,
--					 ((np->nn_translated & S_IPTRANS)
--					 ? _netfs_translator_callback1
--					   : short_circuited_callback1),
--					 _netfs_translator_callback2,
--					 do_retry, retry_name, retry_port);
-+	      err = fshelp_fetch_root (&np->transbox, diruser->po,
-+				       dirport,
-+				       diruser->user,
-+				       lastcomp ? flags : 0,
-+				       ((np->nn_translated & S_IPTRANS)
-+					? _netfs_translator_callback1
-+					: short_circuited_callback1),
-+				       _netfs_translator_callback2,
-+				       do_retry, retry_name, retry_port);
- 	      /* fetch_root copies DIRPORT for success, so we always should
- 		 deallocate our send right.  */
- 	      mach_port_deallocate (mach_task_self (), dirport);
- 	    }
- 
--	  if (error != ENOENT)
-+	  if (err != ENOENT)
- 	    {
- 	      *retry_port_type = MACH_MSG_TYPE_MOVE_SEND;
--	      if (!error)
-+	      if (!err)
- 		{
- 		  char *end = strchr (retry_name, '\0');
- 		  if (mustbedir)
-@@ -326,12 +326,12 @@ netfs_S_dir_lookup (struct protid *diruser,
- 		  else
- 		      asprintf (&complete_path, "%s/%s", diruser->po->path, translator_path);
- 
--		  error = fshelp_set_active_translator (&newpi->pi,
--							complete_path,
--							np->transbox.active);
-+		  err = fshelp_set_active_translator (&newpi->pi,
-+						      complete_path,
-+						      np->transbox.active);
- 		  if (complete_path != translator_path)
- 		    free(complete_path);
--		  if (error)
-+		  if (err)
- 		    {
- 		      ports_port_deref (newpi);
- 		      goto out;
-@@ -346,7 +346,7 @@ netfs_S_dir_lookup (struct protid *diruser,
- 
- 	  /* ENOENT means there was a hiccup, and the translator vanished
- 	     while NP was unlocked inside fshelp_fetch_root; continue as normal. */
--	  error = 0;
-+	  err = 0;
- 	}
- 
-       if (S_ISLNK (np->nn_translated)
-@@ -360,7 +360,7 @@ netfs_S_dir_lookup (struct protid *diruser,
- 	  /* Handle symlink interpretation */
- 	  if (nsymlinks++ > netfs_maxsymlinks)
- 	    {
--	      error = ELOOP;
-+	      err = ELOOP;
- 	      goto out;
- 	    }
- 
-@@ -370,8 +370,8 @@ netfs_S_dir_lookup (struct protid *diruser,
- 	  newnamelen = nextnamelen + linklen + 1 + 1;
- 	  linkbuf = alloca (newnamelen);
- 
--	  error = netfs_attempt_readlink (diruser->user, np, linkbuf);
--	  if (error)
-+	  err = netfs_attempt_readlink (diruser->user, np, linkbuf);
-+	  if (err)
- 	    goto out;
- 
- 	  if (nextname)
-@@ -436,19 +436,19 @@ netfs_S_dir_lookup (struct protid *diruser,
-       netfs_validate_stat (np, diruser->user);
-       if (!S_ISDIR (np->nn_stat.st_mode))
- 	{
--	  error = ENOTDIR;
-+	  err = ENOTDIR;
- 	  goto out;
- 	}
-     }
--  error = netfs_check_open_permissions (diruser->user, np,
--					flags, newnode);
--  if (error)
-+  err = netfs_check_open_permissions (diruser->user, np,
-+				      flags, newnode);
-+  if (err)
-     goto out;
- 
-   flags &= ~OPENONLY_STATE_MODES;
- 
--  error = iohelp_dup_iouser (&user, diruser->user);
--  if (error)
-+  err = iohelp_dup_iouser (&user, diruser->user);
-+  if (err)
-     goto out;
- 
-   newpi = netfs_make_protid (netfs_make_peropen (np, flags, diruser->po),
-@@ -456,7 +456,7 @@ netfs_S_dir_lookup (struct protid *diruser,
-   if (! newpi)
-     {
-       iohelp_free_iouser (user);
--      error = errno;
-+      err = errno;
-       goto out;
-     }
- 
-@@ -474,7 +474,7 @@ netfs_S_dir_lookup (struct protid *diruser,
-     }
- 
-   if (! newpi->po->path)
--    error = errno;
-+    err = errno;
- 
-   *retry_port = ports_get_right (newpi);
-   ports_port_deref (newpi);
-@@ -485,5 +485,5 @@ netfs_S_dir_lookup (struct protid *diruser,
-   if (dnp)
-     netfs_nrele (dnp);
-   free (relpath);
--  return error;
-+  return err;
- }
--- 
-2.1.4
-
diff --git a/debian/patches/fs_unification0003-libnetfs-rename-diruser-to-dircred.patch b/debian/patches/fs_unification0003-libnetfs-rename-diruser-to-dircred.patch
deleted file mode 100644
index 53799235..00000000
--- a/debian/patches/fs_unification0003-libnetfs-rename-diruser-to-dircred.patch
+++ /dev/null
@@ -1,226 +0,0 @@
-From c4880bff7005cebb12f77360566624c91f1a76d4 Mon Sep 17 00:00:00 2001
-From: Justus Winter <justus@gnupg.org>
-Date: Mon, 18 Apr 2016 19:06:59 +0200
-Subject: [PATCH hurd 3/5] libnetfs: rename 'diruser' to 'dircred'
-
-* libnetfs/dir-lookup.c (netfs_S_dir_lookup): Rename 'diruser' to
-'dircred'.
----
- libnetfs/dir-lookup.c | 58 +++++++++++++++++++++++++--------------------------
- 1 file changed, 29 insertions(+), 29 deletions(-)
-
-diff --git a/libnetfs/dir-lookup.c b/libnetfs/dir-lookup.c
-index 9a92c29..caeb151 100644
---- a/libnetfs/dir-lookup.c
-+++ b/libnetfs/dir-lookup.c
-@@ -30,7 +30,7 @@
- #include "misc.h"
- 
- error_t
--netfs_S_dir_lookup (struct protid *diruser,
-+netfs_S_dir_lookup (struct protid *dircred,
- 		    char *filename,
- 		    int flags,
- 		    mode_t mode,
-@@ -52,7 +52,7 @@ netfs_S_dir_lookup (struct protid *diruser,
-   struct protid *newpi = NULL;
-   struct iouser *user;
- 
--  if (!diruser)
-+  if (!dircred)
-     return EOPNOTSUPP;
- 
-   create = (flags & O_CREAT);
-@@ -62,7 +62,7 @@ netfs_S_dir_lookup (struct protid *diruser,
-   while (*filename == '/')
-     filename++;
- 
--  /* Preserve the path relative to diruser->po->path.  */
-+  /* Preserve the path relative to dircred->po->path.  */
-   relpath = strdup (filename);
-   if (! relpath)
-     return ENOMEM;
-@@ -79,13 +79,13 @@ netfs_S_dir_lookup (struct protid *diruser,
-     {
-       /* Set things up in the state expected by the code from gotit: on. */
-       dnp = 0;
--      np = diruser->po->np;
-+      np = dircred->po->np;
-       pthread_mutex_lock (&np->lock);
-       netfs_nref (np);
-       goto gotit;
-     }
- 
--  dnp = diruser->po->np;
-+  dnp = dircred->po->np;
-   pthread_mutex_lock (&dnp->lock);
- 
-   netfs_nref (dnp);		/* acquire a reference for later netfs_nput */
-@@ -120,13 +120,13 @@ netfs_S_dir_lookup (struct protid *diruser,
- 
-     retry_lookup:
- 
--      if ((dnp == netfs_root_node || dnp == diruser->po->shadow_root)
-+      if ((dnp == netfs_root_node || dnp == dircred->po->shadow_root)
- 	  && filename[0] == '.' && filename[1] == '.' && filename[2] == '\0')
--	if (dnp == diruser->po->shadow_root)
-+	if (dnp == dircred->po->shadow_root)
- 	  /* We're at the root of a shadow tree.  */
- 	  {
- 	    *do_retry = FS_RETRY_REAUTH;
--	    *retry_port = diruser->po->shadow_root_parent;
-+	    *retry_port = dircred->po->shadow_root_parent;
- 	    *retry_port_type = MACH_MSG_TYPE_COPY_SEND;
- 	    if (lastcomp && mustbedir) /* Trailing slash.  */
- 	      strcpy (retry_name, "/");
-@@ -136,13 +136,13 @@ netfs_S_dir_lookup (struct protid *diruser,
- 	    pthread_mutex_unlock (&dnp->lock);
- 	    goto out;
- 	  }
--	else if (diruser->po->root_parent != MACH_PORT_NULL)
--	  /* We're at a real translator root; even if DIRUSER->po has a
-+	else if (dircred->po->root_parent != MACH_PORT_NULL)
-+	  /* We're at a real translator root; even if DIRCRED->po has a
- 	     shadow root, we can get here if its in a directory that was
- 	     renamed out from under it...  */
- 	  {
- 	    *do_retry = FS_RETRY_REAUTH;
--	    *retry_port = diruser->po->root_parent;
-+	    *retry_port = dircred->po->root_parent;
- 	    *retry_port_type = MACH_MSG_TYPE_COPY_SEND;
- 	    if (lastcomp && mustbedir) /* Trailing slash.  */
- 	      strcpy (retry_name, "/");
-@@ -161,7 +161,7 @@ netfs_S_dir_lookup (struct protid *diruser,
- 	  }
-       else
- 	/* Attempt a lookup on the next pathname component. */
--	err = netfs_attempt_lookup (diruser->user, dnp, filename, &np);
-+	err = netfs_attempt_lookup (dircred->user, dnp, filename, &np);
- 
-       /* At this point, DNP is unlocked */
- 
-@@ -175,7 +175,7 @@ netfs_S_dir_lookup (struct protid *diruser,
- 	  mode &= ~(S_IFMT | S_ISPARE | S_ISVTX);
- 	  mode |= S_IFREG;
- 	  pthread_mutex_lock (&dnp->lock);
--	  err = netfs_attempt_create_file (diruser->user, dnp,
-+	  err = netfs_attempt_create_file (dircred->user, dnp,
- 					   filename, mode, &np);
- 
- 	  /* If someone has already created the file (between our lookup
-@@ -194,7 +194,7 @@ netfs_S_dir_lookup (struct protid *diruser,
-       if (err)
- 	goto out;
- 
--      err = netfs_validate_stat (np, diruser->user);
-+      err = netfs_validate_stat (np, dircred->user);
-       if (err)
- 	goto out;
- 
-@@ -216,7 +216,7 @@ netfs_S_dir_lookup (struct protid *diruser,
- 	      struct node *np = cookie1;
- 	      error_t err;
- 
--	      err = netfs_validate_stat (np, diruser->user);
-+	      err = netfs_validate_stat (np, dircred->user);
- 	      if (err)
- 		return err;
- 
-@@ -255,7 +255,7 @@ netfs_S_dir_lookup (struct protid *diruser,
- 	  if (! err)
- 	    {
- 	      newpi = netfs_make_protid (netfs_make_peropen (dnp, 0,
--							     diruser->po),
-+							     dircred->po),
- 					 user);
- 	      if (! newpi)
- 	        {
-@@ -275,9 +275,9 @@ netfs_S_dir_lookup (struct protid *diruser,
- 		 translators.  */
- 	      register_translator = np->transbox.active == MACH_PORT_NULL;
- 
--	      err = fshelp_fetch_root (&np->transbox, diruser->po,
-+	      err = fshelp_fetch_root (&np->transbox, dircred->po,
- 				       dirport,
--				       diruser->user,
-+				       dircred->user,
- 				       lastcomp ? flags : 0,
- 				       ((np->nn_translated & S_IPTRANS)
- 					? _netfs_translator_callback1
-@@ -320,11 +320,11 @@ netfs_S_dir_lookup (struct protid *diruser,
- 		      translator_path[end - filename_start] = '\0';
- 		    }
- 
--		  if (diruser->po->path == NULL || !strcmp (diruser->po->path,"."))
--		      /* diruser is the root directory.  */
-+		  if (dircred->po->path == NULL || !strcmp (dircred->po->path,"."))
-+		      /* dircred is the root directory.  */
- 		      complete_path = translator_path;
- 		  else
--		      asprintf (&complete_path, "%s/%s", diruser->po->path, translator_path);
-+		      asprintf (&complete_path, "%s/%s", dircred->po->path, translator_path);
- 
- 		  err = fshelp_set_active_translator (&newpi->pi,
- 						      complete_path,
-@@ -370,7 +370,7 @@ netfs_S_dir_lookup (struct protid *diruser,
- 	  newnamelen = nextnamelen + linklen + 1 + 1;
- 	  linkbuf = alloca (newnamelen);
- 
--	  err = netfs_attempt_readlink (diruser->user, np, linkbuf);
-+	  err = netfs_attempt_readlink (dircred->user, np, linkbuf);
- 	  if (err)
- 	    goto out;
- 
-@@ -433,25 +433,25 @@ netfs_S_dir_lookup (struct protid *diruser,
- 
-   if (mustbedir)
-     {
--      netfs_validate_stat (np, diruser->user);
-+      netfs_validate_stat (np, dircred->user);
-       if (!S_ISDIR (np->nn_stat.st_mode))
- 	{
- 	  err = ENOTDIR;
- 	  goto out;
- 	}
-     }
--  err = netfs_check_open_permissions (diruser->user, np,
-+  err = netfs_check_open_permissions (dircred->user, np,
- 				      flags, newnode);
-   if (err)
-     goto out;
- 
-   flags &= ~OPENONLY_STATE_MODES;
- 
--  err = iohelp_dup_iouser (&user, diruser->user);
-+  err = iohelp_dup_iouser (&user, dircred->user);
-   if (err)
-     goto out;
- 
--  newpi = netfs_make_protid (netfs_make_peropen (np, flags, diruser->po),
-+  newpi = netfs_make_protid (netfs_make_peropen (np, flags, dircred->po),
- 			     user);
-   if (! newpi)
-     {
-@@ -461,16 +461,16 @@ netfs_S_dir_lookup (struct protid *diruser,
-     }
- 
-   free (newpi->po->path);
--  if (diruser->po->path == NULL || !strcmp (diruser->po->path,"."))
-+  if (dircred->po->path == NULL || !strcmp (dircred->po->path,"."))
-     {
--      /* diruser is the root directory.  */
-+      /* dircred is the root directory.  */
-       newpi->po->path = relpath;
-       relpath = NULL; /* Do not free relpath.  */
-     }
-   else
-     {
-       newpi->po->path = NULL;
--      asprintf (&newpi->po->path, "%s/%s", diruser->po->path, relpath);
-+      asprintf (&newpi->po->path, "%s/%s", dircred->po->path, relpath);
-     }
- 
-   if (! newpi->po->path)
--- 
-2.1.4
-
diff --git a/debian/patches/fs_unification0004-libdiskfs-cosmetic-changes.patch b/debian/patches/fs_unification0004-libdiskfs-cosmetic-changes.patch
deleted file mode 100644
index 93aa5c5e..00000000
--- a/debian/patches/fs_unification0004-libdiskfs-cosmetic-changes.patch
+++ /dev/null
@@ -1,314 +0,0 @@
-From db244ee3e14f1ec6a4fb9082365bde6d1c939690 Mon Sep 17 00:00:00 2001
-From: Justus Winter <justus@gnupg.org>
-Date: Mon, 18 Apr 2016 19:33:03 +0200
-Subject: [PATCH hurd 4/5] libdiskfs: cosmetic changes
-
-* libdiskfs/dir-lookup.c (diskfs_S_dir_lookup): Rename identifiers to
-be more idiomatic and closer to libnetfs and the interface
-specification.  Massage the code so that it aligns closer with the
-dir_lookup server function in libnetfs.  It should not change the
-behavior.
----
- libdiskfs/dir-lookup.c | 113 +++++++++++++++++++++++++------------------------
- 1 file changed, 57 insertions(+), 56 deletions(-)
-
-diff --git a/libdiskfs/dir-lookup.c b/libdiskfs/dir-lookup.c
-index c50970d..72ada0f 100644
---- a/libdiskfs/dir-lookup.c
-+++ b/libdiskfs/dir-lookup.c
-@@ -27,19 +27,19 @@
- #include "fs_S.h"
- 
- /* Implement dir_lookup as described in <hurd/fs.defs>. */
--kern_return_t
-+error_t
- diskfs_S_dir_lookup (struct protid *dircred,
--		     char *path,
-+		     char *filename,
- 		     int flags,
- 		     mode_t mode,
--		     enum retry_type *retry,
--		     char *retryname,
--		     file_t *returned_port,
--		     mach_msg_type_name_t *returned_port_poly)
-+		     retry_type *do_retry,
-+		     char *retry_name,
-+		     mach_port_t *retry_port,
-+		     mach_msg_type_name_t *retry_port_type)
- {
-   struct node *dnp;
-   struct node *np;
--  int nsymlink = 0;
-+  int nsymlinks = 0;
-   char *nextname;
-   char *relpath;
-   int nextnamelen;
-@@ -66,23 +66,23 @@ diskfs_S_dir_lookup (struct protid *dircred,
-   excl = (flags & O_EXCL);
- 
-   /* Skip leading slashes */
--  while (path[0] == '/')
--    path++;
-+  while (*filename == '/')
-+    filename++;
- 
--  /* Preserve the path relative to diruser->po->path.  */
--  relpath = strdup (path);
-+  /* Preserve the path relative to dircred->po->path.  */
-+  relpath = strdup (filename);
-   if (! relpath)
-     return ENOMEM;
- 
--  /* Keep a pointer to the start of the path for length
-+  /* Keep a pointer to the start of the filename for length
-      calculations.  */
--  char *path_start = path;
-+  char *filename_start = filename;
- 
--  *returned_port_poly = MACH_MSG_TYPE_MAKE_SEND;
--  *retry = FS_RETRY_NORMAL;
--  retryname[0] = '\0';
-+  *retry_port_type = MACH_MSG_TYPE_MAKE_SEND;
-+  *do_retry = FS_RETRY_NORMAL;
-+  *retry_name = '\0';
- 
--  if (path[0] == '\0')
-+  if (*filename == '\0')
-     {
-       /* Set things up in the state expected by the code from gotit: on. */
-       dnp = 0;
-@@ -93,9 +93,7 @@ diskfs_S_dir_lookup (struct protid *dircred,
-     }
- 
-   dnp = dircred->po->np;
--
-   pthread_mutex_lock (&dnp->lock);
--  np = 0;
- 
-   diskfs_nref (dnp);		/* acquire a reference for later diskfs_nput */
- 
-@@ -104,7 +102,7 @@ diskfs_S_dir_lookup (struct protid *dircred,
-       assert (!lastcomp);
- 
-       /* Find the name of the next pathname component */
--      nextname = index (path, '/');
-+      nextname = index (filename, '/');
- 
-       if (nextname)
- 	{
-@@ -132,10 +130,10 @@ diskfs_S_dir_lookup (struct protid *dircred,
- 	{
- 	  if (!ds)
- 	    ds = alloca (diskfs_dirstat_size);
--	  err = diskfs_lookup (dnp, path, CREATE, &np, ds, dircred);
-+	  err = diskfs_lookup (dnp, filename, CREATE, &np, ds, dircred);
- 	}
-       else
--	err = diskfs_lookup (dnp, path, LOOKUP, &np, 0, dircred);
-+	err = diskfs_lookup (dnp, filename, LOOKUP, &np, 0, dircred);
- 
-       if (lastcomp && create && excl && (!err || err == EAGAIN))
- 	err = EEXIST;
-@@ -158,13 +156,13 @@ diskfs_S_dir_lookup (struct protid *dircred,
- 	      else
- 		{
- 		  /* Punt the client up to the shadow root parent.  */
--		  *retry = FS_RETRY_REAUTH;
--		  *returned_port = dircred->po->shadow_root_parent;
--		  *returned_port_poly = MACH_MSG_TYPE_COPY_SEND;
-+		  *do_retry = FS_RETRY_REAUTH;
-+		  *retry_port = dircred->po->shadow_root_parent;
-+		  *retry_port_type = MACH_MSG_TYPE_COPY_SEND;
- 		  if (lastcomp && mustbedir) /* Trailing slash.  */
--		    strcpy (retryname, "/");
-+		    strcpy (retry_name, "/");
- 		  else if (!lastcomp)
--		    strcpy (retryname, nextname);
-+		    strcpy (retry_name, nextname);
- 		  err = 0;
- 		  goto out;
- 		}
-@@ -174,13 +172,13 @@ diskfs_S_dir_lookup (struct protid *dircred,
- 	       shadow root, we can get here if its in a directory that was
- 	    renamed out from under it...  */
- 	    {
--	      *retry = FS_RETRY_REAUTH;
--	      *returned_port = dircred->po->root_parent;
--	      *returned_port_poly = MACH_MSG_TYPE_COPY_SEND;
-+	      *do_retry = FS_RETRY_REAUTH;
-+	      *retry_port = dircred->po->root_parent;
-+	      *retry_port_type = MACH_MSG_TYPE_COPY_SEND;
- 	      if (lastcomp && mustbedir) /* Trailing slash.  */
--		strcpy (retryname, "/");
-+		strcpy (retry_name, "/");
- 	      else if (!lastcomp)
--		strcpy (retryname, nextname);
-+		strcpy (retry_name, nextname);
- 	      err = 0;
- 	      goto out;
- 	    }
-@@ -200,7 +198,7 @@ diskfs_S_dir_lookup (struct protid *dircred,
- 	    {
- 	      mode &= ~(S_IFMT | S_ISPARE | S_ISVTX | S_ITRANS);
- 	      mode |= S_IFREG;
--	      err = diskfs_create_node (dnp, path, mode, &np, dircred, ds);
-+	      err = diskfs_create_node (dnp, filename, mode, &np, dircred, ds);
- 	      if (diskfs_synchronous)
- 		{
- 		  diskfs_file_update (dnp, 1);
-@@ -228,7 +226,7 @@ diskfs_S_dir_lookup (struct protid *dircred,
- 	  struct iouser *user;
- 
- 	  /* A callback function for short-circuited translators.
--	     Symlink & ifsock are handled elsewhere.  */
-+	     S_ISLNK and S_IFSOCK are handled elsewhere.  */
- 	  error_t short_circuited_callback1 (void *cookie1, void *cookie2,
- 					     uid_t *uid, gid_t *gid,
- 					     char **argz, size_t *argz_len)
-@@ -239,17 +237,19 @@ diskfs_S_dir_lookup (struct protid *dircred,
- 		{
- 		case S_IFCHR:
- 		case S_IFBLK:
--		  asprintf (argz, "%s%c%d%c%d",
--			    (S_ISCHR (node->dn_stat.st_mode)
--			     ? _HURD_CHRDEV : _HURD_BLKDEV),
--			    0, major (node->dn_stat.st_rdev),
--			    0, minor (node->dn_stat.st_rdev));
-+		  if (asprintf (argz, "%s%c%d%c%d",
-+				(S_ISCHR (node->dn_stat.st_mode)
-+				 ? _HURD_CHRDEV : _HURD_BLKDEV),
-+				0, major (node->dn_stat.st_rdev),
-+				0, minor (node->dn_stat.st_rdev)) < 0)
-+		    return ENOMEM;
- 		  *argz_len = strlen (*argz) + 1;
- 		  *argz_len += strlen (*argz + *argz_len) + 1;
- 		  *argz_len += strlen (*argz + *argz_len) + 1;
- 		  break;
- 		case S_IFIFO:
--		  asprintf (argz, "%s", _HURD_FIFO);
-+		  if (asprintf (argz, "%s", _HURD_FIFO) < 0)
-+		    return ENOMEM;
- 		  *argz_len = strlen (*argz) + 1;
- 		  break;
- 		default:
-@@ -299,7 +299,7 @@ diskfs_S_dir_lookup (struct protid *dircred,
- 				      ? _diskfs_translator_callback1
- 				      : short_circuited_callback1),
- 				     _diskfs_translator_callback2,
--				     retry, retryname, returned_port);
-+				     do_retry, retry_name, retry_port);
- 
- 	  /* fetch_root copies DIRPORT for success, so we always should
- 	     deallocate our send right.  */
-@@ -307,14 +307,14 @@ diskfs_S_dir_lookup (struct protid *dircred,
- 
- 	  if (err != ENOENT)
- 	    {
--	      *returned_port_poly = MACH_MSG_TYPE_MOVE_SEND;
-+	      *retry_port_type = MACH_MSG_TYPE_MOVE_SEND;
- 	      if (!err)
- 		{
--		  char *end = strchr (retryname, '\0');
-+		  char *end = strchr (retry_name, '\0');
- 		  if (mustbedir)
- 		    *end++ = '/'; /* Trailing slash.  */
- 		  else if (!lastcomp) {
--		    if (end != retryname)
-+		    if (end != retry_name)
- 		      *end++ = '/';
- 		    strcpy (end, nextname);
- 		  }
-@@ -333,7 +333,7 @@ diskfs_S_dir_lookup (struct protid *dircred,
- 		      char *end = nextname;
- 		      while (*end != 0)
- 			end--;
--		      translator_path[end - path_start] = '\0';
-+		      translator_path[end - filename_start] = '\0';
- 		    }
- 
- 		  if (dircred->po->path == NULL || !strcmp (dircred->po->path,"."))
-@@ -363,7 +363,7 @@ diskfs_S_dir_lookup (struct protid *dircred,
- 	  err = 0;
- 	  if (np != dnp)
- 	    {
--	      if (!strcmp (path, ".."))
-+	      if (!strcmp (filename, ".."))
- 		pthread_mutex_lock (&dnp->lock);
- 	      else
- 		{
-@@ -384,7 +384,7 @@ diskfs_S_dir_lookup (struct protid *dircred,
- 	{
- 	  /* Handle symlink interpretation */
- 
--	  if (nsymlink++ > diskfs_maxsymlinks)
-+	  if (nsymlinks++ > diskfs_maxsymlinks)
- 	    {
- 	      err = ELOOP;
- 	      goto out;
-@@ -412,7 +412,7 @@ diskfs_S_dir_lookup (struct protid *dircred,
- 	    goto out;
- 
- 	  if (np->dn_stat.st_size == 0)	/* symlink to "" */
--	    path = nextname;
-+	    filename = nextname;
- 	  else
- 	    {
- 	      if (nextname)
-@@ -432,13 +432,13 @@ diskfs_S_dir_lookup (struct protid *dircred,
- 	      if (pathbuf[0] == '/')
- 		{
- 		  /* Punt to the caller.  */
--		  *retry = FS_RETRY_MAGICAL;
--		  *returned_port = MACH_PORT_NULL;
--		  strcpy (retryname, pathbuf);
-+		  *do_retry = FS_RETRY_MAGICAL;
-+		  *retry_port = MACH_PORT_NULL;
-+		  strcpy (retry_name, pathbuf);
- 		  goto out;
- 		}
- 
--	      path = pathbuf;
-+	      filename = pathbuf;
- 	      mustbedir = 0;
- 	    }
- 
-@@ -448,7 +448,7 @@ diskfs_S_dir_lookup (struct protid *dircred,
- 	  diskfs_nput (np);
- 	  np = 0;
- 
--	  if (path == 0)	/* symlink to "" was the last component */
-+	  if (filename == 0)	/* symlink to "" was the last component */
- 	    {
- 	      np = dnp;
- 	      dnp = 0;
-@@ -458,7 +458,7 @@ diskfs_S_dir_lookup (struct protid *dircred,
-       else
- 	{
- 	  /* Handle normal nodes */
--	  path = nextname;
-+	  filename = nextname;
- 	  if (np == dnp)
- 	    diskfs_nrele (dnp);
- 	  else
-@@ -471,7 +471,8 @@ diskfs_S_dir_lookup (struct protid *dircred,
- 	  else
- 	    dnp = 0;
- 	}
--    } while (path && *path);
-+    }
-+  while (filename && *filename);
- 
-   /* At this point, np is the node to return.  If newnode is set, then
-      we just created this node.  */
-@@ -553,7 +554,7 @@ diskfs_S_dir_lookup (struct protid *dircred,
-       if (! newpi->po->path)
- 	err = errno;
- 
--      *returned_port = ports_get_right (newpi);
-+      *retry_port = ports_get_right (newpi);
-       ports_port_deref (newpi);
-       newpi = 0;
-     }
--- 
-2.1.4
-
diff --git a/debian/patches/fs_unification0005-YYY-Unify-the-short-circuit-translator-logic.patch b/debian/patches/fs_unification0005-YYY-Unify-the-short-circuit-translator-logic.patch
deleted file mode 100644
index 560aa7d6..00000000
--- a/debian/patches/fs_unification0005-YYY-Unify-the-short-circuit-translator-logic.patch
+++ /dev/null
@@ -1,391 +0,0 @@
-From 01d2c455497b09f3dca87dfc061634c5d8d01cd9 Mon Sep 17 00:00:00 2001
-From: Justus Winter <justus@gnupg.org>
-Date: Mon, 18 Apr 2016 21:53:28 +0200
-Subject: [PATCH hurd 5/5] YYY Unify the short-circuit translator logic
-
-* libdiskfs/dir-lookup.c (short_circuited_callback1): Drop function.
-* libdiskfs/trans-callback.c
-* libfshelp/fetch-root.c
-* libfshelp/fshelp.h
-* libnetfs/dir-lookup.c
-* libnetfs/trans-callback.c
----
- libdiskfs/dir-lookup.c     | 61 ++++++++++++----------------------------------
- libdiskfs/fsys-getroot.c   | 13 +++++++---
- libdiskfs/trans-callback.c |  4 ++-
- libfshelp/fetch-root.c     | 39 +++++++++++++++++++++++++++++
- libfshelp/fshelp.h         | 16 ++++++++++++
- libnetfs/dir-lookup.c      | 53 +++++++---------------------------------
- libnetfs/fsys-getroot.c    |  7 +++++-
- libnetfs/trans-callback.c  |  4 ++-
- 8 files changed, 101 insertions(+), 96 deletions(-)
-
-diff --git a/libdiskfs/dir-lookup.c b/libdiskfs/dir-lookup.c
-index 72ada0f..8b43e27 100644
---- a/libdiskfs/dir-lookup.c
-+++ b/libdiskfs/dir-lookup.c
-@@ -20,6 +20,7 @@
- #include <fcntl.h>
- #include <string.h>
- #include <sys/file.h>
-+#include <hurd/fshelp.h>
- #include <hurd/fsys.h>
- #include <hurd/paths.h>
- 
-@@ -225,43 +226,6 @@ diskfs_S_dir_lookup (struct protid *dircred,
- 	  mach_port_t dirport;
- 	  struct iouser *user;
- 
--	  /* A callback function for short-circuited translators.
--	     S_ISLNK and S_IFSOCK are handled elsewhere.  */
--	  error_t short_circuited_callback1 (void *cookie1, void *cookie2,
--					     uid_t *uid, gid_t *gid,
--					     char **argz, size_t *argz_len)
--	    {
--	      struct node *node = cookie1;
--
--	      switch (node->dn_stat.st_mode & S_IFMT)
--		{
--		case S_IFCHR:
--		case S_IFBLK:
--		  if (asprintf (argz, "%s%c%d%c%d",
--				(S_ISCHR (node->dn_stat.st_mode)
--				 ? _HURD_CHRDEV : _HURD_BLKDEV),
--				0, major (node->dn_stat.st_rdev),
--				0, minor (node->dn_stat.st_rdev)) < 0)
--		    return ENOMEM;
--		  *argz_len = strlen (*argz) + 1;
--		  *argz_len += strlen (*argz + *argz_len) + 1;
--		  *argz_len += strlen (*argz + *argz_len) + 1;
--		  break;
--		case S_IFIFO:
--		  if (asprintf (argz, "%s", _HURD_FIFO) < 0)
--		    return ENOMEM;
--		  *argz_len = strlen (*argz) + 1;
--		  break;
--		default:
--		  return ENOENT;
--		}
--
--	      *uid = node->dn_stat.st_uid;
--	      *gid = node->dn_stat.st_gid;
--
--	      return 0;
--	    }
--
- 	  /* Create an unauthenticated port for DNP, and then
- 	     unlock it. */
- 	  err = iohelp_create_empty_iouser (&user);
-@@ -292,14 +256,21 @@ diskfs_S_dir_lookup (struct protid *dircred,
- 	  boolean_t register_translator =
- 	    np->transbox.active == MACH_PORT_NULL;
- 
--	  err = fshelp_fetch_root (&np->transbox, dircred->po,
--				     dirport, dircred->user,
--				     lastcomp ? flags : 0,
--				     ((np->dn_stat.st_mode & S_IPTRANS)
--				      ? _diskfs_translator_callback1
--				      : short_circuited_callback1),
--				     _diskfs_translator_callback2,
--				     do_retry, retry_name, retry_port);
-+	  struct fshelp_stat_cookie2 cookie = {
-+	    .statp = &np->dn_stat,
-+	    .modep = &np->dn_stat.st_mode,
-+	    .next = dircred->po,
-+	  };
-+	  err = fshelp_fetch_root (&np->transbox,
-+				   &cookie,
-+				   dirport,
-+				   dircred->user,
-+				   lastcomp ? flags : 0,
-+				   ((np->dn_stat.st_mode & S_IPTRANS)
-+				    ? _diskfs_translator_callback1
-+				    : fshelp_short_circuited_callback1),
-+				   _diskfs_translator_callback2,
-+				   do_retry, retry_name, retry_port);
- 
- 	  /* fetch_root copies DIRPORT for success, so we always should
- 	     deallocate our send right.  */
-diff --git a/libdiskfs/fsys-getroot.c b/libdiskfs/fsys-getroot.c
-index 401f103..6f93888 100644
---- a/libdiskfs/fsys-getroot.c
-+++ b/libdiskfs/fsys-getroot.c
-@@ -21,6 +21,7 @@
- 
- #include "priv.h"
- #include "fsys_S.h"
-+#include <hurd/fshelp.h>
- #include <hurd/fsys.h>
- #include <fcntl.h>
- 
-@@ -78,11 +79,15 @@ diskfs_S_fsys_getroot (struct diskfs_control *pt,
-        || fshelp_translated (&diskfs_root_node->transbox))
-       && !(flags & O_NOTRANS))
-     {
-+      struct fshelp_stat_cookie2 cookie = {
-+	.next = &peropen_context,
-+      };
-+
-       err = fshelp_fetch_root (&diskfs_root_node->transbox,
--				 &peropen_context, dotdot, &user, flags,
--				 _diskfs_translator_callback1,
--				 _diskfs_translator_callback2,
--				 retry, retryname, returned_port);
-+			       &cookie, dotdot, &user, flags,
-+			       _diskfs_translator_callback1,
-+			       _diskfs_translator_callback2,
-+			       retry, retryname, returned_port);
-       if (err != ENOENT)
- 	{
- 	  pthread_mutex_unlock (&diskfs_root_node->lock);
-diff --git a/libdiskfs/trans-callback.c b/libdiskfs/trans-callback.c
-index 283b184..15e8f9a 100644
---- a/libdiskfs/trans-callback.c
-+++ b/libdiskfs/trans-callback.c
-@@ -20,6 +20,7 @@
- 
- #include "priv.h"
- #include <fcntl.h>
-+#include <hurd/fshelp.h>
- 
- /* Callback function needed for calls to fshelp_fetch_root.  See
-    <hurd/fshelp.h> for the interface description.  */
-@@ -56,6 +57,7 @@ _diskfs_translator_callback2_fn (void *cookie1, void *cookie2,
- 				 mach_msg_type_name_t *underlying_type)
- {
-   struct node *np = cookie1;
-+  struct fshelp_stat_cookie2 *statc = cookie2;
-   struct protid *cred;
-   struct peropen *po;
-   error_t err;
-@@ -66,7 +68,7 @@ _diskfs_translator_callback2_fn (void *cookie1, void *cookie2,
-   if (err)
-     return err;
- 
--  err = diskfs_make_peropen (np, flags, cookie2, &po);
-+  err = diskfs_make_peropen (np, flags, statc->next, &po);
-   if (! err)
-     {
-       err = diskfs_create_protid (po, user, &cred);
-diff --git a/libfshelp/fetch-root.c b/libfshelp/fetch-root.c
-index eb0f315..dfd7477 100644
---- a/libfshelp/fetch-root.c
-+++ b/libfshelp/fetch-root.c
-@@ -20,6 +20,7 @@
- 
- #include <assert.h>
- #include <hurd/fsys.h>
-+#include <hurd/paths.h>
- #include <hurd/ports.h>
- #include <stdlib.h>
- #include <string.h>
-@@ -197,3 +198,41 @@ fshelp_fetch_root (struct transbox *box, void *cookie,
- 
-   return err;
- }
-+
-+/* A callback function for short-circuited translators.  S_ISLNK and
-+   S_IFSOCK must be handled elsewhere.  */
-+error_t
-+fshelp_short_circuited_callback1 (void *cookie1, void *cookie2,
-+				  uid_t *uid, gid_t *gid,
-+				  char **argz, size_t *argz_len)
-+{
-+  struct fshelp_stat_cookie2 *statc = cookie2;
-+
-+  switch (*statc->modep & S_IFMT)
-+    {
-+    case S_IFCHR:
-+    case S_IFBLK:
-+      if (asprintf (argz, "%s%c%d%c%d",
-+		    (S_ISCHR (*statc->modep)
-+		     ? _HURD_CHRDEV : _HURD_BLKDEV),
-+		    0, major (statc->statp->st_rdev),
-+		    0, minor (statc->statp->st_rdev)) < 0)
-+	return ENOMEM;
-+      *argz_len = strlen (*argz) + 1;
-+      *argz_len += strlen (*argz + *argz_len) + 1;
-+      *argz_len += strlen (*argz + *argz_len) + 1;
-+      break;
-+    case S_IFIFO:
-+      if (asprintf (argz, "%s", _HURD_FIFO) < 0)
-+	return ENOMEM;
-+      *argz_len = strlen (*argz) + 1;
-+      break;
-+    default:
-+      return ENOENT;
-+    }
-+
-+  *uid = statc->statp->st_uid;
-+  *gid = statc->statp->st_gid;
-+
-+  return 0;
-+}
-diff --git a/libfshelp/fshelp.h b/libfshelp/fshelp.h
-index d04c056..ecd9335 100644
---- a/libfshelp/fshelp.h
-+++ b/libfshelp/fshelp.h
-@@ -148,6 +148,22 @@ typedef error_t (*fshelp_fetch_root_callback1_t) (void *cookie1, void *cookie2,
- 						  uid_t *uid, gid_t *gid,
- 						  char **argz, size_t *argz_len);
- 
-+/* A cookie for fshelp_short_circuited_callback1.  Such a structure
-+   must be passed to the call to fshelp_fetch_root.  */
-+struct fshelp_stat_cookie2
-+{
-+  io_statbuf_t *statp;
-+  mode_t *modep;
-+  void *next;
-+};
-+
-+/* A callback function for short-circuited translators.  S_ISLNK and
-+   S_IFSOCK must be handled elsewhere.  */
-+error_t fshelp_short_circuited_callback1 (void *cookie1, void *cookie2,
-+					  uid_t *uid, gid_t *gid,
-+					  char **argz, size_t *argz_len);
-+
-+
- /* This routine is called by fshelp_fetch_root to fetch more information.
-    Return an unauthenticated node for the file itself in *UNDERLYING and
-    *UNDERLYING_TYPE (opened with FLAGS).  COOKIE1 is the cookie passed in
-diff --git a/libnetfs/dir-lookup.c b/libnetfs/dir-lookup.c
-index caeb151..3bcc745 100644
---- a/libnetfs/dir-lookup.c
-+++ b/libnetfs/dir-lookup.c
-@@ -207,48 +207,6 @@ netfs_S_dir_lookup (struct protid *dircred,
- 	{
- 	  mach_port_t dirport;
- 
--	  /* A callback function for short-circuited translators.
--	     S_ISLNK and S_IFSOCK are handled elsewhere. */
--	  error_t short_circuited_callback1 (void *cookie1, void *cookie2,
--					     uid_t *uid, gid_t *gid,
--					     char **argz, size_t *argz_len)
--	    {
--	      struct node *np = cookie1;
--	      error_t err;
--
--	      err = netfs_validate_stat (np, dircred->user);
--	      if (err)
--		return err;
--
--	      switch (np->nn_translated & S_IFMT)
--		{
--		case S_IFCHR:
--		case S_IFBLK:
--		  if (asprintf (argz, "%s%c%d%c%d",
--				(S_ISCHR (np->nn_translated)
--				 ? _HURD_CHRDEV : _HURD_BLKDEV),
--				0, major (np->nn_stat.st_rdev),
--				0, minor (np->nn_stat.st_rdev)) < 0)
--		    return ENOMEM;
--		  *argz_len = strlen (*argz) + 1;
--		  *argz_len += strlen (*argz + *argz_len) + 1;
--		  *argz_len += strlen (*argz + *argz_len) + 1;
--		  break;
--		case S_IFIFO:
--		  if (asprintf (argz, "%s", _HURD_FIFO) < 0)
--		    return ENOMEM;
--		  *argz_len = strlen (*argz) + 1;
--		  break;
--		default:
--		  return ENOENT;
--		}
--
--	      *uid = np->nn_stat.st_uid;
--	      *gid = np->nn_stat.st_gid;
--
--	      return 0;
--	    }
--
- 	  /* Create an unauthenticated port for DNP, and then
- 	     unlock it. */
- 	  err = iohelp_create_empty_iouser (&user);
-@@ -267,6 +225,12 @@ netfs_S_dir_lookup (struct protid *dircred,
- 	  boolean_t register_translator = 0;
- 	  if (! err)
- 	    {
-+	      struct fshelp_stat_cookie2 cookie = {
-+		.statp = &np->nn_stat,
-+		.modep = &np->nn_translated,
-+		.next = dircred->po,
-+	      };
-+
- 	      dirport = ports_get_send_right (newpi);
- 
- 	      /* Check if an active translator is currently running.  If
-@@ -275,13 +239,14 @@ netfs_S_dir_lookup (struct protid *dircred,
- 		 translators.  */
- 	      register_translator = np->transbox.active == MACH_PORT_NULL;
- 
--	      err = fshelp_fetch_root (&np->transbox, dircred->po,
-+	      err = fshelp_fetch_root (&np->transbox,
-+				       &cookie,
- 				       dirport,
- 				       dircred->user,
- 				       lastcomp ? flags : 0,
- 				       ((np->nn_translated & S_IPTRANS)
- 					? _netfs_translator_callback1
--					: short_circuited_callback1),
-+					: fshelp_short_circuited_callback1),
- 				       _netfs_translator_callback2,
- 				       do_retry, retry_name, retry_port);
- 	      /* fetch_root copies DIRPORT for success, so we always should
-diff --git a/libnetfs/fsys-getroot.c b/libnetfs/fsys-getroot.c
-index 2d02120..d919110 100644
---- a/libnetfs/fsys-getroot.c
-+++ b/libnetfs/fsys-getroot.c
-@@ -23,6 +23,7 @@
- #include "misc.h"
- #include "callbacks.h"
- #include <fcntl.h>
-+#include <hurd/fshelp.h>
- 
- error_t
- netfs_S_fsys_getroot (struct netfs_control *pt,
-@@ -67,8 +68,12 @@ netfs_S_fsys_getroot (struct netfs_control *pt,
-        || fshelp_translated (&netfs_root_node->transbox))
-       && !(flags & O_NOTRANS))
-     {
-+      struct fshelp_stat_cookie2 cookie = {
-+	.next = &peropen_context,
-+      };
-+
-       err = fshelp_fetch_root (&netfs_root_node->transbox,
--			       &peropen_context, dotdot, cred, flags,
-+			       &cookie, dotdot, cred, flags,
- 			       _netfs_translator_callback1,
- 			       _netfs_translator_callback2,
- 			       do_retry, retry_name, retry_port);
-diff --git a/libnetfs/trans-callback.c b/libnetfs/trans-callback.c
-index ed21aa2..99f4dc0 100644
---- a/libnetfs/trans-callback.c
-+++ b/libnetfs/trans-callback.c
-@@ -20,6 +20,7 @@
- 
- #include "priv.h"
- #include <fcntl.h>
-+#include <hurd/fshelp.h>
- 
- /* Callback function needed for calls to fshelp_fetch_root.  See
-    <hurd/fshelp.h> for the interface description.  */
-@@ -57,6 +58,7 @@ _netfs_translator_callback2_fn (void *cookie1, void *cookie2, int flags,
-   error_t err;
-   struct protid *cred;
-   struct node *node = cookie1;
-+  struct fshelp_stat_cookie2 *statc = cookie2;
-   struct iouser *user;
-   struct peropen *po;
- 
-@@ -65,7 +67,7 @@ _netfs_translator_callback2_fn (void *cookie1, void *cookie2, int flags,
-   if (err)
-     return err;
- 
--  po = netfs_make_peropen (node, flags, cookie2);
-+  po = netfs_make_peropen (node, flags, statc->next);
-   if (! po)
-     {
-       err = errno;
--- 
-2.1.4
-
diff --git a/debian/patches/series b/debian/patches/series
index 8807f0df..25049402 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -40,8 +40,3 @@ gpg0001-trans-add-identity-translator.patch
 gpg0002-trans-add-transparent-GnuPG-translator.patch
 libdiskfs-fix0001-libdiskfs-improve-error-handling.patch
 
-fs_unification0001-libfshelp-pass-cookie-to-the-callback-function.patch
-fs_unification0002-libnetfs-rename-error-to-err.patch
-fs_unification0003-libnetfs-rename-diruser-to-dircred.patch
-fs_unification0004-libdiskfs-cosmetic-changes.patch
-fs_unification0005-YYY-Unify-the-short-circuit-translator-logic.patch
-- 
cgit v1.2.3